我的umask是0022
当我创build目录使用
mkdir mydir
我得到的权限是drwxr-xr-x
但是,当我创build文件
touch file
我得到的权限是-rw-r – r–
为什么目录默认获得x(search)权限,而文件却没有? 默认设置如何生效? 有没有办法改变它们(我知道只是改变它们可能不是个好主意)。 只是想试验。
首先closures“x”意味着不同的事情,具体取决于。 对于文件,意思是“允许执行”,而对于目录,则意味着“允许访问”,即允许某人进入。 我在这里点了一些更好的点。 但是,这并不意味着“可search”。
一般来说,对于现代Linux系统上的普通用户,umask设置为0002(八进制)。 这意味着在计算有效权限时使用此掩码。 目录和文件的起始位置是不同的。 在8进制目录默认为0777。 文件的默认取决于程序如何使用open()调用,但是触摸,例如,使用八进制的0666。 因此,如果您的umask设置为0002,则最终将使用0664作为文件,对于目录使用0775,对应于rw-rw-r–对应于文件,对于目录,最终使用drwxrwxr-x。
你可以使用umask
命令来设置umask
。 我build议仔细阅读chmod(1)手册页,并且一定要查看sticky-bit,suid和sgid是如何起作用的,因为这往往是很多人混淆的地方。
umask
没有说什么权限将被设置 。 相反,它只是说如果工具/实用程序试图设置它们, 永远不会设置哪个权限。 这就是为什么它只是一个“面具”
如果您设置了umask 0000
那么您将会看到各种实用程序的本机文件权限; 他们并不总是像你所注意到的一样。