眾所周知sftp賬號是基於ssh賬號的,所以在預設情況下訪問伺服器的許可權是非常大的,今天的教程就是教大家進行sftp使用者許可權設定。
必要條件:
你的openssh-server版本至少得失4.8p1, 因為配置許可權需要版本新增的新配置項chrootdirectory來完成。
如何檢視自己伺服器上的ssh版本?大家可以嘗試以下命令:
$ ssh -v
具體實施步驟:
1. 我們需要建立乙個使用者組,專門用於sftp使用者
$ groupadd sftpusers
2. 我們建立乙個使用者test
$ useradd -s /bin/false -g sftpuser test
注意這裡我們將test使用者的shell設定為/bin/false使他沒有登陸shell的許可權
3. 編輯 /etc/ssh/sshd_config
找到subsystem這個配置項,將其修改為
subsystem sftp internal-sftp
然後再到檔案最尾處增加配置設定屬於使用者組sftpusers的使用者都只能訪問他們自己的home資料夾
match group sftpusers
chrootdirectory %h
forcecommand internal-sftp
allowtcpforwarding no
儲存並關閉檔案
4. 修改test使用者home資料夾的許可權,讓其屬於root使用者
chown root ~test
5. 重啟sshd服務
$ service sshd restart 程式設計客棧
6. 測試使用者賬號
$ ssh test@localhost
連線會被拒絕或者無法登陸
$ sftp tesst@localhost
登陸後你會發現你的賬號無法切換到除自己home目錄之外的地方的
常見問題:
如果你鏈結伺服器的時候出現下面的提示:
write failed: broken pipe
couldn't read packet: connection resrykdvrwet by peer
這個問題的原因是chrootdirectory的許可權問題,你設定的目錄必須是root使用者所有,否則就會出現問題。所以請確保sftp使用者根目錄的所有人是root, 許可權是 750 或者 755。
本文標題: linux下sftp使用者許可權設定條件及實現命令
本文位址: /os/linux/92462.html
Linux下SFTP設定使用者目錄許可權
1 安裝參考 2 許可權設定參考 按上述安裝配置好之後,客戶端使用工具開啟出現permission denied問題。可參考 設定目錄許可權,目錄的許可權設定有兩個要點 目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是root 目錄開始一直往上到系統根目錄為止都不可以具有群組寫入許可權 chow...
Linux下如何進行SFTP使用者許可權設定
ssh v 具體實施步驟 1.我們需要建立乙個使用者組,專門用於sftp使用者 groupadd sftpusers 2.我們建立乙個使用者test useradd s bin false g sftpuser test 注意這裡我們將test使用者的shell設定為 bin false使他沒有登陸...
Linux 設定SFTP服務使用者目錄許可權
我們有時會遇到這樣的需求,限制乙個linux使用者,讓他只能在指定的目錄下進行新增 修改 刪除操作,並且只能使用sftp登入伺服器,不能用ssh操作。這些可以通過配置sftp服務實現。建立新使用者www,禁止ssh登入,不建立家目錄 root local useradd s sbin nologin...