vsftpd添加用户并限制目录及指定用户访问指定目录
开发那边更新速度如果比较快,每天会有无数的文件或者目录交给运维更新上线,这样比较麻烦,干脆给他们搭FTP让他们自己上传修改,但有一问题,就是权限问题,公司五个站点有五个目录,每个人负责不同的站点,如何让各自都不干扰别人,或者说不到别人的目录搞“破坏”!下面解决这个问题!
一。检查Linux中vsftpd的安装情况。
就不啰嗦了
二。将系统中的SELinux关闭,然后重新启动电脑(不关闭的话修改好标签也可以)
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
注:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
setsebool ftpd_disable_trans 1
三。建立用户和指定目录
注意:若要为目录制定相应的权限,最好在指定ftp家目录之前修改
然后将vsftpd.conf配置文件里的local_umask的值修改为000就可以了,生成目录默认777,文件默认666
#useradd -d /var/www -s /sbin/nologin ftp3
#passwd ftp3
建立用户ftp3,并指定其家目录为/var/www,禁止登陆
#useradd -d /var/web -s /sbin/nologin ftp4
#passwd ftp4
建立用户ftp4,并指定其家目录为/var/web,禁止登陆
这样ftp3和ftp4用户就被指定到相应的文件夹下。
四。修改vsftpd.conf配置文件
将anonymous_enable改为NO,阻止匿名上传
将chroot_list_enable和chroot_list_file的注释去掉,阻止用户访问上级目录
五。在/etc/vsftpd下建立chroot_list文件
建立完成后,在其中添加用户ftp3,ftp4,(一行一个)使其只允许访问指定目录。
六。启动或是重启ftp服务。
#service vsftpd restart(start)
启动成功后,就可以访问ftp服务了。
下面附vsftpd.conf的一些配置
1. 匿名服务器的连接(独立的服务器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
Anonymous_enable=yes (允许匿名登陆)
Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
Local_umask=022 (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
Xferlog_enable=yes (激活上传和下传的日志)
Xferlog_std_format=yes (使用标准的日志格式)
Ftpd_banner=XXXXX (欢迎信息)
Pam_service_name=vsftpd (验证方式)*
Listen=yes (独立的VSFTPD服务器)*
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
本文作者: Liaodeity
本文链接: https://www.jianbaizhan.com/article/59
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!