
Ich schreibe ein kleines Dienstprogramm und muss die Konfigurationsdateien irgendwo ablegen. Wenn ich es mir genauer ansehe, scheint es /etc
der kanonische Speicherort in Linux zu sein. Aber ich stoße auf das Problem, dass dieses Verzeichnis standardmäßig Root-Zugriff zum Schreiben erfordert.
Gibt es einen Ort, an den ich schreiben kann, ohne mein Programm mit aufrufen zu müssen sudo
? homebrew
Auf einem Mac scheint es zum Beispiel möglich zu sein, /usr/local/bin
irgendwie ohne Root-Zugriff dorthin zu schreiben.
Ich weiß, dass ich Dinge einfügen könnte, /home
aber ich versuche, die Dinge im Hinblick darauf, wo Dateien in Linux gespeichert werden sollen, „richtig“ zu machen.
Antwort1
Wenn Sie es richtig machen möchten, dürfen das Programm und seine Konfigurationsdateien nicht vom Benutzer bearbeitet werden können, da sonst das Standardsicherheitsmodell verletzt wird.
Entweder ist es Eigentum des Benutzers und daher wird seine Konfiguration im Stammverzeichnis des Benutzers gespeichert oder es wird an einem beliebigen Systemspeicherort installiert (z. B. /usr/bin
, /usr/local/bin
, ) und dann wird seine Konfiguration auch /opt/appname
erneut an einigen Systemspeicherorten gespeichert (z. B. /etc
, /usr/local/etc
oder )./opt/appname/etc
Antwort2
Sie sollten ein Unterverzeichnis verwenden, das wahrscheinlich versteckt ist und speziell auf Ihre Anwendung zugeschnitten ist, z. B. .myApp
. Es könnte auch Versions- und Installationsprotokolle enthalten. Dies erleichtert das Aufräumen usw. erheblich.
Wenn die Konfiguration von mehreren Benutzern gemeinsam genutzt wird, können Sie einmalig sudo mkdir in einem „gemeinsamen Bereich“ ausführen und die entsprechenden Berechtigungen in diesem Verzeichnis erteilen. Es spielt keine Rolle, dass die darüber liegenden Ebenen nicht beschreibbar sind.
Wenn Ihre Konfiguration pro Benutzer erfolgt, wird Ihre App .myApp
bei der Installation oder ersten Verwendung unter dem /home/Benutzernamen des Benutzers erstellt.
Es gibt einen offiziellen Dateisystemhierarchiestandard für Linux.