默认文件权限:
创建新文件或目录时,会为其分配初始权限。有两个因素会影响这些初始权限。首先是您要创建常 规文件还是目录。其次是当前的umask;如果是创建新目录,操作系统首先会为其分配八进制权限0777(drwxrwxrwX ),如果是创建新的常规文件,操作系统则为其分配八进制权限0666(-rw-rw-rw-)。必须始终为常规文件显式添加执行 权限。这样攻击者就难以破坏网络服务,从而可以创建新文件并立即作为程序执行。
但是,shell 会话还会设置一个umask ,以进一步限制初始设置的权限。这是一个八进制位掩码,用 于清除由该进程创建的新文件和目录的权限。如果在umask 中设置了一个位,则新文件中的对应的权限将被清除。例如,umask 0002可清除其他用户的写入位。前导零表示特殊的用户和组权限未被 清除。umask为0077时,除新创建文件的所有组和其他权限
实例:
通过运行不带参数的umask命令可以显示shell的umask当前值:
[student@workstation ~]$ umask
0002
通过一个数字参数使用umask 命令,可以更改当前shell 的umaske .该数字参数应当是与新umask 值对应的八进制值。以下示例说明了umask是如何影响文件和目录的权限。
新创建一个file.txt并使用ls -l 命令列出该文件的权限:
使用umask命令,将student用户的umask更改为027。并使用umask命令确认更改
使用touch命令新创建一个newfile.txt文件,并列出该文件的权限
由上图可以看出,对于新创建的文件,student组拥有只读访问权限,其他用户没有访问权限
注:Bash shell用户的系统默认umask值在/etc/profile和/etc/bashrc文件定义。用户可以在其主目录的.bash_profile和.bashrc文件中覆盖系统默认值。