【问题标题】:Making new files automatically executable?使新文件自动可执行?
【发布时间】:2013-03-14 01:22:38
【问题描述】:

是否可以让所有新创建的文件在创建时都具有执行权限?为什么我不能默认授予?

【问题讨论】:

  • 你是如何创建文件的?
  • 您可以,您只需为创建文件的用户更改umask真的不推荐让事情默认可执行。
  • 您可能想查看 [this][1] 主题。 [1]:stackoverflow.com/questions/580584/…
  • @BoristheSpider 实际上我认为它不会起作用。 umask 只会降低默认值,不会提升它。

标签: file unix umask


【解决方案1】:

从 666 中减去文件的 umask,从 777 中减去目录。因此,如果您的 umask 为 002,并且您创建了一个目录,您将得到 775(777 - 002),如果您创建一个文件,您将得到 664( 666 - 002)。

【讨论】:

  • 您的回答如何解决问题?正如 cremefraiche 在下面的第三个答案中指出的那样:“这不是一个可接受的答案。文件的默认 umask 是 666,您无法使用 umask 提升权限,只能将它们设置为低于默认值。”
【解决方案2】:

umask 只是减去默认的文件和目录权限。

777 initial file permissions
111 execute bit is not set by default
---
666 default file permissions
022 subtract default Unix umask
---
644 voila, final file permissions

必须为所有者设置执行位才能 cd 进入他们创建的目录,因此设置了用户执行权限,导致目录权限为 744,当使用上述 umask 时。

我没有找到默认设置执行的方法。无论如何,这会很糟糕,但我目前正在研究我正在编写的网络安全课程。

【讨论】:

    【解决方案3】:

    以安全的方式?不。 以不安全的方式:只需在您的~/.bashrc 文件中添加umask xxx 来更改umask,其中xxx 代表您希望的权限掩码。

    注意事项:

    1. 这是不安全的(我是否已经提到过?其他人提到过。)
    2. 这可能会导致很多问题。一是创建文件 在某些系统上不允许)

    推荐方式

    仅对实际需要执行权限的文件执行此操作。

    chmod +x /the/file
    

    【讨论】:

    • 这不仅在理论上不安全,而且根本行不通。我尝试过的每个umask 在执行位时都会忽略数字。
    • 好吧,那我想这取决于你使用的 linux 的风格。
    • @Jean 你能举一个在任何允许你默认创建可执行文件的系统上的 umask 的例子吗?
    • 这不是一个可接受的答案。文件的默认 umask 是 666,您不能使用 umask 提升权限,只能将它们设置为低于默认值。
    • 例如,您使用 apache 服务器做什么?您是否在添加新文件时不断更新文件权限?这听起来像一个真正的繁文缛节。
    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多