首页  >  问答  >  正文

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

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

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

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

PHP中文网PHP中文网2770 天前1048

全部回复(6)我来回复

  • ringa_lee

    ringa_lee2017-04-11 09:18:51

    bool chown ( string $filename , mixed $user )可以改的。php好像还有chmod,不过建议直接在服务器上改权限吧。


    “客服通过 FTP 上传文件的时候,所有文件默认是 ROOT 用户权限的,导致 PHP 文件无法读写创建.”
    看样子“客服”使用的是root登录,上传的文件所有者自然属于root用户了。

    一般的情况,文件夹权限755,文件644。比如在nginx上的文件权限设定,一般用以下指令可搞定(具体文件夹路径自行更改):
    chown -R www:www /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 www:www /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'


    !!!不过直接用root太不保险了,万一删错什么的就不好了,同时建议把ssh的root远程登录关闭了,别启用root用户的sftp来给客服用。
    因此,更建议创建一个一般权限的用户给客服使用。为了方便,最好将并将这个用户放到www组中。
    当然这样得的话,遇到需要有www:www权限读写时还是得需要手动给予文件们664权限了,保证同组的用户可以读写文件。

    回复
    0
  • 阿神

    阿神2017-04-11 09:18:51

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

    回复
    0
  • PHPz

    PHPz2017-04-11 09:18:51

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

    回复
    0
  • 高洛峰

    高洛峰2017-04-11 09:18:51

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

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-11 09:18:51

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

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 09:18:51

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

    回复
    0
  • 取消回复