umask 前导 0

umask 前导 0

我的 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 directorysudo chmod setgid

对于files由 root 和组 www-data 拥有的那个,如果你在这里说,sudo chmod 6711 file有几件事会发生:

  1. 为所有者创建文件read/write/executable(7)
  2. executable为组 (1)制作文件
  3. 使文件对其他人“可执行”(1)
  4. 那么,当文件由除该文件之外的任何人执行时,无论谁执行该文件,owner它都会运行。root:www-data

总之,如果您这样做sudo chmod 6711并且另一个用户运行该文件,它将像您(所有者)执行该文件一样运行。

对于目录:

如果您sudo chmod g+s在文件夹上执行此操作,则从此以后创建的所有文件都将继承刚刚创建它的文件的组grouporiginal creator注意:任何已存在的文件都不会继承新组,您需要手动执行此操作。

如果你这样做,也会发生同样的事情sudo chmod u+s

我们有sticky bit像这样完成的:chmod 1000 directorychmod +t directory

当目录设置了粘性位后,该目录中的文件只能由 root 或目录所有者或文件所有者取消链接或重命名

欲了解更多信息,请查看这里

相关内容