高校财务网站建设,国外网站ip地址,公众号涨粉自助平台,教育机构网站是背景 手上有一个这样的系统#xff1a;后台可以直接新建项目(网站)#xff0c;只需输入项目名称、访问域名(二级)以及其他一些额外信息#xff0c;就可自动生成一个模板网站。大致原理是#xff1a;提交这些信息的时候#xff0c;后台会给项目新建一个目录#xff0c;并把…背景 手上有一个这样的系统后台可以直接新建项目(网站)只需输入项目名称、访问域名(二级)以及其他一些额外信息就可自动生成一个模板网站。大致原理是提交这些信息的时候后台会给项目新建一个目录并把一些必须的文件拷贝过去然后会有一个二级域名映射文件实现二级域名访问。当然一级域名可实现访问前提是要完成备案。 之前对于单个项目都是通过一个统一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-sftpSubsystem sftp internal-sftp#限制www用户的根目录Match User apacheChrootDirectory /var/wwwForceCommand internal-sftp#限制blog和pay用户的根目录Match Group rootChrootDirectory %hForceCommand internal-sftp除此之外web 目录下生成的其他目录的权限也必须是 775 。可通过修改 umask 为 0002 来实现。最后一个完整的sftp 方案诞生。ps: 升级OpenSSH的版本。只有4.8p1及以上版本才支持Chroot。 CentOS 5.4的源中的最新版本是4.3因此需要升级OpenSSH。 可通过ssh -V命令查看是否需要升级升级方法自行搜索。