您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Linux怎么限制指定賬戶不能SSH只能SFTP在指定目錄的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
概述
由于某臺服務器需要對指定用戶進行限制,只允許訪問指定目錄,這個需求在很多場景應該是比較常見的,下面介紹一種解決方案。
以下限制了sftp用戶組只能sftp 連接上去至指定目錄(/projects/tms_prod),ssh 連接就提示只接受sftp 連接。
方案具體流程如下:
1. 創(chuàng)建用戶及目錄:
mkdir -p /projects/ groupadd sftp # 新建組 useradd -g sftp -s /bin/false tms -d /projects/tms_prod # 新建用戶 passwd tms chown root:sftp /projects/ # 修改主目錄所屬用戶和組 chmod 755 /projects/ # 主目錄授權 mkdir -p /projects/tms_prod # 為用戶建立子目錄 chown tms:sftp /projects/tms_prod # 修改子目錄所屬用戶和組 chmod 755 /projects/tms_prod # 子目錄授權
2. 配置sshd_config
Subsystem sftp internal-sftp #指定使用sftp服務使用系統(tǒng)自帶的internal-sftp #Match User tms Match Group sftp ChrootDirectory /projects/ X11Forwarding no #禁止X11轉發(fā) AllowTcpForwarding no # 禁止tcp轉發(fā) ForceCommand internal-sftp #指定sftp命令,不能ssh連接
注意:
由ChrootDirectory指定的目錄開始一直往上到系統(tǒng)根目錄為止的目錄擁有者都只能是root
由ChrootDirectory指定的目錄開始一直往上到系統(tǒng)根目錄為止都不可以具有群組寫入權限
3. 重啟ssh服務:
service sshd restart
4. 測試驗證
補充:
1. Subsystem sftp /usr/lib/openssh/sftp-server 更為 internal-sftp,這兩者有什么區(qū)別呢?
簡單的說默認sftp 進程由單獨的二進制文件:/usr/lib/openssh/sftp-server啟動,而internal-sftp 則無需外部二進制文件額外啟動一個進程,整合在sshd進程內了。
internal-sftp相較于 /usr/lib/openssh/sftp-server 優(yōu)點在于:
性能好,無需額外進程了嘛;
安全性好,無需用戶登錄shell,且可使用ChrootDirectory 限制sftp行為活動的目錄;
sftp-server 的存在主要是向后兼容。
2. ChrootDirectory directory
一般出現(xiàn)問題會在ChrootDirectory directory上,這個地方的目錄不能直接配置到目標目錄,需要配置到他的上一級;即給 /A/B/C的C目錄做chroot,要對C能讀寫,所以C目錄不能做ROOT目錄,對B做chroot。
感謝各位的閱讀!關于“Linux怎么限制指定賬戶不能SSH只能SFTP在指定目錄”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。