sudoは、パスワードが空のユーザーに機能します。

sudoは、パスワードが空のユーザーに機能します。

すべてのユーザーにsudoが次のように見えるようにしたいと思います。

  1. ユーザーが現在空でないパスワードを持っている場合は、パスワードの入力を求められます。

  2. ユーザーの現在のパスワードが空の場合は、パスワードの入力を求め、空の文字列を受け入れるか、メッセージをまったく表示せずに許可します。

可能ですか?これで(1)があるがパスワードが空のユーザーの場合、次のことが起こります。

$ sudo echo
Sorry, try again.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts

または、各ユーザーに対してパスワードの確認をオフにすることもできますが、ユーザーは後でパスワードを設定してからsudoにパスワードの入力を求める必要があるため、これは私が望むものではありません。

答え1

私はこれが可能だとは思わない。なぜならsudo、ユーザーがパスワードを持っていないか、()検証のためにパスワード(空であるかそうでない場合)がPAMモジュールに提供されるまで空の文字列であることを知らないからです。sudoしたがって、続行する前に常にユーザーにパスワードを要求する必要があります。

NOPASSWDここで唯一の方法は、sudoersファイルのオプションを使用してパスワードを必要としないユーザーを設定することです。しかし、これは非常に危険なので、この方法を進める前に最終目標が何であるかを慎重に検討してください。

...だからセキュリティには興味がありません...

「空」のパスワードを設定して始めます。

このU&L Q&Aの質問は次のとおりです。パスワードなしでユーザーを作成する方法は?私に効果があったこの方法を使用することをお勧めします。

$ sudo passwd --delete samtest
Removing password for user samtest.
passwd: Success

今テストしてみてください

次に、ファイルに次の行を追加します/etc/sudoersメモ:常にこのファイル編集を使用してくださいsudo visudo

samtest ALL=(ALL)       NOPASSWD: ALL

パスワードなしで「samtest」ユーザーとしてログインしてみてください。

$ su - samtest
$ 

それでは、次のアカウントを試してくださいsudo

$ whoami
samtest

$ sudo echo

$ 

答え2

sudoコンソールを介して動作するときにSSHを介してパスワードを求めるメッセージが表示されるのはなぜですか?

少なくともUbuntu 16.04では、デフォルトポリシーには次のものが含まれています/etc/pam.d/common-auth

auth    [success=1 default=ignore]      pam_unix.so nullok_secure

これpam_unix(8)マニュアル文書はnullok_secure使用目的にのみ使用されます/etc/securetty。この制限が必要ない場合nullok_secureに置き換えることができますnullok

または、NOPASSWDslmで説明されているように、特定のユーザーがsudoersファイルを介して空のパスワードを使用できるようにすることもできます。

答え3

これは私のPAM "auth"スクリプトのバグです。スクリプトが「ok」または「done」を取得せずに終了します。

関連情報