我想为几个使用vsftpd的ftp用户设置一个ftp.我配置了FTP以启用本地用户访问.它工作正常.但是一旦我将用户的
shell编辑为/usr/sbin / nologin,就无法使用以下错误登录到FTP:
Response: 220 Welcome to the Scent Library's File Service. Command: USER marketftp Response: 331 Please specify the password. Command: PASS ****** Response: 530 Login incorrect.
这是我做的:
>所有ftp-only用户都将/ srv / ftp作为其主目录.目录信息是
/ srv / ftp:drwxr-xr-x 3 root slftp 4.0K 2012-02-09 17:20 ftp /
>所有ftp-only用户都将在slftp组中;
我用adduser创建了用户,最后得到了这个/ etc / passwd条目:marketftp:x:1001:1001 :: / srv / ftp:/usr/sbin / nologin
这在/ etc / group中:slftp:x:1001:marketftp
>使用以下命令配置vsftpd以将用户限制在他们自己的家中,但vsftpd.chroot_list中的本地用户除外:
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
解决方法
取自
here
A) There are varIoUs possible problems. A1) By default,vsftpd disables any logins other than anonymous logins. Put local_enable=YES in your /etc/vsftpd.conf to allow local users to log in. A2) vsftpd tries to link with PAM. (Run "ldd vsftpd" and look for libpam to find out whether this has happened or not). If vsftpd links with PAM,then you will need to have a PAM file installed for the vsftpd service. There is a sample one for RedHat systems included in the "RedHat" directory - put it under /etc/pam.d A3) If vsftpd didn't link with PAM,then there are varIoUs possible issues. Is the user's shell in /etc/shells? If you have shadowed passwords,does your system have a "shadow.h" file in the include path? **A4) If you are not using PAM,then vsftpd will do its own check for a valid user shell in /etc/shells. You may need to disable this if you use an invalid shell to disable logins other than FTP logins. Put check_shell=NO in your /etc/vsftpd.conf.**
你是案例A4