如果我将 更改umask为0000,我希望创建一个具有rwxrwxrwx权限的文本文件(根据我对 umask 的理解,如“可能的重复”问题中所述)但是,当我尝试此操作时,我得到以下信息
$ umask 0000
$ touch /tmp/new.txt
$ ls -ld /tmp/new.txt
-rw-rw-rw- 1 alanstorm wheel 0 Jun 2 10:52 /tmp/new.txt
Run Code Online (Sandbox Code Playgroud)
也就是说,省略了执行权限,我最终得到rw-rw-rw-了文件(目录是rwxrwxrwx)。我在本地 OS X 机器、共享主机上的旧 BSD 机器和在 linode 上运行的 linux 服务器上尝试了这个。
为什么是这样?我的理解是 umask 是权限的最终仲裁者——我对此的理解不正确吗?如果是这样,还有什么会影响 unix 系统上文件的默认权限?
当我使用 setfacl 来管理子文件/目录应该具有哪些权限时,由于某种原因,这些文件具有除执行(“x”)之外的所有权限。
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ getfacl .
# file: .
# owner: someuser
# group: webs
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ touch file
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ mkdir dir
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ ls -l
total 4
drwxrwsrwx+ 2 someuser webs 4096 pa? 31 13:35 dir
-rw-rw-rw- 1 someuser webs 0 pa? 31 13:35 file
Run Code Online (Sandbox Code Playgroud)
我认为它与 umask 有关,但以各种方式更改它永远不会给出预期的结果,除非我遗漏了什么。
如何解决这个问题?
我正在尝试弄清楚如何使用umask.
我umask 027以为这会为我自己带来所有权限,为组读取和执行,而其他人则没有。
基于默认值 777 减去 027 = 750。
但是当我运行时:
umask 027
touch test
ls -l test
Run Code Online (Sandbox Code Playgroud)
我回来了:
-rw-r----- 1 philip philip 0 Jun 3 12:14 test
Run Code Online (Sandbox Code Playgroud)
这完全不是我所期望的。
我的理解哪里出了问题umask?
所以这就是情况:为 Web 开发人员获取服务器。有很多开发人员。所有developers+ PHP+Apache所属的www组。有一个开发目录 - development.
目标是development目录中的每个文件都有755权限,每当任何开发人员创建、修改development目录中的文件时,文件仍然具有755.
所以我已经阅读了许多acl教程、指南和操作方法,但我仍然无法得到我想要的结果。
aclchown -R www:www developmentchmod g+s development我acl在development目录上设置了许多规则并得到了这个:
$ getfacl development
# file: development
# owner: www
# group: www
# flags: -s-
user::rwx
user:www:rwx
group::rwx
group:www:rwx
mask::rwx
other::r-x
default:user::rwx
default:user:www:rwx
default:group::rwx
default:group:www:rwx
default:mask::rwx
default:other::r-x
p.s. I know its messy, was doing a number of tests …Run Code Online (Sandbox Code Playgroud)