如何授予用户在bash中创建和写入文件的权限?

时间:2015-04-09 13:37:00

标签: python linux apache bash apache2

我正在使用apache网络服务器。我有一个html文件和一个位于var / www / myfolder的Python脚本。我通过html文件提交表单,该文件由我的Python脚本处理(单击提交按钮时)。但是一旦处理完表单,我的Python脚本就会执行一个外部命令。

当Python脚本调用os.system("ls -l > temp.txt")时,我收到权限被拒绝错误。问题是用户apache2没有创建文件的权限。我也不知道apache2的密码,所以我无法使用sudo。

我有什么方法可以apache2授予创建临时文件的权限吗?

修改1:

在权限被拒绝错误之前我收到此警告:WARNING: HOME is not set, using root: /

2 个答案:

答案 0 :(得分:1)

如果用户apache2对该文件夹没有任何写权限,则无法创建/修改该文件夹中的文件。但是,您可以尝试在'/tmp/'或apache2的主文件夹中创建文件。您可以从中获取apache2的主文件夹 os.path.expanduser('~')

答案 1 :(得分:0)

您可以使用数据库,而不是写入文件。虽然这也需要赋予" apache2"用户访问数据库,它是更安全的解决方案,您可以自由地要求服务器管理员这样做。即使是小型网站也使用数据库。如果您的Web服务不需要大吞吐量,您可以从Sqlite开始。