特殊权限
特殊权限对文件的影响:
u+w(suid) 以拥有文件的用户身份,而不是以运行文件的用户身份执行文件
g+s(sgid) 以拥有文件的组的身份执行文件
o+t(sticky) 无影响
对目录的影响:
u+w(suid) 无影响
g+s(sgid) 在目录中最新创建的文件将其组所有者设置为与目录的组所有者相匹配
o+t(sticky) 对目录具有写入权限的用户仅可以删除其所有的文件,而无法删除或强制保存到其他 用户所拥有的文件
示例:
默认文件权限
文件的默认权限由创建它们的进程设置。
这些权限通常不是在新的文件和目录创建时给予设置,其中一些权限被 shell 进程的 umask 清除。
不带参数运行 umask 命令将显示 shell 的 umask 的当前值
系统的每个进程都具有 umask ,它是一个八进制位掩码,用于清除由进程创建的新文件和目录的权限。如果在 umask 中设置了一个位,则新文件中对应的权限将被清除。umask 为 077 时 清除新创建文件的所有组和其他权限。
目录权限:777 umask:(0)022
111 111 111
000 010 010 = 111 101 101 => 755(rwx r-x r-x)
文件权限:666 umask:(0)022
110 110 110
000 010 010 = 110 100 100 => 644(rw- r-- r--)
普通用户:775 umask:(0)002
111 111 111
000 000 010 = 111 111 101 => 775(rwx rwx r-x)
特权用户:755 umask:(0)022
111 111 111
000 010 010 = 111 101 101 => 755(rwx r-x r-x)
注意:不能按相减来算,应该是按 相应位置比较 遇到都是 1 的情况 则该位置的 1 变为 0 ,其他情况下 该位置的数值不变均不变。