2017-10-29 155 views
-1

在脚本中,我应该先创建一个文件,使用chmod分配权限(例 - 首先使用touch命令创建一个文件,然后使用chmod命令对文件进行编辑的权限)“OR”应该在我创建文件时使用UMASK掩盖权限吗?另外,请解释选择一个优先还是另一个优缺点?CHMOD VS UMASK - Linux文件权限

注:该文件并不需要执行。

+0

这听起来很像一个家庭作业。请显示您的脚本,以确保问题仍然在这里。否则,文件系统权限和解释竞争条件以及toctou是无关紧要的,最好在[Super User](http://superuser.com/)或[Unix&Linux Stack Exchange](http://unix.stackexchange。 COM /)。 – jww

回答

1

与大多数事情一样,这取决于比你给了:-)

然而更多的信息,它通常是一个好主意,做事情一个封闭的方式然后打开它们,而不是其他方式。这是基本的“安全101”。例如,假设你正在为用户创建一个文件,并且用户愚蠢地选择了一个零(有效地创建的所有文件都将具有对每个人的完全权限)umask

在这种情况下,该文件是完全开放的,任何人创建和chmod阶段之间变化,而你可以这段时间缩短,你不能真正删除它完全。

对于我们之间真正的偏执狂来说,最好是尽可能以封闭的方式创建文件(可能只是为所有者提供rw),做任何你必须做的事来创建该文件的内容,然后使用chmod打开它需要的任何状态,如:

(umask 177 ; create_file myfile.txt ; chmod 644 myfile.txt) 
0

简单说 - 没关系。在大多数情况下,方法取决于你的需要。

如果您需要对整个脚本逻辑具有相同的文件权限,我宁愿将其设置在脚本的开头,只是创建文件而不是创建并运行chmod命令。但是,您可以在脚本运行结束时立即设置文件许可权chmod 0XXX -R /path/to/folder

0

对于特定用户,您应该始终具有UMASK,因为您不希望每次处理设置权限或应用程序创建文件。如果你想使用CHMOD,你可以进一步保护/释放任何特定的文件(这些情况将非常罕见)。除非你正在创建的文件需要特别保护/访问,否则你应该有一个UMASK为其权限工作。

  • 为正在运行脚本的应用程序创建单独的用户和指定目录。
  • 设置它的相应的UMASK。
  • 指定额外的权限,如果你需要它
+0

为什么我不能只使用chmod做到这一点,即不使用UMASK + CHMOD的,只是使用CHMOD?这一切都是以脚本完成的,所以这不会重复,对吧? –

+0

大哥就像我说的,这将取决于你的文件,你是否应该使用chmod与否。无论如何,您应该始终拥有一个UMASK设置,让您使用该脚本运行的用户。您还需要创建许多其他脚本和文件,因此UMASK只能提供帮助 –