最近幫系上老師架設FTP,架設成功了許久,但是一直沒有寫下架設方法。為了避免忘記,就把心得寫了下來…
設備環境:Linux (Fedora Core 6) + Proftpd
需求:
一個系有上課的有3個年級,每個年級有專屬的ftp帳號 user1,user2,user3,使用者只能上傳檔案,上傳之後不能下載,也不可以切換到其他使用者目錄(如user1可以切換到user2的資料夾),檔案上傳之後不可以刪除。也不可以複寫檔案!
需要有一個專門給大家下載公用檔案的帳號:download。該使用者只能下載,不能刪除,不能上傳檔案,也不能切換到其他使用者目錄。只有BigUser可以複寫檔案,與刪除檔案,上傳檔案。
需要有一個可以將檔案上傳到每個user資料夾,也可以把檔案刪除的大總管BigUser。
作法:因為每個使用者只能上傳不能刪除與下載檔案,所以我把/etc/proftpd.conf設定檔加了以下設定:
# Edit by Allen
<Directory /home/download>
AllowOverwrite on
<Limit READ>
AllowAll
</Limit>
<Limit WRITE>
AllowUser BigUser
DenyUser download
</Limit>
</Directory>
<Directory /home/user1>
AllowOverwrite off
<Limit WRITE>
AllowAll
</Limit>
<Limit DELE RMD>
AllowUser BigUser
DenyUser user1
</Limit>
<Limit READ>
AllowUser BigUser
DenyUser user1
</Limit>
</Directory>
<Directory /home/user2>
AllowOverwrite off
<Limit WRITE>
AllowAll
</Limit>
<Limit DELE RMD>
AllowUser BigUser
DenyUser user2
</Limit>
<Limit READ>
AllowUser BigUser
DenyUser user2
</Limit>
</Directory>
<Directory /home/user3>
AllowOverwrite off
<Limit WRITE>
AllowAll
</Limit>
<Limit DELE RMD>
AllowUser BigUser
DenyUser user3
</Limit>
<Limit READ>
AllowUser BigUser
DenyUser user3
</Limit>
</Directory>
因為每個使用者資料夾是放在/home底下,而且我們必須讓BigUser可以自由上傳刪除每個使用者資料夾下的檔案,所以將/home底下的資料夾權限設定如下:
[root@localhost home]# ls -al
drwxrwx— 7 download BigUser 4096 4月 23 19:04 download
drwx—— 29 BigUser BigUser 4096 5月 8 11:11 BigUser
drwxrwx— 2 user1 BigUser 4096 5月 8 11:16 user1
drwxrwx— 2 user2 BigUser 4096 5月 2 11:13 user2
drwxrwx— 29 user3 BigUser 4096 5月 9 17:00 user3
並且將BigUser的家目錄設定為/home
說明:
因為BigUser必須一連線進來就可以直接操作(上傳,刪除,下載等等)每個user的檔案,也就是一進來就可以看到每個user的資料夾,因此我將BugUser的家目錄設為/home。
而且將每個userX ( X:編號)的權限設定為
不可以複寫
AllowOverwrite off
,可以上傳
<Limit WRITE>
AllowAll
</Limit>
,除了BigUser之外,不可以下載,刪除,刪除資料夾
<Limit READ RMD READ>
AllowUser BigUser
DenyUser userX
</Limit>
因為download這個使用者可以下載,所以將它的Limit READ改成AllowAll
但是除了BigUser之外,不能上傳,所以將寫入權限改成
<Limit WRITE>
AllowUser BigUser
DenyUser download
</Limit>
至於/home/資料夾下的權限設定,是為了要讓BigUser可以針對每個UserX 將檔案上傳,刪除,因此我把每個User的群組設定為BigUser,並且設定每個Users資料夾權限為770。
注意:設定完之後,因為我有開啟ssh遠端連線通訊服務,上述方法還是有點危險,所以要把userX與download的ssh連線擋掉,在ssh設定檔/etc/ssh/sshd_config加入以下:
DenyUsers download
DenyUsers user1
DenyUsers user2
DenyUsers user3
DenyUsers user4
****************************************************************
這樣一來,整個設定算是大功告成了!
快去享用你的Proftp吧!
如有錯誤或是更好的建議,請留言或是mail給我。
ref: proftpd參數設定手冊