標籤:blog 使用 os strong 檔案 for 代碼 div
第一步:建立sftp服務使用者組,建立sftp服務根目錄
groupadd sftp#此目錄及上級目錄的所有者(owner)必須為root,許可權不高於755,此目錄的組最好設定為sftpmkdir /srv/sftpchown -R root:sftp /srv/sftpchmod -R 0755 /srv/sftp
第二步:備份sshd設定檔然後編輯
mv /etc/ssh/sshd_config ~/backup/sshd_config_xxx vim /etc/ssh/sshd_config
這一步,注釋掉/etc/ssh/sshd_config檔案中的此行代碼:
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下代碼:
Subsystem sftp internal-sftpMatch Group sftp ChrootDirectory /srv/sftp/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
功能可簡述為:凡是在使用者組sftp裡的使用者,都可以使用sftp服務
使用sftp服務串連上之後,可訪問目錄為/srv/sftp/username
舉個例子:
使用者test是一個sftp組的使用者,那麼他通過sftp串連伺服器上之後,只能看到/srv/sftp/test目錄下的內容
使用者test2也是一個sftp組的使用者,那麼他通過sftp串連伺服器之後,只能看到/srv/sftp/test2目錄下的內容
第三步:添加有效sftp使用者,且給予使用者寫入權限
#此例將建立一個名稱為test的sftp帳號#建立test的家目錄:test目錄的所有者必須是root,組最好設定為sftp,許可權不高於755mkdir /srv/sftp/testchmod 0755 /srv/sftp/testchown root:sftp /srv/sftp/test#添加使用者 使用參數 -s/sbin/nologin禁止使用者通過命令列登入 useradd -gsftp -d/srv/sftp/test -s/sbin/nologin test
關於寫入權限,如下解決方案並不是很完美
#在test目錄下建立一個可以寫的目錄mkdir /srv/sftp/test/write chown -R test:sftp /srv/sftp/test/write
這樣test使用者就可以在自己家目錄裡的write目錄下擁有寫入許可權了
最後再強調一下,sftp服務的根目錄的所有者必須是root,許可權不能超過755(上級目錄也必須遵循此規則),sftp的使用者目錄所有者也必須是root,且最高許可權不能超過755.