在日常的网站运行维护中,作为运维人员,经常会为第三方网站开发的程序员提供帐号及密码。如果只使用vsftp的功能,是很繁琐、很不方便的。下面提供一个案例解决这个问题。
使用acl+vsftpd的方式实现:
首先,系统中必须有acl工具,如果没有,那么用以下命令来安装。
1 |
yum -y install acl |
其次,系统安装vsftpd服务,并做配置。
1 |
yum -y install vsftpd |
1.更改vsftpd的配置文件。将下面的这几个地方改成同下面配置文件一样。
1 2 3 4 5 6 |
vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO chroot_local_user=NO chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list |
2.建立vsftpd本地登录用户。
1 |
useradd test1 -d /var/www -s /sbin/nologin |
3.禁止test1用户访问除家目录之外的目录。
1 2 |
vi /etc/vsftpd/chroot_list test1 |
然后,使用acl给/var/www/目录做目录继承权限。
1 |
setfacl -R -m u:test1:rwx /var/www/ |
最后,验证一下是否成功。
1.使用getfacl验证是否授权成功。
1 2 3 4 5 6 7 8 9 |
getfacl /var/www/ # file: . # owner: root # group: root user::rwx user:test1:rwx 出现此行为成功 group::r-x mask::rwx other::r-x |
2.通过资源管理器,访问ftp服务器。观察是否成功。
注:此时需要将设置防火墙策略,关闭selinux。
结尾:
经测试,删除文件及上传文件都没有问题。此方案成功。
二〇一五年三月六日 12:25:00