OpenSSH從4.8p1開始支援ChrootDirectory的功能

可以設定使用者的根目錄  就不會像以前隨便一個使用者登入後連系統根目錄都可以瀏覽

嗯  以後SFTP可以取代FTP了 也不用搞被動模式的port  讚

 

【設定方式】

修改/etc/ssh/sshd_config:

Subsystem sftp internal-sftp

 

設定:

#單一使用者

 

Match user 帳號

         ChrootDirectory /路徑

         AllowTcpForwarding no

         X11Forwarding no

         ForceCommand internal-sftp

 

#群組

 

Match group 群組

         ChrootDirectory /your_path

         AllowTcpForwarding no

         X11Forwarding no

         ForceCommand internal-sftp

 

 

特別要注意的是使用者根目錄的權限

當初就是這個權限沒搞好  設定一直起不來  還以為裝錯版本

還傻傻地去官網抓最新版下來編譯安裝  結果還是一樣

重點來了

假設有個帳號myacc  家目錄是/home/myacc

/home 的權限是 root的

/home/myacc是myacc的

Match區塊的設定必須把ChrootDirectory的根目錄設定為root權限的目錄,也就是要設定成:

ChrootDirectory /home

 

這樣又會有另一個問題,通常使用者會有好幾位,預設的家目錄都是在/home下面

如果每個人的ChrootDirectory都設為/home

那麼其他人的家目錄都會被看見

存取的問題可以用設定權限來解決

如果要讓使用者登入只看到自己的目錄

那就要再多設一層目錄,也就是:

/home/myacc_sftp/myacc

/home/myacc2_sftp/myacc2

.....etc

其中/home/myacc_sftp /home/myacc2_sftp的權限是root,設定檔就變成:

ChrootDirectory /home/myacc_sftp

ChrootDirectory /home/myacc2_sftp

 

.....etc

Posted by liuchiu at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()