root以外のユーザーとして/ etc /にファイルをインストールするルールは何ですか?

root以外のユーザーとして/ etc /にファイルをインストールするルールは何ですか?

この質問はUnix&LinuxおよびStack Overflowに関連している可能性があります。特定の技術を実装する前に、Unix / Linuxコンベンションの観点から質問を理解したかったので、まずUnix&Linuxに投稿しました。

設定ファイルを読み取る必要があるスタンドアロンのhello-worldアプリケーションを作成していますconfig.yml。これで、ルートにのみ書き込みアクセス権があることがわかりました。
/etc/hello-world/config.yml
/etc/

$ ls -ld /etc
drwxr-xr-x 127 root root 12288 Feb 14 21:16 /etc

このLinux PCは私が設定したものではなく、有能なLinux管理者が設定したので、/etc/ユーザーだけが書くことができroot、他の人は誰でも読むことができる標準/慣例であると仮定します。

cmake && make installだから私の質問は:root以外のユーザーがプロセスを実行している場合、私のhello-worldアプリケーション()のインストールメカニズムはどのようにエントリをインストールするのですか?/etc/

~によると実装する、私の「インストールメカニズム」はinstall私の宣言ですCMakeLists.txt。たとえば、次のようになります。

install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/config.yml
  DESTINATION /etc/hello-world/config.yml)

make install...しかし、rootではなくユーザーとして実行するので、これは失敗します。

もう一度Unix / Linux学習の観点から質問します。習慣- これは一般的なシナリオのようです。単一の開発者が自分の設定ファイルを「標準」の場所にインストールしようとします/etc/your-app/your-config。それでは、rootとしてのみ使用できる場合は/etc/どうすればよいですか?

make installたとえば、rootまたはsudo権限を持つユーザーのみが実行できるという意味で理解されていますかsudo make install
それとも、設定ファイルを(サブディレクトリ)にインストールするのが間違っていますか/etc/
それとも、/etc/「他人」が書くことを許可する必要がありますか?

答え1

意図的にはできません。

あなたのアプリケーションは以下を保存する必要があります。ユーザーごとユーザーのホームディレクトリのどこかに設定されます。例えば ~/.config/your_app/config.yml

システムレベル設定ファイルはに属します/etc/。アプリケーションがネットワークのどこかに、すべてのユーザーが接続する必要があるローカルサーバーがあるのと同じです。それファイルはアプリケーションと共にシステム管理者によってインストールされます。

また、見ることができますFHSそして最下位ビット

関連情報