Gibt es irgendwo, wo ich Konfigurationsdateien aus meinem Programm schreiben kann, ohne Root-Zugriff zu haben?

Gibt es irgendwo, wo ich Konfigurationsdateien aus meinem Programm schreiben kann, ohne Root-Zugriff zu haben?

Ich schreibe ein kleines Dienstprogramm und muss die Konfigurationsdateien irgendwo ablegen. Wenn ich es mir genauer ansehe, scheint es /etcder 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? homebrewAuf einem Mac scheint es zum Beispiel möglich zu sein, /usr/local/binirgendwie ohne Root-Zugriff dorthin zu schreiben.

Ich weiß, dass ich Dinge einfügen könnte, /homeaber 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/appnameerneut an einigen Systemspeicherorten gespeichert (z. B. /etc, /usr/local/etcoder )./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 .myAppbei der Installation oder ersten Verwendung unter dem /home/Benutzernamen des Benutzers erstellt.

Es gibt einen offiziellen Dateisystemhierarchiestandard für Linux.

verwandte Informationen