あなたは以下のような文言を見たことがありますか?
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
これはsudoコマンドを打った時にたまに出てくる警告文です。
この記事を書こうと思ったきっかけはこのツイートを見たことです。
とあるシステムで特権ユーザーにスイッチする時に「大いなる力には大いなる責任が伴う」ってメッセージが出てくるんやけど、めっちゃすこ。
— gonsuke777 (@ora_gonsuke777) April 26, 2021
彡(^)(^)
わかる。
自分は初めてみた時はドキッとしました。
「sudo使おうとしてごめんなさい・・・。でも仕方ないよね?」
と改めて確認したので効果ありました。笑
「大いなる力には大いなる責任が伴う」
この元ネタはスパイダーマンのセリフらしいです。
本質をついた良い言葉ですよね。
sudoの「大いなる力」の元ネタを探して - Qiita
でもシステムによって見かける時と見かけない時があるよな〜。
そういう設定があるのかも?
・・・自分のPCでも表示させてみたい!
そう思ってsudoの設定を探す旅に出かけました。
編集
調べてみると、sudoの設定は /etc/sudoers
に格納されている模様。
しかもそのフォルダを安全に編集するために visudo というコマンドがあるらしいです。
使い方はviとほぼ同じですが、sudo設定のエラーチェックをしてくれます。
sudoの権限を設定するvisudoコマンド【Linuxコマンド集】
$ sudo visudo
これだけで編集画面へいけます。
設定
sudoersの設定方法です。
関係ある部分を引用させてもらいます。
lecture
sudo はパスワードプロンプトに添えて簡単な訓戒を表示することができる。
このオプションはその訓戒をいつ表示するかを決定する。以下の値が可能である。
always いつでも必ず訓戒を表示する。
never 訓戒をまったく表示しない。
once ユーザがはじめて sudo を実行したときだけ表示する。
値を指定しないと、once を指定したことになる。頭に '!' を付けて、 このオプションを否定すると、値に never が使用される。 デフォルトの値は once である。
lecture_file
標準の訓戒とは別の sudo の訓戒を書き込んだファイルのパス。
指名したファイルが存在すれば、sudo は標準の訓戒の代わりに、それを使用する。
デフォルトでは、プログラムに埋め込まれた訓戒が使用される。
なるほど。
実践
表示させてみる
とりあえず設定に lecture = "always"
を追加してみよう!
それからデフォルトのものを表示させたいので、lecture_file
の行をコメントアウト。
##
# Override built-in defaults
##
...
Defaults lecture = "always" #追加
#Defaults lecture_file = "/etc/sudo_lecture" #コメントアウト
ちなみに設定がalwaysといってもターミナル開いてる間は警告表示が無効な様子。
警告の表示を再度出したい場合は一旦ターミナルを終了するといいみたいです。
ターミナルを再起動して、sudoを実行。
$ sudo ls
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:
これだ!
・・・日本語訳にしたいな。
日本語で表示させる
言語環境設定のlanguagesetupとか設定してもなにも変化なし。
localeコマンドで環境言語を見てみても日本語設定になってるので問題なさそう。
となると別にプログラムに組み込まれてるわけではないのかな。
じゃあもう表示する文言を自分で用意しちゃおう。
警告文表示ファイル作成する。
$ sudo vim /etc/sudo_lecture_japanese
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
保存。
作成したファイルを指定する。
$ sudo visudo
Defaults lecture = "always"
Defaults lecture_file = "/etc/sudo_lecture_japanese"
そして今度こそ!!!
$ sudo ls
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
できた!!!
これでsudoするたび警告が表示されます。
やったね!
おしまい。