限制用户只能访问其主目录

限制用户只能访问其主目录

我如何限制用户只能进入其当前目录?

我尝试过以下步骤本页提及配置 rssh chroot jail 以将用户仅锁定到其主目录,但这看起来太复杂了。有没有更简单的方法?

答案1

我用监狱工具在 $work,只需要几个命令。他们甚至提供了一个chroot shell 指南。为用户维护 chroot 最困难的部分是复制他们运行程序所需的库和二进制文件。jk_cp命令负责复制依赖项。

答案2

不。用户环境需要某些文件存在,并且该文章确保它们存在。

答案3

我倾向于认为你混淆了结果和方法。你通过将用户锁定在他们的主目录中到底想实现什么?运行一个安全但功能齐全的 chroot 介于“不值得”和“不可能”之间;无论你想完成什么,都有可能通过其他更好的方式完成。

答案4

最简单的方法是将用户的 shell 设置为/bin/rbash。这将bash进入“受限”模式。摘自 bash 手册页:

它的行为与 bash 相同,但不允许或不执行下列操作:

  • 使用 cd 更改目录
  • 设置或取消设置 SHELL、PATH、ENV 或 BASH_ENV 的值
  • 指定包含 / 的命令名称
  • 指定包含 / 的文件名作为 . 内置命令的参数
  • 将包含斜杠的文件名指定为 hash 内置命令的 -p 选项的参数
  • 启动时从 shell 环境导入函数定义
  • 在启动时从 shell 环境中解析 SHELLOPTS 的值
  • 使用 >、>|、<>、>&、&> 和 >> 重定向运算符重定向输出
  • 使用 exec 内置命令将 shell 替换为另一个命令
  • 使用 -f 和 -d 选项向启用内置命令添加或删除内置命令
  • 使用 enablebuiltin 命令启用已禁用的 shell 内置命令
  • 为命令内置命令指定 -p 选项
  • 使用 set +r 或 set +o restricted 关闭限制模式。

读取任何启动文件后都会强制执行这些限制。

注意:rbash 并不是一座坚不可摧的堡垒。它仍然可能留下巨大的漏洞,而且一个足够熟练的“攻击者”(即比您懂得更多的人)可能能够做很多您不想要的事情(或完全绕过您的限制)。

仍然可以读取系统上任何全世界可读的文件。

还要确保/bin/rbash不在,/etc/shells否则他将能够使用 将自己的 shell 更改为不受限制的内容chsh

相关内容