rwSrwSrwT 的值是多少?

rwSrwSrwT 的值是多少?

该值1777是以下权限rwxrwxrwt

touch target.txt
chmod 1777 target.txt
ls -al  target.txt
-rwxrwxrwt 1 debian debian 0 Jul 14 20:24 target.txt

我必须获得以下权限字符串rwSrwSrwT

ls -al  sample
-rwSrwSrwT 1 debian debian 0 Jul 14 20:24 sample

那么如何计算其值呢rwSrwSrwT

答案1

你的问题的直接答案是7666

$ chmod 7666 target.txt

$ ls -l target.txt 
-rwSrwSrwT 1 svsv svsv 0 Jul 14 13:20 target.txt

4 位模式中的最高有效位影响 setuid ( ---S------)、setgid ( ------S---) 和 Sticky ( ---------T) 位。它们被标记在与位相同的位置x,上面的SorT表示对应的x位是不是放。

这可以作为参考示例:

0000    =   ----------
0111    =   ---x--x--x
1000    =   ---------T
1111    =   ---x--x--t
2000    =   ------S---
2111    =   ---x--s--x
 ...    =   ...
7000    =   ---S--S--T
7111    =   ---s--s--t
7666    =   -rwSrwSrwT
7777    =   -rwsrwsrwt

答案2

如何查明:

#↳ touch file
#↳ chmod a=rw,ug+s,+t file
#↳ stat file
  File: file
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d      Inode: 5131644     Links: 1
Access: (7666/-rwSrwSrwT)  Uid: ( 1000/ cad)   Gid: ( 1000/ cad)
Access: 2023-07-15 20:56:08.363457855 +0100
Modify: 2023-07-15 20:56:08.363457855 +0100
Change: 2023-07-15 20:56:16.583445800 +0100
 Birth: 2023-07-15 20:56:08.363457855 +0100

答案在第 4 行,来自stat

答案3

rwSrwSrwT方法:

  • 对用户进行读取、写入、设置UID 和不执行
  • 对组进行读取、写入、设置 GID 和不执行
  • 为他人读取、写入、粘性和不执行

所以您要查找的八进制值为 7666:

chmod 7666 target.txt

参考表:

在此输入图像描述

请注意,您可以将权限值从一个文件复制到另一个文件,而无需计算八进制值:

chmod --reference=sample target.txt

相关内容