给linux下网站目录配置SFTP
?
網上很難找到一篇適用于網站目錄的SFTP配置說明,折騰了許久,我來寫一篇完整點的。?如果覺得中文難以理解的話, 請看一篇簡潔的英文配置方法http://www.linuxtechi.com/configure-chroot-sftp-in-linux/。
?
首先,據說如果開了selinux配置好后可能會無法連接(我沒測試)。
假設網站目錄: /var/wwwroot/xxx.com/public_html(為什么要有子目錄,是有原因的,見后面) ;
目錄下文件歸屬為 www:www (php-fpm用戶及組), 我為什么要使用www組? 就是為了保證用戶和php共享組權限。因為我們在給web目錄配置權限的時候, 往往給文件夾 775、 755 或 750, 其他組往往擁有的權限不足, 新建或修改重傳的文件擁有過低權限,導致php不能以組權限讀取。
// 添加一個SFTP組# groupadd www // 禁止shell,home目錄/var/wwwroot/xxx.com, 組 www .// 如果user不存在:# useradd -s /bin/nologin -d /var/wwwroot/xxx.com -g www sftp_david // 如果user存在,則修改此user:# usermod -s /bin/nologin -d /var/wwwroot/xxx.com -g www sftp_david // 為此user設置密碼# passwd sftp_david
到此沒有其他錯誤的話,SFTP已經可以登錄,但是此時user能瀏覽的太多了,幾乎整個系統的文件! 得限制它的訪問目錄。
? # vim /etc/ssh/sshd_config ? ??
// 找到 Subsystem sftp 這一行注釋掉,添加以下行:
??Subsystem?? ? ??sftp??internal-sftp? ? ? ? ? ??
// 在文件末尾添加以下內容, 限制該組只能訪問home目錄:
Match Group www // ?也可以 Match User sftp_david
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
// 保存然后重啟。 網絡不好不要急著重啟,以免重啟失敗導致當前ssh連接不上
# service sshd restart ?
權限更改:
SFTP有一個獨特的地方, 用戶的home目錄以上文件夾的user必為root且你有寫入權限。
本例中 home 目錄是 ?/var/wwwroot/xxx.com, ?它每一級文件夾,user必須是root,并且SFTP賬號都不能用有寫入權限(通過group也不允許), 否則連接被拒。
# cd /var/wwwroot/xxx.com# chown root:root . // xxx.com 是home目錄,將它設為root # chown sftp_david:www public_html # chmod 775 public_html上面就是public_html 這個子文件夾存在的意義—— 賬號不能擁有xxx.com的文件夾寫入,也就不能在它下面上傳文件。所以我要建public_html這個子文件夾,它下面可以任意上傳。
?
同時將用戶 sftp_david 加入 www 組,以擁有www組的權限
#?usermod -s /sbin/nologin -d /var/wwwroot/xxx.com/public_html -G www sftp_david
完成!
?
另外,如果public_html下的組權限為文件夾<7, 文件<6:執行(因為我這里依賴組權限操作文件):?
# cd xxx.com
# find . -type d -exec chmod g=rwx {} \;
# find . -type f -exec chmod g=rw {} \;
? 切記不要給文件賦予x權限。
?
?
user操作常用參數說明(其他見 -h):
-a ? 添加的方式. ? 將一個用戶加入多個組可使用此參數
-d ? 指定home目錄,也就是登錄時進入的目錄
-M ??
-s ? 通常設置:?/bin/false 禁止使用任何登錄(包括shell), ??/sbin/nologin 禁止登陸但可以使用SFTP
-G ? 并將user加入這個group(同時創建group)
-g ? 將此user加入這個組(不創建組)
?
(?vsftp配置鏈接?)
轉載于:https://www.cnblogs.com/antarctican/p/3986523.html
總結
以上是生活随笔為你收集整理的给linux下网站目录配置SFTP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20051020:该办宽带了
- 下一篇: Call Exec in PeopleC