我希望用户使用ssh并且只能访问我的CLI。目前这是通过在.profile中执行命令来完成的,该命令以另一个用户身份运行cli(这在sudoers中完成,它们只能以此用户身份运行CLI而不执行任何其他操作)。我遇到的一个问题是用户仍然可以用shh运行命令,比如bash,这是我想要限制的。还有一个档案我希望用户能够使用sftp进行传输。我想我只会创建另一个用户并对其进行chroot,以便他们只能访问该文件。我考虑使用相同的用户执行此操作,但在仍然允许使用CLI并限制远程ssh命令的情况下对其进行chroot似乎是一场噩梦。很抱歉,如果这令人困惑,我无法用语言表达所有这些并且对这类东西没有多少经验。
总之,我基本上想:
- 允许用户使用ssh,但只能访问我的CLI
- 防止用户使用ssh做其他事情
- 允许传输诊断存档
任何人都有关于实现这一切的最佳方法的一些想法?如果有任何其他有用的信息,请告诉我。谢谢!
答案 0 :(得分:0)
如果用户通过ssh登录,则他/她被锁定在chroot监狱中。我不确定你做了什么,所以以下内容可能没什么用处:
尝试:
usermod -s /path/to/CLI username
/ path必须在jail中可见,CLI必须是静态链接的。如果你使用system()调用来执行像ls这样的命令 - 而不是使用opendir(),dirent等 - 那么你必须有一个单独的可见/ lib目录和库。例如,在本地可见的/ usr / bin目录中的ls可执行文件或其他命令的单独副本。在这种情况下,CLI可以动态链接。使用
ldd executablefilename
命令以确保您可以看到所需的所有库。
考虑在网上查看一些chroot
示例/教程。 Google为linux chroot jail