利用acl实现目录权限继承

在日常的网站运行维护中,作为运维人员,经常会为第三方网站开发的程序员提供帐号及密码。如果只使用vsftp的功能,是很繁琐、很不方便的。下面提供一个案例解决这个问题。

使用acl+vsftpd的方式实现:

首先,系统中必须有acl工具,如果没有,那么用以下命令来安装。

yum -y install acl

其次,系统安装vsftpd服务,并做配置。

yum -y install vsftpd

1.更改vsftpd的配置文件。将下面的这几个地方改成同下面配置文件一样。

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本地登录用户。

useradd test1 -d /var/www -s /sbin/nologin       

3.禁止test1用户访问除家目录之外的目录。

vi /etc/vsftpd/chroot_list
test1

然后,使用acl给/var/www/目录做目录继承权限。

setfacl -R -m u:test1:rwx /var/www/

最后,验证一下是否成功。

1.使用getfacl验证是否授权成功。

getfacl /var/www/
# file: .
# owner: root
# group: root
user::rwx
user:test1:rwx 出现此行为成功
group::r-x
mask::rwx
other::r-x

2.通过资源管理器,访问ftp服务器。观察是否成功。

注:此时需要将设置防火墙策略,关闭selinux。

image

 

结尾:

经测试,删除文件及上传文件都没有问题。此方案成功。

 

 

二〇一五年三月六日 12:25:00

点赞