os.OpenFile 对模式为 0666 的文件抛出“权限被拒绝”

fak*_*Kmz 5 linux go

这是代码:

\n
func main() {\n    _, err := os.OpenFile("/tmp/kd.log", os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0o666)\n    if err != nil {\n        panic(err)\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我用root用户运行它来打开另一个用户创建的文件:

\n
root in ~ \xce\xbb la /tmp/kd.log\n-rw-rw-rw- 1 k k 3.0M Dec 12 16:57 /tmp/kd.log\n
Run Code Online (Sandbox Code Playgroud)\n

它抛出:

\n
panic: open /tmp/kd.log: permission denied\n\ngoroutine 1 [running]:\nmain.main()\n        /tmp/t/t.go:13 +0x45\nexit status 2\n
Run Code Online (Sandbox Code Playgroud)\n

我试过lsof /tmp/kd.log但没有输出。所以这个文件没有被其他进程使用。

\n

现在既然已经有了-rw-rw-rw-权限,就不应该出现这种错误了。

\n

我不知道我是否忽略了一些基本细节。如果我问了一个愚蠢的问题,请道歉。

\n