【问题标题】:Restrict shell commands限制 shell 命令
【发布时间】:2012-10-17 07:37:01
【问题描述】:

我使用 bash shell 创建了一个用户名——一个包含所有可用命令的普通 shell——但我打算将此 shell 用于备份服务,它应该只允许 rsync 命令。因此,我试图限制这个 shell 只执行 rsync 命令。如何使用 .bash_profile.bashrc 做到这一点?

附加信息:此 shell 仅用于备份文件和文件夹。我使用ssh 键将另一个shell 连接到rsync

【问题讨论】:

  • 如何访问shell?例如,如果是通过 ssh,您可以使用authorized_keys 文件进行设置。
  • 我可以通过 authorized_keys 限制命令吗?如果是这样,那么如何限制除 rsync 命令之外的所有命令?
  • 如果您使用授权密钥路线,请务必更改 $HOME$HOME/.ssh 和授权密钥文件本身的所有权这样用户就无法更改authorized_keys。

标签: linux bash shell rsync


【解决方案1】:

您不能 - 不只使用这些文件。为什么不给他们另一个外壳,选择更少呢? rssh 就是为此目的而设计的。

rssh 相对于 authorized_keys 限制的优势(并非所有可能都适用于您或感兴趣):

  • 可用于控制多个用户
  • 限制是从外部而不是从用户的个人配置中应用的 - 错误的可能性较小,允许他们更大的访问权限
  • 让 chroot 用户更容易
  • rssh 不是通用 shell,因此即使配置错误,提供给用户的范围也远小于 bash + authorized_keys 配置错误的情况。

【讨论】:

  • 但是 rssh 是一个受限制的 shell,只允许 scp 和/或 sftp 不幸的是它们不如 rsync 命令好
  • rssh 明确确实 允许 rsync。阅读我给你的链接的第二行。
  • 我可以通过authorized_keys文件限制命令吗?或者这也不能做到?
  • 我使用了 rssh,现在使用 rsync 一切都完美了,感谢您的帮助
猜你喜欢
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2017-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多