2

我有一个文件,我希望普通用户能够运行。例如

./file 参数1 参数2 参数3

但是,我想限制用户,这是他唯一能做的事情。我不希望他能够访问任何其他文件夹或文件,基本上运行该文件就是这样。我听说过 rbash,但不确定安全性等。

如果有帮助,我可以将文件放在每个用户的主目录中。

4

2 回答 2

2

如果您只是在寻找一种安全的方式来为您的用户提供要执行的程序,那么 Unix 和 Linux 已经默认提供了此功能。

只需将可执行文件放在用户的主目录中(让用户成为文件的“所有者”)。

Unix/Linux 用户(以及代表该用户执行的任何程序)不能访问其他用户的目录/文件(特别是,他/她不能访问属于“root”的东西)。

对于大多数应用程序,这种方法通常被认为是安全的。

如果您的需求超出了这条线,您可以使用 chroot 来“监禁”您的可执行程序。看这里:

http://en.wikipedia.org/wiki/Chroot

这种技术通常用于监禁在机器上运行但暴露在网络上的可能危险的程序(例如 HTTP 或 FTP 服务器)。

于 2012-12-04T17:41:15.377 回答
1

困难的部分是您必须确保文件系统资源(文件/目录)具有以 0 结尾的权限签名(例如 750),这意味着永远不允许读取、写入、执行other(不是所有者的人)或属于与该文件系统元素关联的组)。然后,您将添加不属于任何组的用户,并使他成为其主目录中该文件的所有者。

如果有更好的方法,我想知道。

于 2012-12-04T16:35:10.293 回答