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命令查看是否需要升级,升级方法自行搜索。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值