chmod g+s .;
Cette commande définit l'ID de groupe (setgid) sur le répertoire en cours, écrit en tant que .
.
Cela signifie que tous les nouveaux fichiers et sous-répertoires créés dans le répertoire en cours héritent de l'ID de groupe du répertoire, plutôt que de l'ID de groupe principal de l'utilisateur qui a créé le fichier. Cela sera également transmis aux nouveaux sous-répertoires créés dans le répertoire actuel.
g+s
affecte l'ID de groupe du fichier mais n'affecte pas l'ID du propriétaire.
Notez que cela ne s'applique qu'aux fichiers nouvellement créés . Les fichiers déplacés ( mv
) dans le répertoire ne sont pas affectés par le paramètre setgid. Les fichiers copiés ne cp -p
sont également pas affectés.
Exemple
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;
Dans ce cas, deux
appartiendra au groupe canard
mais un
appartiendra au groupe de l'utilisateur qui le crée, quel qu'il soit.
Note mineure sur l'utilisation des points-virgules dans les commandes Shell
Contrairement à c
ou perl
, une commande shell n'a besoin d'être suivie d'un point-virgule que si une autre commande shell la suit sur la même ligne de commande. Ainsi, considérons la ligne de commande suivante:
chgrp canard .; chmod g+s .;
Le point-virgule final est superflu et peut être supprimé:
chgrp canard .; chmod g+s .
De plus, si nous devions placer les deux commandes sur des lignes séparées, le point-virgule restant est inutile:
chgrp canard .
chmod g+s .
cp
) sont en fait nouvellement créés. S'ils n'héritent pas de l'autorisation du groupe, le programme de copie joue à des jeux, comme copier dans un fichier temporaire puis le déplacer dans le répertoire cible.cp -p
qui annule le paramètre setgid.cp -p
remplace-t-il le paramètre setgid? Sur chaque implémentation Unix existante? POSIX dit qu'il n'est pas spécifié si un échec de copie de l'ID utilisateur ou de l'ID de groupe sous cp -p entraîne un message de diagnostic! Cependant, les bits S_SUID et S_SGID, respectivement, doivent être effacés dans cette situation (c.-à-d. Si un fichier est setuid bob, mais que la propriété de bob ne peut pas être copiée de sorte que le fichier appartient à janet, ne le rendez pas setuid jan.)cp -p
remplace-t-il le paramètre setgid?" Selon la spécification POSIX, c'est ce qu'il est censé faire. C'est le cas sur tous les systèmes Unix que j'ai utilisés. Vous avez cité la partie de la spécification concernant les mesures à prendre pour protéger la sécurité dans le cas où l'ID de groupe ne peut pas être dupliqué. Je n'ai jamais rencontré une telle situation "impossible", n'est-ce pas?Vous pouvez modifier les autorisations de fichiers avec la commande chmod. Sous Unix, les autorisations sur les fichiers, qui déterminent qui peut avoir différents types d'accès à un fichier, sont spécifiées à la fois par les classes d'accès et les types d'accès. Les classes d'accès sont des groupes d'utilisateurs, chacun pouvant se voir attribuer un type d'accès spécifique.
Unix / Linux a des utilisateurs et des groupes d’utilisateurs pouvant être attribués pour l’accès aux fichiers
les options g + s sont les suivantes:
g - les permissions que les autres utilisateurs du groupe de fichiers ont pour cela
s - définit l'identifiant de l'utilisateur ou du groupe lors de l'exécution
voici un exemple d'utilisation:
(autoriser tout le monde à lire, écrire et exécuter un fichier particulier et activer l'identifiant de groupe défini)
Pour définir / modifier les autorisations d'un fichier, vous devez utiliser le programme chmod. Bien entendu, seul le propriétaire d'un fichier peut utiliser chmod pour modifier les autorisations d'un fichier. La syntaxe de chmod est la suivante: chmod [options] mode fichier (s) La partie 'mode' spécifie les nouvelles autorisations pour les fichiers qui suivent comme arguments. Un mode spécifie les autorisations de l'utilisateur à modifier, puis les types d'accès à modifier. Disons par exemple: chmod ax socktest.pl
Cela signifie que le bit d'exécution doit être effacé (-) pour tous les utilisateurs. (propriétaire, groupe et reste du monde) Les autorisations commencent par une lettre spécifiant quels utilisateurs doivent être affectés par la modification. Cette autorisation peut être l'une des suivantes:
Ceci est suivi d'une instruction de changement composée d'un + (bit de réglage) ou - (bit d'effacement) et de la lettre correspondant au bit à modifier. Voyons quelques exemples:
Des nombres étranges ... Vous avez peut-être rencontré des problèmes tels que chmod 755 et, bien sûr, vous vous demanderez de quoi il s'agit. Le fait est que vous pouvez changer le modèle de permission d'un fichier en une fois en utilisant un numéro comme celui de cet exemple. Chaque mode a un numéro de code correspondant et, comme nous le verrons, il existe un moyen très simple de déterminer quel numéro correspond à un mode. Chacun des trois chiffres du numéro de mode correspond à l'un des trois triplets de permission. (u, g et o) Chaque bit d'autorisation d'un triplet correspond à une valeur: 4 pour r, 2 pour w, 1 pour x. Si le bit d'autorisation, vous ajoutez cette valeur au numéro du triplet d'autorisation. S'il est effacé, vous n'ajoutez rien. (Certains d'entre vous remarqueront peut-être qu'en fait,
Donc, 755 est une façon laconique de dire: «Cela ne me dérange pas que d’autres personnes lisent ou exécutent ce fichier, mais je suis le seul à pouvoir le modifier» et 777 signifie «tout le monde a accès à ce fichier».
référence parfaite
la source
Le résultat de la commande ls dépendra de umask.
g + s mettra sgid dans le fichier. Vérifiez ici des informations plus détaillées sur SUID SGID
Donc si votre umask est par exemple 022, le résultat sera quelque chose comme:
la source
Sous Linux, l’une des options de montage par défaut pour ext? fs est 'nogrpid | sysvgroups '. Donc, la première fois que vous touchez, crée un fichier avec un identifiant de groupe égal à fsgid du processus de création où fsgid = egid.
chmod g + s., fait en sorte que la création de fichier / répertoire suivante hérite de l'identifiant de groupe du dossier parent. Si l'élément créé est un répertoire, il reçoit également g + s en tant que parent.
Ici touchent deux, crée deux, avec groupe canard.
La sémantique change si l'option de montage était 'grpid | bsdgroups 'dans ce cas, la nouvelle création de fichier / répertoire hériterait du groupe id de son dossier parent même sans définir g + s pour le parent lui-même.
la source