需求背景:第三方厂商中国移动、电信、联通、微软、京东与我司内部进行接口交易,采用ftp协议,外部厂商负责上传文件,内部系统负责下载各厂商上传的文件。
文章目录
一、用户与目录1. 用户与目录约定2. 用户创建3. 用户密码4. 创建用户家目录(非默认)5. 用户家目录绑定二、用户、组、权限2.1. 查看ftp组ID2.2. 修改ftp组ID2.3. 用户添加到组三、用户、组、权限3.1. 调整用户家目录组的权限(非内部系统)3.2. 调整用户家目录组的权限(内部系统)3.5. 赋予权限四、ftp配置与启动4.1. 限制用户活动范围4.2. 重新启动ftp4.3. 监控ftp运行状态五、测试验证5.1. 预期效果5.2. 准备测试文件5.3. 用户上传文件5.4. 效果分析5.5. nb用户文件下载5.6. 效果分析5.7. 异常解决一、用户与目录
1. 用户与目录约定
2. 用户创建
useradd yduseradd dx useradd lt useradd wr useradd jd useradd nb
3. 用户密码
密码统一为123456
passwd ydpasswd dx passwd lt passwd wr passwd jd passwd nb
4. 创建用户家目录(非默认)
mkdir /app/ftp/yd /app/ftp/dx /app/ftp/lt /app/ftp/wr /app/ftp/jd /app/ftp/nb -p
操作记录:
[root@localhost ~]# mkdir /app/ftp/yd /app/ftp/dx /app/ftp/lt /app/ftp/wr /app/ftp/jd /app/ftp/nb -p [root@localhost ~]# cd /app/ftp/[root@localhost ftp]# ll总用量 0drwxr-xr-x. 2 root root 6 9月 10 18:17 dxdrwxr-xr-x. 2 root root 6 9月 10 18:17 jddrwxr-xr-x. 2 root root 6 9月 10 18:17 ltdrwxr-xr-x. 2 root root 6 9月 10 18:17 wrdrwxr-xr-x. 2 root root 6 9月 10 18:17 yddrwxr-xr-x. 2 root root 6 9月 10 18:17 nb[root@localhost ftp]#
5. 用户家目录绑定
vim /etc/passwd
原配置:
调整后配置:
二、用户、组、权限
2.1. 查看ftp组ID
将yd、dx、lt、wr、jd、nb6个用户组ID都修改为ftp组ID
# 查看现ftp组IDcat /etc/group
2.2. 修改ftp组ID
默认
yd:x:1004:1004::/app/ftp/yd:/bin/bashdx:x:1005:1005::/app/ftp/dx:/bin/bashlt:x:1006:1006::/app/ftp/lt:/bin/bashwr:x:1007:1007::/app/ftp/wr:/bin/bashjd:x:1008:1008::/app/ftp/jd:/bin/bashnb:x:1009:1009::/app/ftp:/bin/bash
执行修改组ID命令
usermod -g 50 ydusermod -g 50 dxusermod -g 50 ltusermod -g 50 wrusermod -g 50 jdusermod -g 50 nb
调整后
yd:x:1004:50::/app/ftp/yd:/bin/bashdx:x:1005:50::/app/ftp/dx:/bin/bashlt:x:1006:50::/app/ftp/lt:/bin/bashwr:x:1007:50::/app/ftp/wr:/bin/bashjd:x:1008:50::/app/ftp/jd:/bin/bashnb:x:1009:50::/app/ftp:/bin/bash
2.3. 用户添加到组
将yd、dx、lt、wr、jd、nb6个用户添加到ftp组
默认:
cat /etc/group
将用户添加到ftp组
usermod -G ftp ydusermod -G ftp dx usermod -G ftp lt usermod -G ftp wr usermod -G ftp jd usermod -G ftp nb
调整后
三、用户、组、权限
3.1. 调整用户家目录组的权限(非内部系统)
将yd、dx、lt、wr、jd、nb6个用户的家目录的用户从属权限调整为对应的用户,对用用户的家目录的用户组从属权限调整为ftp用户组
默认
cd /app/ftp/ll
先调整yd、dx、lt、wr、jd
5个用户的操作
chown yd.ftp yd/ -Rchown dx.ftp dx/ -R chown lt.ftp lt/ -R chown wr.ftp wr/ -R chown jd.ftp jd/ -R
注意:在/app/ftp/
目录下执行上面的命令
调整后效果
3.2. 调整用户家目录组的权限(内部系统)
然后,对nb用户的操作如下,进入到/app目录执行以下命令
默认
cd /appchown nb.ftp ftp/
调整后效果
3.5. 赋予权限
chmod 775 ftp/ -R
注:
四、ftp配置与启动
4.1. 限制用户活动范围
简言之,就给是每个用户限制本身用户的目录可见范围
打开权限限制属性
vim /etc/vsftpd/vsftpd.conf
把101行和103行注释打开
vim /etc/vsftpd/chroot_list# 把这些用户添加进去yddxltwrjdnb
注:以前的u01用户
先忽略
4.2. 重新启动ftp
# 重新启动ftpsystemctl start vsftpd.service
4.3. 监控ftp运行状态
# 监控ftp运行状态systemctl status vsftpd.service
五、测试验证
5.1. 预期效果
yd、dx、lt、wr、jd
5个用户上传的文件,只对自己可见
yd、dx、lt、wr、jd
5个用户上传的文件,他们之间相互是不可见
yd、dx、lt、wr、jd
5个用户上传的文件,nb用户均可见并可以进行下载解析
nb用户上传的文件,yd、dx、lt、wr、jd
5个用户不可见
5.2. 准备测试文件
5.3. 用户上传文件
ip:192.168.159.102用户名:yd、dx、lt、wr、jd、nb密码:123456端口:21
yd用户上传文件
dx用户上传文件
lt用户上传文件
wr用户上传文件
jd用户上传文件
nb用户上传文件
5.4. 效果分析
从面截图可以看出:
yd、dx、lt、wr、jd
5个用户上传的文件,只对自己可见
yd、dx、lt、wr、jd
5个用户上传的文件,他们之间相互是不可见
5.5. nb用户文件下载
登录nb用户下载yd、dx、lt、wr、jd
5个用户上传的文件
执行前:
nb
用户下载yd用户
上传的文件
nb
用户下载dx用户
上传的文件
nb
用户下载lt用户
上传的文件
nb
用户下载wr用户
上传的文件
nb
用户下载jd用户
上传的文件
5.6. 效果分析
yd、dx、lt、wr、jd
5个用户上传的文件,nb用户均可见并可以进行下载解析
nb用户上传的文件,yd、dx、lt、wr、jd
5个用户不可见(因为这5个用户活动的可见目录范围限制到了用户本身的家目录下面,ftp目录属于他们家目录的上一级目录)
5.7. 异常解决
如果遇到以下异常请移步
ftp 553 Could not create file
现在的效果是这样的,内部系统可以看到
如果觉得《FTP多用户权限 linux环境 一站式解决方案(基础篇)》对你有帮助,请点赞、收藏,并留下你的观点哦!