Linux-ftp虚拟用户配置
云服务器ESC 部署vsftpd 虚拟用户
说明:云服务器部署和本地服务器部署一样,都需要开通指定的相应端口,只不过云服务器需要在安全组规则中打开相应的端口允许通过。
环境说明:
对应的用户对应不同的密码,对应不同的数据目录,如下图:
具体步骤
1) 安装软件
# yum -y install vsftpd
2) 创建相应的ftp数据目录
# mkdir -p /opt/ftp/{come,out}
3) 创建一个用户提供给虚拟用户使用
# useradd -s /sbin/nologin virtual
4) 将ftp数据目录设置成virtual用户
# chown virtual. /opt/ftp/ -R # ll /opt/ftp/ total 8 drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 come drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 out
5) 创建虚拟帐号与密码的文本文件(一行账号,一行密码, 注意不要有多余的空格)
# vim /etc/vsftpd/logins.txt
ftpComeSsbq
ftp_come_#@UkieO9
ftpOutSsbq
ftp_out_#@45oUkie
6) 将创建好的密码文件txt格式转换db格式
# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/login.db
7) 定义db文件的权限
# chmod 600 /etc/vsftpd/login.db
8) 定义pam认证文件(注意:db=/etc/vsftpd/login 文件就是上面生成的login.db文件;省略后缀.db)
# vim /etc/pam.d/ftp auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
9) 配置vsftpd主配置文件 (guest_username=virtual 对应上面创建的用户)
# vim /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器 anonymous_enable=NO #允许本地用户登录FTP服务器 local_enable=YES #可以上传(全局控制) write_enable=NO #匿名用户可以上传 anon_upload_enable=NO #匿名用户可以建目录 anon_mkdir_write_enable=NO #匿名用户修改删除 anon_other_write_enable=NO #全部用户被限制在主目录 chroot_local_user=YES #2.3.5版本之后,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,需新增加下面这条配置 #allow_writeable_chroot=YES #将所有用户看成虚拟用户guest guest_enable=YES #指定虚拟用户,也就是将guest用户映射到virtual用户 guest_username=virtual #指定为独立服务 listen=YES #指定监听的端口 listen_port=21 #开启被动模式 pasv_enable=YES #FTP服务器公网IP pasv_address=<FTP服务器公网IP> #设置被动模式下,建立数据传输可使用port范围的最小值 pasv_min_port=10000 #设置被动模式下,建立数据传输可使用port范围的最大值 pasv_max_port=10088 #是否允许匿名用户下载全局可读的文件 anon_world_readable_only=NO #指定虚拟用户配置文件的路径 user_config_dir=/etc/vsftpd/user_conf
10) 创建上面配置文件中指定的子配置文件目录 user_conf
# mkdir /etc/vsftpd/user_conf
11) 定义 ftpComeSsbq 用户的配置文件(注意:这里创建配置用户配置文件的文件名必须与上面创建的用户名一致)
# vim /etc/vsftpd/user_conf/ftpComeSsbq write_enable=YES anon_world_readable_only=no anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
anon_umask=022 local_root=/opt/ftp/come
12) 定义 ftpOutSsbq 用户的配置文件
# vim /etc/vsftpd/user_conf/ftpOutSsbq write_enable=YES anon_world_readable_only=no anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
anon_umask=022 local_root=/opt/ftp/out
13) 启动vsftpd
# service vsftpd start
14) 测试
- 使用 lftp 测试,格式为:lftp 用户名:密码@ftp地址:传送端口(默认21端口,如果是21端口则可以不用添加)
[root@srt_aliyun_39 ~]# lftp ftpComeSsbq:ftp_come_#@UkieO9@120.79.xx.xx lftp ftpComeSsbq@120.79.xx.xx:~> pwd ftp://ftpComeSsbq:ftp_come_#%40UkieO9@120.79.xx.xx lftp ftpComeSsbq@120.79.xx.xx:~> mkdir test mkdir ok, `test' created lftp ftpComeSsbq@120.79.xx.xx:/> ls drwx------ 2 506 506 4096 Apr 17 05:32 test lftp ftpComeSsbq@120.79.xx.xx:/> rm -rf test/ rm ok, `test/' removed
- 使用 windows 文件夹测试 格式:ftp:ftp地址 (说明:打开ftp被动模式,控制面板 > 网络和Internet )
- 浏览器测试:ftp://ftp地址
至此就完成了 ftp 虚拟用户的部署。
人生是条无名的河,是浅是深都要过;
人生是杯无色的茶,是苦是甜都要喝;
人生是首无畏的歌,是高是低都要唱。