Linux 在允许shell访问的同时限制远程ssh命令

Linux 在允许shell访问的同时限制远程ssh命令,linux,bash,ssh,sftp,chroot,Linux,Bash,Ssh,Sftp,Chroot,我希望用户使用ssh,并且只能访问我的CLI。目前,这是通过在.profile中执行命令来完成的,该命令以另一个用户的身份运行cli(这是在sudoers中完成的,他们只能以该用户的身份运行cli,而不能以其他用户的身份运行cli)。我遇到的一个问题是,用户仍然可以使用shh(比如bash)运行命令,这是我想要限制的。还有一个档案,我希望用户能够与sftp传输。我想我只需要创建另一个用户并启动他们,这样他们就只能访问这一个文件。我曾考虑过使用同一个用户执行此操作,但在允许用户使用CLI和限制远程

我希望用户使用ssh,并且只能访问我的CLI。目前,这是通过在.profile中执行命令来完成的,该命令以另一个用户的身份运行cli(这是在sudoers中完成的,他们只能以该用户的身份运行cli,而不能以其他用户的身份运行cli)。我遇到的一个问题是,用户仍然可以使用shh(比如bash)运行命令,这是我想要限制的。还有一个档案,我希望用户能够与sftp传输。我想我只需要创建另一个用户并启动他们,这样他们就只能访问这一个文件。我曾考虑过使用同一个用户执行此操作,但在允许用户使用CLI和限制远程ssh命令的情况下删除它们似乎是一场噩梦。对不起,如果这是混乱的,我有困难,所有这一切,并没有太多的经验,这类东西

总之,我基本上想:

-允许用户使用ssh,但只能访问我的CLI

-阻止用户使用ssh执行任何其他操作

-允许传输诊断存档


有人对实现这一切的最佳方式有什么想法吗?请告诉我是否有其他有用的信息。谢谢

如果用户通过ssh登录,他/她将被锁定在chroot监狱中。我不确定您做了什么,因此以下内容可能没有多大帮助:

尝试:

/路径必须在文件中可见,CLI必须静态链接。如果您使用system()调用来处理像ls这样的命令,而不是使用opendir()、dirent等,那么您必须有一个单独的visible/lib目录和库。以及ls可执行文件或其他命令的单独副本,例如,位于本地可见的/usr/bin目录中。在这种情况下,可以动态链接CLI。使用

ldd executablefilename
命令以确保可以看到所需的所有库


考虑在web上查看一些
chroot
示例/教程。Google for
LinuxChroot监狱

您能详细说明用户需要的操作吗?他们正在上传文件,运行哪个命令?你能用cronjob替换access吗?为什么要使用sftp?如果您限制bash,那么用户将如何运行任何命令?用户需要能够通过ssh访问我的自定义CLI(或者可能不是ssh?我不知道还有什么替代方法)。没有上传,没有其他命令,但是他们需要能够从机器上传输一个特定的文件。我认为只有sftp与chroot一起工作,这就是我计划使用它的原因,同样,我对替代方案持开放态度。他们不需要在启动我的CLI之外运行任何命令。
ldd executablefilename