![如何启用 SFTP 但禁用 root 的 shell](https://linux22.com/image/1589470/%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8%20SFTP%20%E4%BD%86%E7%A6%81%E7%94%A8%20root%20%E7%9A%84%20shell.png)
我的服务器上已为 root 用户启用了 SFTP,但我不希望任何用户使用 root 在终端上执行任何语句。他们应该使用自己的帐户。我尝试PermitRootLogin no
在 sshd_config 中进行设置,但无法使用 SFTP 将文件上传到服务器。我还尝试将 shell 更改为 nologin 和 false,但无法上传文件。
所以我的问题是如何才能使用 root 身份安全地传输 FTP 文件,但不能通过 ssh 在终端上使用 root 身份?
答案1
你不能。重要的是,无论你更改什么配置文件来禁止 root shell,root SFTP 都可以用他或她选择的文件覆盖它,或者用sftp
他或她想要的任何内容替换可执行文件。即使添加一个简单的cron
文件来启动反向 shell 也可以解决问题。
简而言之:root SFTP 意味着 root shell。
我建议您重新考虑是否需要 root SFTP - 最有可能的是,对文件/目录权限进行一些工作将更加安全地完成任务(或者bindfs
如果必须的话进行挂载)