** 首先把vsftpd.conf文件里的chroot_local_user改成YES,让每个用户登录进去只能看到自己的目录
安装完成vsftp服务后,我们需要增加VSFTP用户
#adduser -d /需要的目录(可以自定义) -g ftp -s /sbin/nologin (用户名)
#adduser -d /opt/jack -g ftp -s /sbin/nologin jack
上面增加了一个名为jack的用户它的目录属于/opt/jack下面,属于ftp用户组。此用户是不可以登陆我们终端服务器的。
添加密码
#passwd jack
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
上面是输入两次相同密码后显示成功。
如果我们想把/opt/jack目录挂到我们的ftp目录下面,可以使用mount命令
#mount --bind /opt/jack /var/ftp/jack
Demo
因为我们已经设置成每个用户只能看到自己的目录,所以我们只需要添加用户就可以,另外参考网站里的mount --bin这行代码执行有问题
adduser -d /www/backupData/project_new -g ftp -s /sbin/nologin project
passwd project
mount --bind /www/backupData/project_new /var/ftp/project
创建项目数据库并分配登录权限
create database new_project_pc DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON new_project_pc .* TO 'project'@'134.119.18.60' IDENTIFIED BY 'Np_project_123' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON new_project_pc .* TO 'project'@'localhost' IDENTIFIED BY 'Np_project_123' WITH GRANT OPTION;
常用设置
anonymous_enable=NO
设定不允许匿名访问
local_enable=YES
设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。
write_enable=YES
设定可以进行写操作。
local_umask=777
设定上传后文件的权限掩码。
anon_upload_enable=NO
禁止匿名用户上传。
anon_mkdir_write_enable=NO
禁止匿名用户建立目录。
xferlog_file=/var/log/vsftpd.log
设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。
ascii_upload_enable=YES
ascii_download_enable=YES
设定支持ASCII模式的上传和下载功能。
常见问题
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
用命令chmod a-w /home/user去除用户主目录的写权限
参考资料
vsftp安装: https://www.linuxidc.com/Linux/2016-12/138563.htm
chroot_local_user与chroot_list_enable详解: http://blog.csdn.net/bluishglc/article/details/42398811
500错误解决:http://blog.csdn.net/bluishglc/article/details/42399439
VSFTP配置:http://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html