• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 如何将 linux 服务器的 root 权限目录改为 www:www

php 搞代码 4年前 (2022-01-23) 34次浏览 已收录 0个评论
文章目录[隐藏]

客服通过 FTP 上传文件的时候,所有文件默认是 ROOT 用户权限的,导致 PHP 文件无法读写创建.

只有通过 chown www:www 来进行对每个文件的设置才可以.

请问有办法通过 PHP 来操作吗?

/本2文来源[email protected]搞@^&代*@码2网搞gaodaima代码

回复内容:

客服通过 FTP 上传文件的时候,所有文件默认是 ROOT 用户权限的,导致 PHP 文件无法读写创建.

只有通过 chown www:www 来进行对每个文件的设置才可以.

请问有办法通过 PHP 来操作吗?

你说:他们的服务器,他们喜欢用这个 SFTP 直接传文件,然后导致程序不能创建目录改写文件之类的。这个是必然,你可以把他们登录sftp的用户用usermod -aG www [username]加入到www这个组里面,把www用户加入你传文件的那个用户的组里面,这样www和传文件的用户就是一个组的了,这样得给予文件们664权限
(我就用过的这个方法,本地用syncthing以及atom编辑器(属于users组下)和web服务器(nginx组)互通同步文件。不过我是把web服务器chown给users的)

对,bool chown ( string $filename , mixed $user )可以改的。php好像还有chmod,不过建议在服务器上改吧, chown -R www:www /path/

一般文件夹权限给个755,文件给个644。用以下指令可搞定(具体文件夹自行更改): chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} \; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} \;
我是把它写入bashrc,总不能下次要用又敲一次吧:alias webroot='chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} \; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} \;'

<code>-----</code>

另一个服务器用的sftp传文件,用户属于users组下的aaa,我传文件前打开ssh,先把文件全部权限搞成属于users的aaa,在bashrc里面写入alias的,也不麻烦,传完了再弄回去,还是上面的好点,毕竟你们要用stfp,把root随便给出去用也不太安全)

你要是图方便 直接把文件夹chown -R 777就可以

ftp用户设置一下权限不行?

别用root登录嘛,win下传过去的吧,ftp工具一般可以改,比如xftp,可以修改传过来的文件夹和文件权限,并且保持后续传进来的也是如此的权限

可以用这个函数boolchown(),不过不太安全,最好是能在服务器上直接改,这个也需要root权限才能执行,最好ftp的账户是和php进程的用户保持一致

shell 中 使用 chown 命令,之前也遇到过这样的问题,配置lamp的时候。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 如何将 linux 服务器的 root 权限目录改为 www:www

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址