需求:一个用户指定一个单独的路径,不能访问其他路径。ftp用户不能ssh等方式登录linux。
- 先安装 vsftpd
- Debian: sudo apt-get install vsftpd -y
- Centos: yum install vsftpd -y
二、添加用户 adduser -d /var/www/html/ftp -s /sbin/nologin -g www ftpuser
//创建用户 #passwd ftpuser //设置密码 #Changing password for user usertest. #New UNIX password: #Retype new UNIX password: #passwd: all authentication tokens updated successfully.
那现在就可以用ftp登录了 ,也会有以上我说的目录不固定问题
此时用ftpuser登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。
- 配置 vsftpd
- 打开/etc/vsftpd/vsftpd.conf 查找userlist_enable、userlist_deny、userlist_file。如果userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开关。我们的系统配置如下: userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list 所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。
- 找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能
找到chroot_list_file:chroot_list_file=/etc/ftpchroot
#编辑ftpchroot文件,加入你要限制的用户名,一行一个用户.
#如果更新了vsftpd.conf,一定要重启ftp,命令如下:
/etc/init.d/vsftpd restart
- 也可以用下面的配置
cat /etc/vsftpd/vsftpd.conf | grep -v “#” | more
anonymous_enable=NO</p>
<p>local_enable=YES</p>
<p>idle_session_timeout=600</p>
<p>write_enable=YES</p>
<p>local_umask=022</p>
<p>anon_upload_enable=NO</p>
<p>dirmessage_enable=YES</p>
<p>xferlog_enable=YES</p>
<p>connect_from_port_20=YES</p>
<p>xferlog_file=/var/log/vsftpd.log</p>
<p>xferlog_std_format=YES</p>
<p>ftpd_banner=Welcome to FTP service.</p>
<p>chroot_local_user=NO</p>
<p>chroot_list_enable=YES</p>
<p>chroot_list_file=/etc/vsftpd.chroot_list</p>
<p>pam_service_name=vsftpd</p>
<p>userlist_enable=YES</p>
<p>listen=YES</p>
<p>tcp_wrappers=YES</p>
<p>max_clients=50</p>
<p>max_per_ip=5</p>
<p>local_max_rate=30000</p>
<p>anon_max_rate=10000</p>
<p>pasv_min_port=65400</p>
<p>pasv_max_port=65499</p>
<p>