首页 文章

如何删除其他用户拥有的文件?

提问于
浏览
0

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

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

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

如何为 forge 用户和 www-data 用户同时编辑此目录?

1 回答

  • 2

    使用以下命令

    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 ,这将允许任何人完全访问该目录,但这是一个不好的做法 .

相关问题