摘要:Unix系統下pureftpd使用詳解。特別是解決了很多人匿名用戶無法登錄的問題。與數據庫的結合使得管理成千上萬的用戶很輕鬆。
目錄:
一、Unix系統權限概述
二、匿名用戶的權限
三、真實用戶和虛擬用戶的權限
--------------------------------------------------------分 割 線-------------------------------------------------
一、Unix系統權限概述
1、訪問權限
Unix 文件系統是一個能夠支持多個用戶同時訪問的文件系統。文件訪問權限分爲三種類型的用戶:文件屬主或用戶(User),同組用戶(Group),其他用戶(Other)。
用戶對文件或目錄的訪問權限有三種:讀(r)、寫(w)和執行(x)。
2、文件訪問權限
如果用戶具有讀文件的訪問權限,就可以查看文件的內容;具有寫文件的訪問權限,就可以修改文件的內容;具有執行文件的訪問權限,就可以運行程序文件。
3、目錄訪問權限
對於目錄來說,讀訪問權限允許用戶列出目錄的內容;寫訪問權限運行用戶在目錄中創建或刪除文件及目錄;執行訪問權限允許用戶使用 cd 命令進入目錄或使用該目錄作爲路徑名的一部分。
重要:pureftpd的權限控制是通過系統目錄的權限來實現的。
二、匿名用戶權限
1、變更匿名用戶主目錄的所有者。
按照我前篇文章(詳情見我的前作《pureftpd基礎:安裝、配置、實現匿名登錄》)的步驟,在系統中創建了匿名用戶的主目錄後,匿名用戶無法進行上傳、下載、建目錄、刪除等等操作。這是因爲匿名用戶的主目錄的所有者不是系統“ftp”用戶。
# ls -l /home/
total 6
drwxr-xr-x 3 root wheel 512 Oct 16 04:42 ftp
drwxr-xr-x 2 indian wheel 512 Oct 11 12:55 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
我們看到 ftp 目錄的所有者爲 root 。我們更改“ftp”目錄的所有者,目錄有 rwx 權限。
# chown ftp:14 /home/ftp
# ls -l /home/
total 6
drwxr-xr-x 3 ftp ftp 512 Oct 16 04:42 ftp
drwxr-xr-x 2 indian wheel 512 Oct 11 12:55 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
用 flashfxp 匿名連接。現在匿名用戶可以上傳文件,但是不能下載文件、建文件夾和刪除文件。當你下載時看到沒有被管理員覈准。
550-This file has been uploaded by an anonymous user. It has not
550 yet been approved for downloading by the site administrators.
傳送失敗!
2、允許匿名用戶下載。
修改配置文件,允許下載文件。
# ee /usr/local/etc/pure-ftpd.conf
AntiWarez yes
AnonymousCanCreateDirs no
AnonymousCantUpload no
“AntiWarez yes ”意思是不接受所有者爲 “ftp” 的文件的下載,我們把它設置爲 “no”,重啓 pureftpd 服務,就可以下載文件了。
“ AnonymousCanCreateDirs no”,意思是匿名用戶是不能創建目錄,我們把它設置爲“yes”,重啓 pureftpd 服務,匿名用戶就可以創建目錄了。
“AnonymousCantUpload no”,意思是匿名用戶可以上傳文件,如果設置爲“yes”,匿名用戶不能上傳。
3、只允許匿名用戶登錄。
默認配置文件允許匿名用戶和系統帳戶登錄。如果只允許匿名帳戶登錄,修改默認配置文件:
AnonymousOnly yes //是否只讓匿名登錄
重啓服務器或重啓服務(必須)後,就只能匿名登錄了。無論你用什麼帳號,甚至用不存在的帳號登錄(亂碼也行,只要 ftp 服務器的 IP 是對的)都只會登錄到匿名用戶的主目錄。
三、真實用戶和虛擬用戶的權限
系統真實用戶和PureDB虛擬用戶的權限由系統目錄和文件權限決定。
1、具有管理權限的用戶。
具有管理權限的用戶也就是有上傳、下載、建目錄和刪除權限的用戶。
# pw groupadd ftpadmingroup
# pw useradd ftpadmin -g ftpadmingroup
# pure-pw useradd tom -u ftpadmin -d /home/ftpadmin
# ls -l /hom/e
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
drwxr-xr-x 5 ftpadmin ftpadmingroup 512 Oct 16 11:02 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
“ftpadmin”用戶對“ftpadmin”目錄有 rwx 的權限。
2、系統目錄的 r 權限,控制 FTP 的列表權限。
# chmod u-r /home/ftpadmin
# ls -l /home/
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
d-wxr-xr-x 5 ftpadmin ftpadmingroup 512 Oct 16 11:02 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
去掉“ftpadmin”目錄的 r 權限。FTP 不能列表,可以上傳、建目錄。但是如果知道文件路徑,照樣可以下載和刪除文件(用迅雷等工具直接填入資源地址就可以下載)。
3、系統目錄所有者的 w 權限,控制 FTP 的刪除、重命名和建目錄權限。
# chmod u+r-w /home/ftpadmin
# ls -l /home/
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
dr-xr-xr-x 5 ftpadmin ftpadmingroup 512 Oct 16 11:02 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
去掉 ftpadmin 目錄所有者的 w 權限後,pureftpd 的虛擬用戶不能刪除、重命名文件或目錄,不能建目錄。但是可以下載文件。
4、系統目錄所有者的 x 權限,控制 FTP 的列表、上傳、下載、建目錄和刪除等全部權限。
# chmod u+rw-x ftpadmin
# ls -l
total 8
drwxr-xr-x 6 ftp ftp 512 Oct 16 09:45 ftp
drw-r-xr-x 4 ftpadmin ftpadmingroup 512 Oct 16 11:48 ftpadmin
drwxr-xr-x 2 indian wheel 512 Oct 16 09:51 indian
drwxr-xr-x 2 test wheel 512 Oct 11 12:55 test
去掉 ftpadmin 目錄所有者的 x 權限後,pureftpd 的虛擬用戶不能列表、上傳、下載、建目錄和刪除。
總結:系統目錄和文件的權限決定 pureftpd 虛擬用戶的權限。