使新文件自动可执行?

问题描述 投票:0回答:4

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

file unix umask
4个回答
5
投票

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


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 进入其创建的目录,因此设置用户执行权限,导致使用上述 umask 时目录权限为 744。

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


0
投票

提供一个统一的答案:几乎所有 Unix 工具的文件权限默认都是 rw-rw-rw (0666)(按照 POSIX 的建议),而 umask 只是减去权限位,但不能添加位,这意味着无法创建文件默认情况下设置了可执行位。 一些背景可以在这些 SE Q+A 中找到:


-5
投票

以安全的方式?不。 以不安全的方式:只需在

umask
文件中添加
umask xxx
来更改
~/.bashrc
,其中
xxx
代表您想要的权限掩码。

备注:

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

推荐方式

仅对真正需要执行权限的文件执行此操作。

chmod +x /the/file
© www.soinside.com 2019 - 2024. All rights reserved.