web-dev-qa-db-fra.com

Comment ajouter un utilisateur à un système de fichiers séparé (Armel)

J'essaie de voir comment ajouter un utilisateur à un système de fichiers séparé, comme décrit ici , en particulier le point 5: Ajoutez un utilisateur local et un mot de passe pour l'utilisateur, puis ajoute l'utilisateur aux groupes adm et Sudo.

J'ai lu autour de chroot, mais je ne crois pas que cela fonctionnera car la commande à exécuter par défaut est /bin/bash, ce qui nécessiterait que le fs cible soit compatible binaire. Dans ce cas, le système de fichiers cible est Armel , il n'est donc pas compatible.

2
chrisvarnz

J'ai trouvé cette page qui explique exactement ce que j'essayais de faire pour intégrer le système de fichiers cible:

http://www.omappedia.com/wiki/OMAP_Ubuntu_Core#Chroot.27ing_into_the_Ubuntu_Core_Filesystem

C’est alors un simple cas d’exécution de adduser ubuntu ou similaire.

Copié au cas où il est mort:

Chrooter dans le système de fichiers Ubuntu Core

Une solution pour personnaliser votre système de fichiers Ubuntu Core consiste à le faire à partir du PC Linux. Utiliser un 'chroot' est parfois très pratique car vous pouvez exécuter des commandes comme vous le faites normalement sur la cible ARM. Voici quelques étapes rapides à suivre:

Configuration de Chroot sur le PC Linux

Vérifiez que le paquet Ubuntu 'qemu-user-static' est installé sur votre ordinateur Linux. Cela peut être fait avec la ligne de commande suivante (sur votre PC Linux):

dpkg -l qemu-user-static

Installez votre carte SD sur votre PC Linux et accédez au dossier rootfs Ubuntu Core, généralement:

cd /media/rootfs

Copiez le fichier qemu for arm:

cp /usr/bin/qemu-arm-static usr/bin/

Si ce n’est pas encore fait, configurez correctement vos paramètres réseau:

mv etc/resolv.conf etc/resolv.conf.saved
cp /etc/resolv.conf etc/resolv.conf

Ensuite, montez sys, proc et dev:

for m in `echo 'sys dev proc'`; do Sudo mount /$m ./$m -o bind; done

Enfin, chroot dans votre système de fichiers cible:

Sudo LC_ALL=C chroot . /bin/bash

Vous êtes maintenant dans votre "chroot", ce qui signifie que vous pouvez exécuter des commandes comme si vous étiez sur votre périphérique cible ARM.

Utiliser le 'chroot'

La première étape consiste à vérifier que la connexion réseau est correcte. Tu peux courir:

apt-get update

Vous êtes maintenant prêt à installer tout nouveau paquet dans votre système de fichiers Ubuntu Core à l'aide des outils APT.

Sortir du 'chroot'

Démontez le système de fichiers cible: assurez-vous que vous êtes dans/target FS et exécutez les commandes suivantes:

for m in `echo 'sys dev proc'`; do Sudo umount ./$m; done

Retournez à vos paramètres réseau d'origine:

mv etc/resolv.conf.saved etc/resolv.conf
1
chrisvarnz

Peut-être que cela fonctionnera (en dehors de votre solution de contournement: monter le nouveau système de fichiers dans un système ARMEL):

avant de faire chroot, exécutez mount --bind les répertoires contenant les fichiers binaires dépendants de l’architecture de votre système hôte sur les pats correspondants dans le nouveau système de fichiers (/bin/, /sbin/, /lib/ - peut-être que cela suffira pour ajouter un utilisateur, ou /usr/* ainsi, sinon), puis chroot et exécuter les commandes. /etc/, /home/ et /var/ du nouveau système de fichiers seront modifiés.