VSFTPD的又一个案例的实现过程

2010年02月27日 Linux服务器 暂无评论 阅读 9,859 views 次

最近要架设个FTP服务器,总体要求:
1、不同网站的用户登陆到自己的网站根目录,用户自己的权限不能改变。
2、一个共同的帐户用来共享资料,相应的权限只能上传和下载,但不能删除文件和文件夹,但能建立文件夹。
3、限制所有用户在自己有目录里面,也就是chroot
实现构想:
1、用user_config_dir,实现不同用户登陆不再目录和设置不同权限的目的。
2、开启chroot_list,用来限制用户只能在自己的目录里面
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
3、考虑到第二条件,用一些权限设置来实现,比如说把上传文件的所有都全部改成ROOT,但chown_uploads和chown_username只能对匿名用户起作用,当然也可以通过本地用户映射来实现,但是和我们的题目要求有点不符合,因为不是本地用户。如果没有这些条件的限制,大家可以考虑用这个chown_uploads和chown_username来实现。
4、还记得我们前面提到的cmds_allowed的用法吗(参考前面的教程http://www.opsers.org/2010_02_647.html)我们来用他来实现,这样方便、快捷、实用!
好,下面就来看我们的实现步骤吧!

useradd -d /home/ftpuser -s /sbin/nologin ftpuser
passwd ftpuser
Changing password for user ftpuser.
New UNIX password:
Retype new UNIX password:

编译vsftpd.conf文件,内容如下 [root@localhost vsftpd]# grep -Ev '^#' vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
user_config_dir=/etc/vsftpd/user_conf
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

接下来就是建立用户的配置文件夹
mkdir /etc/vsftpd/user_conf
然后在里面增加上用户名的配置文件
vim /etc/vsftpd/user_conf/ftpuser
local_root=/test #设置用户登陆的目录
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER #给用户使用的权限,注意这里不能有多余的空格

建立用户登陆的目录和给他相应的权限
midir /test
chown ftpuser:ftpuser /test

之后把用户增加到chroot_list文件中
vim /etc/vsftpd/chroot_list
把ftpuser增加到里面,一个用户一行
这样,我们的配置就完成了,然后启动vsftpd进行测试吧!
最后,为了方便大家在后面的使用,我搞了个比较全的cmds_allowed,具体的命令自己查看我以前的相关文章!
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录