FTP(持虚拟用户,而且每一个虚拟用户能够具备独立的属性配置)

                VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP
首先安装

主配置文件:/etc/vsftpd/vsftpd.conflinux

【匿名用户】
anonymous_enable=yes 
是否能够匿名访问shell

anon_umask=022  设置匿名用户所上传文件的默认权限掩码值数据库

anon_root=/var/ftp 设置匿名用户的FTP根目录(缺省为/var/ftp/)安全

anon_upload_enable=yes  是否能够匿名用户上传文件服务器

anon_mkdir_write_enable=yes  是否能够匿名用户有建立目录的写入权限并发

anon_other_write_enable=yes   是否能够匿名用户有其余写入权限。如对问件更名、覆盖、删除文件等app

anon_max_rate=0  限制匿名用户的最大传输速率(0为不限制),单位为字节/秒tcp

【本地用户】
local_enable=yes 
是否能够本地系统用户访问ide

local_umask=022 设置本地用户所上传文件的默认权限掩码值测试

local_root=/var/ftp 设置本地用户的ftp根目录(缺省为用户的宿主目录)

chroot_local_user=yes 是否将ftp本地用户禁锢在宿主目录中

local_max_rate=0  限制本地用户的最大传输速率(0为不限制),单位为字节/秒

【全局配置】
listen=yes 
是否以独立运行的方式监听服务

listen_address=0.0.0.0 设置监听ftp服务的IP地址

listen_port=21 设置监听FTP服务的端口号

write_enable=yes 启用任何形式的写入权限(如上传,删除文件等)都须要开启此项

download_enable=yes 是否能够下载文件(创建仅限浏览,上传的ftp服务器时可将其设为“no”)

dirmessage_enable=yes  用户切换进入目录时显示.message文件(若是存在)的类容

xferlog_enable=yes  启用xferlog日志,默认记录到/var/log/xferlog

xferlog_std_format=yes 启用标准的xferlog日志格式,若禁用此项,将使用vsftpd本身的日志格式

connect_from_port_20=yes 赞成服务器主动模式(从20端口创建数据链接)

pasv_enable=yes 赞成被动模式链接

pasv_max_port=24600 设置用于被动模式的服务器最大端口号

pasv_min_port=24500 设置用于被动模式的服务器最小端口号

pam_service_name=vsftpd 设置用于用户认证PAM文件位置(/etc/pam.d/目录中对应的文件名)

userlist_enable=yes 是否启用user_list用户列表文件  /etc/vsftpd/ptpusers

userlist_deny=yes 是否禁用user_list列表文件中的用户帐号 /etc/vsftpd/uer_list

max_clients=0 最多赞成多少个客户端同是链接(0为不限制)

max_per_ip=0 对来自同一个ip地址的客户端,最多赞成多少个并发链接(0为不限制)

tcp_wrappers=yes 是否启用TCP_Wrappers主机访问控制

开启虚拟用户
guest_enable=YES   
启用用户隐射功能  
guest_username=share   映射的系统用户名字 本地用户
pam_service_name=share   指定 pam认证文件
user_config_dir=/etc/vsftpd/share_dir
开启匿名或者本地用户登陆FTP 都是给同样的权限,要么就是一块儿把权限去了,不方便管理,因此vsftp的一个功能就是 虚拟用户 
这里我把思路理清 所有写出来!
要求匿名用户能够浏览,下载可是不能上传!本地用户不能登陆
虚拟用户 chenhao有下载上传写入 可是不能删除
虚拟用户 fenglei 有浏览下载权限可是不能上传
虚拟用户:首先建立虚拟用户列表
vi /etc/vsftpd/share(名字随便填)
第一行 名字 第二行 密码

建立数据库DB
cd /etc/vsftpd/
db_load -T -t (类型)hash -f share share.db(转换后名字)

file share.db 查看格式    

而后把文件隐藏起来 chmod 600 /etc/vsftpd/share* 

把权限给最低

而后加用户测试 :useradd -d 指定家目录 -s 指定shell /sbin/nologin 用户名share 不给登录到系统

建立虚拟用户支持

创建PAM认证文件
vi /etc/pam.d/share 名字随便起 可是要知道什么意思 跟上面名字同样 方便一些

auth       required     pam_userdb.so    db=/etc/vsftpd/share   (DB在哪里)后缀DB直接隐藏了 
account       required     pam_userdb.so    db=/etc/vsftpd/share

新建配置文件保存 
最后修改主配置文件 vi /etc/vsftpd/vsftpd.conf  加4条语句 而且把匿名的语句注释了和一些权限放到最低,直接给子文件配置

guest_enable=YES   启用用户隐射功能   
guest_username=share  映射的系统用户名字 本地用户
pam_service_name=share  指定 pam认证文件
user_config_dir=/etc/vsftpd/share_dir

建立子文件 mkdir /etc/vsftpd/share_dir 随便建的子目录 在里面建子文件
cd /etc/vsftpd/share_dir 切换进去
而后建子文件 就是用户的需求 能够给那些权限
好比 chenhao 用户能够登陆 可以正常浏览,下载文件,也能够上传文件,可是不可以删除,新建目录

vi chenhao

local_root=/home/share  指定的家目录
anon_upload_enable=yes  能够上传文件 可是不能进行删除或者新建 由于 没有给他权限

(必须锁在家目录 让他不能去系统别的地方)
chroot_local_user=yes 是否将ftp本地用户禁锢在宿主目录中


而且linux 主机中的系统用户没法登录FTP
而且匿名用户只能下载 不能上传

测试结果:

 

测试虚拟用户

上传下载均可以

上传不能够 下载能够!

 

 

在主配置文件上必需要添加这句话!后面跟的是你子文件夹!

必需要加这句话!

启用独立配置文件

 注意:权限必定要给755 不然会发现没法浏览目录等状况!作实验发现
[root@localhost ~]# chmod 775 /home/share/

[root@localhost ~]# chown share:share /home/share/

而后按需求 复制上面的参数保存退出就能够!

达到不一样用户不一样权限更方便企业管理员管理每一个用户帐户,而且很安全,权限能够自由分配!

 

修改完成后 从新启动服务!service vsftpd reload 从新加载!
相关文章
相关标签/搜索