解决sftp根目录权限与管理方法限制

文章描述:-2022年3月28日发(作者:严英)要求1.用户只能sftp登陆2.使指定用户可以上传开发用文件到wwwroot下指定目录,且被限制在该目录中3.该指定用户对wwwroot下其他内容无读写权限4.管理员在sftp界面对该用户的目录有管理权限等的运行账号,如www-data对该用户的目录有运行权限难点:为指定用户设置chrootdir时需要将其祖先目录的拥有者设为root,最大权限为755,此时管

-

解决sftp根目录权限与管理方法限制2022年3月28日发(作者:严英)

要求

1.用户只能sftp登陆

2.使指定用户可以上传开发用文件到wwwroot下指定目录,且被限制在该目录中


3.该指定用户对wwwroot下其他内容无读写权限

4.管理员在sftp界面对该用户的目录有管理权限

等的运行账号,如www-data对该用户的目录有运行权限



难点:

为指定用户设置chrootdir时需要将其祖先目录的拥有者设为root,最大权限为755,此时管理员用户无法使用tftp进行管理



简单环境配置



1,下载安装,并进行 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.进入d_config进行配置

sudo vim /etc//d_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.重启服务

sudo service d restart (/etc/rc.d/init.d/ 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.进入d_config

进行配置

sudo vim /etc//d_config



到 AllowUsers 所在行

在后面加入 myUser

Match User myUser

ChrootDirectory /home/myUser

AllowTcpForwarding no

X11Forwarding no

ForceCommand internal-sftp

PasswordAuthentication yes



5.重启服务

sudo service d restart (/etc/rc.d/init.d/ restart)





总结

这两种方法的思路是将chrootdir向root考虑,避过了chrootdir目录的最大755权限与管理员需要7权限的冲突,同时还要另一种

思路就是给管理员特殊权限进行访问如Access Control List,但需要额外下载配置软件(以及老大的不允许)而不予采用













-

解决sftp根目录权限与管理方法限制

发布时间:2022-03-28 19:07:55
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 7 条评论,911人围观)

最近发表

随便看看

热门文章

标签列表