linux搭建指定登录路径的FTP方法

需求:一个用户指定一个单独的路径,不能访问其他路径。ftp用户不能ssh等方式登录linux。

  • 先安装 vsftpd
    1. Debian: sudo apt-get install vsftpd -y
    2. 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
    1. 打开/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文件中,每个用户一行。
    2. 找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能

找到chroot_list_file:chroot_list_file=/etc/ftpchroot

#编辑ftpchroot文件,加入你要限制的用户名,一行一个用户.

 

#如果更新了vsftpd.conf,一定要重启ftp,命令如下:

/etc/init.d/vsftpd restart

  1. 也可以用下面的配置

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>

打赏
Bookmark the permalink.
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论