sudoを無闇に使ってパソコンがブラックアウトした話

やってしまったこと TL;DR

jobsの1を停止しようとして sudo kill 1を実行した。

停止したプロセス

/sbin/launchd が停止しました。

sbin/launchdは、macOSおよび他のUnixオペレーティングシステムで使用されるプロセス管理システムです。launchdは、システムの起動時やユーザーログイン時に実行されるジョブやデーモンを管理し、制御します。

beepというタイマージョブを停止させようとしたら、プロセスを管理しているプロセスを停止させてしまったんですね笑

とんでもないことをやらかしてしまいました。

起こったこと

キーボードもマウスも反応しなくなりパソコンがブラックアウトして落ちた、 その後自動で再起動した。

学んだこと

jobsを停止 => kill %<job番号>

psを停止 => kill <pid番号>

%が抜けていました。

もうsudoは無闇につけません。。

最近dockerについて学習を行っているのですが、今回のようなことが起きないように権限管理についてもう少し学習したいと思いました。

コンテナ内のrootユーザはホスト上でもroot権限を持つことになりセキュリティ上望ましくありません。Linuxのユーザ名前空間(User Namespace)の機能を使うことで、コンテナ内のrootユーザをホスト上の一般ユーザとして扱うことができ、コンテナとホスト間でユーザ権限の分離ができるようになります。

おまけ

気づいたら1時間経ってたを解消するlinuxbeep関数作ってみました。

.zshrcに記述してsorce /ect/.zshrcすれば使えるようになります。

zsh function beep() { while true; do echo -e "\a" sleep $1 done }

使い方、 terminalで beep <秒数>を実行 するとbeepで指定した秒数ごとに音が鳴ります。

止める時はctrl + cで止まります。