我想告诉Linux,除了默认权限之外,在某个目录中创建的每个文件都应该有g+w。
我该怎么说?我需要那个目录的粘性部分,不是吗?(目录中已经有drwsrwsr-x,我希望新文件将继承它,但显然它们不是.)
发布于 2015-07-29 10:27:11
有几种与权限操作相关的机制:
umask允许您禁用每个应用程序的权限位。它既不允许启用权限,也不允许在每个目录下执行该操作。这也不是一个全球性的环境。它是从父进程继承的每个进程属性。例如,您可以在init脚本中设置它的默认值,但是程序(特别是守护进程)可能会覆盖它们的umask。sticky bit限制目录访问,以便该目录中的文件只能由根目录或目录所有者或文件所有者解除链接或重命名。setgit bit强制在该目录中创建的任何新文件将其组设置为与目录上相同的组。它允许覆盖组所有者,但不允许覆盖权限。bsdgroups或grpid挂载选项支持所有目录的setgit bit行为,即使未设置setgit bit。ACL (访问控制列表)允许您为目录或文件设置每个用户和每个组的权限。当在该目录中创建新文件时,也会从父目录继承它们。但是,ACL权限是针对传统POSIX权限进行屏蔽的,这些权限由文件创建者及其umask设置,因此您不能继承比文件创建者允许的权限更多的权限。除了umask之外,所有这些机制都是linux特有的.有关setgit bit和ACLs的详细信息,请参阅setgit bit。
我想这些都不是直接解决你问题的方法。你能做的是:
发布于 2015-07-22 09:52:55
你可以在你的linuxbox里换个umask。作为你想要的。
Umask Created Files Created Directories
-------------------------------------------------------------
000 666 (rw-rw-rw-) 777 (rwxrwxrwx)
002 664 (rw-rw-r--) 775 (rwxrwxr-x)
022 644 (rw-r--r--) 755 (rwxr-xr-x)
027 640 (rw-r-----) 750 (rwxr-x---)
077 600 (rw-------) 700 (rwx------)
277 400 (r--------) 500 (r-x------)例:
root@kasunr:/usr/share/nginx/html/tt# umask
0022
root@kasunr:/usr/share/nginx/html/tt# umask 0027
root@kasunr:/usr/share/nginx/html/tt# mkdir yy
root@kasunr:/usr/share/nginx/html/tt# ls
yy
root@kasunr:/usr/share/nginx/html/tt# ls -al
total 12
drwxr-xr-x 3 root root 4096 ජූලි 22 15:20 .
drwxr-xr-x 4 root root 4096 ජූලි 22 15:19 ..
drwxr-x--- 2 root root 4096 ජූලි 22 15:20 yyhttps://stackoverflow.com/questions/31557378
复制相似问题