一個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