【发布时间】:2013-07-30 09:53:45
【问题描述】:
我需要为一个只允许执行一个二进制文件的用户创建一个单独的文件夹。他也可以调用 python/perl 并运行程序。 但是用户不应该能够删除他目录中的任何文件夹,也不应该能够查看任何其他目录。我怎样才能做到这一点?
【问题讨论】:
我需要为一个只允许执行一个二进制文件的用户创建一个单独的文件夹。他也可以调用 python/perl 并运行程序。 但是用户不应该能够删除他目录中的任何文件夹,也不应该能够查看任何其他目录。我怎样才能做到这一点?
【问题讨论】:
如果他们仅通过 ssh 访问,那么ChrootDirectory 是可行的方法。
简而言之,您在另一个目录中创建了一个伪造的/ 系统,其中包含允许用户运行的所有程序和他们需要的库。
如果需要,请参阅sshd_config 手册页的ChrootDirectory 部分,或类似Here 的位置以获取更完整的指南。
【讨论】:
/proc/ & /dev 以及该chroot中的其他一些系统目录
您还可以考虑配置和使用 受限外壳,例如restricted bash。
但是,请注意,如果您允许用户运行像 Python 这样的脚本语言,他将能够绕过这些限制(使用一些巧妙的脚本)。所以 chroot 可能更可取。
您可以为该用户定义一个单独的组,以阻止他做更多事情。另见nobody username、SELinux等。
【讨论】:
CHMOD 完成这项工作
chmod 755 directory/filename
7 user (**owner**) has full access.
5 allows **group** user "read" and "execute" permissions, but
not "write" permissions.
5 allows **others** "read" and "execute" permissions,
but not "write" permissions.
供您参考:
5 允许“读取”和“执行”权限,但不允许“写入”权限。 6 将允许读取和写入权限,但不允许“执行”。 A 4 将是“只读”的。 2 将仅是“写入”,而 1 将仅是“执行”。
进一步参考:link
【讨论】: