对目录设置 0 权限是保护其内容的有效方法吗?

对目录设置 0 权限是保护其内容的有效方法吗?

假设在目录上正确设置了user和的权限。该目录的group0 权限是否可以对该目录的文件和子目录提供有效的访问控制?other有需要考虑的问题吗?

当您创建rw供其他人使用的文件(例如使用 Unix 域套接字)时,人们会将其视为安全问题,因为在将适当的权限应用于文件之前,恶意用户可以利用竞争条件。这就是为什么我正在寻找一种“原子”方式来进行基本许可。

答案1

“其他”权限的 3 位如果为 000(二进制)或 0(八进制,在 chmod 中以数字形式输入的基数)或---如 中所示,将拒绝所有访问ls -l。请注意,“所有访问权限”与文件相关。如果允许访问该文件所在的目录,则仍然可以看到该文件的存在。您可以chmod o-rwx filename取消其他人的权限,同时不更改组成员和所有者的权限。

要以原子方式设置权限,可以在使用系统调用绑定执行程序时在编程级别完成此操作。否则,使用 shell 的命令为 shell 进程设置 umask umask,该命令由 shell 启动的进程继承。 umask 的位是将导致创建的文件中的相应位变为 0。这是您正在寻找的原子方法,不会留下任何漏洞利用机会。 umask 为 022 通常会为文件授予 644 ( ) 权限rw-r--r--,为目录授予 755 ( ) 权限rwxr-xr-x。 umask 027 将授予 640 ( rw-r-----) 和 750 ( rwxr-x---) 权限。

答案2

要访问文件,您需要访问其上方的目录。如您所述,禁用对该目录的访问将保护该文件。如果用户有权访问该目录,即使他们无法访问文件的内容,他们也可以查看文件。

访问位:

  • x允许访问目录的内容;
  • r允许列出目录的内容;和
  • w允许更改目录的内容。

可以链接同一磁盘上多个目录中的同一文件。您需要确保所有目录都受到保护。

清除其他人的访问权限仍允许用户和目录组成员进行访问。

相关内容