dockerデーモンサービスによって生成されたファイルの権限の変更

dockerデーモンサービスによって生成されたファイルの権限の変更

デフォルトの.dockerデーモンによってファイルが作成されたときに、ファイルに割り当てられているデフォルトの権限を変更しようとしていますumask。 dockerデーモンサービスはrootとして実行され、umaskrootを使用してファイルを生成します。umaskコマンドを追加/etc/init.d/dockerし、必要なコマンドをumask(000)開始 - 停止デーモンにオプションとして渡して変更しようとしましたが、そのうち何も機能しないようです。 dockerデーモンによって生成されたファイルに割り当てられているデフォルト権限をどのように変更しますか?

編集:コンテナの内部ではなく、ホストコンピュータでdockerデーモンによって生成されたファイルとフォルダのデフォルト権限を設定しようとしています。たとえば、ホストのコンテナにマッピングされたフォルダが存在しない場合、dockerは自動的にフォルダを作成し、デフォルトのumask(つまりルートのumask)に基づいて権限を割り当てます。

ベストアンサー1

Dockerコンテナは通常、非特権モードで実行するように設計されています。コンテナのプロセスがルートとして実行されると、プロセスuid 0は他のユーザー(通常は「nobody」)でホストオペレーティングシステムにマップされます。コンテナ内のすべてのプロセスがホストオペレーティングシステムからファイルを読み取るには、ファイルを誰でも読み取ることができる必要があります。おそらく(コードに慣れていないので注意してください)Dockerは、-vオプションで作成したディレクトリをコンテナから実際に読み取ることができることを確認するためにumask設定を無視します。

ホストオペレーティングシステムにアクセスできるbtrfsまたはoverlayfsを介してコンテナ内に生成されたファイルを一般的に読み取ることができるかどうかはわかりません。また、これらのファイル生成がコンテナ内で処理されるのか、ホストOSで処理されるのかはわかりません。

おすすめ記事