Sous Linux, s fait référence à « autorisation de bit forcée », qui se situe en troisième position du groupe d'autorisation de l'utilisateur ou du groupe. Si le bit s est défini dans le groupe d'autorisations de l'utilisateur, lorsque le fichier est exécuté, le fichier exécute le programme avec l'UID du propriétaire du fichier au lieu de l'UID de l'utilisateur si le bit s est défini dans le groupe d'autorisations du groupe, lorsque le fichier est défini ; exécuté, le fichier est exécuté avec le GID du propriétaire du fichier au lieu du GID de l'utilisateur. Le bit d'autorisation s est un bit d'autorisation sensible et peut facilement provoquer des problèmes de sécurité du système.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
Les autorisations de fichiers les plus courantes dans les systèmes Linux sont w, r et x, qui correspondent respectivement aux autorisations d'écriture, de lecture et d'exécution. Cependant, Linux prend également en charge une autre série de paramètres d'autorisation, tels que les autorisations s et t. autorisations. Ce qui suit présente la signification spécifique des autorisations s.
s autorisations
s, ce qui signifie définir l'UID ou définir le GID. Situé en troisième position du groupe d'autorisations de l'utilisateur ou du groupe. Si le bit s est défini dans le groupe d'autorisations utilisateur, lorsque le fichier est exécuté, le fichier exécute le programme avec l'UID du propriétaire du fichier au lieu de l'UID de l'utilisateur. Si le bit s est défini dans le groupe d'autorisations de groupe, lorsque le fichier est exécuté, le fichier exécute le programme avec le GID du propriétaire du fichier au lieu du GID de l'utilisateur. Le bit d'autorisation s est un bit d'autorisation sensible et peut facilement provoquer des problèmes de sécurité du système. Soyez prudent lors de sa configuration et soyez conscient des fichiers et répertoires SUID ou SGID déjà présents sur votre système. Les autorisations de
incluent deux constantes, S_ISUID et S_ISGID, appelées autorisations de bits forcés
; 强制位权限
;
S_ISUID只能应用于二进制可执行文件*;
S_ISGID可应用于二进制可执行文件*和目录;
*shell脚本不可以,因为shell脚本并不是二进制文件.
S_ISUID、S_ISGID用在二进制文件时:
如果S_ISUID为真,则把此进程的有效用户ID设置为此文件拥有者的用户ID.
如果S_ISGID为真,则把此进程的有效用户组ID设置为此文件的组ID.
由于进程有用户/组ID影响文件访问权限,于是就相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
S_ISGID用在目录时:
当前用户执行chdir切换至该目录后,用户进程的有效用户组ID(effective group)将会设置为该目录的用户组.若用户在此目录下具备w权限,则用户进程所创建的新文件的用户组ID与该目录用户组ID相同.
ls -al /usr/bin/passwd -rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd
两个常量的值是:
oct | dec | |
S_ISUID | 4000 | 2048 |
S_ISGID | 2000 | 1024 |
即分别是第12位和第11位的掩码。
如何使用?
我们可以通过字符模式设置s权限:chmod a+s filename
Une fois que l'utilisateur actuel a exécuté chdir pour basculer vers le répertoire, l'ID de groupe d'utilisateurs effectif (groupe effectif) du processus utilisateur sera défini sur le groupe d'utilisateurs du répertoire. Si l'utilisateur dispose des autorisations w dans ce répertoire, le processus utilisateur L'ID du groupe d'utilisateurs du nouveau fichier créé est le même que l'ID du groupe d'utilisateurs du répertoire
chmod 4755 test
octobre | déc | |
S_ISUID< /td> | 4000 | 2048 |
S_ISGID | 2000 | 1024 |
chmod a+s filename
, ou nous pouvons utiliser le mode absolu : 🎜🎜🎜🎜Set suid : définir l'autorisation correspondante sur le bit précédent défini sur 4 🎜🎜🎜🎜Set guid : définissez le bit avant le bit d'autorisation correspondant sur 2 ; 🎜🎜🎜🎜 Both set : définissez le bit avant le bit d'autorisation correspondant sur 4+2 = 6.🎜🎜🎜🎜Définissez un fichier à exécuter. comme identité du propriétaire du fichier UID : 🎜chmod 2755 test
chmod 6755 test
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!