ftp

一个proftpd权限配置问题 

 

最近有人问我关于proftpd的权限配置问题,由于不熟悉proftpd,所以没有立即解决。后来找时间研究了一下,得到了解决方法,现共享出来。 

 

一、权限需求描述 

 

每个部门有自己的文件夹,只有本部门经理、本部门员工和总经理访问,并且所有用户都能上传和下载文件,但只有部门经理和总经理有删除权限。(大致是这样的一个要求) 

 

实现过程如下:  

二、proftpd安装 

 

1.操作系统环境:   RHEL5.4 2.proftpd版本 :  1.3.0 3.安装过程 

   #tar  proftpd-1.3.0.tar.bz2    #cd proftpd-1.3.0  #./configure �Cprefix=/usr/local/proftpd    #make 

   #make install  

三、创建ftp目录、用户、组,并分配权限 

 

1. 创建所需目录   #mkdir  -p  /ftpdata/pub 

这个目录是所有本地用户登录的根目录   #mkdir  /ftpdata/pub/jsb 

这个目录是技术部的目录,只允许技术部和总经理访问  

   #mkdir  /ftpdata/pub/cwb 

这个目录是财务部目录,只允许财务部和总经理访问  

我就以这两个部门为例,配置proftpd的朋友,可以根据自己公司的实际情况做一些调整。下面创建用户和组 

 



           

 



 

2. 创建用户和组  

#groupadd  jsb 创建技术部组 #groupadd  cwb 创建财务部组  

  #useradd �CG jsb,cwb  zjl 

创建总经理使用的账号,同时加入技术部组和财务部组   #useradd  -G  jsb  jsjl 

创建技术部经理账号,加入技术部组   #useradd   -G  jsb  jsyg1 

创建技术部员工1账号,加入技术部组   #useradd  -G  jsb  jsyg2 

创建技术部员工2账号,加入技术部组  

  #useradd  �CG  cwb  cwjl 

创建财务部经理账号,加入财务部组   #useradd  �CG  cwb  cwyg1 

创建财务部员工1账号,加入财务部组   #useradd  �CG  cwb  cwyg2 

创建财务部员工2账号,加入财务部组  

#echo 123 | passwd zjl �Cstdin  

#echo 123 | passwd jsjl --stdin #echo 123 | passwd jsyg1 --stdin #echo 123 | passwd jsyg2 �Cstdin  

#echo 123 | passwd cwjl --stdin #echo 123 | passwd cwyg1 --stdin #echo 123 | passwd cwyg2 �Cstdin  

我把这7个用户的密码都设置为123   

3.设置目录属主、属组和权限  

   #chown  zjl    /ftpdata/pub 

  总经理对这个目录有写权限(只有总经理可以在这个目录创建新目录)     

   #chown  jsjl:jsb   /ftpdata/pub/jsb    #chmod  770   /ftpdata/pub/jsb 




 



   #chmod  g+s   /ftpdata/pub/jsb    把/ftpdata/pub/jsb的属主改为jsjl,属组改为jsb,属主和属组有读写执行权限,其他用户没有权限,所有在这个目录及子目录里创建的文件,属组都为jsb  

   #chown  cwjl:cwb   /ftpdata/pub/cwb    #chmod  770   /ftpdata/pub/cwb    #chmod  g+s   /ftpdata/pub/cwb 

  把/ftpdata/pub/cwb的属主改为cwjl,属组改为cwb,属主和属组有读写执行权限,其他用户没有权限,所有在这个目录创建的文件,属组都为cwb  

四、修改proftpd配置文件,并启动服务 

 

  #vi  /usr/local/proftpd/etc/proftpd.conf  

把“#DefaultRoot ~” 改为“DefaultRoot /ftpdata/pub”,即打开注释,并把登录位置改为/ftpdata/pub  

把“Umask 022”改为“Umask 007”,即上传的文件,属主和属组有全部权限,其他用户没有权限  

添加如下配置 

<Directory /ftpdata/pub/jsb>         <Limit DELE> 

                AllowUser jsjl                 AllowUser zjl                 DenyALL         </Limit> </Directory> 

<Directory /ftpdata/pub/cwb>         <Limit DELE>         AllowUser cwjl         AllowUser zjl         DenyAll         </Limit> </Directory>  

注释了从<Anonymous  ~ftp> 至 </Anonymous>所有行,意思是禁止匿名用户登录。  

 其他配置没有改动,最终proftpd配置清单如下:  

ServerName                      "ProFTPD Default Installation" ServerType                      standalone 




 



DefaultServer                   on Port                            21 Umask                           007 MaxInstances                    30 

User                            nobody Group                           nobody DefaultRoot /data/pub 

AllowOverwrite          on <Directory /ftpdata/pub/jsb>         <Limit DELE> 

                AllowUser jsjl                 AllowUser zjl                 DenyALL         </Limit> </Directory> 

<Directory /ftpdata/pub/cwb>         <Limit DELE>         AllowUser cwjl         AllowUser zjl         DenyAll         </Limit> </Directory> 

<Limit SITE_CHMOD>   DenyAll </Limit>  

启动proftpd服务 

#/usr/local/proftpd/sbin/proftpd  

五、验证 

 

分别使用zjl,jsjl,jsyg1,cwjl,cwyg1登录验证,权限符合设计的要注。  

六、结束 

 

由于这篇文档写的比较仓促,没有认真思考文档格式和语言的组织。如果给你的阅读带来不适,敬请谅解。 

 

参考的文档:源码目录/doc/howto/Directory.html     源码目录/doc/howto/Limit.html


你可能感兴趣的:(下载文件,文件夹,根目录,总经理,用户登录)