繁体   English   中英

从php调用python脚本时的权限/用户问题

[英]permissions/user problem when I call a python script from php

我想从php打开python脚本。 我的php用户是“ user23”,这是我的Ubuntu 18.04桌面上的主要用户帐户。 start.php

    <?php 
    echo 'php user: ' . get_current_user();
    $output=shell_exec("python ./test.py");
    echo'<br>python script user: ';
    echo($output);
    echo '<br>Current PHP version: ' . phpversion();
    ?>

test.py:

    import getpass
    import os
    print(getpass.getuser())
    os.mkdir(getpass.getuser())

如果我使用chrome打开http://localhost/start.php ,则输出PHP:

php user: user23
python script user: root
Current PHP version: 7.1.32

因此脚本可以工作,但不会创建“ root”文件夹。 PHP错误日志:

  File "./test.py", line 4, in <module>
    os.mkdir(getpass.getuser())
OSError: [Errno 13] Permission denied: 'root'

我不明白为什么php和python用户不同( user23,root ),以及root用户如何没有创建文件夹的权限Errno 13]权限被拒绝:'root' )。

如果我打开start.php,则python用户将为user23,并且文件夹创建完美。

$ php start.php
php user: user23<br>python script user: user23
<br>Current PHP version: 7.2.19-0ubuntu0.18.04.2

如果有问题,我会使用xampp。 希望您能帮助我,我现在完全迷路了。 对不起我的英语不好。

也许它可以帮助您使用sudo编写PHP代码


shell_exec('echo "PASS" | sudo -u root -S python .test.py');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM