在Linux系统中,文件权限使用一个三位数的八进制数表示,每一位分别代表文件所有者(User)、文件所属组(Group)和其他用户(Other)的权限。每个权限位可以是读(r)、写(w)或执行(x)。此外,Linux文件权限还有两个特殊的权限标志:s
(SetUID)和t
(Sticky Bit)。
passwd
命令。passwd
、sudo
等。/tmp
和/var/tmp
。文件权限可以用符号表示法或八进制表示法来设置。
u
:用户(所有者)g
:组o
:其他用户a
:所有用户(等同于ugo
)例如,设置SetUID和Sticky Bit:
chmod u+s filename
chmod +t directoryname
4
:读权限(r)2
:写权限(w)1
:执行权限(x)SetUID和Sticky Bit在八进制表示法中分别对应4000
和1000
。
例如,设置SetUID和Sticky Bit:
chmod 4755 filename # 设置SetUID,文件权限为rwsr-xr-x
chmod 1777 directoryname # 设置Sticky Bit,目录权限为rwxrwxrwt
假设我们有一个可执行文件myprogram
,我们希望普通用户执行时获得文件所有者的权限,并且我们有一个公共目录public_dir
,我们希望设置Sticky Bit。
# 设置SetUID权限
chmod u+s myprogram
# 设置Sticky Bit权限
chmod +t public_dir
通过以上方法,你可以有效地管理和设置Linux文件权限中的SetUID和Sticky Bit,以满足不同的应用场景需求。
领取专属 10元无门槛券
手把手带您无忧上云