如何清除Linux中目录的“s”权限?

我有一个目录,显示权限掩码drwsrwsr-x 。 当我尝试将权限重置为755 ,S依然存在。

什么是“S”,为什么不能将权限更改回775( drwxrwxr-x )?

您在用户和组列中的“执行”位置看到的是SetUID(Set User ID on Execution)和SetGID(Set Group ID on execution)位。

Unix文件权限实际上是一个4位八进制数SUGO

  • S控制SetUID(4),SetGID(2)和“Sticky”(1)位
  • U控制文件所有者的Read(4)/ Write(2)/ Execute(1)位
  • G控制文件组的读/写/执行位
  • O控制其他人的读/写/执行位。

您可以使用chmod ug-s directorychmod 0755 directory从您的目录中删除setuid位

有关更多信息,请参阅chmod的手册页,以及有关SetUID位的此Wikipedia页面 。

setuid和setgid

setuid和setgid(在执行时分别设置用户ID和执行时设置组ID)是Unix访问权限标志,允许用户使用可执行文件所有者或组的权限运行可执行文件。 它们通常用于允许计算机系统上的用户以临时提升的权限运行程序,以执行特定的任务。 尽pipe所提供的假定用户ID或组ID特权并不总是被提升,但至less它们是特定的。

要以数字方式删除setuid和setgid位,您必须在位模式前添加0 (例如: 0775变为00775 )。

运行删除setuid和setgid:

 chmod 00775 path 

要么

 chmod a-st path 

加上ooshro的回答…

如果您在目录上使用suid或sgid权限,那么在该目录内创build的任何文件将具有与所讨论的目录相同的所有者(如果是suid)或组(sgid)。

我用它来为我的家庭桑巴分享。 基本目录由用户nobody和group olympia拥有,权限为2770.因此,您必须在奥林匹亚组织中读取或写入该目录下的任何内容,并且确保奥林匹亚是其下的所有组成部分。 我还将Sambaconfiguration为使用2770的dirmask和660的文件掩码来保持权限一直向下。