0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerグループ(非sudo)のユーザが `sudo rm -rf` する

Last updated at Posted at 2025-03-24

これはなに

戒めです。環境構築芸人を自称しながらこんなことに5年気づかないとは。。。

追記: KVM + Dockerすればええやんというアドバイスをいただきました。試してみます。

想定される状況

あなたはラボのサーバ管理者です。一般権限のユーザから、Docker Composeが使いたいとの依頼がありました。

管理者

わかる、環境構築めんどくさいよね、Dockerじゃないと動かせない環境とかあるし。(NGCとか、Optuna使うときのPostgreSQLささっと立ち上げたいときとか1
Dockerグループに入れるだけなら、管理者権限渡すわけではないし、まあ、ええやろ。。。
というわけで

sudo usermod -aG docker sudou

須藤さん!?

何を思ったか一般ユーザさん、以下のコマンドを実行してしまいました。

docker run -v /:/root_of_host alpine rm -rf /root_of_host

サーバは無事死にました。。。2

じゃあどうすれば

真に管理者権限(ぽいもの)を渡さないDocker Compose(のようなもの)があれば良いんですけどね。
たとえば以下が候補ですが、私の中ではまだ答えがないです。(だれかいい案あったらコメントください)(あと3年位前の知識なので、間違ってたら修正コメントください)

  • Singularity: スパコンユーザにはなじみ深いソフトですね。docker pull, run, execあたりは代替できそう。でもsudoないとbuildできない、singularity composeは微妙だった印象。
  • podman: そもそも非root用なのか?Docker Desktopが有料化された時の退避先という印象。筆者はインストールでこけた
  • Docker Rootless mode: Docker公式の非root版だ!と意気揚々と試したんですが、NFSマウントされたディレクトリをマウントできないという致命的な仕様があり、断念した記憶。
  • enroot: 名前だけ知ってて試したことがない。composeあんのかな?
  1. 選定に悪意はないです

  2. 一応動作確認のために野良のWSLで叩いてみたんですが、/mnt/cの下が全削除されて危うく死ぬところでした。$Recycle.Bin の時点で気づいて何とか助かった。。。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?