web-dev-qa-db-fra.com

Que signifie gid?

Qu'est-ce que GID signifie réellement?

Je l'ai googlé et voici ce linux.about.com dit:

Numéro d'identification du groupe pour le processus. numéros de groupe valides sont donnés dans /etc/group, Et dans le domaine de GID /etc/passwd déposer. Quand un processus est lancé, son GID est réglé sur la GID de son processus parent.

  • Mais qu'est ce que ça veut dire?

Les autorisations que j'ai pour mon dossier est actuellement à 0755

Je comprends si je mets l'UID pour le propriétaire, il sera 4755

Et si je le GID du groupe, il sera 2755

Si je le sticky pour d'autres il sera 1755

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

Chaque processus dans un système de type UNIX, comme chaque fichier, a un propriétaire (l'utilisateur, réel ou un système "pseudo-utilisateur", tel que daemon, bin, man, etc.) et un propriétaire de groupe. Le propriétaire du groupe pour les fichiers d'un utilisateur est généralement que le groupe principal de l'utilisateur, et de la même manière que tous les processus que vous démarrez appartiennent généralement à votre ID utilisateur et par votre identifiant de groupe principal.

Parfois, cependant, il est nécessaire d'avoir des privilèges élevés pour exécuter certaines commandes, mais il n'est pas souhaitable de donner des droits administratifs complets. Par exemple, la commande passwd a besoin d'accéder au fichier de mots de passe Shadow du système afin qu'il puisse mettre à jour votre mot de passe. De toute évidence, vous ne voulez pas donner à tous les privilèges de racine d'utilisateur, afin qu'ils puissent réinitialiser leur mot de passe - cela conduirait sans aucun doute au chaos! Au lieu de cela, il doit y avoir un autre moyen d'accorder temporairement des privilèges élevés aux utilisateurs d'effectuer certaines tâches. C'est ce que les bits setuid et setigidien sont pour. C'est un moyen de dire au noyau d'augmenter temporairement les privilèges de l'utilisateur pendant la durée de l'exécution du commandement marqué. 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 du fichier exécutable. Dans le cas de la commande passwd, qui appartient à root et est sécurisée, il permet aux utilisateurs normaux d'affecter directement le contenu du fichier de mots de passe, de manière contrôlée et prévisible, en exécutant avec privilèges root. Il y a de nombreuses autres commandes SETUID sur des systèmes de type UNIX (chsh, screen, ping, su, etc.), tous qui nécessitent des privilèges élevés de fonctionner correctement. Il existe également quelques programmes SETGID, où le noyau modifie temporairement le gid du processus, pour permettre l'accès aux fichiers journaux, etc. sendmail est un tel utilitaire.

Les sticky bit sert un objectif légèrement différent. Son utilisation la plus courante consiste à garantir que seul le compte d'utilisateur qui a créé un fichier peut le supprimer. Pensez à la /tmp répertoire. Il a des autorisations très libérales, qui permettent à quiconque de créer des fichiers là-bas. C'est bon et permet aux processus des utilisateurs de créer des fichiers temporaires (screen, ssh, etc., conserver les informations de l'état dans /tmp). Pour protéger les fichiers temporaires d'un utilisateur, /tmp a le bit collant défini, de sorte que je ne puis que je puisse supprimer mes fichiers et que vous seul pouvez supprimer le vôtre. Bien sûr, la racine peut faire n'importe quoi, mais nous devons espérer que le sysadmin n'est pas dérangé!

Pour les fichiers normaux (c'est-à-dire pour les fichiers non exécutables), il existe peu de points dans la définition des bits SETUID/SETGID. SETGID sur des répertoires sur certains systèmes contrôle le propriétaire de groupe par défaut pour les nouveaux fichiers créés dans ce répertoire.

27
D_Bye

Je pense que vous voulez dire le bit "SGID" d'un fichier, qui n'est pas la même chose 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 fichier ancien simple (par opposition à un répertoire, symbolique, tuyau, etc. ...)

(b) RW-: Le propriétaire peut lire et écrire ce fichier, mais ne l'exécute pas. Le propriétaire est "Bristol" comme vous pouvez le voir plus loin dans la ligne.

(c) R-: Membres du groupe Ce fichier appartient à ("utilisateurs" dans l'exemple) autre que le propriétaire peut lire, mais pas écrire ou exécuter ce fichier.

(D) ---: Quelqu'un d'autre ne peut pas accéder à ce fichier (sauf la racine bien sûr).

Le champ GID est celui qui vous indique quel groupe appartient à ce fichier - dans ce cas "Utilisateurs".

Le champ que vous avez probablement signifié, basé sur votre description, est le bit SGID, et voici une meilleure explication que je puisse proposer:

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

La version courte est la suivante: Si un fichier exécutable dispose du jeu de bit SGID, alors quiconque n'est pas dans le groupe, mais peut exécuter ce fichier gagne temporairement les droits de ce groupe pendant que le programme est en cours d'exécution.

Par exemple, si vous avez un groupe "spool" capable de lire et d'écrire des fichiers dans le répertoire des spouleurs d'impression, vous ne voulez pas que tout le monde se gâche avec ce répertoire, mais que vous souhaitez qu'ils puissent imprimer des fichiers, vous pouvez faire Certains programmes d'impression ou script ont un groupe "spool" et définir le bit SGID et lorsque tout le monde lance ce programme, le programme peut désormais écrire sur le répertoire des spouleurs sans que la personne ne l'utilise pas d'un accès complet.

3
Bristol

Comme vous l'avez trouvé, le gid est, comme vous l'avez trouvé, le numéro d'identification d'un groupe. Il s'agit simplement d'une manière conviniée pour le système d'exploitation d'exprimer le groupe (utilisateur) associé à quelque chose (processus, fichier, etc.); Au lieu d'un identifiant de chaîne potentiellement long, il peut être exprimé en tant que numéro de taille fixe.

Dans une valeur d'autorisations de fichier de quatre chiffres octales (par exemple, 0755), le troisième chiffre spécifie les autorisations du groupe au fichier. Si vous omettez le premier chiffre, c'est 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 des autorisations est quelque peu intuitive dans le cas des répertoires.

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

Quant à votre question "est-il même important de définir ces autorisations?"; Ils sont toujours définis sur quelque chose, mais depuis dans la plupart des cas, le chiffre initial est 0 ("rien de spécial"), il a tendance à être omis de la brièveté. Que vous ayez besoin de spécifier une autre valeur dépend entièrement du modèle d'utilisation du fichier ou du répertoire en question.

3
a CVn