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

目录权限‘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

'S' = 目录的 setgid 位已设置,但执行位未设置。

's' = 该目录的 setgid 位已设置,并且执行位已设置。

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

要删除 setGID 位:

chmod g-s eclipse/

摘自 man chmod:

您可以使用 u+s 和 gs 等符号模式设置或清除位,也可以设置(但不清楚)用数字模式表示位。

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

相关内容