我目前在CentOS 7上运行Apache,MySQL和PHP 7.2。
我的网站目录是/var/www/html
。
现在的问题是,有一个SFTP帐户是root用户,并且可以访问所有目录。将文件上载到网站目录时,该用户是root用户,并且是组apache。
因此,我需要将用户更改为apache:
sudo chown -R apache /var/www/html/
然后,用户是Apache,我可以使用我的使用PHP的网络软件来编辑文件。
有人告诉我,通过root用户通过SFTP上传文件时,用户将永远是root用户。
有没有一种方法可以使通过我的SFTP帐户上传的文件可以在不执行sudo chown的情况下进行编辑?
在Linux上无法完成自动更改用户的操作-这可能会导致“文件泄露”问题,即创建文件的用户无法编辑文件,因为文件已自动更改为其他用户拥有。
最简单的解决方案是在父目录上使用setgid
(via chmod g+s
)来使上传的文件属于apache
用户所属的组,并设置一个umask
(viaumask 0002
或类似名称),以确保新文件始终具有组写入权限允许。然后,Apache(和PHP)将能够对其进行修改。
(请注意,您的文件已经在该apache
组中上传了,这表明您已经在中间了,即,您已经setgid
设置了位。)
有关这些命令的更多信息,请参见SuperUser Blog文章Linux Permissions Demystified。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句