一个proftpd权限配置问题 html
最近有人问我关于proftpd的权限配置问题,因为不熟悉proftpd,因此没有当即解决。后来找时间研究了一下,获得了解决方法,现共享出来。 ide
1、权限需求描述 操作系统
每一个部门有本身的文件夹,只有本部门经理、本部门员工和总经理访问,而且全部用户都能上传和下载文件,但只有部门经理和总经理有删除权限。(大体是这样的一个要求) 设计
实现过程以下: htm
2、proftpd安装 文档
1.操做系统环境: RHEL5.4 2.proftpd版本 : 1.3.0 3.安装过程 源码
#tar proftpd-1.3.0.tar.bz2 #cd proftpd-1.3.0 #./configure –prefix=/usr/local/proftpd #make it
#make install io
3、建立ftp目录、用户、组,并分配权限 class
1. 建立所需目录 #mkdir -p /ftpdata/pub
这个目录是全部本地用户登陆的根目录 #mkdir /ftpdata/pub/jsb
这个目录是技术部的目录,只容许技术部和总经理访问
#mkdir /ftpdata/pub/cwb
这个目录是财务部目录,只容许财务部和总经理访问
我就以这两个部门为例,配置proftpd的朋友,能够根据本身公司的实际状况作一些调整。下面建立用户和组
2. 建立用户和组
#groupadd jsb 建立技术部组 #groupadd cwb 建立财务部组
#useradd –G jsb,cwb zjl
建立总经理使用的帐号,同时加入技术部组和财务部组 #useradd -G jsb jsjl
建立技术部经理帐号,加入技术部组 #useradd -G jsb jsyg1
建立技术部员工1帐号,加入技术部组 #useradd -G jsb jsyg2
建立技术部员工2帐号,加入技术部组
#useradd –G cwb cwjl
建立财务部经理帐号,加入财务部组 #useradd –G cwb cwyg1
建立财务部员工1帐号,加入财务部组 #useradd –G cwb cwyg2
建立财务部员工2帐号,加入财务部组
#echo 123 | passwd zjl –stdin
#echo 123 | passwd jsjl --stdin #echo 123 | passwd jsyg1 --stdin #echo 123 | passwd jsyg2 –stdin
#echo 123 | passwd cwjl --stdin #echo 123 | passwd cwyg1 --stdin #echo 123 | passwd cwyg2 –stdin
我把这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
4、修改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
5、验证
分别使用zjl,jsjl,jsyg1,cwjl,cwyg1登陆验证,权限符合设计的要注。
6、结束
因为这篇文档写的比较仓促,没有认真思考文档格式和语言的组织。若是给你的阅读带来不适,敬请谅解。
参考的文档:源码目录/doc/howto/Directory.html 源码目录/doc/howto/Limit.html