禁用 Linux 命令

禁用 Linux 命令

我正在编写一个简单的程序,用于将一些文件备份到 Linux 机器。该事务将通过 SSH 进行,并且该程序的每个副本在其将连接的 Linux 机器上都有自己的帐户。

我担心的是,该软件的用户可能会知道他们的帐户名和密码(预先随机生成)并想要连接到该盒子并玩一玩。

我想禁用他们在那个盒子上执行任何操作的能力,除了我授权备份软件执行的操作。也就是说,他们只需要创建新文件并读取旧文件(无需更新或删除)。他们不需要执行bcwho任何类似操作的能力。

我曾考虑尝试将chroot每个用户放入他们的主目录,但我不太清楚如何做到这一点。

关于如何实现所需的功能有什么建议吗?

谢谢!

答案1

帐户文件authorized_keys可以指定使用特定密钥进行身份验证时要使用的命令。这将要求您使用密钥而不是用户/密码来设置身份验证 - 虽然在我看来这无论如何都是一件好事。

例如,gitosis 使用此方法允许人们使用 ssh 连接到服务器以通过 git 协议进行隧道传输,但不允许他们登录。authorized_keys 手册页给出了示例,例如:

    command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net

答案2

使用带有 chroot 选项的 scponly。这将为用户提供一个特殊的 chrooted 登录,其中只包含您希望他们使用的二进制文件。

http://www.sublimation.org/scponly/wiki/index.php/Install

答案3

您可以使用 rssh (http://www.pizzashack.org/rssh/), 它类似于 scponly,但支持 scp、sftp、rsync 和 cvs

相关内容