VSFTP访问FTP用户根目录以外的公共数据实现方法

发表于 LINUX 分类,标签:

环境:centos6.3+vsftpd 

目标:①让每个用户都能访问自己的家目录,并锁定在家目录内不得往上跳转。此目录拥有rw所有权限

           ②同时让每个用户能看到共享目录,共享目录只有管理员有权限rw,其余者则只有读取权限。

对于VSFTP而言,一般只能指定一个用户单个目录。

参看网上文档,得知挂载功能可以实现(软连接不行,建了软连接以后,从FTP目录的软连接打不开文件夹,或许就算打开进去了,退回上级目录也是个问题。软连接应该也可以搞定,但是现在暂时还没找到方法

安装VSFTPD:

#yum -y install vsftpd

修改配置文件,让每个用户锁定在自己的家目录

#vim /etc/vsftpd/vsftpd

chroot_local_user=YES

新增3个用户

#useradd -s /sbin/nologin admin(此用户主要用作公共目录的管理,对公共目录有rw权限)

#useradd -s /sbin/nologin user1(只能访问公共目录,但是对自己的私有目录有rw权限)

#useradd -s /sbin/nologin user2(同user1)

修改3个用户的密码:略过

新建公共目录,随意创建

#mkidr /vsftpd/pub

将此公共目录的权限直接给admin用户,将所属组改成admin组,或者直接暴力点所有者所属组全部改为admin,这样admin对这个目录就有rw权限了。

①如果只改所属组则如下操作

#chgrp -R admin /vsftpd/pub(修改/vsftpd/pub目录的所属组)

#chmod 664 /vsftpd/pub(让admin所在的admin组对/vsftpd/pub目录有操作权限)

①如果所有者所属组全部修改则如下操作

#chown -R admin /vsftpd/pub(修改/vsftpd/pub目录的所有者)

#chgrp -R admin /vsftpd/pub(修改/vsftpd/pub目录的所属组)

#chmod 664 /vsftpd/pub(让admin和admin组对/vsftpd/pub目录有操作权限)

接下来就是重点了。

在这3个用户的家目录都新建一个目录,用于挂载/vsftpd/pub目录,以便每个用户都能访问此目录的文件。

#mkdir /home/admin/pub

#mkdir /home/user1/pub

#mkdir /home/user2/pub

然后执行下面的命令把/vsftpd/pub挂载到上面3个目录即可。

#mount --bind /vsftpd/pub /home/admin/pub
#mount --bind /vsftpd/pub /home/user1/pub
#mount --bind /vsftpd/pub /home/user2/pub

接下来就是见证奇迹的时候了,高手勿喷。

#service vsftpd start

#service iptables stop(由于我这里是测试,所以我直接把防火墙关了)

好了,到此结束。

admin用户登录ftp就能对公共目录有创建下载删除等等权限。(此用户用作管理公共目录)

其他用户登录ftp对公共目录就只有读取权限,对自己的私有家目录有所有权限。

后续如果需要增加用户,每增加一个都要给这个用户绑定一次。如果有多个公共目录,则根据上面也全部绑一次,这个比较麻烦。

如果需要增加公共目录的管理员,只需将想要变成管理员的用户账号添加进admin组即可。

如果想要解除挂载可以使用如下命令

#umount /home/user2/pub(这里以user2为例)

后续进一步学习中,希望大家指点指点,有的位置可能打错,或者有问题,但是应该不影响大家阅读。谢谢大家观看。



欢迎加2000人技术QQ群一起学习探讨linux相关知识:100094104





0 篇评论

发表我的评论