日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能

發布時間:2025/3/11 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景 手上有一個這樣的系統:后臺可以直接新建項目(網站),只需輸入項目名稱、訪問域名(二級)以及其他一些額外信息,就可自動生成一個模板網站。大致原理是:提交這些信息的時候,后臺會給項目新建一個目錄,并把一些必須的文件拷貝過去,然后會有一個二級域名映射文件實現二級域名訪問。當然,一級域名可實現訪問,前提是要完成備案。 之前對于單個項目都是通過一個統一sftp賬號管理的,隨著項目的增多,發現要找到相應目錄會比較困難,所以現在希望在新建項目的時候能夠自動生成對應的sftp賬號,實現一對一管理。

過程 vsftpd是首選,我也嘗試過這種實現。由于內部服務器架構的問題,IP地址是個限制,無法實現vsftpd的訪問,詢問過相關人員給出的答案也是如此,所以作罷。 經過一番了解,發現sftp是剩下的唯一一條路,接著熟悉、實踐,最終解決上級需求。

由于不需要安裝其他第三方軟件,只需要CentOS系統賬戶以及一些目錄權限的設置,整個實現過程不是太復雜,但權限的問題絕不是那么容易就可以搞定的,有一些 規則不能違背,否則失敗。

假設目錄結構是這樣的: /var/www/site1 /var/www/site2

相應的系統賬號分別是 site1 和 site2 ,使用passwd設置相應密碼,site1 和 site2 的家目錄分別是/var/www/site1和 /var/www/site2

此處有兩個限制:

從site1和site2開始設置的目錄權限及其所有的上級文件夾權限,屬主和屬組必須是root;

從site1和site2開始設置的目錄權限及其所有的上級文件夾權限,只有屬主能擁有寫權限,也就是說權限最大設置只能是755。

如果我們把網站文件就放在site1和site2下面的話,是沒有權限求改的,這由sftp的內在實現決定,我們只能遵守。所以,解決方案是,我們在site1和site2下面再分別新建一個 web 目錄,權限是 775,屬主分別是 site1 和 site2,屬組 仍然還是 root 。為實現apache的解析正常,apache服務的運行組需要設置成 root 。

權限設置完成后,修改 sshd_config 設置:

vim /etc/ssh/sshd_config

#注釋原來的Subsystem設置

Subsystem sftp /usr/libexec/openssh/sftp-server

#啟用internal-sftp

Subsystem sftp internal-sftp

#限制www用戶的根目錄

Match User apache

ChrootDirectory /var/www

ForceCommand internal-sftp

#限制blog和pay用戶的根目錄

Match Group root

ChrootDirectory %h

ForceCommand internal-sftp

除此之外,web 目錄下生成的其他目錄的權限也必須是 775 。可通過修改 umask 為 0002 來實現。

最后,一個完整的sftp 方案誕生。

ps: 升級OpenSSH的版本。只有4.8p1及以上版本才支持Chroot。 CentOS 5.4的源中的最新版本是4.3,因此需要升級OpenSSH。 可通過ssh -V命令查看是否需要升級,升級方法自行搜索。

總結

以上是生活随笔為你收集整理的php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。