Lorsque j'installe un programme, il me recommande de le faire chmod 4555
. D'accord, je connais les valeurs si j'utilise seulement trois nombres. Par exemple
chmod 555 test-file
va donner
-r-xr-xr-x
4 pour l'écriture, 2 pour la lecture et 1 pour l'exécution. Mais quand je fais ça:
chmod 4555 test-file
ça me donne
-r-sr-xr-x
Donc, x
changé en s
. Qu'est-ce que ça veut dire?
command-line
chmod
Mas Bagol
la source
la source
Réponses:
Il y a en fait 4 jeux d'attributs avec lesquels vous pouvez travailler
chmod
.Special
,User/Owner
,Group
, EtOthers
dans cet ordre, lors du travail avec les chmods quatre-numérique, avec ce nombre premier étant des bits particuliers qui peuvent être réglés.chmod 4555
équivaut à ce qui suit:Set UID
bit - Exécute le fichier en tant que propriétaire quel que soit l'utilisateur qui l'exécuteRead, Execute
Read, Execute
Read, Execute
Le
s
dans votre chaîne «lisible par l'homme» pour les autorisations indique que leSetUID
bit (expliqué ci-dessous) est défini.En effet, nous pouvons décomposer l'
chmod
argument des autorisations à quatre chiffres en descripteurs spécifiques comme suit, et faire le calcul pour déterminer ce que4
serait un dans la première section, un5
dans la section suivante, etc.Gardez à l'esprit que
####
c'estSpecial
User/Owner
Group
etOthers
dans cet ordre.Pour les
Special
attributs (le premier nombre d'unchmod
argument à quatre chiffres ):Set UID
- Exécuter le fichier en tant que propriétaire quel que soit l'utilisateur qui l'exécute (s'affiche commes
dans la chaîne d'autorisations lisible par l'homme pour laUser
section) = +4 (--s
sousUser/Owner
)Set GID
- Exécuter le fichier en tant que groupe quel que soit l'utilisateur / groupe qui l'exécute (s'affiche commes
dans la chaîne d'autorisations lisible par l'homme pour laGroup
section) = +2 (--s
sousGroup
)Sticky Bit
- EFFICACE SUR LES RÉPERTOIRES UNIQUEMENT - S'il est défini, seul l'utilisateur propriétaire du répertoire etroot
peut supprimer le répertoire, et uniquement le propriétaire du fichier ouroot
peut supprimer des fichiers à l'intérieur. (s'affiche commet
dans la chaîne d'autorisations lisible par l'homme pour laOthers
section) = +1 (--t
sousOthers
)Pour
User/Owner
,Group
et lesOthers
attributs (les trois derniers chiffres d'unchmod
argument à quatre chiffres ):Read
= +4 (r--
)Write
= +2 (-w-
)Execute
(pour les fichiers) ou 'Entrer dans / Lister les éléments' (pour les répertoires) = +1 (--x
)la source
C'est ce qu'on appelle le
SETUID
bit. s'il est défini parchmod 4555 test-file
(dans votre cas), letest-file
peut être exécuté par n'importe quel utilisateur comme si l'utilisateur était le propriétaire du fichier.Lorsque le
SETUID
bit est défini, l'ID utilisateur effectif (EUID
) de l'utilisateur qui n'a pas l'autorisation d'exécuter le fichier autrement (par des autorisations normales, par exemple0744
), prend l'EUID du propriétaire du fichier et peut exécuter le fichier.la source