69 votes

Les permissions de groupe sont autorisées, mais la permission est toujours refusée.

J'ai une partition ext4 et j'ai défini le propriétaire du groupe pour tous les sous-répertoires à mygroup :

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

Mon utilisateur fait partie de ce groupe. Dans cette partition se trouve un dossier qui appartient à l'utilisateur 'nobody' et maintenant au groupe 'mygroup'. Mon utilisateur fait partie de 'mygroup'. Voici un ls -l :

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

Notez que je ne peux ni supprimer ni créer un fichier qui appartient à un groupe dont mon utilisateur fait partie.

Je suppose que je ne comprends pas bien le fonctionnement des groupes. Je pensais que si vous faisiez partie d'un groupe, vous héritez des autorisations de ce groupe. Est-ce que je fais quelque chose de mal ?

Gracias

102voto

peschü Points 1206

Avez-vous récemment ajouté cet utilisateur à ce groupe, sans vous déconnecter/se déconnecter entre temps ? Dans ce cas, "groupes" affichera le groupe mais l'utilisateur n'a pas encore les permissions du groupe.

Vous pouvez montrer vos groupes effectifs en utilisant

$ id

Par exemple, si j'ajoute mon utilisateur ps au groupe fax puis tapez

$ id

il ne montre pas le groupe fax mais

$ groups ps

montre fax .

Faire su à votre propre utilisateur vous donne la nouvelle affiliation de groupe :

$ su ps
$ id

La sortie contient maintenant aussi fax .

11voto

Quiescat Points 1797

La méthode que vous avez utilisée semble être correcte. Je viens d'essayer de la reproduire, et cela a bien fonctionné.

Je ne suis pas sûr qu'il y ait une faute de frappe, mais il y a un léger problème avec la commande. Il n'est pas nécessaire de mentionner "mygroup" dans cette commande. La commande suivante fonctionne

# chmod -R g+swrx /mount/abc

Même, vous pouvez enlever le s un peu, il suffit de faire g+rwx . Après avoir changé les permissions, et avoir fait ls -l il devrait afficher les privilèges correspondants.

5voto

Ashoka Lella Points 151

Vous ne pouvez pas supprimer le fichier car le groupe mygroup n'a pas les droits d'écriture sur le fichier test.png ainsi que le dossier. Pour que les opérations d'écriture fonctionnent sur le fichier, les autorisations du fichier doivent ressembler à ceci :

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

Si vous regardez de plus près le format de permission

duuugggooo

Les trois premiers espaces réservés uuu sont des utilisateurs r ead, w rite et e x ecute. Les trois caractères de remplacement suivants ggg sont pour le groupe et ooo pour les autres. Dans l'extrait posté par le groupe de l'OP, il manque la partie w rite permission.

4voto

Eduard Florinescu Points 6547

Les répertoires ont besoin d'un bit x pour s'ouvrir (pour les répertoires, ce bit est considéré comme un bit de recherche). J'utilise donc l'arbre pour n'avoir que le dossier défini et éviter le cauchemar d'avoir tous les fichiers définis comme exécutables ( l'option pour l'arbre est -d List directories only. ) :

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

Attention ! !! vous devez en tenir compte :

  • utilisation de chmod ou chown récursif sur root / ou des répertoires système détruira votre système d'exploitation (en fait, tout ce qui est récursif sur / ou les répertoires du système est dangereux)

  • ce n'est pas une bonne pratique de sécurité que de définir des autorisations en vrac comme ça

2voto

Figidon Points 121

Pour ajouter à la réponse acceptée (puisque je ne peux pas encore commenter) :

Si vous utilisez un logiciel comme BitVise pour créer une connexion SSH avec votre serveur, le fait de fermer et de rouvrir un terminal ne sera pas considéré comme une connexion et une déconnexion. Il sera faire des choses comme recharger votre ~/.bashrc mais pas effectuer les mises à jour du groupe (si vous avez ajouté le groupe lors de votre session de "connexion"). Pour que cela prenne effet, vous devez vous déconnecter complètement et vous reconnecter avec vos informations d'identification et votre clé SSH.

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