通过PHP shell_exec来执行 shell脚本。
shell脚本中有执行到python,
python脚本,os.path.expanduser('~')
在Centos系统是取到 /root/
而Debian系统是取到 /home/www
PHP的真实用户是www的,但上面shell脚本是以root权限运行的。
Centos下是取到root用户主目录
/root/
而Debian是取到www用户主目录
/home/www
现在怎么保持一致,有些晕了。
你把文件chown 一下,
用php里面的get_current_user,就应该都是www了
因为php执行时,是web server的当前用户,所以和你直接shell里面的用户是不一致的,如果你想保持一致的话,就别用~,或者在shell中执行python中使用www用户
其实也说明Centos中php执行的当前用户是root 。。。
你把文件chown 一下,
用php里面的get_current_user,就应该都是www了
这个没关系。
因为php执行时,是web server的当前用户,所以和你直接shell里面的用户是不一致的,如果你想保持一致的话,就别用~,或者在shell中执行python中使用www用户
其实也说明Centos中php执行的当前用户是root 。。。
有些差错,已解决了,是一致的。
现在都是www用户了,
php脚本(www用户) -> shell_exec() -> C(提权root用户) -> shell脚本(root用户) -> python(反而是www用户)
不太明白python怎么是取到www的主目录。
shell id -u 是0,也就是root的,按道理应该取到root的主目录吧。
python反而取到真实的php用户www的主目录。