【问题标题】:How can I change a file mod to chmod+x in linux?如何在 linux 中将文件 mod 更改为 chmod+x?
【发布时间】:2022-01-05 17:21:31
【问题描述】:

我的 Linux 中有一个 helloworld.sh 文件。当我尝试通过带有subprocess.call('./hello.sh') 的python 脚本简单地运行它时,它会显示permission denied 的输出。

我已经尝试过在网上找到的这种方法,但它不起作用os.chmod("hello.sh", 0o664)。我想通过python脚本将文件的权限更改为chmod+x

请指导我了解语法。我也在网上搜索过,但它不起作用。我有一个基于 Debian 的 Linux。

【问题讨论】:

  • os.chmod("hello.sh", 0o755) 授予执行权。你在生成脚本吗?
  • 不,我在 .sh 文件中有一个脚本,我正在通过 python 脚本执行它,但在执行时会导致 Permission denied 错误。
  • 6 是 r+w,而不是 r+w+x;而 4 只是 r。为什么你认为644应该等同于应用+x的结果?

标签: python linux shell


【解决方案1】:

这应该以独立于平台的方式为usergroupother 添加可执行权限,同时保持任何原始权限。我没有要测试的 Windows 机器,但 Path.chmod() 的文档说它也应该在 Windows 上得到支持,尽管除了只读位之外的所有位都将被忽略。

from pathlib import Path
import stat

path = Path("/path/to/file")
original_st_mode = path.st_mode
path.chmod(original_st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2022-11-28
    • 1970-01-01
    • 2016-01-20
    • 2016-08-12
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多