Linux用mask有效权限的作用是将所有文件/目录的权限硬编码以实现特定类型的访问控制。通常,在多个用户/组的情况下,mask有效权限是一个更高级别的访问控制机制来避免权限冲突。
以以下示例为例:假设有一个文件名为“example.txt”,在文件权限上设定用户A和用户B的访问权限。用户A是该文件的所有者,并且仅能在对该文件进行读取和写入的情况下,对该文件进行编辑。用户B是另一个文件的所有者。因此,我们需要确保用户B无法在没有明确权限的情况下访问“example.txt”。在这种情况下,我们可以使用mask有效权限机制来确定如何限制此类非准许访问。
要使用mask有效权限机制,请按照以下步骤操作:
- 打开和检查特定目录的权限。在本例中,我们要将文件保护在“/home/example_folder”中。
$ ls -ld /home/example_folder
drwxr-xr-x 2 root root 4096 Jun 25 13:30 /home/example_folder
该命令应返回特定目录的权限并确认当前权限是否包括“r(读)”,“w(写)”和“x(执行)”。
- 为文件设置权限。设置为rwxrwxr-x, 即只有用户A和用户B可以读取和写入,其他人可以读取。
$ chmod 0664 /home/example_folder/example.txt
- 使用umask命令确定计算新文件/目录权限的默认权限值。umask就是用来做与默认权限值的减法计算的命令。默认情况下,umask值为0022,这意味着新文件/目录创建时的默认访问权限为rwxr-xr-x。然而,这并不是我们想要的,因此我们需要用特定的umask值重写默认值,以适应我们的要求。
使用umask命令来确定新文件/目录权限的默认权限值:
$ umask
0022
这意味着我们需要反转2和2,即将umask值重写为022即可。
$ umask 022
请注意,该值只适用于当前会话。如果您希望这种设置在系统重新启动后仍然存在,请将其添加到启动脚本中。
- 明确定义mask有效权限。mask有效权限的值是目录的权限值与umask值的“按位与”操作的结果。例如,对于文件夹“/home/example_folder”,有效mask权限可以计算为“0664 & 022 = 0644”。
这意味着,目录的输入权限为rwx、读取权限可以为rx(给用户和所有者许可),而写入权限为r(给用户和其他用户许可),但没有执行权限的访问。
- 为了测试这一点,您可以使用以下命令将其修改为目录的权限:
$ chmod 0755 /home/example_folder
现在,只有用户A和用户B可以写入和删除文件,并且其他人只能读取文件,因为他们没有写入的访问权限。
这是设置mask有效权限的简单示例。通过使用这个技巧,您可以确保只有那些已在目录中明确许可的用户可以访问文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Linux mask有效权限 - Python技术站