我使用树莓派 pi3 和 VSFTPD 通过 FTP 共享目录,这允许相机连接到它并传输照片。
我还创建了一个简单的用户和密码,并对目录进行了 chroot,这样如果使用 FileZilla 或任何其他工具,就不会在专用文件夹之外浏览文件。
问题是,如果我通过终端(显示器、键盘等,没有 ssh)登录,使用该用户,我可以自由地去任何我想去的地方,有没有办法防止这种情况发生?
我已经尝试过:
usermod --expiredate 1
passwd -l
usermod -s /sbin/nologin
但这会导致该帐户无法使用。
如果我搜索监狱/chroot 终端用户,则只有“ssh”结果。
任何帮助将不胜感激。
编辑
我所说的帐户无法使用,是指它禁止通过终端登录(这就是我想要的),但它也阻止通过 FTP 连接。
编辑2
重点是禁用 1 个用户的所有内容(除了 FTP 文件夹),我不需要,也不希望该用户执行任何操作。
只有 FTP,没有其他协议,我需要定位所有/大多数 Wi-Fi 摄像机,而 FTP 是最佳选择。
SFTP 和 SSH 已禁用。
答案1
如果您想禁用特定用户的SSH(包括scp
& )登录,您只需添加并重新启动守护进程即可。sftp
DenyUsers <name of the ftp-only user>
/etc/ssh/sshd_config
sshd
它将保留使用仅 FTP 帐户在本地登录的可能性,但如果系统位于安全位置,这实际上可能对解决 FTP 传输故障很有用。
创建仅 FTP 用户帐户的传统方法是将用户的 shell 设置为/sbin/nologin
、/bin/false
或任何不允许输入并立即退出的类似程序,还要将该程序列出在/etc/shells
。
密码检查后,FTP 守护程序执行的经典检查是“该用户是否具有 中列出的 shell /etc/shells
?”。在现代系统上,这可以通过 PAM 配置而不是 FTP 守护程序本身来实现。
通过为用户配置一个有效的“不做任何事”shell(= 在 中列出/etc/shells
),该帐户对于 FTP 使用将是有效的,但任何需要运行 shell 的使用都会失败,因为“不做任何事”程序是run 而不是任何真正的 shell,它只会退出而不接受用户的任何输入。
注意:如果系统有任何其他网络服务正在使用系统密码数据库,并且不基于运行 shell(例如 IMAP 或 POP3 邮件服务器),那么您可能必须将这些服务配置为也明确拒绝“仅 FTP”用户。