安裝與設定ftp使用者,禁止ssh與sftp登入(以Ubuntu為例)
在linux伺服器上因為是開源環境,所以能選擇的FTP軟體很多,今天介紹的是以vsftp為例,因為他的管理算是比較簡單的,想要調整權限或是使用者路徑也只要再多費一點工就可以做到。
既然是以Ubuntu為例,如何安裝軟體就不用太多作介紹了。
系統指令 |
sudo apt-get install vsftpd |
安裝好後,我們這次的目的有以下兩點:
- 限制使用者帳號,讓使用者帳號不會看到其他目錄,或是有機會切換到其他目錄。
- 設定針對FTP帳號,因此關閉帳號的SSH連線(SFTP)。
- 更改使用者的登入路徑。
- 設定vsftp限制使用者的帳號權限。
請開啟vsftpd的設定檔,有幾個設定需要啟用或修改:
/etc/vsftpd.conf |
…… # 開啟允許寫入 write_enable=YES …… # YES限制登入的使用者無法更換目錄(顯示都會是根目錄 / ) chroot_local_user=YES …… |
重新啟動vsftpd:
系統指令 |
sudo /etc/init.d/vsftpd restart |
但 chroot_local_user 設定啟用後,使用FTP連線會顯示錯誤:
這需要再增加一行設定,並再重新啟動vsftp:
/etc/vsftpd.conf |
…… # 允許chroot寫入有寫入權限 allow_writeable_chroot=YES …… |
這個設定才可以處理掉writable跟chroot之間的衝突,如果增加了設定但還是發生相同的錯誤,這是因為安裝的vsftpd版本太舊,請依以下方式重新安裝vsftpd:
系統指令 |
sudo add-apt-repository ppa:thefrontiergroup/vsftpd sudo apt-get update sudo apt-get install vsftpd |
- 關閉使用者帳號的SSH功能(SSH,SFTP)。
這個步驟就非常的簡單了,請開啟sshd_config檔案,增加一行(peter-test1為使用者):
/etc/ssh/sshd_config |
… DenyUsers peter-test1 … |
重啟ssh:
系統指令 |
sudo service ssh restart |
- 更改使用者的登入路徑。
因為使用者的登入就是到linux使用者的家目錄,請開啟/etc/passwd來修改:
如圖,以此例將/home/peter-test1改到你想指定給他的路徑即可,請注意不要刪到前後的冒號。
當然更改路徑後,別忘了要修改新路徑的使用者,這樣使用者才可以修改或上傳內容,例如新增一個/home/zzz資料夾:
系統指令 |
sudo chown peter-test1:peter-test1 /home/zzz |
指令中紅色是使用者,藍色是新資料夾位置,請依需要修改。
參考資料:
How to Install and Configure vsftpd on Ubuntu 14.04 LTS
ubuntu FTP SERVER 安裝設置( vsftp 版本)
How to disable SFTP for a user, but keep FTP enabled
500 OOPS: vsftpd: refusing to run with writable root inside chroot() Keep user jailed
Fixing 500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
我要留言