阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

建立多个ftp虚拟机用户支持不同的访问权限实例

122次阅读
没有评论

共计 4155 个字符,预计需要花费 11 分钟才能阅读完成。

实验环境:
公司最近上了一款游戏, 当游戏客户端登录到服务器有补丁更新时, 是通过 ftp 来更新数据. 所以需要建立一个普通虚拟用户账号, 用于客户端登录 ftp 服务器更新补丁用,此账号只支持下载权限. 由于平时我们也要维护服务器后台上传数据, 需要建立一个专用虚拟用户账号, 此账号拥有所有权限. 还要把上传数据发布到普通虚拟用户家目录下,提供下载!

一个普通用户 public:下载
一个专用用户 personal:所有权限

解决方案:
1 创建用户数据库:
#vim /etc/vsftpd/vsftpd_login.txt
public  账号
public  密码
personal 账户
personal 密码

2 生成数据库:
db_load:安装 db4,db4-devel,db4-utils
#yum -y install db4*
#db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db

3 修改数据文件访问权限:
chmod 600  /etc/vsftpd/vsftp_login.db

4 修改 pam 配置:
#cat /etc/pam.d/vsftpd
将原来的全部注释掉,加入:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:db=/etc/vsftpd/vsftpd_login 后面的.db 必须去掉

5 创建虚拟账号对应的系统用户:

普通帐号 public 对应系统帐号 ftp_public,并指定其主目录为 /var/ftp/public
普通帐号 public 只允许下载,修改 public 目录其他用户权限为 rx 可读可执行

专用帐号 personal 对应系统帐号 ftp_personal, 指定主目录为 /var/ftp/personal
专用帐号 personal 允许上传和下载, 所以对 personal 目录权限设置为 rwx, 可读可写可执行, 如果不设置可执行用户登录会出不能更改目录错误
# useradd -d /var/ftp/personal/ -s /sbin/nologin ftp_personal
# useradd -d /var/ftp/public/ -s /sbin/nologin  ftp_public
# chmod -R 500 /var/ftp/public/
# chmod -R 700 /var/ftp/personal/

6 为不同的虚拟用户创建不用的 ftp 权限:
#vim /etc/vsftpd/vsftpd.com
anonymous_enable=NO(修改配置)禁用匿名用户登录
write_enable=YES(默认开启)允许使用任何可以修改文件系统的 FTP 的指令
local_enable=YES(默认开启)启用本地用户登录设置
chroot_local_user=YES(自建配置)将所有本地用户限制在家目录中
pam_service_name=vsftpd(默认开启)配置 vsftpd 使用的 PAM 模块为 vsftpd
user_config_dir=/etc/vsftpd/vsftpd_login(自建配置)设置虚拟帐号的主目录为 /vsftpd_login
max_clients=300(自建配置)设置 FTP 服务器最大接入客户端数为 300 个
max_per_ip=10(自建配置)设置每个 IP 地址最大连接数为 10 个
listen=YES
port_enable=NO(自建配置)取消 PORT 模式进行数据传输
connect_from_port_20=NO(修改配置)PORT 模式进行数据传输部使用 20 端口
pasv_enable=YES(自建配置)允许 PASV 模式进行数据传输
pasv_min_port=65341(自建配置)PASV 模式下数据传输所使用 port 范围下界
pasv_max_port=65351(自建配置)PASV 模式下数据传输所使用 port 范围上界

7 建立虚拟账户的配置文件:
在 user_config_dir 指定路径下,建立与虚拟帐号同名的配置文件并添加相应的配置字段

[root@red-hat-5 vsftpd]# mkdir /etc/vsftpd/vsftpd_login
[root@red-hat-5 vsftpd]# touch /etc/vsftpd/vsftpd_login/public
[root@red-hat-5 vsftpd]# touch /etc/vsftpd//vsftpd_login/personal

首先建立普通帐号 public 的配置文件
[root@red-hat-5 vsftpd_login]# echo guest_enable=yes >>public
[root@red-hat-5 vsftpd_login]# echo guest_username=ftp_public >>public
[root@red-hat-5 vsftpd_login]# echo anon_world_readable_only=no >>public
[root@red-hat-5 vsftpd_login]# echo anon_max_rate=50000 >>public
[root@red-hat-5 vsftpd_login]# cat public
guest_enable=yes  开启虚拟帐号登录
guest_username=ftp_public    设置虚拟用户 public 对应的系统帐号为 ftp_public
anon_world_readable_only=no  不允许匿名用户浏览器整个服务器的文件系统
anon_max_rate=50000    限定传输速率为 50KB/s

注意:
vsftpd 对于文件传输速度限制并不是绝对锁定在一个数值上哈,而是在 80%~120% 之间变化哈~ 比如设置 100KB/ s 则实际是速度在 80KB/s~120KB/ s 之间变化哈~

接着建立专用帐号的配置文件 personal
[root@red-hat-5 v:wqsftpd_login]# echo guest_enable=yes >> personal
[root@red-hat-5 vsftpd_login]# echo guest_username=ftp_personal >> personal
[root@red-hat-5 vsftpd_login]# echo anon_world_readable_only=no >> personal
[root@red-hat-5 vsftpd_login]# echo anon_mkdir_write_enable=yes >> personal
[root@red-hat-5 vsftpd_login]# echo anon_upload_enable=yes >> personal
[root@red-hat-5 vsftpd_login]# echo anon_max_rate=50000 >> personal
[root@red-hat-5 vsftpd_login]# cat personal
guest_enable=yes 开启虚拟帐号登录 
guest_username=ftp_ personal  设置虚拟用户对应的系统帐号为 ftp_personal
anon_other_write_enable=YES  允许匿名账号具有删除. 更名权限
anon_mkdir_write_enable=yes  允许创建文件夹
anon_upload_enable=yes        开启匿名帐号的上传功能
anon_world_readable_only=no  不允许匿名用户浏览整个服务器的文件系统
anon_max_rate=100000          限定传输速度为 100KB/s

#service vsftpd restart

关于把上传数据发布到普通虚拟用户家目录下提供下载!
[root@red-hat-5 ~]# cp /var/ftp/personal/* /var/ftp/public/

把上传数据发布到普通虚拟用户家目录下提供下载
[root@red-hat-5 ~]# chown -R ftp_public.ftp_public /var/ftp/public/

更改 public 目录的所有者和属组为 ftp_public,这样 public 用户才能下载 

 

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

CentOS 7 安装配置 FTP 服务器  http://www.linuxidc.com/Linux/2014-11/109233.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118443.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4155字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中