我下载了 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