【问题标题】:permissions/user problem when I call a python script from php当我从 php 调用 python 脚本时的权限/用户问题
【发布时间】:2020-01-10 03:49:26
【问题描述】:

我想从 php.ini 打开一个 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

所以脚本可以工作,但没有创建“根”文件夹。 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。我希望你能帮助我,我现在完全迷路了。 对不起,我的英语不好。

【问题讨论】:

  • this 可能会有所帮助

标签: php python permissions


【解决方案1】:

也许对你有帮助 带 sudo 的 php 代码


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2012-05-01
    • 2018-08-11
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多