CentOs ftp 设置用户访问指定目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOs ftp 设置用户访问指定目录相关的知识,希望对你有一定的参考价值。

vsftpd.conf 设置:
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
vsftpd.chroot_list 设置
ftpuser
passwd 设置
ftpuser:x:500:50::/var/www:/sbin/nologin
ftp连接的展示出所有的目录出来了,但是每个文件夹里面内容都读取失败

    使用root账号登录centos系统

    检查是否已安装vsftp

    rpm -qa |grep vsftpd #未输出信息,表示未安装vsftp

    通过yum安装vsftp

    yum -y install vsftpd

    ftp启动、重启、停止、状态查询命令

    service vsftpd start        #启动ftpservice vsftpd stop         #停止ftpservice vsftpd restart      #重启ftpservice vsftpd status       #查询ftp状态

    设置为开机启动(可设置)

    chkconfig vsftpd on

    设置配置文件

    vi /etc/vsftpd/vsftpd.conf

    修改如下内容:

    anonymous_enable=NO            #设置不允许匿名账户登录chroot_local_user=YES          #所有用户限制在主目录中chroot_list_enable=NO          #不启动限制用户名单,直接限制所有用户userlist_enable=NO             #当为YES时只有userlist_file文件中指定的用户才能登录allow_writeable_chroot=YES     #(在文件尾部新增)防止用户有写入权限时报错local_root=/home/www            #(在文件尾部新增)设置用户的根目录

    重启ftp

    service vsftpd restart

    创建ftp用户

    创建用户组

    groupadd ftpgroups

    创建用户

    # useradd 添加用户命令   -d /home/www 指定用户根目录  -g ftpgroups 加入用户组  ftptest用户名useradd -d /home/www -g ftpgroups ftptest

    设置用户密码

    passwd ftptest          # passwd(命令) ftptest(用户名,根据你实际情况写)

    设置不允许用于系统登录

    usermod -s /sbin/nologin ftptest  #ftptest(用户名,根据你实际情况写)

    设置文件权限

    chmod 755 /home/www

    设置目录拥有者

    chown -R ftptest:root /home/www      #ftptest:ftp用户名 ; /home/www:文件目录

    设置防火墙 
    查看防火墙状态,如果未启动,直接跳过本步骤

    systemctl status firewalld

    开放20、21端口(阿里云服务器还需配置安全组开放防火墙)

    firewall-cmd --permanent --zone=public --add-port=20/tcpfirewall-cmd --permanent --zone=public --add-port=20/udpfirewall-cmd --permanent --zone=public --add-port=21/tcpfirewall-cmd --permanent --zone=public --add-port=21/udpfirewall-cmd --reload #重新载入

    至此ftp服务安装成功,如果出现不能访问或不能写入的情况,就还需要设置SELinux(关闭)

    sestatus -v     #查看SELinux状态,如果SELinux status参数为enabled即为开启状态setenforce 0    #临时关闭(不用重启机器)
参考技术A 1. vsftpd.conf文件中有说明
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
所以chroot_local_user配置使用默认即可
2.若想仅允许系统用户进行登录,仅仅修改/etc/vsftpd/vsftpd.conf(默认配置)文件中的
anonymous_enable(允许匿名)设置为NO,重新启动服务后,用系统用户帐号密码登录即可
参考技术B 打开就可以的、、 参考技术C 列出目录就证明服务安装成功了,下载不了文件一般是防火墙的问题。需要弄明白ftp的主动模式与被动模式的区别 参考技术D 这个很正常
你要研究深一点使用虚拟用户
http://hx100.blog.51cto.com/44326/383143/ 可以参考下追问

不行,你给的参考的vsftpd 跟我的版本不同,按照参考的步骤,结果是无法连接服务器

追答

参考类似的设置
这方面的要你自己测试,配置蛮多的

ftp设置用户只能够访问指定的目录

如新建一个admin用户,若指定admin只能访问/home /uftp目录下的administer目录。则:

(1)       首先要存在administer目录,并且保证administer目录不具备可写的权限,否则将造成登录失败。可使用“chmod a-w + 目录”进行权限的修改。

(2)       “vi / etc/vsftpd.conf”,在文件末位添加local_root=/home/uftp/administer.其中administer即是限制访问的目录。

(3)       将chroot_list_enable=YES,chroot_list_file=/etc/vsftpd.chroot_list,注释去掉。

(4)       若没有vsftpd.chroot_list文件,则新建vsftpd.chroot_list文件:“vi / etc/ vsftpd.chroot_list”.

(5)       在文件里添加“admin”用户。

(6)       重启ftp服务器。“sudo service vsftpdrestart”。


以上是关于CentOs ftp 设置用户访问指定目录的主要内容,如果未能解决你的问题,请参考以下文章

ftp设置用户只能够访问指定的目录

FTP如何部署指定用户访问指定目录

centos7搭建虚拟用户ftp服务

linux ftp服务器设置,只允许用户访问指定的文件夹,禁止访问其他文件夹

centos搭建ftp服务

解决ftp限制用户访问上层目录后无法登陆问题