我有vsftpd服务器,允许本地用户login到FTP。 如何防止一些本地用户login到shell帐户,并只允许login到ftp服务器(vsftpd)?
你应该使用虚拟用户,并注意他们之间的login匹配
[vsftpd.conf]/etc/vsftpd.conf listen=YES anonymous_enable=NO local_enable=YES virtual_use_local_privs=YES write_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd #look here guest_enable=YES guest_username=ftp #carefull user_sub_token=$USER local_root=/var/ftpserver/ #careful chroot_local_user=YES hide_ids=YES syslog_enable=YES file_open_mode=0666 local_umask=0022 [vsftpd]/etc/pam.d/vsftpd auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd # htpasswd file account required pam_permit.so
并创buildhtpasswd -c /etc/vsftpd.passwd username
我不认为使用虚拟用户是必要的。 普通用户将会做得很好。
添加一行到/ etc / shells,如果它不在那里:
/bin/false
对于只希望能够使用FTP的用户,编辑/ etc / passwd并将其shell(通常默认为/ bin / bash或/ bin / sh)更改为/ bin / false
例如:
由此:
jdoe:x:1000:1000:John:/home/fbh:/bin/bash
对此
jdoe:x:1000:1000:John:/home/fbh:/bin/false
这样,该用户将只能使用FTPlogin。