GNU/Linux >> Tutoriels Linux >  >> Linux

Quel est le but du répertoire setgid ?

Solution 1 :

Bien qu'un fichier/binaire setgid puisse ne pas être évidemment utile, je trouve définitivement le bit setgid très utile appliqué sur les répertoires. En supposant que vous faites partie de différents groupes de travail, chacun ayant ses propres groupes unix (autorisation). Vous voudriez sûrement alors mettre le bit setgid sur les dossiers de projet, en vous assurant que la bonne propriété de groupe est appliquée lorsque vous créez de nouveaux fichiers, et ainsi permettre à vos collègues de ce groupe de projet d'accéder à ces fichiers ?

Solution 2 :

L'utilisation principale est de conserver le groupe propriétaire d'une arborescence de fichiers :

[[email protected] tmp]$ mkdir dir1 && touch dir1/file && mkdir dir1/dir
[[email protected] tmp]$ mkdir dir2 && chgrp staff dir2 && chmod 2755 dir2 && touch dir2/file && mkdir dir2/dir
[[email protected] tmp]$ ls -al dir1
total 32
drwxrwxr-x   3 lockie  lockie   4096 Dec 13 19:32 .
drwxrwxrwt 125 root root 20480 Dec 13 19:32 ..
drwxrwxr-x   2 lockie  lockie   4096 Dec 13 19:32 dir
-rw-rw-r--   1 lockie  lockie      0 Dec 13 19:32 file
[[email protected] tmp]$ ls -al dir2
total 32
drwxr-sr-x   3 lockie  staff  4096 Dec 13 19:32 .
drwxrwxrwt 125 root root  20480 Dec 13 19:32 ..
drwxrwsr-x   2 lockie  staff  4096 Dec 13 19:32 dir  < note new dir is g+s, owned by "staff" group, so the setgid behaviour acts recursively
-rw-rw-r--   1 lockie  staff     0 Dec 13 19:32 file < note new file is owned by "staff" group
[[email protected] tmp]$

Cela a tendance à être utile dans les environnements où différents utilisateurs créeront/modifieront des fichiers/répertoires sous un répertoire :lorsque tous les fichiers/répertoires partagent le même groupe, tous les utilisateurs peuvent modifier/modifier les fichiers/répertoires (si les autorisations le permettent) :cela évite des situations comme "xyz possède le fichier abc, donc je ne peux pas le modifier".

Une alternative à l'utilisation de setgid de cette manière est le grpid option de montage du système de fichiers.

De la monture humaine :

grpid ou bsdgroups / nogrpid ou sysvgroups

Ces options définissent l'identifiant de groupe qu'un fichier nouvellement créé obtient. Lorsque grpid est défini, il prend l'identifiant de groupe du répertoire dans lequel il est créé ; sinon (par défaut), il prend le fsgid du processus actuel, à moins que le répertoire ait le bit setgid défini, auquel cas il prend le gid du répertoire parent et obtient également le bit setgid défini s'il s'agit d'un répertoire lui-même.

Lorsqu'il est activé, les fichiers/répertoires créés sur un système de fichiers monté grpid héritent également du groupe du répertoire parent :

[[email protected] ~]$ mount | grep /home
/dev/mapper/VolGroup00-home on /home type ext3 (rw,grpid)
[[email protected] ~]$ mkdir dir3 && touch dir3/file && mkdir dir3/dir
[[email protected] ~]$ ls -al dir3
total 12
drwxrwxr-x  3 lockie users 4096 Dec 13 19:37 .
drwxrwxr-x 12 lockie users 4096 Dec 13 19:37 ..
drwxrwxr-x  2 lockie users 4096 Dec 13 19:37 dir < inherited "users" group from parent dir
-rw-rw-r--  1 lockie users    0 Dec 13 19:37 file  < inherited "users" group from parent dir
[[email protected] ~]$

J'ai trouvé en utilisant grpid L'option réduit de manière appropriée le risque d'erreur humaine (puisque le système de fichiers fait le travail, quelles que soient les autorisations du répertoire).


Linux
  1. À quoi sert le Colon Builtin ':' ?

  2. Quel est le but de l'utilisateur "mysql.sys@localhost"

  3. Quel est le but de "l'utilisateur système" dans la réplication MySQL

  4. Quel est le but du groupe "roue" sous Linux

  5. Quel est le but du fichier .bashrc sous Linux

Chemin absolu ou relatif sous Linux :quelle est la différence ?

Quel est l'intérêt de chiffrer le répertoire personnel ?

Quel est l'équivalent d'Active Directory sous Linux

Quel est le moyen le plus rapide de supprimer tous les fichiers et sous-dossiers d'un répertoire ?

Que signifie le ./ (barre oblique) sous Linux ?

Que signifie le suffixe .d sous Linux ?