一、什么是umask
umask是一种权限掩码,它控制了在创建文件或目录时新文件的默认权限,即掩盖了当前用户的权限。
对于Linux系统,umask以八进制数表示,代表了文件和目录的权限位掩码的反码。例如,umask为022,则新建文件的权限位是644,新建目录的权限位是755。
二、查看当前umask
我们可以使用umask命令来查看当前系统的默认umask。
umask
三、修改umask
可以使用umask命令修改umask值,但是该变化只会在当前终端会话中生效,并不会永久保存。
umask 022
修改完毕后,我们可以用umask命令来验证是否设置成功。
umask
四、将umask永久保存
如果要永久修改umask值,可以在用户的bash配置文件中添加对应的umask值。
1. 仅对当前用户生效
打开用户的家目录下的.bashrc文件,并添加下面的两行。
echo umask new_umask_value >> ~/.bashrc source ~/.bashrc
2. 对所有用户生效
打开/etc/profile文件,并在文件末尾添加下面的一行。
umask new_umask_value
该修改会全局生效,对所有用户的shell会话生效。
3. 对登录用户生效
将umask值写入到用户的bash_profile文件中,只在用户的ssh登录或者tty登录的时候生效。
echo umask new_umask_value >> ~/.bash_profile source ~/.bash_profile
五、umask与权限的关系
新文件和目录的默认权限是根据umask值计算出来的。umask值与权限的计算关系如下:
umask值 | 文件默认权限 | 目录默认权限 |
---|---|---|
000 | 666 | 777 |
002 | 664 | 775 |
022 | 644 | 755 |
六、注意事项
1. 修改umask值时,请谨慎操作,否则可能会造成系统安全问题。
2. 永久修改umask值,请仔细确认,否则可能会导致系统安全问题。
3. umask值过小会导致新文件和目录的默认权限过大,存在安全隐患。一般情况下,umask值不应小于022。
七、总结
umask是Linux中非常重要的一个权限掩码,可以控制新文件和目录的默认权限。合理设置umask值,可以提高系统安全性。我们可以通过umask命令来设置umask值,同时也可以通过修改用户的bash配置文件来持久化保存umask值。