如何删除Linux上的目录标志?

如何删除Linux上的目录标志?

我有一个名为“post”的文件夹,当我写入时,getfacl post我得到以下结果:

# file: post
# owner: www-data
# group: ftpgroup
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

正如你所看到的,有一个-s-标志,组的默认权限是rwx,所以新文件应该是775。

如果我写,ls -lha我会得到这些权限:

drwxrwsr-x+ 22 www-data ftpgroup 4.0K Dec  3 20:56 post

正如你所看到的,s当我创建一个新文件夹(使用同一组中的不同用户)时,另一个出现,权限变为 755 而不是 775。

我认为这个标志做错了什么,如何删除它?

答案1

位于组八位位组上的标志s称为 SET-GID 位。在设置了 SET-GID 位的目录中创建的任何新文件都将归拥有父目录的组所有。此外,任何新的子目录都将继承 SET-GID 位。

要添加 SET-GID 位,您可以使用:

chmod g+s directory

要删除 SET-GID 位,您可以使用:

chmod g-s directory


关于获取755而不是775权限,请检查umask系统的。您umask正在寻找的是002.

umask 002您可以通过放入${HOME}/.bashrc或 来使 umask 对用户永久有效${HOME}/.profile,或者通过放入/etc/bashrc或使其成为系统默认值/etc/profile

答案2

文件夹上的 's' 标志是 SETGID 标志,就像粘性位 (粘性位如何工作?)并更改文件夹中所有权和权限字的方式(SETGID 强制在文件夹中创建的文件具有相同的组成员身份)。

您可以通过对父目录执行chmod 0775或操作来删除它。chmod g-s

umask如果其他标志没有按照您想要的方式设置,您可能还想查看其他用户的设置。

相关内容