我有一个通常位于/ root下的文件夹,通常由root用户使用。 我需要允许另一个用户(除root以外)现在使用它,但它必须保持在/ root下。 那可能吗?
编辑:谢谢大家的意见和帮助。 我们确实了解这个安全问题,并且完全理解我们所要求的。 因此,除去所有的安全问题,要做到这一点的方法是什么。 谢谢。
首先,你做错了。 你试图去做这件事的方式有一些根本性的错误。 如果您尝试了解正常的unix安全性和权限模型并使用它,而不是打击/打破它,那么您的软件将会更好。
我能想到的只有在文件系统权限不会造成一千个洞的情况下才能做到这一点,就是使用一个基于组和组的权限来设置问题所在的文件夹,然后使用bind-mount将其挂载到别处它可以通过用户可访问的path而不是内部/ root访问。 数据可以停留在那里,但是非root用户不应该能够把头放在那里,所以它需要在文件系统的其他地方处理。 您不能符号链接到它,因为这只会将您路由回到/ root,但是由root用户提前进行绑定安装设置应该提供一个替代path,它可以作为非root用户访问。
编辑:在一个硬编码path的应用程序的意见澄清的情况下,我或Alkdaebuild议的事情都不会实际工作。 作为一个临时解决办法,我build议确保任何敏感的根目录(如/root/.ssh )作为root:root拥有,并标记为0600或其他此类限制性权限。 然后将不需要在/root任何东西移到/root/root_files等子文件夹中,并确保它是root:root 0600 。 一旦你确定没有任何东西可以被看到或被利用,那么将/root上的组所有权设置为一些特殊的组,如temproot,并将其设置为可由该组浏览(但不是世界或普通用户组)。 然后将特殊用户添加到该组中,并将该应用程序所使用的/root的文件设置为拥有root:temproot并具有适当的组写入/执行权限。
只要你能修复有问题的Java应用程序,将root:root所有东西都切回到root:root 。
您可以将该文件夹移动到/ root之外并创build一个指向它的链接。 这样,你仍然可以在你的文件夹中,你可以设置其他人访问它的权限。
允许他人看到里面/根是错误的。