指定用户指定目录的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

三。建立用户和指定目录

#useradd -d /home/ftpdata3 ftp3

#passwd ftp3

建立用户ftp3,并指定其ftp目录为ftpdata3

#useradd -d /home/ftpdata3 ftp4

#passwd ftp4

建立用户ftp4,并指定其ftp目录为ftpdata4

这样ftp3和ftp4用户就被指定到相应的文件夹下。

四。修改vsftpd.conf配置文件

将anonymous_enable改为NO,阻止匿名上传

将chroot_list_enable和chroot_list_file的注释去掉,阻止用户访问上级目录

五。在/etc/vsftpd下建立chroot_list文件

建立完成后,在其中添加用户ftp3,ftp4,使其只允许访问指定目录。

六。启动或是重启fto服务。

#service vsftpd restart(start)

启动成功后,就可以访问ftp服务了。

注:配置文件中的解释

anonymous_enable=YES开启匿名用户登录 
local_enable=YES开启本地用户登录 
write_enable=YES开启写权限以便上传 
local_umask=022设置上传后文件为user=rwx, group=, other= 
这样,用户上传文件后,是不能删除和修改了。因为用户属于group组。 
解决方法是,设置local_umask=002。 
最终文件权限是777-文件夹掩码-local_umask掩码 
anon_upload_enable=YES开启匿名用户上传权限 
统一匿名上传用户上传的文件的属性 
chown_uploads=YES 
chown_username=ftp 
设定chroot配置,禁止特定用户访问上一级目录 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list 
userlist_enable=YES这个选项如果是YES,那/etc/vsftpd/user_list中的用户将被禁止访问ftp。如果是NO,则只有user_list里面的用户才能访问ftp

作者: ricky_pc   发布时间: 2010-11-15