54
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

やばい!コマンドアプレットに「shutdown now」を設定してしまった!

Last updated at Posted at 2022-07-17

はじめに

この記事は、僕がやらかしたミスと、それをどう解決したか書いたものです。
やらかしたミスは、タイトルのとおりです。

環境

OS: Linux Mint 20.2

ことの発端

僕「MATEパネルに『コマンドアプレット』ってものがあるのか」
僕「さっそく使ってみよう」
コマンドアプレットでBluetoothマウスのバッテリー残量を表示する様子
僕「なるほど、コマンドを設定するとそのコマンドを一定間隔で実行して、その結果を表示してくれるのか」
僕「……」

僕「これ、 shutdown コマンドを設定したらどうなるんだろう?」

僕「試してみよう」

   アプレットの設定のコマンド  ❎
コマンド: shutdown            

僕「あれ?何も表示されない」
僕「さすがにシャットダウンはできないようになってるのかな?」

   アプレットの設定のコマンド  ❎
コマンド: shutdown now        

PC「プツンッ」
僕「あ」

僕「…………」

僕「そういえば、アプレットって電源落としても残ってるよな……」

(やらかしに気づき冷や汗が湧き出る)

僕「と、とりあえず起動してみよう」
(ログイン)
PC「プツンッ」
僕「あ(絶望)」

状況

コマンドアプレットに shutdown を設定したときに何も表示されなかったのは、 shutdown コマンドのメッセージが標準エラー出力に出力されていたからであり、アプレットに表示されないだけでしっかり機能していました。つまり、この時点で、ログイン1分後に自動でシャットダウンされる爆弾は完成していたのです。
しかし、そんなことは露ほども考えなかった僕は、コマンドに now を追加してしまい、1分のわずかな猶予すら消え失せ、ログイン直後にシャットダウンを開始する悪魔が誕生してしまいました。そして、ログイン不可能な状態に陥ってしまったのです。

解決

とりあえずGoogleで検索してみましたが、有力な情報は見つかりませんでした。こんな馬鹿なことをしている人は、他にいないのでしょう。
誰かに聞くのも恥ずかしいので、自力での解決を試みます。

1. 他のユーザを経由してログイン

MATEパッドのアプレットはユーザごとに設定する機能なので、他のユーザでならログインできます。
ログインできたら、シェルを起動して、 su コマンドで問題のユーザにログインします。

他のユーザ:~$ su - 問題のユーザ
パスワード: 
問題のユーザ:~$ 

他のユーザがなければ、 Ctrl+Alt+F1 を押して、仮想コンソールからログインしてもいいかもしれません。
要は、GUIでログインしなければいいのです。

2. grepで検索

次に、 grep コマンドで問題の原因となっている shutdown now を検索します。
すると、次のようになりました。

問題のユーザ:~$ grep 'shutdown now' -rl .  # -r: 各ディレクトリ下を再帰的に検索, -l: ファイル名のみ出力
./.bash_history
./.config/dconf/user
問題のユーザ:~$ 

2つのファイルで検出されました。
.bash_history はBashの履歴ファイルなので、 ~/.config/dconf/user にコマンドアプレットに設定したコマンドが保存されていると考えられます。

3. お好きなエディタで shutdown now を削除

あとは、見つけたファイルから shutdown now の部分を削除すれば解決です。
僕は Vim を使って編集しました。

問題のユーザ:~$ vim ~/.config/dconf/user -c 's/shutdown now/echo nyaaan/' -c wq
問題のユーザ:~$ 

結果

おそるおそるログインしてみると……
PC「nyaaan」
うまく変更されていました。
やったね。

まとめ

気軽に shutdown コマンドを打たないようにしましょう!

おわりに

とほほ…
もう shutdown コマンドはこりごりなーん…

54
10
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
54
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?