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

时间:2018-12-09 10:34:22

标签: permissions root chmod forge

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

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

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

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

1 个答案:

答案 0 :(得分: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以授予他们只读权限)。

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


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