您的位置:

Linux运维工程师必知:如何设置umask

一、什么是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值。