通过PHP shell_exec来执行 shell脚本。
shell脚本中有执行到python,python脚本,os.path.expanduser('~')
在Centos系统是取到 /root/
而Debian系统是取到 /home/wwwPHP的真实用户是www的,但上面shell脚本是以root权限运行的。
Centos下是取到root用户主目录
/root/而Debian是取到www用户主目录
/home/www现在怎么保持一致,有些晕了。

解决方案 »

  1.   

    你把文件chown 一下,
    用php里面的get_current_user,就应该都是www了
      

  2.   

    因为php执行时,是web server的当前用户,所以和你直接shell里面的用户是不一致的,如果你想保持一致的话,就别用~,或者在shell中执行python中使用www用户其实也说明Centos中php执行的当前用户是root 
      

  3.   


    有些差错,已解决了,是一致的。
    现在都是www用户了,
    php脚本(www用户) -> shell_exec() -> C(提权root用户) -> shell脚本(root用户) -> python(反而是www用户)
    不太明白python怎么是取到www的主目录。
    shell id -u 是0,也就是root的,按道理应该取到root的主目录吧。
    python反而取到真实的php用户www的主目录。