linux 添加 python 脚本以作为用户运行

linux 添加 python 脚本以作为用户运行

我有一个通过 PHP 执行的 Python 脚本,但该脚本在用户 ubuntu 下运行。如何将我的 Python 脚本更改为以与我的 PHP 脚本 www-data 相同的用户身份运行?

如果这不是一种安全的方法,那什么才是安全的呢?

Python 脚本对通过 PHP 上传的文件执行任务,并且 PHP 会自动将所有者和组设置为 www-data。我从命令行执行 Python 脚本,它可以正常工作,但是当通过 PHP 执行时,Python 脚本没有权限对上传的文件执行其任务。

答案1

一种可能的解决方案是将 ubuntu 用户添加到 www-data 组:

sudo usermod -a -G www-data ubuntu

如果文件具有组写入权限,则此方法有效。否则,您必须详细说明如何执行 python 脚本,以确定它为何以 ubuntu 用户身份运行。

答案2

www-data 的 Shell 访问已被禁用。您可以让其他用户将其添加到与 www-data 相同的组中:sudo useradd -G www-data {new_username} -s /bin/bash

现在将 new_username 的密码更改为您想要的密码:sudo passwd new_username

更改您想要执行脚本的目录的权限。

cd /project/path
sudo chown -R www-data:www-data project
cd project
find . -type f | xargs sudo chmod 660
find . -type d  | xargs sudo chmod 770

最后两行仅允许 www-data 组中的用户具有写访问权限。然后,您可以在目录中以 new_username: 的身份执行脚本。sudo new_username python myscript.py或者简单地su new_username -然后python myscript.py

相关内容