「コマンドが見つかりません」の後、sudoがパスワードを求めるメッセージを表示しないのはなぜですか?

「コマンドが見つかりません」の後、sudoがパスワードを求めるメッセージを表示しないのはなぜですか?

私は以下の問題を観察します。

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分間資格情報をキャッシュします。)

おすすめ記事