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

我想从 php 打开一个 python 脚本。我的 php 用户是“user23”,它是我的 Ubuntu 18.04 桌面上的主要用户帐户。 开始.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();

    ?>

测试.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] Permission denied: '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。我希望你能帮助我,我现在完全迷路了。对不起我的英语不好。


ibeautiful
浏览 360回答 1
1回答

叮当猫咪

也许它可以帮助您使用 sudo 编写 php 代码shell_exec('echo&nbsp;"PASS"&nbsp;|&nbsp;sudo&nbsp;-u&nbsp;root&nbsp;-S&nbsp;python&nbsp;.test.py');
打开App,查看更多内容
随时随地看视频慕课网APP