在脚本中,我应该先创建一个文件,使用chmod分配权限(例 - 首先使用touch命令创建一个文件,然后使用chmod命令对文件进行编辑的权限)“OR”应该在我创建文件时使用UMASK掩盖权限吗?另外,请解释选择一个优先还是另一个优缺点?CHMOD VS UMASK - Linux文件权限
注:该文件并不需要执行。
在脚本中,我应该先创建一个文件,使用chmod分配权限(例 - 首先使用touch命令创建一个文件,然后使用chmod命令对文件进行编辑的权限)“OR”应该在我创建文件时使用UMASK掩盖权限吗?另外,请解释选择一个优先还是另一个优缺点?CHMOD VS UMASK - Linux文件权限
注:该文件并不需要执行。
与大多数事情一样,这取决于比你给了:-)
然而更多的信息,它通常是一个好主意,做事情一个封闭的方式然后打开它们,而不是其他方式。这是基本的“安全101”。例如,假设你正在为用户创建一个文件,并且用户愚蠢地选择了一个零(有效地创建的所有文件都将具有对每个人的完全权限)umask
。
在这种情况下,该文件是完全开放的,任何人创建和chmod
阶段之间变化,而你可以这段时间缩短,你不能真正删除它完全。
对于我们之间真正的偏执狂来说,最好是尽可能以封闭的方式创建文件(可能只是为所有者提供rw
),做任何你必须做的事来创建该文件的内容,然后使用chmod
打开它需要的任何状态,如:
(umask 177 ; create_file myfile.txt ; chmod 644 myfile.txt)
简单说 - 没关系。在大多数情况下,方法取决于你的需要。
如果您需要对整个脚本逻辑具有相同的文件权限,我宁愿将其设置在脚本的开头,只是创建文件而不是创建并运行chmod
命令。但是,您可以在脚本运行结束时立即设置文件许可权chmod 0XXX -R /path/to/folder
对于特定用户,您应该始终具有UMASK,因为您不希望每次处理设置权限或应用程序创建文件。如果你想使用CHMOD,你可以进一步保护/释放任何特定的文件(这些情况将非常罕见)。除非你正在创建的文件需要特别保护/访问,否则你应该有一个UMASK为其权限工作。
为什么我不能只使用chmod做到这一点,即不使用UMASK + CHMOD的,只是使用CHMOD?这一切都是以脚本完成的,所以这不会重复,对吧? –
大哥就像我说的,这将取决于你的文件,你是否应该使用chmod与否。无论如何,您应该始终拥有一个UMASK设置,让您使用该脚本运行的用户。您还需要创建许多其他脚本和文件,因此UMASK只能提供帮助 –
这听起来很像一个家庭作业。请显示您的脚本,以确保问题仍然在这里。否则,文件系统权限和解释竞争条件以及toctou是无关紧要的,最好在[Super User](http://superuser.com/)或[Unix&Linux Stack Exchange](http://unix.stackexchange。 COM /)。 – jww