J'ai une partition ext4 et j'ai défini le propriétaire du groupe pour tous les sous-directeurs sur mon groupe:
# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc
Mon utilisateur fait partie de ce groupe. À l'intérieur de cette partition se trouve un dossier qui appartient à l'utilisateur "personne" et maintenant au groupe "mon groupe". Mon utilisateur fait partie de 'mon groupe'. 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 appartenant à un groupe auquel appartient mon utilisateur.
Je suppose que je ne comprends pas bien comment fonctionnent les 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?
Merci
Avez-vous récemment ajouté cet utilisateur à ce groupe sans vous connecter/déconnecter entre? Ensuite, "groupes" affichera le groupe mais l'utilisateur ne dispose pas encore des autorisations de groupe.
Vous pouvez montrer vos groupes efficaces en utilisant
$ id
Par exemple, si j'ajoute mon utilisateur ps
au groupe fax
et que je tape
$ id
il ne montre pas le groupe fax
name__, mais
$ groups ps
affiche fax
name__.
Faire su
à votre propre utilisateur vous donne la nouvelle affiliation au groupe:
$ su ps
$ id
La sortie contient maintenant aussi fax
name__.
La méthode que vous avez utilisée semble être correcte. Je viens juste d'essayer de le reproduire, et cela a très bien fonctionné.
Je ne suis pas sûr s'il y a une faute de frappe, mais il y a un léger problème avec la commande. Il n'est pas nécessaire que "mygroup" soit mentionné ici. Les oeuvres suivantes
# chmod -R g+swrx /mount/abc
Même si vous pouvez supprimer le bit s
, il suffit de faire g+rwx
. Une fois que vous avez modifié les autorisations et que vous avez modifié ls -l
, les privilèges correspondants doivent s'afficher.
Vous ne pouvez pas supprimer le fichier car le groupe mygroup
ne dispose pas d'autorisations en écriture sur le fichier test.png
ainsi que sur le dossier. Pour que les opérations d'écriture fonctionnent sur le fichier, les autorisations de 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 user r ead, w rite et e x ecute. Les trois prochains espaces réservés ggg
concernent le groupe et ooo
pour les autres. L'extrait posté par le groupe OP ne contient pas l'autorisation w rite.
Les répertoires doivent ouvrir x bits (pour les répertoires, ce bit est considéré comme un bit de recherche) pour pouvoir être ouverts. J'utilise donc tree pour que je puisse obtenir uniquement le jeu de dossiers et éviter le cauchemar de tous les fichiers en tant qu'exécutables (l'option pour tree est -d List directories only.
):
Sudo tree -faid /mount/abc | xargs -L1 -I{} Sudo chmod 755 "{}"
Attention !!! vous devriez avoir ceci en considérations:
utiliser chmod ou chown récursif sur le répertoire racine /
ou les répertoires système détruira votre système d'exploitation (en réalité, tout ce qui est récursif sur le répertoire /
ou les répertoires système est dangereux)
ce n'est pas une bonne pratique de sécurité pour définir le volume des autorisations comme ça
Pour ajouter à la réponse acceptée (étant donné que je ne peux pas encore commenter):
Si vous utilisez un logiciel tel que BitVise pour créer une connexion SSH sur votre serveur, la simple fermeture et réouverture d'un terminal ne sera pas considérée comme une connexion ou déconnexion. Il va faire des choses comme recharger votre ~/.bashrc
, mais pas effectuer les mises à jour réelles du groupe (si vous avez ajouté le groupe dans votre session "login"). Pour que cela prenne effet, vous devez vous déconnecter complètement et vous reconnecter avec votre clé/identifiant SSH.