我的 umask 目前(默认)设置为 0002,如下所示。我理解从右到左的权限依次为:其他、用户、所有者。那么第一个 0 是干什么用的?
$ umask
0002
答案1
首先,数字就是octal
数字。
让我用一个例子来解释一下它们的含义。
请注意,setuid and setgid
(setuid - 设置用户 ID 和 setgid - 设置组 ID)是使用数字4 and 2
来完成sudo chmod 4775
的。change or set user id on the file or directory
sudo chmod setgid
对于files
由 root 和组 www-data 拥有的那个,如果你在这里说,sudo chmod 6711 file
有几件事会发生:
- 为所有者创建文件
read/write/executable
(7) executable
为组 (1)制作文件- 使文件对其他人“可执行”(1)
- 那么,当文件由除该文件之外的任何人执行时,无论谁执行该文件,
owner
它都会运行。root:www-data
总之,如果您这样做sudo chmod 6711
并且另一个用户运行该文件,它将像您(所有者)执行该文件一样运行。
对于目录:
如果您sudo chmod g+s
在文件夹上执行此操作,则从此以后创建的所有文件都将继承刚刚创建它的文件的组group
。original creator
注意:任何已存在的文件都不会继承新组,您需要手动执行此操作。
如果你这样做,也会发生同样的事情sudo chmod u+s
我们有sticky bit
像这样完成的:chmod 1000 directory
或chmod +t directory
。
当目录设置了粘性位后,该目录中的文件只能由 root 或目录所有者或文件所有者取消链接或重命名
欲了解更多信息,请查看这里。