umask设置要创建的文件或目录的默认权限
umask值是掩码,阻止不想授予此安全级别的权限。 创建文件或目录时,必须从对象的完全权限中减去umask值。 对于文件,完整权限的值为666。 (所有用户都具有读取和写入权限。 )对于目录,完整的限制值为777。 所有用户都具有读取、写入和执行的权限。
如何计算根据umask值创建文件的默认权限?
计算方法:(文件或目录的完全权限()~(umask值) )。
例如,创建umask值为0033的文件test.c
的全部权限为666,因此最终文件的权限为(110110110 ()~(000011011 ) ) 110100100,与3个字符对应的代码为-rw-r----r---,是文件的所有者
在大多数Linux发行版中,umask值通常设置为/etc/profile启动文件。 此外,某些文件可能已在/etc/login.defs文件(如Ubuntu )中设置。 此外,任何终端都可以使用命令umask设置指定新的掩码值,但设置只对该终端有效,并关闭终端
如何永久启用umask设置?
1、具有root权限,直接修改启动文件/etc/profile或/etc/login.defs中的umask设置。
2、没有root权限。 以bash shell为例,其他shell也有相应的启动文件。 首先检查$HOME目录下的启动文件。 通常可能存在$HOME/.bash_profile、$HOME/.bash_login和$HOME
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
例如,$HOME下只有$HOME/.profile文件。 打开$HOME/.profile文件时,此文件通常运行$HOME/.bashrc。 因此,建议将命令“umask掩码值”添加到. bashrc中
【建议】:如果工作涉及使用linux服务器,建议使用umask将创建文件或目录的默认权限更改为相应的值,如033。
参考:
1,http://c.biancheng.net/view/764.html
2、https://man7. org/Linux/man-pages/man2/umask.2.html
3,《linux命令行与shell脚本编程大全》第3版