python 权限被拒绝将输出写入文件

python 权限被拒绝将输出写入文件

我想执行一个python文件/var/www/html

sudo python myFile.py

效果很好。

现在,我想将输出写入log.txt

因此,我输入:

sudo python myFile.py >> log.txt

但是,我收到以下错误:

-bash:log.txt:权限被拒绝

虽然我改变了log.txt的权限:

sudo chmod u+x log.txt

ls -l log.txt返回:

-rwxr--r-- 1 www-data www-data 0 2月 3 16:04 log.txt

我怎样才能解决这个问题?

答案1

这里的问题sudo python myFile.py >> log.txt是你sudo python myFile.py以 root 身份运行,但你的 shell 仍然以普通用户身份运行,这意味着>>如果你没有写入权限,重定向将不起作用log.txt

正如 George 正确指出的那样,你应该这样做sudo bash -c "python myFile.py >> log.txt"。或者,如果你myFile.py不需要 root 权限,你可以这样做python myFile.py | sudo tee log.txt

答案2

我能想到的两个选择:

  1. sudo bash -c "python myFile.py >> log.txt", 或者

  2. sudo chmod u+x myFile.py, 然后sudo ./myFile.py >> log.txt

相关内容