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時間経ってたを解消するlinuxのbeep関数作ってみました。
.zshrcに記述してsorce /ect/.zshrc
すれば使えるようになります。
zsh function beep() { while true; do echo -e "\a" sleep $1 done }
使い方、 terminalで beep <秒数>
を実行 するとbeepで指定した秒数ごとに音が鳴ります。
止める時はctrl + cで止まります。