无论如何去o=rw或o=rwx限制在标记目录中的文件和目录是否不安全o=?
换句话说,给定私有( )主目录,用或只要所有这些可靠的文件都留在我家g=,o=中就可以完全安全地编写所有内容?o=rwo=rwx
(我不是想设置 umask 0000 - 我意识到这会打开我的/tmp文件等,但我正在编写一个想要这样做的程序,所以我想知道我是否在做一些愚蠢的事情。 )
无论如何去o=rw或o=rwx限制在标记目录中的文件和目录是否不安全o=?
换句话说,给定私有( )主目录,用或只要所有这些可靠的文件都留在我家g=,o=中就可以完全安全地编写所有内容?o=rwo=rwx
(我不是想设置 umask 0000 - 我意识到这会打开我的/tmp文件等,但我正在编写一个想要这样做的程序,所以我想知道我是否在做一些愚蠢的事情。 )
这并不是直接不安全的,只要这些文件和目录与父目录具有相同的所有者,没有硬链接允许绕过父目录权限并且父目录权限没有例外(如例如一些 ACL)。
但是,我仍然会将其归类为不谨慎和不干净,因为这是在玩火。在未来的某个时候,很可能是由于与无关软件或项目相关的无关修改,上述条件将不再满足,从而打开安全漏洞(并且由于墨菲定律,您可以假设这将在最坏的情况下发生片刻)。
在编写软件时,您绝不能基于这样的假设编写不安全的代码,即它将受到外部保护层的保护,因此永远不会因为“无法触及”而被利用。必须将安全视为一个整体,其中每个组件都必须发挥其作用,以确保良好的总体安全态势。
所以,我的回答是:
Linux 尊重域套接字的文件权限,但有忽略套接字文件权限的Unix 实现(例如 BSD、HP-UX)。依赖于文件系统权限的可移植程序应在具有所需权限的目录中创建套接字,而不是在套接字文件上设置权限。
在许多情况下,人们可以访问文件(以及域套接字)而无法访问父文件夹。这些通常需要特权才能初始设置,但之后可以无特权访问它们。例如,如果有人可以访问您主目录中文件夹的绑定挂载,那么他们将能够绕过您的主目录的权限,因为他们将通过绑定挂载路径访问您的文件夹。另一个例子是,如果系统设置了替代权限机制(例如 ACL),那么其他用户可能被允许通过这些替代权限机制访问该文件,尽管有限制性的 Unix 权限。