【问题标题】:CHMOD vs UMASK - Linux file permissionsCHMOD 与 UMASK - Linux 文件权限
【发布时间】:2017-10-29 06:58:04
【问题描述】:

在脚本中,我是否应该先创建一个文件,然后使用 CHMOD 分配权限(例如 - 首先使用 TOUCH 命令创建一个文件,然后使用 CHMOD 编辑该文件的权限)“或”我应该屏蔽创建文件时使用 UMASK 的权限?另外,请解释选择一个而不是另一个的利弊?

注意:这个文件不需要执行。

【问题讨论】:

    标签: linux chmod systems-programming umask


    【解决方案1】:

    与大多数事情一样,这取决于您提供的信息要多得多:-)

    但是,以封闭的方式做事然后打开它们通常是个好主意,而不是相反。这是基本的“安全 101”。

    例如,假设您正在为用户创建一个文件,而用户愚蠢地选择了一个为零的umask(实际上所有创建的文件都将拥有所有人的完全权限)。

    在这种情况下,文件是完全开放的,任何人都可以在创建阶段和chmod 阶段之间进行更改,虽然这次您可以最小化,但您不能真正完全删除它。

    对于我们当中真正偏执的人来说,最好以尽可能封闭的方式实际创建文件(对于所有者可能只是 rw),做任何你必须做的事情来创建该文件的内容,然后使用chmod 将其打开到所需的任何状态,例如:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        • 为运行脚本的应用程序创建一个单独的用户和指定目录。
        • 设置合适的 UMASK。
        • 如果需要,请指定额外的权限

        【讨论】:

        • 为什么我不能只使用 CHMOD 来执行此操作,即不使用 UMASK + CHMOD,而只使用 CHMOD?这都是在脚本中完成的,所以,这不会是重复的,对吧?
        • 兄弟,我说过了,要不要使用chmod取决于你的文件。无论如何,您应该始终为运行该脚本的用户设置 UMASK。您还需要创建许多其他脚本和文件,因此 UMASK 只会提供帮助
        猜你喜欢
        • 2012-11-24
        • 2014-03-04
        • 2016-01-20
        • 2014-06-21
        • 2019-01-19
        • 1970-01-01
        • 2011-12-27
        • 2013-06-26
        • 2011-09-06
        相关资源
        最近更新 更多