要求
1.用户只能sftp登陆
2.使指定用户可以上传开发用文件到wwwroot下指定目录,且被限制在该目录中
3.该指定用户对wwwroot下其他内容无读写权限
4.管理员在sftp界面对该用户的目录有管理权限
难点:
为指定用户设置chrootdir时需要将其祖先目录的拥有者设为root,最大权限为755,此时管理员用户无法使用tftp进行管理
简单环境配置
1,下载安装ssh,并进行ssh sftp的简单配置(略)
2,添加用户并进行简单设置:无法登陆,自动建立家目录(myUser)
sudo useradd -m -s /bin/false myUser
3,将运行账号加入指定用户组
sudo gpasswd -a www-data myUser
4,将管理员,加入指定用户组
sudo gpasswd -a administrator myUser
简单目录结构
/home/wwwroot/weixin/shunicom(指定目录)
管理员信息
administrator:administrator
运行账号信息
www-data:www-data administrator myUser
方法一,
原理简介:按照要求应将chrootdir设定为shunicom,但此时无法进行管理员访问,此时将chrootdir向root靠近,通过权限设
置使指定用户只能访问指定目录
缺点:指定用户可以查看一定的目录结构
配置步骤
1.进入sshd_config进行配置
sudo vim /etc/ssh/sshd_config
到 AllowUsers 所在行
在后面加入 myUser
Match User myUser
ChrootDirectory /home/wwwroot
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
2.进行文件权限配置
sudo chgrp administrator -R /home/wwwroot
sudo chown root /home/wwwroot
将/wwwroot目录下所有文件权限设置为771,满足管理员全部权限及其他用户的可执行权限
sudo chmod 775 -R /home/wwwroot
sudo chmod 755 /home/wwwroot
sudo chown myUser /home/wwwroot/weixin/shunicom
在/home/myUser/.profile中设置umask值为007
3.重启ssh服务
sudo service sshd restart (/etc/rc.d/init.d/ssh restart)
方法二:
原理简介:按照要求应将chrootdir设定为shunicom,但此时无法进行管理员访问,可使用链接将shunicom连接到其他目录。但
php对于连接难以处理。同时linux内核2.4之后可以使用mount挂载目录,与连接相似但更加容易处理,故使用mount。
缺点:容易忘记挂载目录,可移植性差,重启需要重新挂载(可通过写入开机配置解决不利于系统维护)
1.建立挂载文件
sudo mkdir /home/myUser/shunicom
2.进行挂载
sudo mount --bind /home/wwwroot/weixin/shunicom /home/myUser/shunicom
3.权限配置
sudo chgrp administrator -R /home/wwwroot
sudo chmod 771 -R /home/wwwroot /home/myUser/shunicom
sudo chown root /home/myUser
sudo chmod 755 /home/myUser
sudo chown myUser /home/wwwroot/weixin/shunicom /home/myUser
在/home/myUser/.profile中设置umask值为007
4.进入sshd_config
进行配置
sudo vim /etc/ssh/sshd_config
到 AllowUsers 所在行
在后面加入 myUser
Match User myUser
ChrootDirectory /home/myUser
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
5.重启ssh服务
sudo service sshd restart (/etc/rc.d/init.d/ssh restart)
总结
这两种方法的思路是将chrootdir向root考虑,避过了chrootdir目录的最大755权限与管理员需要7权限的冲突,同时还要另一种
思路就是给管理员特殊权限进行访问如Access Control List,但需要额外下载配置软件(以及老大的不允许)而不予采用
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论