我有一个名为“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
如果其他标志没有按照您想要的方式设置,您可能还想查看其他用户的设置。