我试图建立在Linux/var/log目录日志文件,但得到许可被拒绝。任何最佳实践,而不必更改目录的所有权?Golang os.Create权限被拒绝
f, _ := os.Create("/var/log/go_server.log")
defer f.Close()
log.SetOutput(f)
我试图建立在Linux/var/log目录日志文件,但得到许可被拒绝。任何最佳实践,而不必更改目录的所有权?Golang os.Create权限被拒绝
f, _ := os.Create("/var/log/go_server.log")
defer f.Close()
log.SetOutput(f)
你在那里有一个标准的UNIX权限问题。鉴于该目录的特殊性,您有三种选择:
还要注意,systemd可以保存你的标准输出/错误文件,如果你配置它的权利,你可以用journalctl浏览。事实上,让程序愚蠢地将diag打印到stdout/err而不是分叉是最聪明的事情,systemd会为你做所有这些事情(这样,你可以专注于你的程序的功能,而不是重新发明轮子)守护进程和日志记录)。
对于所有的悲伤systemd得到,它实际上在这种使用情况相当不错。
该机器在AWS云中运行,并通过BeanStalk部署了go环境和代码。所以没有最终用户对机器或程序用户的控制。认为有更好的方法。 – Bruce
从具有足够权限的用户帐户运行程序。 – zerkms
该机器在AWS云中运行,并通过BeanStalk部署了go环境和代码。所以没有最终用户对机器或程序用户的控制。认为有更好的办法。 – Bruce