将chmod 777 应用于Python脚本

9

我可以帮您将 Linux 命令翻译成 Python 脚本。以下是需要翻译的内容:

Linux 命令:

chmod 777 file1 file1/tmp file2 file2/tmp file3 file3/tmp

我知道os.chmod(file, 0777),但我不确定如何在上面的代码中使用它。


无论你想要实现什么目标,chmod 777 都是错误和危险的。在任何情况下,您绝对不希望将可执行文件或系统文件的写访问权限授予所有用户。您需要尽快恢复到正常的权限(对于您的用例,可能是 chmod 755),并在再次尝试使用之前了解 Unix 权限模型。如果这发生在具有 Internet 访问权限的系统上,请检查是否有入侵者可以利用此来提升其特权。 - tripleee
3个回答

17

os.chmod 接受一个文件名作为参数,因此您需要循环遍历文件名并应用 chmod

files = ['file1', 'file1/tmp', 'file2', 'file2/tmp', 'file3', 'file3/tmp']
for file in files:
    os.chmod(file, 0o0777)

顺便说一句,我不确定为什么你要将权限位设置为777——这样做是在自找麻烦。你应该尽可能地选择最严格的权限位。


啊,谢谢。我一直在想chmod可能有一些隐藏的级别。我只是在翻译一个已经存在的流程。谢谢! - Xandy

0
如果你想使用 pathlib,你可以使用该库中的 .chmod()
from pathlib import Path

files = ['file1', 'file1/tmp', 'file2', 'file2/tmp', 'file3', 'file3/tmp']
for file in files:
    Path(file).chmod(0o0777)

-1

chmod 777可以完成任务,但它给予脚本的权限可能比你想要的多。

限制权限到执行才更好。

我建议使用:chmod +x myPythonFile.py


1
有点难以解析,但问题是在问如何在Python中实现它。 - otocan
好的观点。chmod 通常是从命令行/控制台预先执行的。回顾一下,我的答案在直接的 Python 代码方面并没有帮助。但你可以从 Python 执行控制台命令来完成任务。当然,该脚本需要以 root/admin 权限执行才能执行 chmod - benhorgen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接