如果您使用过 Linux 一段时间,您就会知道 Linux 文件权限的重要性。 但是当你创建新文件时的权限呢? 一个名为 umask 的实用程序允许您为 Linux 上的新文件设置默认文件权限。
什么是umask?
umask 是一个“位掩码”,用于设置新文件的权限位。 在 Linux 系统上,它是一个独立的命令,尽管像 Bash 或 Zsh 这样的现代 shell 将它作为内置命令包含在内。
umask 定义了将在新文件上删除哪些权限。 它使用类似于 chmod 命令的数字八进制权限系统。 您可以将 umask 视为从某些类别的用户中减去对新文件的权限。
常见的默认 umask 是 022。这将保留文件所有者的权限,同时删除组成员和其他用户的写权限。
umask 在多用户系统(例如服务器)上更为重要,因为它通过默认限制新文件的权限来帮助保持系统安全。 如果 admin 以root身份创建一个新文件,您不希望普通用户能够写入它。
要查看当前的 umask,请键入 掩码 在外壳。 你可以用 -S 选项。
umask -S
为一位用户设置 umask
您可以使用 umask 命令为会话设置 umask:
umask 022
你可以把它放在你的 shell 启动文件中,比如你的 .bashrc 或 .zshrc,取决于您使用的外壳。
设置系统范围的 umask
如果您确实运行多用户服务器,那么在系统范围内设置一个好的 umask 是个好主意。 您可以通过在系统上安装的所有 shell 的全局 shell 启动文件中放置一个 umask 设置来做到这一点。
例如,您可以将 umask 设置放入 /etc/profile,因为这将在启动时被 Bash 和 Zsh 读取。 csh 和 tcsh 读取 /etc/csh.cshrc 和 /etc/csh.login 文件,后者用于登录 shell。
现在您拥有新 Linux 文件的正确权限
使用 umask,您现在可以确保您对系统上的新文件具有适当的权限。 但这还远远不够。 如果您想要更高的安全性,您可能需要对 Linux 上的某些文件进行密码保护。 有几种方法可以做到这一点,而且它们很容易实现。