web-dev-qa-db-fra.com

Résolution des problèmes d'autorisation lors de l'utilisation d'un disque dur externe EXT4 avec plusieurs installations Linux

J'ai un disque dur externe et comme je n'utilise que Ubuntu et Fedora, je décide de formater mon disque dur en ext4, tout va bien.

Le problème est que lorsque je monte le lecteur, j'ai besoin de modifier l'autorisation pour pouvoir lire et écrire.

Quel type de permission devrais-je utiliser? adm mon nom d'utilisateur?

18
Javier Gonzalez

Bien que ce soit peut-être ma faute, je vais devoir répondre à la question par une autre question. Si tout ce que nous parlons est pour un système d'exploitation, alors ce serait soit

Sudo chown -R (user name) /dev/(device name)

( ubuntu )

ou juste

chown -R (user name) /dev/(device name)

Fedora - no Sudo, exécutez simplement la commande à partir de la racine.

La partie grattoir pour les nouilles, et la partie pour laquelle je n’ai pas de bonne réponse, est la façon de le faire de sorte que vous n’ayez pas à retaper manuellement lorsque vous passez d’une distribution à l’autre. Je serais presque tenté d'ajouter la ligne à mon ~/.bashrc, mais il existe probablement un meilleur moyen que je ne connais pas ou auquel je n'ai pas encore pensé.

5
user2367

La solution la plus simple est de vous assurer que vos comptes d'utilisateur Ubuntu et Fedora ont le même identifiant d'utilisateur (UID).

Je pense que Fedora démarre les comptes utilisateur à 500 par défaut, alors que Debian et Ubuntu les démarrent à 1000. Il est donc très probable que dans un système d'exploitation, vous êtes le numéro d'utilisateur 500 et dans l'autre, le numéro d'utilisateur 1000. Le système de fichiers utilise ce numéro UID. pour garder une trace des autorisations, donc si vous vous assurez qu'elles ont le même UID, elles seront considérées comme le même utilisateur et aucun problème d’autorisation ne se produira.

Je pense que le mieux que vous puissiez faire est de faire en sorte que les deux UID = 1000, changez donc l'UID dans le système Fedora, puis assurez-vous que tous les fichiers du disque externe et dans le $ HOME de l'utilisateur dans l'installation de Fedora appartiennent à UID 1000. Après cela, vous ne devriez plus avoir de problèmes d’autorisation.

10
JanC

Dans/etc/fstab, vous pouvez indiquer uid = 1000 (dans Ubuntu - 500 dans Fedora) pour que le lecteur soit la propriété de votre utilisateur (en supposant que vous soyez le premier utilisateur, yada yada yada ... sinon, votre utilisateur uid de id) et umask = 000 si vous voulez que tous les utilisateurs aient accès (ou 077 pour celui spécifié par uid = - c'est un masque, donc vous mettez le contraire de ce que vous voudriez chmod)

Pour plus d'informations sur l'utilisation de/etc/fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html

3
maco

Malheureusement, le noyau Linux applique l’autorisation POSIX sur ext2/ext3/ext4 FS.

Vous pouvez contourner l’autorisation POSIX avec un groupe partagé. Je pose la question correspondante: https://unix.stackexchange.com/questions/273144/predefined-group-ids-across-linux-distros/ mais après tout, j'ai fait mes propres recherches.

Je découvre que le groupe sys partage l'id 3 sur Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

Avec une telle découverte en tête, une solution peut ressembler à:

$ Sudo chgrp -R sys /mnt/data/dir
$ Sudo chgmod -R g+s /mnt/data/dir
$ Sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ Sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

et la saveur de ceci (chaque fois que vous êtes sur Linux/FreeBSD/MacOSX/Solaris):

$ Sudo adduser user sys

Voir également:

2
gavenkoa

Vous pouvez simplement essayer d'utiliser exfat ou ntfs. Pour moi, ça marche comme ça. Mais je ne sais pas si cela fonctionne avec toutes les autorisations de fichiers. Je crois que non.

2
d3rdon

Ceci est une légère variation de l'approche de @ gavenkoa consistant à utiliser des groupes partagés et n'implique pas de modification du lecteur monté.

Vérifiez quel identifiant de groupe (GID) est utilisé dans le lecteur monté.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Disons que vous voyez quelque chose de similaire au suivant:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

Cela signifie que 12000 est le GID actuel des données dans le lecteur et que les données peuvent être lues et exécutées (mais ne peuvent pas être écrites) par tout autre utilisateur du groupe. Créez un nouveau groupe (par exemple, driveusers) et ajoutez votre utilisateur actuel au nouveau groupe:

groupadd -g 12000 driveusers
Sudo gpasswd -a $USER driveusers  # add the current user to the new group
Sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive
2
jadelord

J'ai trouvé cette autre solution:

https://unix.stackexchange.com/questions/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/ 468933 # 4689

https://unix.stackexchange.com/a/273705

Avec ça:

Sudo chgrp -R sys /mnt/data/dir
Sudo chmod -R g+s /mnt/data/dir
Sudo setfacl -R -m g:sys:rwx /mnt/data/dir
Sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

et la saveur de ceci:

Sudo adduser user sys  

votre utilisateur soit capable de lire/écrire n’importe quel fichier sur /dir.

@jadelord @ gavenkoa pensez-vous que les solutions suggérées pour les utilisateurs Ubuntu (ou Fedora) pourraient être améliorées? Merci

0
horizonbrave