通过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的主目录。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号