【问题标题】:How can I delete files owned by other user?如何删除其他用户拥有的文件?
【发布时间】:2019-05-10 12:15:02
【问题描述】:

我有一个定制的 laravel 命令,它每小时在/storage/app/something 目录中创建一些文件(forge 用户拥有它们)。

之后,laravel 用户无法通过管理面板从磁盘中删除这些文件,因为他不是这些文件的所有者。

用户只有在使用sudo chmod -R storage/app/something后才能删除。

如何使forge 用户和www-data 用户都可以编辑此目录?

【问题讨论】:

    标签: permissions root chmod forge


    【解决方案1】:

    使用以下命令

    sudo chown -R forge /storage/app/something
    sudo chgrp -R www-data /storage/app/something
    sudo chmod 2770 /storage/app/something
    

    第一个命令使forge 成为目录的所有者。

    第二个命令将目录的组更改为www-data,这意味着www-data组中的任何人都可以访问具有组权限的目录。值得注意的是,该组包含用户www-data,因此它应该授予www-data 访问权限。

    第三个命令执行以下操作:授予用户(在本例中为 forge)访问级别 7 (rwx)。为组(在本例中为 www-data)提供访问级别 7 (rwx)。授予所有其他用户访问级别 0 (---),这意味着其他用户无法访问该目录(将其替换为 5 以授予他们只读权限)。

    最后,chmod 命令中的2 设置了目录上所谓的setgid 位,这意味着所有新文件都将继承目录的组,而不是创建文件的组。这意味着文件也将拥有www-data 组,允许该组访问文件。


    当然,您也可以只使用sudo chmod 777 /storage/app/something,这将允许任何人完全访问该目录,但这是一种不好的做法。

    【讨论】:

    • 我似乎无法解决这个问题,一旦文件被 forge 删除并重新创建,除非我再次运行所有 3 个命令,否则 www-data 将失去权限
    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    相关资源
    最近更新 更多