yum search vsftpd
yum -y install vsftpd.x86_64
mkdir -p /usr/webServer/fileserver
useradd -d /usr/webServer/fileserver -s /sbin/nologin nginxftp
passwd nginxftp
chgrp -R ftp webServer
chmod -R 775 webServer
如果想指定其中一个ftp用户有特殊权限可以连接所有目录,可以打开配置文件vsftpd.conf设置chroot_list_enable=YES,chroot_list_file=/etc/vsftpd/chroot_list,然后在/etc/vsftpd/目录下创建chroot_list文件,把想要有可以切换其他目录ftp用户添加到此文件中,每行写一个用户
vim /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/chroot_list
service vsftpd restart
chroot_list_enable就是chroot_local_user的例外,chroot_local_user=yes,意思是所以ftp用户只能操作自己的主目录,如果chroot_list_enable=yes,chroot_list下的用户就是例外可以执行chroot其他目录。
如果chroot_local_user=no,意思是所有ftp用户可以chroot其他目录,如果chroot_list_enable=yes,chroot_list下的用户就是例外只能操作自己的ftp主目录。
由于开启了selinux的linux系统安装vsftpd之后如果不对selinux进行设置,Java调用vsftpd的方法上传文件会报错:如下
220 (vsFTPd 2.2.2)
Name (10.191.255.149:root): matthew
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put install.log.syslog
local: install.log.syslog remote: install.log.syslog
227 Entering Passive Mode (10,191,255,149,189,211).
553 Could not create file.
然后我们在命令行输入如下:
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir on
成功如下: