web-dev-qa-db-fra.com

Monter le système de fichiers avec un identifiant utilisateur spécial

Je souhaite monter le périphérique /dev/sda3 dans le répertoire /foo/bar/baz. Après avoir monté le répertoire, vous devez avoir l'ID utilisateur johndoename__. Alors j'ai fait:

Sudo -u johndoe mkdir /foo/bar/baz
stat -c %U /foo/bar/baz
johndoe

et ajouté la ligne suivante à mon /etc/fstab:

/dev/sda3 /foo/bar/baz ext4 noexec,noatime,auto,owner,nodev,nosuid,user 0 1

Quand je fais maintenant Sudo -u johndoe mount /dev/sda3, la commande stat -c %U /foo/bar/baz donne rootau lieu de johndoename__. Quelle est la meilleure façon de monter ce système de fichiers ext4 avec uid johndoeset?

18
qbi

Il n'est pas possible de forcer un propriétaire sur un disque avec un système de fichiers ext4. Seuls les systèmes de fichiers qui ne supportent pas les permissions Linux telles que fat ont un attribut de propriété/groupement: uid=value et gid=value. Voir le page de manuel sur le montage .

Vous devriez changer le propriétaire sur le système de fichiers monté comme dans:

Sudo chown johndoe /foo/bar/baz

Si vous devez modifier les autorisations de manière récursive:

Sudo chown -R johndoe /foo/bar/baz

... et si le groupe doit également être remplacé par johndoe:

Sudo chown -R johndoe: /foo/bar/baz
20
Lekensteyn

bindfs est la réponse. Il utilisera un système de fichiers déjà monté et en donnera une vue avec l’instrument de votre choix:

Sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
Sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
18
Catskul

En supposant que le groupe défini pour les fichiers dispose des autorisations appropriées, vous devriez être en mesure de découvrir simplement son ID de groupe (GID) et de vous y ajouter.


Pour connaître l'ID de groupe d'un fichier, utilisez ls -n. Exemple de sortie:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

Vous voulez le quatrième champ pour GID, qui dans mon cas est le deuxième 1000.

Sudo addgroup --gid GID foobar; Sudo usermod `whoami` -aG foobar

Une fois que vous avez exécuté cette tâche, vous devriez avoir le contrôle total là où les attributs de fichier du groupe le permettent.

Comme indiqué dans l'autre réponse relative aux autorisations des utilisateurs, si vous devez réparer le groupe sur certains fichiers, exécutez n parmi ceux-ci:

Sudo chown -R :foobar ./
Sudo chgrp -R  foobar ./
6
Chinoto