我有一个通常位于/ root下的文件夹,通常由root用户使用.我需要允许另一个用户(root除外)现在使用它,但它必须保持在/ root下.那可能吗?
编辑:感谢大家的意见和帮助.我们理解这一点的安全性,并完全理解我们要求的内容.因此,除去所有安全问题,这是一种方法.谢谢.
解决方法
首先,你正在做错了.你试图解决这个问题的方式存在根本性的错误.如果您尝试了解正常的unix安全性和权限模型并使用它而不是打击/破坏它,那么您的软件将会更好.
我能想到的唯一方法就是在不破坏文件系统权限的情况下做你想做的事情就是用一组和基于组的权限设置有问题的文件夹,然后使用bind-mount将其挂载到其他地方可以通过用户可访问的路径而不是内部/根访问它.数据可以保留在那里,但非root用户不应该坚持到那里,所以它需要在文件系统的其他地方使用句柄.你不能对它进行符号链接,因为这只会让你通过/ root返回,但是root提前设置的绑定装置应该提供一个可以作为非root用户访问的备用路径.
编辑:在有关具有硬编码路径的应用程序的注释中澄清的情况下,我或Alkdae建议的所有内容都不会实际起作用.作为临时工作,我建议确保在root中敏感的任何内容(如/root/.ssh)都拥有root:root并标记为0600或其他此类限制权限.然后将/ root中不需要的任何内容移动到/ root / root_files等子文件夹中,并确保它是root:root 0600.一旦你确定没有任何东西可以看到或被利用,可以将/ root上的组所有权设置为某个特殊组(如temproot),并将其设置为可由该组浏览(但不是世界或普通用户组!).然后将您的特殊用户添加到该组,并将该java应用程序使用的文件设置为root:temproot所拥有的,具有组写入/执行权限.