有没有地方可以在没有 root 访问权限的情况下从我的程序写入配置文件?

有没有地方可以在没有 root 访问权限的情况下从我的程序写入配置文件?

我正在编写一个小实用程序,我必须将配置文件放在某处。从研究来看,这似乎/etc是 Linux 中的标准位置。但我遇到的问题是该目录默认情况下似乎需要 root 访问权限才能写入。

有没有可以写入而无需调用我的程序的地方sudo?例如,homebrew在 mac 上似乎能够在/usr/local/bin没有 root 访问权限的情况下以某种方式写入。

我知道我可以把东西放进去,/home但我正在尝试以“正确的方式”做事,以了解文件应该在 Linux 中存储的位置。

答案1

如果您想以正确的方式做事,则程序及其配置文件不得由用户编辑,否则会破坏标准安全模型。

它要么由用户拥有,因此其配置存储在用户主目录中,要么安装在任何系统位置(例如/usr/bin/usr/local/bin/opt/appname),然后其配置也再次存储在某些系统位置(例如/etc, ,/usr/local/etc/opt/appname/etc)。

答案2

您应该使用特定于您的应用程序的子目录(可能是隐藏的),例如.myApp.它还可能包含版本和安装日志。这使得清理等工作变得更加容易。

如果配置在用户之间共享,您可以在“共享空间”中执行一次性 sudo mkdir 并在该目录中授予相关权限。上面的级别不可写并不重要。

如果您的配置是针对每个用户的,则您的应用程序会.myApp在安装或首次使用时在用户的 /home/username 下创建。

Linux 有一个官方的文件系统层次结构标准。

相关内容