今天,一位QQ好友有一个要求:需要限制ftp用户在自己的目录,不允许访问上级目录。在21端口下可以正常ftp连接,在22端口不让连接SFTP协议。
相信大家都知道,如果我们没有做设置的情况下,当ftp用户用sftp协议连接时,还是可以访问上级目录,同样还是可以用ftp用户登录ssh,因此,我们需要切断22端口的通信。具体的操作如下:
1、首先,执行如下命令,找到nologin的shell:
vim /etc/shells
2、可以看到禁止登录的shell文件为 /usr/sbin/nologin,然后,执行如下命令:
usermod -s /usr/sbin/nologin fujieace
以上命令的意思是:
禁止FTP用户"fujieace"登陆ssh。也就是不允许FTP用户"fujieace"连接SFTP协议了。
注意:
因为ftp在登录时要检查该用户的shell设定是否正确,如果在/etc/shells中不存在的/usr/bin/nologin,结果就会出错导致用户无法登录。关于这个问题的解决方法如下:
打开 /etc/shells,添加“/usr/bin/nologin”,即可!
或者用
/sbin/nologin
如果要恢复 fujieace 的ssh登录,执行如下命令:
usermod -s /bin/bash fujieace
总结:
上面不是提到了我的这位QQ好友的要求是:①需要限制ftp用户在自己的目录,不允许访问上级目录。②在21端口下可以正常ftp连接,在22端口不让连接SFTP协议。
关于第二个问题我们已经解决了;第一个问题的话,可以参考:Kali Linux(Debian)安装FTP服务器vsftpd教程