私は以下の問題を観察します。
abc@ubuntu:~$ sudo - i
[sudo] password for abc:
sudo: -: command not found
abc@ubuntu:~$ sudo -i
root@ubuntu:~#
sudoコマンドは、「コマンドが見つかりません」エラーのため失敗したように見えますが、正しいオプションを使用した後、sudoの試みはrootログインを取得しますが、今回はパスワードを要求しません。なぜこんなに奇妙な行動をするのでしょうか?
セキュリティの観点からこの質問をさせていただきます。 「コマンドが見つかりません」の後でも、ユーザーはまだ「abc」であり、おそらく管理者ではない可能性があります。彼/彼女はsudoのパスワードを知る必要さえありません。いいえ?
ベストアンサー1
最初の場合、シェルはsudo
実行したいコマンドの後にコマンドがあると考え-
、そのようなコマンドがないため、コマンドが見つからないと伝えます。前のコマンドを実行すると、デフォルトでsudo
パスワードの入力を求められます。
2番目のケースでは、シェルはオプションを使用してsudo
コマンドを実行していることを認識します-i
。最初のコマンドを実行しようとしたときにパスワードを正しく入力したため、パスワードの再入力を求められません。 (デフォルトでは15分間資格情報をキャッシュします。)