假设使用ssh到服务器,并可以通过FTP来连接其他来源,下载病毒并执行它。
是否有可能强制用户只执行一些已知的命令?
从man sshd_config :
ForceCommand
强制执行由ForceCommand指定的命令,忽略客户端提供的任何命令以及〜/ .ssh / rc(如果存在)。 该命令通过使用用户的loginshell和-c选项来调用。 这适用于shell,命令或子系统的执行。 它在Match块内最有用。 最初由客户端提供的命令在SSH_ORIGINAL_COMMAND环境variables中可用。 指定“internal-sftp”命令将强制使用与ChrootDirectory一起使用的不需要支持文件的进程内sftp服务器
这可以让你使用一个只能做特定事情的shell包装器。 一个例子是rssh 。
如果您只希望对特定用户使用此限制,请使用known_hosts文件中的command=cmd选项(以man sshd )
也许为你的用户build立一个chroot环境可能会有所帮助。 看我如何chroot SSH连接?
一种方法虽然不完美,但会为用户主目录创build一个单独的分区,这些分区具有写权限。 简单地挂载这些分区noexec 。
适当的文件系统权限设置通常会非常有效地限制可以完成的损害。
如果用户不是至less可以信任的,那么给他们SSH访问可能是一个坏主意。 也许你需要为他们设置虚拟机,并将每个虚拟机限制在自己的环境中。