实验环境的部署
【1】server主机:
- 主机名: westos_node1
- ip地址: 172.25.18 11
- 软件仓库
- selinux关闭
- 火墙开启
- dbf安装设定完成
[root@westos_node1 ~]# hostnamectl set-hostname westos_node1.westos.com #修改主机名
[root@westos_node1 ~]# cd /etc/sysconfig/network-scripts/ 修改ip地址
[root@westos_node1 network-scripts]# ls
ifcfg-enp1s0
[root@westos_node1 network-scripts]# vim ifcfg-enp1s0
BOOTPROTO=none
NAME=enp1s0
IPADDR=172.25.18.11
DEVICE=enp1s0
PREFIX=24
GATEWAY=172.25.18.250
DNS1=114.114.114.114
ONBOOT=yes
[root@westos_node1 yum.repos.d]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@westos_node1 yum.repos.d]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 406368 0 406368 0% /dev
tmpfs 420484 0 420484 0% /dev/shm
tmpfs 420484 6804 413680 2% /run
tmpfs 420484 0 420484 0% /sys/fs/cgroup
/dev/vda3 9757696 4002240 5755456 42% /
/dev/vda1 199328 139988 59340 71% /boot
tmpfs 84096 16 84080 1% /run/user/42
tmpfs 84096 24 84072 1% /run/user/0
/dev/sr0 6935944 6935944 0 100% /mnt
[root@westos_node1 ~]# cd /etc/yum.repos.d/ #修改软件仓库配置文件
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[root@westos_node1 yum.repos.d]# vim westos.repo
[root@westos_node1 yum.repos.d]# dnf clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 files removed
[root@westos_node1 yum.repos.d]# dnf repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream 93 MB/s | 5.3 MB 00:00
BaseOS 87 MB/s | 2.2 MB 00:00
repo id repo name status
AppStream AppStream 4,672
BaseOS
[root@westos_node1 ~]# vim /etc/sysconfig/selinux # 关闭selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #将此处修改为disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@westos_node1 ~]# reboot # 修改过后需要重新启动
[root@westos_node1 ~]# getenforce
Disabled # 查看状态为disable
[root@westos_node1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-08-21 23:06:45 CST; 42min ago
Docs: man:firewalld(1)
Main PID: 718 (firewalld)
Tasks: 2 (limit: 5079)
Memory: 2.2M
CGroup: /system.slice/firewalld.service
└─718 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
Aug 21 23:06:43 westos_node1.westos.com systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 21 23:06:45 westos_node1.westos.com systemd[1]: Started firewalld - dynamic firewall daemon.
【2】client主机:
- westos_linux
- 172.25.18.22
- selinux关闭
- dnf安装设定完成
- 安装lftp (ftp协议文本浏览器)
[root@westos_linux ~]# yum install lftp -y
1.ftp介绍
ftp:file transfer proto
互联网张最老牌的文件传输协议
2.vsftpd安装及启用
[root@westos_node1 ~]# dnf install vsftpd -y
[root@westos_node1 ~]# systemctl enable --now firewalld
[root@westos_node1 ~]# systemctl enable --now vsftpd
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
[root@westos_node1 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@westos_node1 ~]# firewall-cmd --permanent --add-source=172.25.18.22 --zone=trusted #添加ftp
success
[root@westos_node1 ~]# systemctl restart firewalld
[root@westos_node1 ~]# firewall-cmd --reload
success
[root@westos_node1 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: cockpit dhcpv6-client ftp ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@westos_node1 ~]# systemctl status vsftpd # 查看vsftpd状态
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-22 00:19:30 CST; 7min ago
Process: 31185 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 31186 (vsftpd)
Tasks: 1 (limit: 5079)
Memory: 792.0K
CGroup: /system.slice/vsftpd.service
└─31186 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Aug 22 00:19:30 westos_node1.westos.com systemd[1]: Starting Vsftpd ftp daemon...
Aug 22 00:19:30 westos_node1.westos.com systemd[1]: Started Vsftpd ftp daemon.
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES # 启动匿名用户的访问功能
[root@westos_node1 ~]# systemctl restart vsftpd
测试:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls
drwxr-xr-x 2 0 0 6 Aug 12 2018 pub
lftp 172.25.18.11:/>
测试安装发布:
firefox ftp://ip
lftp ip #次访问方式必须能列出资源才算访问成功,在使用完成后请输入exit退出lftp
此处也可以使用浏览器访问
退出使用exit或者ctrl+d
3.vsftpd基本信息
【1】服务名称:
vsftpd.service
【2】配置目录:
/etc/vsftpd
【3】主配置文件:
/etc/vsftpd/vsftpd.conf
【4】默认发布目录:
/var/ftp
【5】错信息:
550 | 程序本身拒绝 |
---|---|
553 | 文件系统权限限制 |
500 | 权限过大 |
530 | 认证失败 |
-
文件系统权限限制
-
输入密码错误,认证失败:
4.匿名用户访问控制
lftp 172.25.18.11 #当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.18.22 -u westos #本地用户访问
【1】登录控制
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES # 支持匿名用户(默认为no)
【2】家目录控制
默认访问位置位/var/ftp
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES
13 anon_root=/westosdir # 此处修改尕昂文位置未/westosdir
[root@westos_node1 ftp]# systemctl restart vsftpd # 重启vsftpd服务
在server在主机中:
[root@westos_node1 ftp]# mkdir /westosdir # 在/下创建目录westosdir
[root@westos_node1 ftp]# touch /westosdir/westos{1..10} # 在wetosdir目录下创建文件westos
[root@westos_node1 ftp]# ls /westosdir/
westos1 westos2 westos4 westos6 westos8
westos10 westos3 westos5 westos7 westos9
在client主机中:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls # 此时ls后显示/westosdie下的文件
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos1
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos10
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos2
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos3
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos4
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos5
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos6
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos7
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos8
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos9
lftp 172.25.18.11:/>
恢复访问默认目录:
在server主机中:
[root@westos_node1 ftp]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
#anon_root=/westosdir
#
[root@westos_node1 ftp]# systemctl restart vsftpd
在client主机中:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls # 恢复默认访问目录
drwxr-xr-x 2 0 0 6 Aug 12 2018 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp 172.25.18.11:/>
【3】上传控制
在server主机:
anon_upload_enable=YES|NO
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
30 anon_upload_enable=YES
[root@westos_node1 ~]# systemctl restart vsftpd
在client主机测试:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.18.11:/pub> ls
lftp 172.25.18.11:/pub> put /etc/passwd # 尝试上传
put: /etc/passwd: Access failed: 553 Could not create file. (passwd) # 553报错,权限过小
lftp 172.25.18.11:/pub>
在server主机:
[root@westos_node1 ~]# ls -ld /var/ftp/pub/
drwxr-xr-x 2 root root 6 Aug 13 2018 /var/ftp/pub/ # 只对root用户可写
[root@westos_node1 ~]# chmod 775 /var/ftp/pub/
[root@westos_node1 ~]# chgrp ftp /var/ftp/pub/
[root@westos_node1 ~]# ls -ld /var/ftp/pub/
drwxrwxr-x 2 root ftp 6 Aug 13 2018 /var/ftp/pub/ # 对ftp用户可写
在client主机:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls
drwxrwxr-x 2 0 50 6 Aug 12 2018 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp 172.25.18.11:/> cd pub/
lftp 172.25.18.11:/pub> ls
lftp 172.25.18.11:/pub> put /etc/passwd
2487 bytes transferred
lftp 172.25.18.11:/pub> ls
-rw------- 1 14 50 2487 Aug 22 15:47 passwd
lftp 172.25.18.11:/pub>
[root@westos_node1 ~]# cd /var/ftp/pub/ # 不能设置为对/var/ftp目录可写,否则系统会报错
[root@westos_node1 pub]# ls
passwd
【4】目录建立控制
client主机:不能建立目录
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls
drwxrwxr-x 2 0 50 20 Aug 22 15:47 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp 172.25.18.11:/> cd pub/
lftp 172.25.18.11:/pub> mkdir test
mkdir ok, `test' created
lftp 172.25.18.11:/pub> ls
-rw------- 1 14 50 2487 Aug 22 15:47 passwd
drwx------ 2 14 50 6 Aug 22 15:57 test
在server主机:
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
34 anon_mkdir_write_enable=YES
[root@westos_node1 ~]# systemctl restart vsftpd
在client主机:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls
drwxrwxr-x 2 0 50 20 Aug 22 15:47 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp 172.25.18.11:/> cd pub/
lftp 172.25.18.11:/pub> mkdir test
mkdir ok, `test' created
lftp 172.25.18.11:/pub> ls
-rw------- 1 14 50 2487 Aug 22 15:47 passwd
drwx------ 2 14 50 6 Aug 22 15:57 test
【5】下载控制
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
32 anon_world_readable_only=NO #匿名用户可以下载不能读取的文件
[root@westos_node1 ~]# systemctl restart vsftpd
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.18.11:/pub> ls
-rw------- 1 14 50 2487 Aug 22 16:12 passwd
drwx------ 2 14 50 6 Aug 22 15:57 test
lftp 172.25.18.11:/pub> get passwd
2487 bytes transferred
lftp 172.25.18.11:/pub>
[root@westos_linux ~]# ls # 从哪里进入就下载在哪里
anaconda-ks.cfg Downloads passwd Templates
【6】删除重命令控制
在server主机:
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
31 anon_other_write_enable=YES
[root@westos_node1 ~]# systemctl restart vsftpd
在client主机:
[root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.18.11:/pub> ls
-rw------- 1 14 50 2487 Aug 22 15:47 passwd
drwx------ 2 14 50 6 Aug 22 15:57 test
lftp 172.25.18.11:/pub> rm passwd
rm ok, `passwd' removed
lftp 172.25.18.11:/pub> ls
drwx------ 2 14 50 6 Aug 22 15:57 test
lftp 172.25.18.11:/pub>
【7】匿名用户上传文件权限设定
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
anon_umask=xxx
anon_umask=022 #当设定chowm_username之后上传文件权限将不使用此参数设定,用chown_upload_mode=0600设定
[root@westos_node1 ~]# systemctl restart vsftpd
【8】匿名用户上传文件的用户身份设定
默认所使用的用户身份是ftp用户:
[root@westos_node1 ~]# id ftp
uid=14(ftp) gid=50(ftp) groups=50(ftp)
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
55 chown_upload=YES
56 chown_username=lee # 所用户用在服务器上所生成的文件都是有lee用户身份
57 chown_upload_mode=0600 #当设定chowm_username之后上传文件权限将不使用此参数设定,用chown_upload_mode=600设定
[root@westos_node1 ~]# systemctl restart vsftpd
【9】登录数量控制
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
33 max_clients=1
[root@westos_node1 ~]# systemctl restart vsftpd
root@westos_linux ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls
drwxrwxr-x 3 0 50 32 Aug 22 16:12 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp 172.25.18.11:/>
[kiosk@foundation18 Desktop]$ lftp 172.25.18.11
lftp 172.25.18.11:~> ls
`ls' at 0 [421 There are too many connected users, please try later.]
【10】上传速率控制
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400
[root@westos_node1 ~]# systemctl restart vsftpd
5.本地用户访问
【1】登陆控制:
- 建立三个用户westos lee linux ,分别设置其密码为 lee
[root@westos_node1 ~]# useradd westos
[root@westos_node1 ~]# useradd lee
[root@westos_node1 ~]# useradd linux
[root@westos_node1 ~]# echo lee | passwd --stdin lee
Changing password for user lee.
passwd: all authentication tokens updated successfully.
[root@westos_node1 ~]# echo lee | passwd --stdin linux
Changing password for user linux.
passwd: all authentication tokens updated successfully.
[root@westos_node1 ~]# echo lee | passwd --stdin westos
Changing password for user westos.
passwd: all authentication tokens updated successfully.
- 分别在三个用户中创建文件:
[root@westos_node1 ~]# su - lee
[lee@westos_node1 ~]$ touch leefile
[lee@westos_node1 ~]$ logout
[root@westos_node1 ~]# su - westos
[westos@westos_node1 ~]$ ls
[westos@westos_node1 ~]$ touch westosfile
[westos@westos_node1 ~]$ logout
[root@westos_node1 ~]# su - linux
[linux@westos_node1 ~]$ touch linuxfile
[linux@westos_node1 ~]$ logout
用server主机访问:
该参数控制匿名用户是否可以访问:
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
17 local_enable=YES # 默认情况下为NO
[root@westos_node1 ~]# systemctl restart vsftpd
[root@foundation18 ~]# lftp 172.25.18.11
lftp 172.25.18.11:~> ls
drwxrwxr-x 3 0 50 44 Aug 22 16:29 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp 172.25.18.11:/> exit
[root@foundation18 ~]# lftp 172.25.18.11 -u lee
Password:
lftp lee@172.25.18.11:~> ls
-rw-rw-r-- 1 1001 1001 0 Aug 24 10:11 leefile
lftp lee@172.25.18.11:~> exit
[root@foundation18 ~]# lftp 172.25.18.11 -u westos
Password:
lftp westos@172.25.18.11:~> ls
-rw-rw-r-- 1 1000 1000 0 Aug 24 10:11 westosfile
lftp westos@172.25.18.11:~> exit
[root@foundation18 ~]# lftp 172.25.18.11 -u linux
Password:
lftp linux@172.25.18.11:~> ls
-rw-rw-r-- 1 1002 1002 0 Aug 24 10:12 linuxfile
lftp linux@172.25.18.11:~>
【2】家目录控制
local_root=/software
想将默认家目录设置为/westossir/:
[root@westos_node1 ~]# ls /westosdir/
westos1 westos2 westos4 westos6 westos8
westos10 westos3 westos5 westos7 westos9
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
18 local_root=/westosdir # 本地用户家目录控制
[root@westos_node1 ~]# systemctl restart vsftpd
用server主机访问:
[root@foundation18 ~]# lftp 172.25.18.11 -u lee
Password:
lftp lee@172.25.18.11:~> ls
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos1
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos10
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos2
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos3
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos4
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos5
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos6
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos7
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos8
-rw-r--r-- 1 0 0 0 Aug 22 15:15 westos9
lftp lee@172.25.18.11:~>
注释后访问该用户本来的家名录:
[root@foundation18 ~]# lftp 172.25.18.11 -u lee
Password:
lftp lee@172.25.18.11:~> ls
-rw-rw-r-- 1 1001 1001 0 Aug 24 10:11 leefile
lftp lee@172.25.18.11:~>
【3】写权限控制
默认情况下家目录可以进行写、删除操作:
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
21 write_enable=NO|YES
[root@westos_node1 ~]# systemctl restart vsftpd
【4】上传文件权限控制
[root@westos_node1 ~]# vim /etc/vsftpd/vsftpd.conf
local_umask=077 # 本地用户上传文件权限的修改
[root@westos_node1 ~]# systemctl restart vsftpd
【5】用户登录控制(控制匿名用户)
[root@westos_node1 ~]# cd /etc/vsftpd/
[root@westos_node1 vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
/etc/vsftpd/ftpusers #永久黑名单(出现在此处的用户无论怎样设定都是黑名单用户)
/etc/vsftpd/user_list #默认黑名单(在配置文件中加入参数 136 userlist_deny=NO,可将黑名单变为白名单)
- 用户登录白名单
userlist_deny=NO #设定/etc/vsftpd/user_list位白名单,不在名单中的用户不能登录ftp
- 锁定用户到自己的家目录中:
chmod u-w /home/*
chroot_local_user=YES
- 锁定用户到自己的家目录中的白名单
109 chroot_local_user=YES
110 chroot_list_enable=YES
112 chroot_list_file=/etc/vsftpd/chroot_list
- 锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
6.虚拟用户访问
建立虚拟用户的过程
【1】
[root@westos_node1 vsftpd]# vim /etc/vsftpd/westos_user #建立认证文件模板
user1
123
user2
123
user3
123
【2】
[root@westos_node1 vsftpd]# db_load -T -t hash -f westos_user westos_user.db # 加密认证文件。-T转换 -t type -f > 指定转换文件
【3】
[root@westos_node1 vsftpd]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@westos_node1 pam.d]# vim /etc/pam.d/westos_ftp
account required pam_userdb.so db=/etc/vsiftpd/westos_user
auth required pam_userdb.so db=/etc/vsftpd/westos_user
【4】
[root@westos_node1 pam.d]# vim /etc/vsftpd/vsftpd.conf
134 pam_service_name=westos_ftp # 指定认证策略文件
135 guest_enable=YES # 指定虚拟用户功能开启
136 guest_username=ftp # 指定虚拟用户在ftp服务器上的用户身份
#userlist_deny=NO # 注释用户黑白名单选项
[root@westos_node1 pam.d]# systemctl restart vsftpd
在client服务器上登陆
[root@foundation18 ~]# lftp 172.25.18.11 -u user1
Password:
lftp user1@172.25.18.11:~> ls
drwxrwxr-x 3 0 50 44 Aug 22 16:29 pub
-rw-r--r-- 1 0 0 0 Aug 22 15:07 systemctl
-rw-r--r-- 1 0 0 0 Aug 21 16:55 westosfile
lftp user1@172.25.18.11:/>
7.虚拟用户家目录的独立设定
默认情况下直接访问家目录:
[root@westos_node1 vsftpd]# mkdir /virtuserdir
[root@westos_node1 vsftpd]# mkdir /virtuserdir/user{1..3}
[root@westos_node1 vsftpd]# mkdir /virtuserdir/user{1..3}/pub
[root@westos_node1 vsftpd]# touch /virtuserdir/user1/user1file
[root@westos_node1 vsftpd]# touch /virtuserdir/user2/user2file
[root@westos_node1 vsftpd]# touch /virtuserdir/user3/user3file
[root@westos_node1 vsftpd]# vim /etc/vsftpd/vsftpd.conf
local_root=/virtuserdir/$USER # $USER 表示当前用户的名称(在shell中可以这么使用)
user_sub_token=$USER # 故在此处有对$USER的说明
[root@westos_node1 vsftpd]# systemctl restart vsftpd
测试:
[root@foundation18 ~]# lftp 172.25.18.11 -u user1
Password:
lftp user1@172.25.18.11:~> ls
drwxr-xr-x 2 0 0 6 Aug 26 13:28 pub
-rw-r--r-- 1 0 0 0 Aug 26 13:52 user1file
lftp user1@172.25.18.11:/> exit
[root@foundation18 ~]# lftp 172.25.18.11 -u user2
Password:
lftp user2@172.25.18.11:~> ls
drwxr-xr-x 2 0 0 6 Aug 26 13:28 pub
-rw-r--r-- 1 0 0 0 Aug 26 13:53 user2file
lftp user2@172.25.18.11:/> exit
[root@foundation18 ~]# lftp 172.25.18.11 -u user3
Password:
lftp user3@172.25.18.11:~> ls
drwxr-xr-x 2 0 0 6 Aug 26 13:28 pub
-rw-r--r-- 1 0 0 0 Aug 26 13:53 user3file
lftp user3@172.25.18.11:/>
8.用户配置独立
user_congig_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos2
anon_upliad_enable=YES
如上设定完成后westos2用户可以上传文件
westos1和westos3不行