没有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 可以做多少(比如七次真的很快。)
我已经在 Arch Linux 上以常规方式安装了 nginx。每当我的网站(即 nginx)创建临时文件时,它都是由 http:http
用户创建的,他们拥有 755 权限。
我需要不时地清除缓存,并且我以普通用户身份登录。这意味着无论何时我需要删除这些文件,我都需要使用 sudo
,但出于多种原因这是不正确的。无需 sudo 即可删除这些文件的正确方法是什么?
老实说,这就是应该的样子。围绕创建和使用临时文件的语义是棘手的,也是许多安全问题的根源。不要试图颠覆这个。
真正的问题是,为什么要删除这些文件?它们是否从未被 nginx 进程删除或重用或以其他方式管理?如果那里有问题,那就解决那个问题。不要追求 运行 进程用来创建临时文件的权限,除非你真的,真的,真的 必须这样做。 (例如,如果您正在将这些文件写入某个特殊的文件系统。但这也是一个薄弱的理由。)
但是,如果您偶尔需要删除由 UID 而不是您创建的文件,则需要以该 UID 或特权用户的身份执行此操作。有一些方法可以调整 sudo,这样你就可以控制 sudoer 可以做多少(比如七次真的很快。)