1. 首先进去linux界面查看是否已经安装了,如果没有就进行yum安装
rpm –qc vsftpd
yum install vsftpd
1. 进行ftp的用户权限分配
要求:a.匿名用户只能访问V-Users,且有上传和下载以及写入的权限,即rwx。且不能访问fristfile和secondfile文件。对V-Tools文件有读取和下载的权限,但是不能写入。
b.用户登录只对fristfile和secondfile文件有rwx权限,对V-Toos只有读和下载权限,且不能写入,最后不能访问V-Users文件。
Retype newpassword:
1. 为了方便后面的测试,这里建立两个账户:
建立账户ftping
[root@localhostabc]# useradd -s /sbin/nologin ftping
[root@localhostabc]# passwd ftping
Changingpassword for user ftping.
Newpassword:
Retypenew password:
passwd: all authenticationtokens updated successfully.
建立账户moist
[root@localhost abc]# useradd –d /home/moist moist
[root@localhostabc]# passwd ftping
Newpassword:
Retypenew password:
passwd: all authentication tokensupdated successfully.
建立好了以后将moist加入ftping的群组中。
usermod –G ftping moist
可以查看最后加入的状态:
cat /etc/group |grep ftping
ftping:x:506:moist 这样表示已经加入了。
2. 账户建立好了以后,需要配置vsftpd的主配置文件。
anonymous_enable=YES启用匿名访问
local_enable=YES启用本地系统用户
local_umask=022本地用户所上传文件的权限掩码
write_enable=YES本地账户可写权限
anon_umask=022匿名用户所上传文件的权限掩码
local_root=/var/ftp本地根目录
anon_root=/var/ftp匿名根目录
anon_upload_enable=YES匿名
anon_mkdir_write_enable=YES匿名启用创建写入
anon_other_write_enable=YES开放其他写入权限
xferlog_enable=YES启用日志文件
xferlog_std_format=YES日志格式
connect_from_port_20=YES连接时打开20端口
ftpd_banner=Welcometo blah FTP service欢迎字幕
chroot_local_user=YES启用将用户禁锢在主目录
listen=YES启用监听
pam_service_name=vsftpd可插拔的验证模块
userlist_enable=YES禁止user_list中文件访问,不让输密码
tcp_wrappers=YES开启TCP封装
3. 然后进行权限的给予
相关的的命令为:
chmod 更改文件权限:
chmod770 fristfile
chmod770 secondfile
chmod755 V-Tools
chmod707 V-Users
chgrp 更改文件夹的目录所属组:(-R表示子目录跟着主目录所属群组同样改变)
chgrp–R ftping fristfile
chgrp–R ftping secondfile
chgrp–R ftping V-Users
这样即可以实现:
无论是匿名还是登录用户都可以访问V-Tools的文件夹,且只有读取的权限且无法下载。
1. 匿名用户可以读写修改V-Users的文件夹,却不能打开fristfile以及secondfile
2. 登录用户用户可以读写修改fristfile以及secondfile的文件夹,却不能打开V-Users的文件夹。
3.注意如果下面这个文件夹的所属群组不是ftping,如果是root群组,那么就表示相对于这个文件夹来讲,ftping的用户组的成员将成为其他使用者,
而对 应得权限就是rwx的权限了,这样的话ftping群组的用户也一样可以访问读写这个文件夹,所以为了避免这个问题,就需要把这个文件夹也加入ftping的
群组里面,且在中间的群组权限设定上为0,则ftping群组的成员就打不开这个文件夹了。
drwx---rwx. 6 rootftping 4096 Mar 2 09:54 V-Users
如果配置好了,那么就可以实现上面的功能了。
v常用的全局配置项
listen=YES: #是否以独立运行的方式监听服务
listen_address=192.168.4.1: #设置监听的IP地址
listen_port=21: #设置监听FTP服务的端口号
write_enable=YES: #是否启用写入权限
download_enable=YES: #是否允许下载文件
userlist_enable=YES: #是否启用user_list列表文件
userlist_deny=YES: #是否禁用user_list中的用户
max_clients=0: #限制并发客户端连接数
max_per_ip=0: #限制同一IP地址的并发连接数
v常用的匿名FTP配置项
anonymous_enable=YES: #启用匿名访问
anon_umask=022: #匿名用户所上传文件的权限掩码
anon_root=/var/ftp: #匿名用户的FTP根目录
anon_upload_enable=YES: #允许上传文件
anon_mkdir_write_enable=YES: #允许创建目录
anon_other_write_enable=YES: #开放其他写入权
anon_max_rate=0: #限制最大传输速率,单位为字节
v常用的本地用户FTP配置项
local_enable=YES: #是否启用本地系统用户
local_umask=022: #本地用户所上传文件的权限掩码
local_root=/var/ftp: #设置本地用户的FTP根目录
chroot_local_user=YES: #是否将用户禁锢在主目录
local_max_rate=0: #限制最大传输速率(字节/秒)
vsftpd主要设置文件/etc/vsftpd/vsftpd.conf详解:
anonymous_enable=YES #匿名账户可以登录
local_enable=YES #本地账户可以登录
write_enable=YES #本地账户可写权限
local_umask=022 #umask值(用于权限控制)
anon_umask=022
anon_upload_enable=YES #匿名账户是否上传文件
anon_mkdir_write_enable=YES #匿名账户是否可以创建目录
anon_other_write_enable #匿名账户其它的写权限(删除等)
dirmessage_enable=YES #启用目录说明功能
(切换到目录下,显示一些消息,在目录下创建.message文件)
xferlog_enable=YES #是否启用日志文件
xferlog_file=/var/log/vsftpd.log #日志文件位置
xferlog_std_format=YES #日志格式
connect_from_port_20=YES #连接时打开20端口
#chown_uploads=YES #上传身份是否改变
#chown_username=whoever #改变上传身份
#idle_session_timeout=600 #会话超时
#data_connection_timeout=120 #连接超时
#ascii_upload_enable=YES #是否允许使用ascii上传
#ascii_download_enable=YES #是否允许使用ascii下载
#ftpd_banner=Welcome to blah FTP service. #欢迎条幅
#deny_email_enable=YES #是否拒绝邮箱登陆
#(default follows)
#banned_email_file=/etc/vsftpd/banned_emails #拒绝邮箱登陆文件
chroot_list_enable=YES #允许本地账户切换目录(跳出家目录)
chroot_list_file=/etc/vsftpd/chroot_list #此文件中的账户将不能切换家目录(必须结合chroot_list_enable=YES )
#chroot_local_user=YES #禁止所有用户切换根目录
(chroot_list_enable=YES,chroot_local_user=YES,
chroot_list_file=/etc/vsftpd/chroot_list) #此时只有放入列表中的账户可以切换,其它账户不能切换)
listen=YES #监听功能打开
pam_service_name=vsftpd #pam可插拔的验证模块
(设置pam的认证服务的配置文件名称,存入/etc/pam.d/目录下)
115 userlist_enable=YES #启用账户限制,启用/etc/vsftpd/user_list文件
userlist_deny=YES #禁止user_list中文件访问,不让输密码
userlist_deny=NO #只允许user_list中账户访问
(/etc/vsftpd/user_list不让输密码,/etc/vsftpd/ftpusers允许输密码)
【说明:在/etc/vsftpd/user_list中
# If userlist_deny=NO, only allow users in this file# If userlist_deny=YES (default), never allow users in this file, and do not even prompt for a password.】
tcp_wrappers=YES #启动系统的简易防火墙