【实现步骤】(如果报权限不够就加sudo)
1.检查安装vsftpd服务器以root进入终端后(其他账户进入终端的可以用su root 输入密码后进入root 模式)之后,在终端命令窗口输入以下命令进行验证:# rpm –qa | grep vsftpd。如果结果显示为“vsftpd-1.1.3-8”,则说明系统已经安装vsftpd服务器。若没有回复,即系统中没有安装。
2.如果没有安装,使用YUM命令进行安装
yum install vsftpd -y
3.启动服务
使用vsftpd软件,主要包括如下几个命令:
启动ftp命令#service vsftpd start
停止ftp命令#service vsftpd stop
重启ftp命#service vsftpd restart
4.创建用户
(1)首先要启动服务
(2)创建两个用户
adduser -s/bin/nologin -d/var/ftp/ftp1 ftp1
passwd ftp1
输入密码:
再次输入密码:
5.vsftpd的配置
安装完之后在/etc/vsftpd/路径下会存在三个配置文件。
vsftpd.conf: 主配置文件
ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。
user_list: 指定的用户是否可以访问ftp服务器,通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 这三个配置允许文件中的用户访问FTP。
(1)查看主配置文件的默认配置:
(使用:cat /etc/vsftpd/vsftpd.conf |grep -v '^#';)
(2)修改配置文件:
登录ftp后会发现,用户可以访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将用户的访问范围控制在其主目录下。方法如下:
a. vi /etc/vsftpd/vsftpd.conf进入ftp配置文件目录并编辑此文件,
b.找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能;
找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list,删除前面的那个#号,表示开启此限制功能;加入chroot_local_use=NO
(进入编辑框后按i进行开始编辑)
c.进入配置文件后,在末尾加入如下三行:
① userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/vsftpd.user_list
d.禁止匿名用户登录
(编辑完,按esc后使用“:wq”保存并退出)
e. 对一些文件进行编辑
① 在etc目录找到vsftpd.chroot_list文件,进入编辑状态
加入你要限制的用户名,一行一个用户,比如ftp2
(编辑完,按esc后使用“:wq”保存并退出)
②进入vsftpd目录,找到vsftpd.user_list,键入ftp11,意味允许ftp11登陆ftp服务器
(编辑完,按esc后使用“:wq”保存并退出)
再在本机上,通过控制台,用ftp1通过ftp访问系统,用户成功登陆,并且成功的被限制在自己的主目录下,无法访问其他目录。
依次方法创建了2个用户,ftp1、ftp2。
查看ftp状态 sestatus -b | grep ftp:
然后输入:
给用户权限:自己看着给权限
usermod -s /bin/nologin ftp1 #限定用户ftp1,只能ftp
usermod -s /bin/bash ftp1 #用户ftp1恢复正常
usermod -d /home/ftp1 ftp1 #更改用户ftp1的主目录为/ftp1
关闭防火墙:
重启ftp命#service vsftpd restart
如果报错是:ftp登陆不上,出现500 oops....
FTP路径不存在:mkdir -p FTP目录
FTP权限不够:chown 777 -R FTP目录
未开启访问权限:setsebool ftp_home_dir on
vi /etc/vsftpd/vsftpd.conf开启本地访问chroot_local_user=YES如果有#去掉
重启ftp服务
网友评论