Ubuntu 9.10下安裝vsftpd,實現不同許可權

火星人 @ 2014-03-09 , reply:0


目標:
/home/ftp這個目錄底下放東西,兩個用戶,一個可以上傳下載,建立目錄,另外一個除了以上功能,還有刪除文件和目錄的權力,相當於管理員.
過程:
首先參考了wiki上的兩篇
http://wiki.ubuntu.org.cn/Vsftpd服務安裝設置
http://wiki.ubuntu.org.cn/Vsftpd虛擬用戶設置

vsftpd的安裝及簡單配置方法就帶過,請直接看以上兩篇.

一開始的想法是用一個本地用戶當作管理員進行管理,一個虛擬用戶上傳下載.於是開始的時候就設置了一個虛擬用戶,一個本地用戶.後來發現出了問題!
在開啟虛擬用戶功能以後,在/ect/vsftpd.conf添加
guest_enable=YES 之後,就意味著所有非匿名用戶登錄以後都是guest用戶.guest用戶的名字由guest_username=virtual 決定,而virtual也是一個本地用戶(詳細內容看vsftpd虛擬用戶設置那一篇),也就是說只要開啟這個功能,本地用戶登錄后也會映射到另一個本地用戶virtual那裡,我的理解是只要用了虛擬用戶,就不可以再用其他本地用戶了(我做了實驗,建了個和所在文件夾同組同許可權的本地用戶,是沒有辦法登錄的).正是基於以上原因,改成兩個都是虛擬用戶,只是許可權不同.


按照http://wiki.ubuntu.org.cn/Vsftpd虛擬用戶設置中的說法,所有的匿名用戶都要映射到一個本地用戶上,在虛擬用戶的配置里也要加上local_enable=YES 但是這裡的允許local_enable用戶登錄就指的不是其他的本地用戶了,單單是虛擬用戶要映射的那一個.

附上我的配置文件和詳細的安裝過程:
$sudo apt-get install vsftpd
9.10下的目錄默認不是/home/ftp了,而是/srv/ftp,可以自己新建一個目錄
sudo mkdir /home/ftp

然後大致都跟虛擬用戶設置那篇一樣,照葫蘆畫瓢就行了
注意到新建一個本地用戶virtual那裡,還要改/ftp那個目錄的所有者,網上的教程裡面使virtual不能登錄系統用的是/bin/nologin ,好像是red hat的方法哈,不適用這裡.

虛擬用戶test的配置
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
chmod_enable=YES
anon_mkdir_write_enable=YES
local_root=/home/ftp/

擁有刪除文件目錄許可權的admin配置,紅色是跟上面不同的地方哈

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp

vsftpd.conf的內容
#獨立模式啟動

listen=YES

#不允許匿名用戶訪問,允許本地(系統)用戶登錄

anonymous_enable=NO

local_enable=YES

#若為YES,則vsftpd.chroot_list文件中的用戶不被chroot,可以訪問到ftp文件夾以上的目錄,比較危險,這裡vsftpd.chroot_list為空,也就是都要被限制

chroot_local_user=YES



guest_enable=YES

guest_username=virtual

user_config_dir=/etc/vsftpd_user_conf

#是否採用埠20進行數據傳輸

connect_from_port_20=YES

#生成日誌

xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
#banner

ftpd_banner=做人靠自覺!

dirmessage_enable=YES

#其他許可權
idle_session_timeout=600
data_connection_timeout=120
accept_timeout=60
connect_timeout=60
pam_service_name=vsftpd.vu
secure_chroot_dir=/var/run/vsftpd
另外注意所有的配置後面不要有空格,不然登錄的時候會遇到500錯誤.
到此,全部目標就達成了.花了一兩天....

順便說些題外話,為什麼linux得不到更廣泛的推廣,我認為相比較起windows還是太不友好了,當然功能上嘛linux可能有優勢,但是大部分用戶是沒有時間來學習那些配置方法的,像windows那樣,有個友好的用戶界面,滑鼠點擊幾下配置完了多省時間...
想想蘋果和騰訊,蘋果的產品從技術上也沒什麼很特別的地方嘛,他們能做出來的其他廠商從技術角度也沒問題,蘋果之能成功就是硬體平台上的應用做得好,用戶界面友好.騰訊一直在抄襲別人,但是從商業角度來看它做得比其他都好,就算你不怎麼用它,但是也得承認周圍和你有關係的那些人已經很多把它當作一個不可缺少的部分了,這點MSN做到了么?
還有山寨手機,不要簡單的認為是粗製濫造的產品,其實山寨手機廠商完全考慮了他的用戶群體,有很多人就是喜歡手機上集合很多功能,用山寨機的很多都是農民工,人家就喜歡大喇叭放歌聽...
我說這麼多的意思是,評價一個產品的優劣,有時候要考慮很多方面,技術的創新是一部分,但是除了技術,還有很多其他更重要的東西.









[火星人 via ] Ubuntu 9.10下安裝vsftpd,實現不同許可權已經有123次圍觀

http://www.coctec.com/docs/linux/show-post-51310.html