禁用Linux命令

我正在编写一个简单的程序来备份一些文件到Linux机器上。 交易将通过SSH进行,程序的每个副本都将在它将连接到的Linux机器上拥有自己的帐户。

我担心的是,软件的用户很可能会计算出他们的账户名称和密码(这是预先随机生成的),并希望连接到该框并进行游戏。

除了授权备份软件的function之外,我想禁止他们在该框上执行任何操作。 也就是说,他们只需要创build新文件并阅读旧文件(不更新或删除)。 他们不应该需要能力执行bc或一个who或任何types的东西。

我想过把每个用户都放到他们的主目录中,但是我怎么做都很模糊。

有关如何实现这个所需function的任何build议?

谢谢!

用户帐户的authorized_keys文件可以指定每当使用特定密钥进行authentication时使用的命令。 这将需要您使用密钥而不是用户/密码来设置身份validation – 尽pipeimho无论如何都是件好事。

例如,gitosis使用这种方法来允许人们使用ssh连接到服务器来隧道git协议,但不允许他们login。 authorized_keys手册页给出了例子,例如:

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

与chroot选项一起使用scponly。 这将给用户一个特殊的chrootlogin,只有你希望他们使用的二进制文件。

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

你可以使用rssh( http://www.pizzashack.org/rssh/ ),就像scponly一样,但支持scp,sftp,rsync&cvs