常见的特殊的需求:对于FTP服务器上的某个部门的目录,要求:部门所有人员可以上传下载但无法删除(包括文件和目录)部门领导全部权限(包括删除)用redhat自带的vsftp实现起来比较困难,google了以后发现proftpd实现起来比较简单 例如:客服部部门成员member,可以上传下载,但是无法删部门主管manager,有全部权限下载安装:因为是CENTOS,直接下载rpm安装wget http://packages.sw.be/proftpd/proftpd-1.3.2-1.el5.rf.i386.rpm 安装之后主目录在/var/ftp配置文件为 /etc/proftpd.conf服务名为 proftpd 直接启动服务的情况是:系统用户直接登录,且被chroot在"家目录"下匿名用户无法登陆 设计实施:部门的目录放在/var/ftp/kefu(客服部),部门人员登录后被chroot在此目录下目录的所有者是主管manager目录的所有组是kefu目录权限为770(只有此部门的人员才可以进此目录) 设置如下:/var/ftp下的kefu目录drwxrwx--- 2 manager kefu 4096 Mar 3 13:11 kefu/etc/passwd文件的设置(将他们的主目录设为/var/ftp/kefu,shell改为/sbin/nologin不允许ssh)manager:x:501:502::/var/ftp/kefu:/sbin/nologinmember:x:502:503::/var/ftp/kefu:/sbin/nologin新建kefu组,member是组员 配置文件proftpd.conf <Directory /var/ftp/kefu> 对这个目录进行限制 umask 000 <Limit DELE RMD> DenyGroup kefu </Limit> </Directory> 解释: umask 000 此目录下所有用户上传的掩码都是000,这样新文件权限是666,新文件夹是777,这样做是为了保证member传的文件,其他人也可以删,默认掩码是022 <Limit DELE RMD> DenyGroup kefu 此目录下对于DELE(删除文件)RMD(删除目录)操作加以限制,对kefu组是拒绝,也就保证了kefu组成员无法执行删除操作.如果需要对单个用户(例如member)限制就用 DenyUser member 其实就是无法执行(DELE ,RMD)这两个ftp指令 整个思路:通过系统权限来允许所有的文件都可以对任何人读写(就是非创建者也可以删)通过限制FTP指令的执行来限制特定的用户(组)无法执行删除总的来说就是利用两个层面的限制实现对权限”先放,后收”
Read more...