该值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
,上面的S
orT
表示对应的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
。