ftp服务 Linux

使用两个虚拟账户,web,admin对公共文件进行读写权限分配,web只读权限,admin读、新建、修改权限。

1、创建账户数据库

建立文件并写入两个虚拟账户到文件里

mkdir /etc/vsftpd/user
vim /etc/vsftpd/user/user.txt  # 写入虚拟账户和密码

web # 虚拟账户名
web # 虚拟账户的密码
admin # 虚拟账户名
admin # 虚拟账户的密码
[提示]: 此处内容是写入user.txt文件。

db_load -T -t hash -f /etc/vsftpd/user/user.txt /etc/vsftpd/user/user.db  # 使用db_load命令生成db数据库文件。
chmod 700 /etc/vsftpd/user/user.db  # 修改数据库文件的访问权限。

2、配置PAM文件(ftp策略)

修改vsftp对应的PAM配置文件 /etc/pam.d/vsftpd ,把所有内容注释。

auth required pam_userdb.so db=/etc/vsftpd/user/user
account required pam_userdb.so db=/etc/vsftpd/user/user

3、创建虚拟账号对应系统账户。(可使用可不使用)[不使用此步骤]

针对不同虚拟帐号指定系统帐号的家目录(虚拟web帐号只能访问系统web的家目录,虚拟admin帐号同理,虚拟web帐号不能访问admin目录,虚拟admin帐号同理)

mkdir /var/ftp/web  # 创建系统web家目录
useradd -d /var/ftp/web web
chown web:web /var/ftp/web
chmod o=r /var/ftp/web
mkdir /var/ftp/admin  # 创建系统admin家目录
useradd -d /var/ftp/admin admin
chown admin:admin /var/ftp/admin
chmod o=rw /var/ftp/admin

4、配置vsftpd.conf文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO # 关闭匿名用户访问
anon_upload_enable=NO # 关闭匿名用户上传文件
anon_mkdir_write_enable=NO # 关闭匿名用户创建目录
anon_other_write_enable=NO # 关闭匿名用户的其它权限(重命名、删除等操作权限)
anon_world_readable_only=NO # 关闭匿名用户下载可读的文件
local_umask=777 # 默认本地用户的umask值
local_enable=YES # 开启本地用户登陆ftp(为什么要开始最后会说)
chroot_local_user=YES # 禁锢用户在FTP目录里
listen=YES # 开启独立运行以ipv4监听服务
listen_ipv6=NO # 关闭独立运行以ipv6监听服务
allow_writeable_chroot=YES # 如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,需新增加下面这条配置
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/config # 虚拟帐号的配置路径
max_clients=100 # 设置FTP服务器最大接入客户端数量
max_per_ip=10 # 每个客户端最大连接数
虚拟帐号web、admin映射ftp帐号,所以要开启本地用户登陆ftp。虚拟帐号本身为匿名用户

5、web配置

guest_enable=yes # 开启web虚拟帐号登陆
guest_username=web # 设置虚拟帐号对应系统帐号(如第三步不用就可以不写这条)
anon_world_readable_only=yes # 配置虚拟web帐号对全局可读可下载
anon_max_rate=30000 # 限定传输速度30kb

6、admin配置

guest_enable=yes # 开启web虚拟帐号登陆
guest_username=admin # 设置虚拟帐号对应系统帐号(如第三步不用就可以不写这条)
anon_world_readable_only=yes # 配置虚拟admin帐号对全局可读可下载
write_enable=yes # 可以控制是否允许任何更改文件系统的FTP命令
anon_upload_enable=yes # 关闭匿名用户上传文件
anon_mkdir_write_enable=yes # 关闭匿名用户创建目录
anon_other_write_enable=yes # 关闭匿名用户的其它权限(重命名、删除等操作权限)
anon_max_rate=60000 # 限定传输速度60kb
allow_writeable_chroot=yes # 如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,需新增加下面这条配置

7、配置防火墙和SELinux

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
setsebool -P ftpd_full_access=on

8、开启ftp服务

systemctl restart vsftpd
systemctl enable vsftpd

你可能感兴趣的:(ftp服务 Linux)