ルートアクセスなしでプログラムから設定ファイルを書き込むことができる場所はありますか?

ルートアクセスなしでプログラムから設定ファイルを書き込むことができる場所はありますか?

小さなユーティリティを作成しているのですが、構成ファイルをどこかに置く必要があります。調べてみると、/etcLinux では標準的な場所のようです。しかし、このディレクトリへの書き込みにはデフォルトでルート アクセスが必要であるという問題が発生しています。

でプログラムを呼び出さなくても書き込み可能な場所はありますかsudo? たとえば、 Mac では、ルート アクセスなしで何らかの方法でhomebrew書き込みできるようです。/usr/local/bin

何かを入れることはできるとわかっています/homeが、Linux でファイルをどこに保存するかという点では、「正しい方法」でやろうとしています。

答え1

正しい方法で作業を行う場合、プログラムとその構成ファイルはユーザーが編集できないようにする必要があります。そうしないと、標準のセキュリティ モデルが破壊されます。

ユーザーが所有しているため、その構成はユーザーのホーム ディレクトリに保存されるか、システムの任意の場所 (例/usr/bin: /usr/local/bin、、 ) にインストールされてから、その構成がシステムのいくつかの場所 (例: 、または)/opt/appnameにも再度保存されます。/etc/usr/local/etc/opt/appname/etc

答え2

のような、アプリケーションに固有の、おそらく非表示のサブディレクトリを使用する必要があります.myApp。バージョン ログとインストール ログも含まれている可能性があります。これにより、クリーンアップなどがはるかに簡単になります。

設定がユーザー間で共有されている場合は、「共有スペース」で sudo mkdir を 1 回実行し、そのディレクトリ内で関連する権限を付与できます。上位レベルが書き込み可能でなくても問題ありません。

設定がユーザーごとにある場合、アプリは.myAppインストール時または初回使用時にユーザーの /home/username の下に作成されます。

Linux には公式のファイルシステム階層標準があります。

関連情報