Skip to content
This repository has been archived by the owner on Feb 11, 2023. It is now read-only.

コンテナを実行するユーザーの権限 #2

Open
shouth opened this issue Apr 4, 2022 · 0 comments
Open

コンテナを実行するユーザーの権限 #2

shouth opened this issue Apr 4, 2022 · 0 comments

Comments

@shouth
Copy link
Member

shouth commented Apr 4, 2022

現状、このイメージから生成されるコンテナでは特に指定の無い限りrootユーザーとして各種コマンドを実行しています。これにはいくつかの問題点が挙げられます。

  1. このコンテナでは現状 /dev のマウントを前提しており、コンテナ内から各種デバイスファイルのアクセス権限を書き換えることができる。
    • ただし --privileged ではない ので実際のアクセスは制限されている(はず)。あくまでアクセス権限の書き換えのみ
  2. コンテナ内で作成したファイルの所有者が全てrootユーザーになる。
    • ホスト側で改めて所有者を書きかえればよいが単純にめんどくさい

これらの問題は非特権ユーザーへの切り替えで解消します。しかしながら非特権ユーザーによる実行にも問題点があります。

  1. アクセスする必要のあるデバイスファイル (/dev/bus/usb/XXX/XXX など) はデフォルトでアクセス権限が 600 に設定されるため、そのままでは非特権ユーザーによるアクセスができない。

以上の問題を解決するにはいくつかの方法が考えられます。

  1. Dockerで完結することを諦めてudevルールだけホスト側に設置する
    • コンテナ内でudevが動くのならそれが望ましい
  2. いっそのこと諦めてrootユーザーのまま動作させる
    • コンテナ内で作成したファイルについてはホスト側からはいじらない
  3. devcontainer.jsonの設定で何とかする
    • このイメージはdevcontainerとして動作させることを前提に作成したのでテンプレートとなるリポジトリを作ってそれを使うようにする

意見等ありましたら教えてください。

@shouth shouth pinned this issue Apr 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant