linux SFTP用戶權限控制

在向服務器上傳文件時,現在我們很多都是拿服務器的登錄用戶,通過第3方工具(wincp,xftp等)直接上傳的,這些用戶可以進入服務器的大部分目錄,下載擁有可讀權限的文件,直接拿用戶做sftp還是存在風險的,尤其是向第3方人員或服務提供sftp服時,所以在提供專用的sftp用戶有必要做好權限的控制

 

現在對sftp用戶的控制方法,一般就是把訪問目錄限定在用戶加目錄下,翻看了一些網上資料和自身實踐後,具體方法如下(需root執行):

1、建立sftp用戶和相關用戶組,以psftp用戶爲例

groupadd p2psftp

mkdir /hsdata/

useradd -d /hsdata/psftp -g p2psftp -s /bin/false psftp

passwd psftp

chown root /hsdata/psftp

chmod 750 /hsdata/psftp

說明:psftp家目錄的屬主必須是root,屬組必須是p2psftp(在後面的ssh中使用是的p2psftp),該家目錄的最高可設置權限爲755,如果高於該權限,會導致sftp連接不上

2、建立sftp目錄

cd /hsdata/psftp

mkdir upload

chmod a+w upload -R upload

upload目錄可以用於上傳和下載文件

說明:必須在psftp目錄的下級目錄中纔可以上傳下載,在同級目錄中不行

3、修改ssh配置(ssh版本必須在4.8以上)

cd /etc/ssh/

cp sshd_config sshd_config.bak

vim sshd_config,修改內容如下:

#Subsystem      sftp    /usr/libexec/openssh/sftp-server(這行需註釋)

新增如下內容(最好在配置文件的結尾添加)

Subsystem sftp internal-sftp

        Match Group p2psftp

        ChrootDirectory /hsdata/psftp

        ForceCommand internal-sftp

 

修改保存後重啓服務

service sshd restart

 

centos7.X版本重啓則執行

/bin/systemctl restart sshd.service

 

如果出現如下報錯

 

把Subsystemz這塊的配置放到配置文件的最後。在重啓

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章