Que signifie réellement le GID?

Je lai recherché sur Google et voici ce que linux.about.com a dit:

Numéro didentification de groupe pour le processus. Les numéros de groupe valides sont indiqués dans /etc/group et dans le champ GID du fichier /etc/passwd. Lorsquun processus est lancé, son GID est défini sur le GID de son processus parent.

  • Mais quest-ce que cela signifie?

Les autorisations dont je dispose pour mon dossier sont actuellement à 0755

Je comprends que si jai défini lUID pour le propriétaire, ce sera 4755

Et si je règle le GID du groupe, ce sera 2755

Si Jai défini le Sticky Bit pour les autres, ce sera 1755

  • Est-il même important de définir ces autorisations?

Réponse

Chaque processus dans un système de type UNIX, comme tout fichier, a un propriétaire (lutilisateur, réel ou système « pseudo -user « , comme daemon, bin, man, etc.) et un groupe propriétaire. Le propriétaire du groupe pour les fichiers dun utilisateur est généralement le groupe principal de cet utilisateur et, de la même manière, tous les processus que vous démarrez sont généralement la propriété de votre ID utilisateur et de votre ID de groupe principal.

Parfois cependant, il est nécessaire davoir des privilèges élevés pour exécuter certaines commandes, mais il nest pas souhaitable de donner tous les droits dadministration. Par exemple, la commande passwd doit accéder au fichier de mots de passe cachés du système, afin de pouvoir mettre à jour votre mot de passe. De toute évidence, vous ne voulez pas donner à chaque utilisateur des privilèges root, juste pour quils puissent réinitialiser leur mot de passe – cela mènerait sans aucun doute au chaos! Au lieu de cela, il doit exister un autre moyen daccorder temporairement des privilèges élevés aux utilisateurs pour effectuer certaines tâches. Cest à cela que servent les bits SETUID et SETGID. Cest une manière de dire au noyau daugmenter temporairement les privilèges de lutilisateur, pendant la durée de lexécution de la commande marquée. Un binaire SETUID sera exécuté avec les privilèges du propriétaire du fichier exécutable (généralement root), et un binaire SETGID sera exécuté avec les privilèges de groupe du propriétaire du groupe de lexécutable déposer. Dans le cas de la commande passwd, qui appartient à root et est SETUID, elle permet aux utilisateurs normaux daffecter directement le contenu du mot de passe fichier, de manière contrôlée et prévisible, en exécutant avec les privilèges root. Il existe de nombreuses autres commandes SETUID sur les systèmes de type UNIX (chsh, screen, ping, su, etc), qui nécessitent tous des privilèges élevés pour fonctionner correctement. Il existe également quelques programmes SETGID, où le noyau modifie temporairement le GID du processus, pour permettre laccès aux fichiers journaux, etc. sendmail est un tel utilitaire.

Le sticky bit sert un but légèrement différent. Son utilisation la plus courante est de sassurer que seul le compte utilisateur qui a créé un fichier peut le supprimer. Pensez au répertoire /tmp. Il a des permissions très libérales, qui permettent à nimporte qui de créer des fichiers là-bas. Ceci est une bonne chose et permet aux processus des utilisateurs de créer des fichiers temporaires (screen, ssh, etc., conserver les informations détat dans /tmp). Pour protéger les fichiers temporaires dun utilisateur, /tmp a défini le bit sticky, de sorte que je ne peux supprimer mes fichiers, et vous seul pouvez supprimez le vôtre. Bien sûr, root peut tout faire, mais nous devons espérer que ladministrateur système nest pas dérangé!

Pour les fichiers normaux (cest-à-dire pour les fichiers non exécutables), il ny a pas grand intérêt à définir le SETUID / SETGID bits. SETGID sur les répertoires de certains systèmes contrôle le propriétaire du groupe par défaut pour les nouveaux fichiers créés dans ce répertoire.

Commentaires

  • Ah génial, merci Pour cela. Donc, le Sticky Bit est comme une permission personnelle (utilisateur)? Cette réponse était bien formulée et compréhensible.
  • Merci! Le sticky bit offre une petite protection pour les fichiers dans un répertoire avec libéral autorisations. ‘ nest pas vraiment spécifique à un utilisateur donné, car le même niveau de protection est accordé à tous les fichiers, quel que soit le propriétaire. ‘ est un moyen de permettre à nimporte qui de créer des fichiers, et de sassurer que seul le propriétaire peut les détruire.
  • +1, D_bye, pourriez-vous sil vous plaît partager un exemple de bit setgid défini sur le répertoire.Merci
  • @Ankit Sous Solaris (et presque certainement dautres – je nutilise que * BSD et Solaris, cependant), si le bit setgid est défini sur un répertoire, tous les nouveaux fichiers créés sous ce répertoire auront le même propriétaire du groupe comme répertoire lui-même, et nhéritera pas du groupe principal (de lutilisateur exécutant) le processus de création.

Réponse

Je pense que vous voulez dire le bit » SGID « dun fichier, qui nest pas le même que son GID.

Voici » un fichier typique sur mon ordinateur (sortie de ls -l):

-rw-r----- 1 bristol users 16 2012-07-23 11:36 file.txt abbbcccddd <-- See explanation below. 

Si vous regardez les 10 premiers symboles,

(a) -: Ceci est juste un ancien fichier (par opposition vers un répertoire, un lien symbolique, un tube etc …)

(b) rw-: Le propriétaire peut lire et écrire ce fichier, mais pas lexécuter. Le propriétaire est « bristol » comme vous pouvez le voir plus loin dans la ligne.

(c) r–: Les membres du groupe auquel ce fichier appartient (« utilisateurs » dans lexemple) autres que le propriétaire peuvent lire, mais pas écrire ou exécuter ce fichier.

(d) —: A personne dautre ne peut « t accéder du tout à ce fichier (sauf root bien sûr).

Le champ GID est celui qui vous indique à quel groupe ce fichier appartient – dans ce cas » utilisateurs « .

Le champ que vous vouliez probablement dire, daprès votre description, est le bit SGID, et voici « une meilleure explication que je ne pourrais en trouver:

http://www.codecoffee.com/tipsforlinux/articles/028.html

La version courte est la suivante: si un fichier exécutable a le bit SGID défini, alors toute personne qui nest pas dans le groupe mais peut exécuter ce fichier obtient temporairement les droits de ce groupe pendant lexécution du programme.

Par exemple, si vous avez un groupe « spool » qui peut lire et écrire des fichiers dans le répertoire du spouleur dimpression, vous ne  » Vous voulez que nimporte qui joue avec ce répertoire mais vous voulez quils soient capables dimprimer des fichiers, vous pouvez faire en sorte que certains programmes ou scripts dimpression aient un groupe « spool » et définir le bit SGID et quand quelquun lance ce programme, le programme peut maintenant écrire dans le répertoire du spouleur sans la personne en cours dexécution il obtient un accès complet.

Commentaires

  • Cest bien, merci pour cela. Je comprends la partie des permissions, (la partie abbbcccddd) – mais ça vous dit 🙂
  • Je viens de voir que mes permissions sur le dossier tmp sont drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Que signifie abbbcccddt (letter ‘ t ‘)? – Je comprends que  » d = répertoire « ,  » rwx = read, écrire, exécuter « ; mais je nai jamais vu le ‘ t ‘ à la fin avant. Sagit-il dune autorisation spéciale pour le dossier tmp?
  • Petit t est  » exécutable (x) et défini sur le bit sticky « . Voir ci-dessus pour une explication de la raison pour laquelle cest habituel sur / tmp.

Answer

Le GID est, comme vous avez trouvé, le numéro didentification dun groupe. Cest simplement un moyen pratique pour le système dexploitation dexprimer le groupe (dutilisateurs) associé à quelque chose (un processus, un fichier, etc.); au lieu dun identifiant de chaîne potentiellement long, il peut être exprimé sous la forme dun nombre de taille fixe.

Dans une valeur dautorisations de fichier de quatre chiffres octaux (par exemple, 0755), le troisième chiffre spécifie les autorisations du groupe dans le fichier. Si vous omettez le premier chiffre, cest le deuxième chiffre qui spécifie les autorisations du groupe. Notez que les fichiers et les répertoires sont traités de la même manière à cet égard, mais que la signification exacte de chaque bit dautorisation est quelque peu non -intuitif dans le cas des répertoires.

Les deux concepts sont liés, mais ont des objectifs très différents.

Quant à votre question « est-il même important de définir ces permissions? »; ils sont toujours définis sur quelque chose , mais comme dans la plupart des cas le chiffre initial est 0 (« rien de spécial »), il a tendance à être omis par souci de concision. La nécessité de spécifier une autre valeur dépend entièrement de le modèle dutilisation du fichier ou du répertoire en question.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *