2008年5月10日 星期六

Linux proftp 架設範例 1

最近幫系上老師架設FTP,架設成功了許久,但是一直沒有寫下架設方法。為了避免忘記,就把心得寫了下來...
設備環境:Linux (Fedora Core 6) + Proftpd

需求:

一個系有上課的有3個年級,每個年級有專屬的ftp帳號 user1user2user3,使用者只能上傳檔案,上傳之後不能下載,也不可以切換到其他使用者目錄(如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參數設定手冊

鳥哥的proftp教學

沒有留言:

張貼留言