ftp多用户多目录配置

ftp多用户多目录配置

1.直接在宿主机上安装ftp

1、防火墙配置

systemctl stop firewalld.service #停止firewall(防火墙)
systemctl disable firewalld.service #禁止firewall开机启动
#修改SELINUX,否则ftp用户无新建文件权限
vi /etc/sysconfig/selinux
SELINUX=disabled
然后执行:setenforce 0

2、安装ftp

yum install vsftpd

3、增加用户

useradd test1
passwd test1
mkdir -p /ftpdata/test1ftp
chown -R test1.root /ftpdata/test1ftp(ftp主目录用于存放文件根据自己喜好自定义)
chmod -R 777 /ftpdata/test1ftp(给文件目录授予权限)

4、修改配置文件 /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
#local_enable=YES         #设置是否允许本地用户登录  上面有
#write_enable=YES         #是否允许用户有写权限     上面有
#local_umask=022          #设置本地用户创建文件时的umask值 
#dirmessage_enable=YES
#xferlog_enable=YES
#connect_from_port_20=YES
#xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#锁定用户到各自的根目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_port=21        #端口号自己定义
listen_ipv6=NO
pam_service_name=vsftpd
#local_root=/ftpdata/ #用户路径
user_config_dir=/etc/vsftpd/userconfig #用户根目录配置文件
allow_writeable_chroot=YES

chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list

那么, 凡是加在文件vsftpd.chroot_list中的用户都可以切换到其他目录。
所以如果想限制用户只能访问自己的根目录,则需要以下几步:
1)chroot_local_user=YES,chroot_list清空用户名。
2)/etc/vsftpd/userconfig下以用户名为名建立文件,vim test1,内容为
设置的根目录

local_root=/ftpdata/test1ftp/

3) usermod -d /ftpdata/test1ftp -u 1002 test1
修改 /etc/passwd内的用户根目录。
至此,ftp用户登录后限制到自己的根目录。
4)重启vsftpd.service
systemctl restart vsftpd.service
截图如下。
否则ftp用户根目录默认为/home/test1
在这里插入图片描述
配置了user_config_dir就不用再配置local_root,否则连接不上。

2.使用Docker安装ftp

1.拉取镜像

docker pull fauria/vsftpd

2.启动容器

docker run -d -v /ftpdata/:/home/vsftpd \
-p 20:20 -p 21:21 -p  21100-21110:21100-21110 \
-e FTP_USER=test -e FTP_PASS=test \
-e PASV_ADDRESS=192.168.60.128 \
-e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd

/home/ftp:/home/vsftpd:映射 docker 容器 ftp 文件根目录(冒号前面是宿主机的目录),docker根目录固定写这个目录
-p也可以改成 --network=host

3.在单用户ftp基础上创建多用户

3.1 进入容器

docker exec -it vsftpd /bin/bash

3.2 编辑配置文件

[root@node69 /]# vi /etc/vsftpd/virtual_users.txt
test
test
test1
test1

3.3 创建用户文件夹

mkdir -p /home/vsftpd/test1
//此时目录所有者是root
//如果你想把test1账号指定其他目录的话,可以使用软链接
ln -s /data/list /home/vsftpd/test1

3.4 生成二进制文件

#生成二进制文件
db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

3.5 重启docker容器

docker restart vsftpd
重启后目录的所有者变成ftp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值