我正在编写一个简单的程序来备份一些文件到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