没有sudo无法删除nignx的临时文件

Can't delete nignx's temporary files without sudo

我已经在 Arch Linux 上以常规方式安装了 nginx。每当我的网站(即 nginx)创建临时文件时,它都是由 http:http 用户创建的,他们拥有 755 权限。

我需要不时地清除缓存,并且我以普通用户身份登录。这意味着无论何时我需要删除这些文件,我都需要使用 sudo ,但出于多种原因这是不正确的。无需 sudo 即可删除这些文件的正确方法是什么?

老实说,这就是应该的样子。围绕创建和使用临时文件的语义是棘手的,也是许多安全问题的根源。不要试图颠覆这个。

真正的问题是,为什么要删除这些文件?它们是否从未被 nginx 进程删除或重用或以其他方式管理?如果那里有问题,那就解决那个问题。不要追求 运行 进程用来创建临时文件的权限,除非你真的,真的真的 必须这样做。 (例如,如果您正在将这些文件写入某个特殊的文件系统。但这也是一个薄弱的理由。)

但是,如果您偶尔需要删除由 UID 而不是您创建的文件,则需要以该 UID 或特权用户的身份执行此操作。有一些方法可以调整 sudo,这样你就可以控制 sudoer 可以做多少(比如七次真的很快。)