sudo を使う
sudo って便利。今更ながら気づいて、転向した。
と、言っても sudo 単体ではそれ程便利な訳じゃない。
実例
何が便利なのか。キーストローク量を減らす。これに尽きる。
でも、単純に sudo すると便利って事ではない。zsh などシェルの環境とセットと なった時の話となる。
具体的には zsh の predict-on を有効にした環境で使う。これ。
どう便利なのか。2 つの面がある。1 つは同様の作業を繰り返す場合、 ヒストリから素早く補完されること。例えば、システムの更新作業。
su で root になり、以下を実行するとする。
# apt-get update
# apt-get upgrade
# apt-get clean
最初に前回の履歴まで延々戻るか、前半を手入力して、後半のみ編集するかになる。
でも、sudo を使うと
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get clean
- s までの入力で sudo で始まる履歴でコマンドライン全体を補完してくれる。
- ヒットしない場合、ap~p として ap で始まる行を履歴からさがせる。
- sudo apt-get まで確定後に u と入れると update か upgrade が補完される
- 続けて d か g を入力すると update か upgrade が確定する
それぞれの段階で意図する行になっていたら、それ以上の入力は不要。 2 ~ 3 文字の入力。最大でも 6 文字程度の入力で実行したいコマンド行が 実行できる。
環境
前述のとおり、 zsh で predict-on を有効にしている。 ちょっとクセがあって、慣れるまで時間がかかるが、その価値はある。
また、root の環境はなるべくいじりたくないってのもある。 何かの時に使えなくなると困るから。 その点でも、一般ユーザのままでいることは目的に合っている。
root のシェルである bash もいろいろ機能強化がされているが、 まだ zsh が便利。
また、ヒストリを一般ユーザ側で持っているので、過去に実行した コマンドを探すのに root にならずに済むってのも、使う場面があるかもしれない。
設定
Debian の標準ではインストールされていない。まず、sudo パッケージを インストールする。
設定は visudo コマンドで行う。
# visudo
sudo の設定ファイルが開かれる。デフォルトの状態では sudo グループに 権限が設定されている。
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
取り合えず、何も書き換えずに終了する。
一般ユーザのうち、root 権限を持たせたいユーザを sudo グループに加える。
# gpasswd -a USER sudo
これで USER ユーザが sudo で root 権限で実行できるようになる。
感想、または言い訳
sudo なんて wheel グループみたいな物だよなぁ。 wheel グループも結局 Linux では否定されてるし。
そう、思っていた。いままでは。
でも、単純に便利なので使う事にした。
前述したとおり、zsh あってこそなのだが。