ubuntu 下搭建sftp服務器

1.首先安裝ssh服務html

sudo apt-get install openssh-server

2.爲sftp建立管理組安全

sudo addgroup sftp-users

3.建立SFTP用戶,並配置相應權限。這裏第二行的意思是將alice從全部其餘用戶組中移除並加入到sftp-users組,而且關閉其Shell訪問。若是想深刻了解usermod命令,可使用如下」man usermod」命令查看幫助文檔。ssh

sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice

那天我誤將本身的帳號從本身組裏移除了,連sudo權限都沒有了,後來用usermod -a -G caigan2015 caigan2015恢復本身組,用usermod -a -G sudo caigan2015恢復sudo權限網站

4.建立SSH用戶組,並把管理員加入到該組(注意usermod中的-a參數的意思是不從其餘用戶組用移除)。code

sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin

【注:爲用戶添加管理員權限命令爲,sudo adduser admin sudo】server

5.建立監獄目錄。其實這是爲了安全起見來建立的目錄。該「監獄」目錄擁有如下權限:htm

1.超級管理root擁有全部權限
2.其餘任何用戶都不能擁有寫入權限。文檔

因此,爲了讓sftp能上傳文件,必須在「監獄」根目錄下再建立一個普通用戶可以寫入的共享文件目錄。爲了便於管理員經過SFTP管理上傳的文件,我把這個共享文件目錄配置爲:由root全部,容許sftp-users讀寫。這樣,管理員和SFTP用戶組成員就都能讀寫這個目錄了。get

sudo mkdir /home/sftp_root/shared -p
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared

*固然,目錄具體位置由本身設定,好比我是一個網站管理員 我就設置爲
/var/www/html/*。ftp

6.修改SSH配置文件。

sudo nano /etc/ssh/sshd_config

在sshd_config文件的最後,添加如下內容:

AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

這些內容的意思是:
只容許ssh-uers及sftp-users經過SSH訪問系統;
針對sftp-users用戶,額外增長一些設置:將「/home/sftp_root」設置爲該組用戶的系統根目錄(所以它們將不能訪問該目錄以外的其餘系統文件);禁止TCP Forwarding和X11 Forwarding;強制該組用戶僅僅使用SFTP。
若是須要進一步瞭解細節,可使用「man sshd_config」命令。這樣設置以後,SSH用戶組能夠訪問SSH,而且不受其餘限制;而SFTP用戶組僅能使用SFTP進行訪問,並且被關進監獄目錄。

7.重啓系統以便使新配置生效。

sudo reboot now

8.察看服務是否啓動。

rivsidn@rivsidn-Dell:~$ service --status-all

 [ + ]  ssh
相關文章
相關標籤/搜索