linux centos下搭建服务器端ftp实现指定用户访问指定目录
工具/原料
FTP
一、安装 vsftpd
1、运行以下命令安装vsftpd:yum install -y vsftpd
2、运行以下命令打开及查看etc/vsftpd:cd /etc/vsftpdls
3、运行以下命令设置开机自启动:systemctl enable vsftpd.service
4、运行以下命令启动 FTP 服务:systemctl start vsftpd.service
5、运行以下命令查看 FTP 服务端口:netstat -antup | grep ftp
二、添加用户并限制目录及指定用户访问指定目录
1、运行以下命令关闭SElinux:setenforce 0
2、为目录制定相应权限,将 vsftpd.conf配置文件中的 local_umask的值改为 000cd /etc/vsftpdvim vsftpd.conf按 i 键进入编辑模式,将local_umask=022改为local_umask=000按ESC ,冒号加x退出。
3、创建 ceshi1用户并创建ceshi1专有的/var/www目录:useradd -d /var/www -s /sbin/nologin ceshi1为ces茑霁酌绡hi1用户创建密码:passwd ceshi1密码暂时设置为123456
4、创建 ceshi2用户并创建ceshi2专有的/var/web目录:useradd -d /var/web -s /sbin/nologin ceshi2为ces茑霁酌绡hi2用户创建密码:passwd ceshi2密码暂时设置为123456
5、如果出现文件已经存在的错误: Creating mailbox file: File existsfind / -name "*艘早祓胂ceshi1" 找到ceshi1文件,将其删除cd /var/spool/mailrm -rf ceshi1
6、如果出现用户已经存在的错误:useradd: user 'ceshi1' already existsuserdel ceshi1
7、如果出现目录已经存在的错误:usera蟠校盯昂dd: warning: the home directory already exists.Not copying any file from skel directory into it.则将目录删除即可:cd /varrm -rf web
三、修改配置文件
1、修改 vsftpd.conf配置文件:cd /etc/vsftpdvim vsftpd.conf
2、将anonymous_enable改为NO,阻止匿名上传:
3、将chroot_list_enable和chroot_list_file的注释去掉,阻止用户访问上级目录:
4、在配置文件的最下方添加如下代码:allow_writeable_chroot=YES #允许用户根目录可写保存退出
5、创建 chroot_list文件并添加用户:cd /etc/vsftpdtouch chroot_listvim chroot_list
6、进入到 www目录,创建index.html文件,且进入到web目录,创建index.phpcd /var/wwwtouch index.htmlcd /var/webtouch index.php
7、重启服务进行测试:service vsftpd restart如果上面的命令没有重启成功,可以使用以下命令:/bin/systemctl restart vsftpd
8、如果登录不上,可以将TLS改为普通
9、并选择“编辑”,“设置”,“被动模式”,改为“退回到主动模式”
10、如果是阿里云服务器的话,可以在安全组的配置规则中添加21端口