当我使用 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 有关,但以各种方式更改它永远不会给出预期的结果,除非我遗漏了什么。
如何解决这个问题?
我是 Linux 新手。我一直在练习一些命令。我的问题是关于何时使用不同的 umask 创建不同的文件。例如:
umask 222
,据我所知,与 777 - 222 = 555 相同,所以当我创建一个新文件(称之为“newfile”)时,那么newfile的权限应该是r-xr-x-r-x
(或者我错了?)
无论如何:“newfile”是使用r--r--r--
权限创建的。
我的umask
价值/etc/profile
是:
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
Run Code Online (Sandbox Code Playgroud)
我的 uid 是 1002。
注意:只是为了记录,我已经阅读了所有 umask 问题和文档man
,但我还不能理解。
我知道在 GNU/Linux 中,文件权限也称为文件模式,并且术语掩码至少可以表示以下不同的含义:
umask
。可以通过执行带有适当参数的命令来使用内置的umask shell umask
:
通过这样做,我们为当前的shell 进程树设置了一个掩码;
要么针对当前 shell 进程树中的所有用户,要么仅针对我们自己的用户;
然而,一般来说,任何此类更改都将继承到新进程,可能是另一个 shell)。
我知道数学逻辑包括连接AKA anding ( ?
)的操作,它是内置umask shell的基础。因此:
一组操作数的 and 为真,当且仅当,其所有操作数为真
我进一步了解到,有一个基于该逻辑的同名按位运算。Anding 与数字相加 ( x + y ? z
) 或字符串串联 ( …