【问题标题】:How to change the php upload with owner group and user如何使用所有者组和用户更改 php 上传
【发布时间】:2020-05-20 22:39:04
【问题描述】:

在 ubuntu 服务器的 xampp 的 apache 上上传文件夹或文件时遇到 php 问题:

我使用该文件夹创建了一个指定的 FTP 组和用户:

组:用户 = ABC:abc_user 组的根文件夹 = /htdocs/ABC/uploads

把程序放到文件夹里:

/htdocs/ABC/upload.php

和 chown-ed:

sudo chown -R abc_user:ABC /htdocs/ABC

主程序会上传/uploads上创建的子文件夹和文件:

function create_folders($dir) {
    return is_dir($dir) or ( create_folders(dirname($dir)) and mkdir($dir));
}

move_uploaded_file($tmp_filename, $fileLocation)

该程序运行正常,可以上传文件夹和文件:)。

但是,我找到了文件夹和文件,它们在 group:user(1:1) 下。

【问题讨论】:

    标签: php apache chown chgrp


    【解决方案1】:

    我尝试谷歌解决方案并运行一些脚本进行自检。

    在文件夹上添加了一个 test.php 并再次 chown-ed:

    echo exec("who");
    
    chgrp($path,$group_name);
    chown($path, $user_name);
    

    得到结果:

    daemon
    Warning: chgrp(): Operation not permitted in test.php
    
    Warning: chown(): Operation not permitted in test.php
    
    Array ( 
    [name] => daemon 
    [passwd] => x 
    [uid] => 1 
    [gid] => 1 
    [gecos] => daemon 
    [dir] => /usr/sbin 
    [shell] => /usr/sbin/nologin 
    ) 
    
    

    我很困惑为什么它是“守护进程”和 group:user 是 1:1,而不是我的 group:user。

    所以我尝试用另一种方式在服务器端寻找任何东西,xampp设置部分,

    在httpd.conf上发现了一些东西:

    <IfModule unixd_module>
    #
    # If you wish httpd to run as a different user or group, you must run
    # httpd as root initially and it will switch.  
    #
    # User/Group: The name (or #number) of the user/group to run httpd as.
    # It is usually good practice to create a dedicated user and group for
    # running httpd, as with most system services.
    #
    User daemon
    Group daemon
    </IfModule>
    

    然后我尝试更改组:用户:

    <IfModule unixd_module>
    User abc_user
    Group ABC
    </IfModule>
    

    最后,我再次上传了ABC下的group:user:abc_user!!!

    但是.....XAMPP 说如果我将会话用于某些程序,它无法保存会话:(....

    <br />\n<b>Warning</b>:  session_start(): open(/opt/lampp/temp//sess_9k3dm9uv2gcgof1c37eacjlv36, O_RDWR) 
    failed: Permission denied (13) in <b>/opt/lampp/htdocs/upload.php</b> on line <b>1</b><br />\n
    <b>Warning</b>:  Unknown: open(/opt/lampp/temp//sess_9k3dm9uv2gcgof1c37eacjlv36, O_RDWR) 
    failed: Permission denied (13) in <b>Unknown</b> on line <b>0</b><br />\n<br />\n
    <b>Warning</b>:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/opt/lampp/temp/) in <b>Unknown</b> on line <b>0</b><br />\n
    

    听起来我需要将 temp 的路径更改为 /htdocs/ABC/temp 然后它应该可以工作,但它看起来很奇怪。

    任何人才有好主意吗? :)

    感谢和问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 2014-07-18
      • 2022-09-28
      • 2014-10-06
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      相关资源
      最近更新 更多