2012-11-22 09:13:12 +0000 2012-11-22 09:13:12 +0000
40
40

目录权限'S'是什么意思?(不是小写,而是大写)

我下载了Eclipse,解压后做了一些其他的事情,然后突然发现了这个有趣的行为:

^_^ ~/Downloads > sudo chmod 0000 eclipse/

^_^ ~/Downloads > stat eclipse/
  File: 'eclipse/'
  Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 529725 Links: 9
Access: (2000/d-----S---) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-11-22 19:54:57.752017352 +1100
Modify: 2012-09-20 18:16:26.000000000 +1000
Change: 2012-11-22 20:07:49.354016510 +1100
 Birth: -

^_^ ~/Downloads > sudo chmod 0755 eclipse/

^_^ ~/Downloads > stat eclipse/
  File: 'eclipse/'
  Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 529725 Links: 9
Access: (2755/drwxr-sr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-11-22 19:54:57.752017352 +1100
Modify: 2012-09-20 18:16:26.000000000 +1000
Change: 2012-11-22 20:08:19.042016478 +1100
 Birth: -

‘S'权限对一个目录意味着什么?为什么它不让我把它删除?

谢谢。

答案 (1)

67
67
67
2012-11-22 09:35:57 +0000

‘S’=目录的setgid位被设置,但执行位没有被设置。

‘s’ = 该目录的setgid位被设置,而执行位被设置。

SetGID = 当另一个用户在这样的setgid目录下创建一个文件或目录时,新的文件或目录的组将被设置为目录所有者的组,而不是创建它的用户的组。

要删除setGID位。

chmod g-s eclipse/

从man chmod中提取。

你可以用符号模式(如u+s和g-s)来设置或清除这些位,你也可以用数字模式来设置(而不是清除)这些位。

链接到一个类似的问题。 https://unix.stackexchange.com/questions/27250/uppercase-s-in-permissions-of-a-folder