服务器搭建实战详解-FTP之三-实体/虚拟用户

实体用户

主动模式

  1. 实现目的
    希望使用本地时间而不是GMT时间;
    用户登录时显示一些欢迎信息; 系统账户不可以登录主机 (亦即UID小于500以下账户);
    一般实体用户可以进行上传、下载、建立目录及修改文件等操作;
    用户建立文件、目录的umask希望设置为002
    其他主机设置值保留默认值即可。
  2. 修改配置文件,如下

将匿名登录取消

anonymous_enable=NO
# 允许实体用户登录
local_enable=YES
write_enable=YES
local_umask=002
userlist_enable=YES
userlist_deny=YES
# /etc/vsftpd/user_list这个文本一定要存在 默认有此文件
userlist_file=/etc/vsftpd/user_list
# 与服务器环境相关配置
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
# /etc/vsftpd/welcome.txt 该文件必须存在 需手动创建
banner_file=/etc/vsftpd/welcome.txt
2. 防火墙放行ftp端口
firewall-cmd --permanent --zone=public --add-port=20-21/tcp
3. 防火墙重新加载
firewall-cmd --reload
4. 重启vsftpd服务
systemctl restart vsftpd.service
5. 测试结果
扩展一:实体账户与selinux议题
默认下,Vsftpd是不允许实体账号登录取得用户主目录数据的,这是因为selinux的问题,若在ftp localhost中,在bye离开ftp之前执行过dir的话,那你会发现没有任何显示资料,就是selinux原因;如下处理即可;
[root@localhost ~]# getsebool -a | grep ftp
ftp_home_dir --> off //把off设置成on即可;
ftpd_anon_write --> on
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
设置命令
setsebool -P ftp_home_dir=1

被动模式

  1. 修改配置文件
    #FTP configiuration
    # 将匿名登录取消
    anonymous_enable=NO
    # 允许实体用户登录
    local_enable=YES
    write_enable=YES
    local_umask=002
    userlist_enable=YES
    userlist_deny=YES
    # /etc/vsftpd/user_list这个文本一定要存在 默认有此文件
    userlist_file=/etc/vsftpd/user_list
    # 与服务器环境相关配置
    use_localtime=YES
    dirmessage_enable=YES
    xferlog_enable=YES
    port_enable=YES
    pasv_min_port=65400
    pasv_max_port=65406
    xferlog_std_format=YES
    listen=YES
    pam_service_name=vsftpd
    tcp_wrappers=YES
    # /etc/vsftpd/welcome.txt 该文件必须存在 需手动创建
    banner_file=/etc/vsftpd/welcome.txt
  2. 防火墙放行端口
    firewall-cmd --permanent --zone=public --add-port=65400-65406/tcp
  3. 防火墙重新加载
    firewall-cmd --reload
  4. 重启vsftpd服务
    systemctl restart vsftpd.service
  5. 测试结果

虚拟用户

  1. 修改主配置文件
    anonymous_enable=NO
    write_enable=YES
    chroot_local_user=YES
    use_localtime=YES
    local_enable=YES
    allow_writeable_chroot=YES
    xferlog_enable=YES
    local_umask=022
    pam_service_name=vsftpd

use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120

data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser

user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES

pasv_min_port=65400
pasv_max_port=65406

accept_timeout=5
connect_timeout=1
2. 创建宿主用户
useradd -g root -d /home/vsftpd -s /sbin/nologin ftpuser
宿主用户设置密码
passwd ftpuser
3. 修改ftpuser家目录的权限
chown -R ftpuser.root /home/vsftpd
4. 建立虚拟用户的文件
vim /etc/vsftpd/vuser 一行用户名 一行密码
student1
1234567
student2
1234567
:wq
5. 生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
6. 修改数据文件的权限
chmod 600 /etc/vsftpd/vuser.db
7. 创建用户配置文件及目录
mkdir /etc/vsftpd/vuser.conf
touch /etc/vsftpd/vuser.conf/student1
touch /etc/vsftpd/vuser.conf/student2
8. 添加用户配置文件
vim touch /etc/vsftpd/vuser.conf/student1
local_root=/home/vsftpd/student1 //写用户实际存储位置 student2与之类似
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
:wq
9. 创建用户主目录
mkdir /home/vsftpd/student1
mkdir /home/vsftpd/student2
10. 修改pam.d文件
vim /etc/pam.d/vsftpd 添加以下两行,其他注释掉,修改如下:
#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
11. 重启服务
systemctl restart vsftpd.service
12. 测试结果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值