任务需求:将帐号固定在自己的文件夹内。不允许查看上一层目录。
1.查看是否已经安装vsftpd
rpm -qa | grep vsftpd
2.yum安装vsftpd
yum install vsftpd
3.设置每次开机时自动运行及手工启动它
chkconfig vsftpd on
service vsftpd start
netstat -tl
最后这条命令可以查看ftp端口是否在侦听了
4.为vsftpd添加ftp账号
useradd -s /sbin/nologin -d /data0/www -g ftp testuser
如果显示如下信息,表示用户家目录已经存在(/data0/www),不可再新建此目录,并非添加用户失败:
Creating mailbox file: File exists
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
接下来给用户设置密码,否则此账号不能使用,命令如下
passwd testuser
这样就为linux系统添加用户testuser,用户目录指定为/data0/www,属于ftp用户组,且此用户不能登陆系统。
注:
-s /sbin/nologin是让其不能登陆系统
-d 是指定用户目录为/data0/www
-g ftp 把用户加入到ftp组中
5.修改/data0/www目录属性
chmod -R 777 /data0/www
递归地给此目录下所有文件和子目录的读、写、执行权限
chgrp -R ftp /data0/www
递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组
6.配置etc/vsftpd/vsftpd.conf文件
anonymous_enable=NO
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
添加以下几项
pasv_enable=YES
pasv_min_port=9981
pasv_max_port=9986
7.在/etc/vsftpd/chroot_list下建立 chroot_list 文件,并将刚才用户名testuser添加进去
8.进入/etc/sysconfig
vi iptables
加入如下的一行:
-A INPUT -p tcp -m tcp --dport 9981:9986 -j ACCEPT
重启防火墙
service iptables restart
9.重启vsftpd,服务器配置完毕
service vsftpd restart
10.如果在连接的时候出现vsftpd 500 OOPS: cannot change directory
在终端输入命令:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!