1 votes

Donner à un utilisateur l'accès à un répertoire dans le dossier personnel d'un autre utilisateur

J'ai un répertoire dans mon dossier personnel auquel j'aimerais qu'un autre utilisateur puisse accéder. J'ai créé un groupe pour lui et nous l'avons tous deux rejoint.

sudo chgrp -R group folder/

Il ne peut toujours pas accéder au répertoire, la permission lui étant refusée. J'ai également fait

sudo chmod -R 777 folder/

En vain. Pourquoi ça ne marche pas ? Merci.

3voto

NovHak Points 449

Avez-vous vérifié qu'il a les droits d'exécution sur les répertoires parents ? Sinon, cela ne fonctionnera pas.

Plus précisément, le long du chemin qu'un utilisateur emprunte pour référencer un objet du système de fichiers, tous les répertoires intermédiaires doivent avoir la permission d'exécuter définie pour lui. En pratique, il sera souvent préférable de donner aussi la permission de lecture, car donner seulement la permission d'exécution ne fonctionnerait que si l'utilisateur accédant progresse jusqu'au répertoire désiré sans pouvoir regarder dans ces répertoires intermédiaires, ce qui ne se passe pas comme ça quand on utilise un gestionnaire de fichiers ou Shell la complétion (tab), par exemple.

Si cela ne vous dérange pas que tout le monde ait un accès en lecture+exécution aux répertoires parents, vous pouvez vous contenter d'un fichier chmod o+rx sur ces répertoires, ou vous devrez chgrp ces répertoires également et chmod g+rx .

Ou... OU... vous pouvez utiliser... ACL POSIX  !

Vous pouvez utiliser le setfacl y getfacl ou utiliser Eiciel ( apt install eiciel ), l'éditeur d'ACL de fichiers de gnome, pour définir ces ACL. Entre autres choses, les ACL POSIX permettent d'accorder/révoquer des droits à des utilisateurs et groupes spécifiques, sans avoir à s'en tenir au modèle de permission traditionnel UNIX "ugo". Plus à la manière de NTFS, si vous ne trouvez pas la comparaison trop obscène.

man acl peut vous aider, mais man setfacl semble plus intéressant, car il couvre des parties spécifiques à Linux telles que les ACL par défaut, qui sont héritées par les objets du système de fichiers créés dans un répertoire.

Donc par exemple, si vous voulez donner à l'utilisateur bob les permissions "rwx" sur le répertoire "work", avec les permissions par défaut (héritées) "r", tapez :

setfacl -m u:bob:rwx,d:u:bob:r work

Vous devez toujours donner à Bob les droits de lecture et d'exécution sur tous les répertoires qu'il devra traverser pour atteindre le "travail" (s'il n'a pas déjà ces droits) :

setfacl -m u:bob:rx intermediate_directory

À titre d'information, les ACL POSIX ne sont pas nouvelles. Je me souviens les avoir utilisées sur un système Digital Unix il y a plus de vingt ans. Cependant, le système oubliait de réinitialiser ces ACL sur l'allocation/désallocation de TTY, seulement les droits traditionnels, ce qui permettait quelques exploits à l'époque où les fichiers de périphériques étaient créés statiquement...

EDIT : Au lieu de devoir donner les droits +rx sur les répertoires intermédiaires, vous pouvez remonter le répertoire cible ailleurs sur le système de fichiers. Supposons que vous avez un répertoire "work", dont le chemin absolu est /x/y/z/work, et que vous ne voulez pas modifier les droits sur x, y ou z. Vous pouvez créer un répertoire /shared/work, et y remonter /x/y/z/work, en utilisant :

mkdir -p /shared/work
mount --bind /x/y/z/work /shared/work

Cela ne survivra pas aux redémarrages, donc si vous voulez qu'il persiste, ajoutez la ligne suivante au fichier /etc/fstab :

/x/y/z/work /shared/work none bind

Cela rendra le contenu du répertoire de travail accessible par /x/y/z/work et /shared/work également.

Mais bien sûr, si cela ne vous dérange pas de déplacer /x/y/z/le travail à un autre endroit :

mkdir /shared
mv /x/y/z/work /shared

est le moyen le plus simple et le meilleur.

1voto

24601 Points 7082

Ouvrez Nautilus et naviguez jusqu'au dossier que vous souhaitez partager (dans mon exemple, le dossier est Vidéos).

Cliquez à droite sur l'icône du dossier dans Nautilus et sélectionnez Propriétés.

Sélectionnez l'option ' Permissions et définissez le groupe et les autorisations d'accès en fonction de vos besoins. Par exemple, définissez le Accès ' descendre jusqu'à Créer et supprimer des fichiers

enter image description here

Prochaine étape :

Sélectionnez Partage du réseau local et sélectionnez Partager ce dossier

Si le service de partage n'est pas installé, vous devrez l'installer à ce stade.

La sélection Créer un partage

enter image description here

Cela permettra à d'autres personnes de créer et de supprimer des fichiers dans le dossier que vous avez choisi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X