すべてのユーザーにsudoが次のように見えるようにしたいと思います。
ユーザーが現在空でないパスワードを持っている場合は、パスワードの入力を求められます。
ユーザーの現在のパスワードが空の場合は、パスワードの入力を求め、空の文字列を受け入れるか、メッセージをまったく表示せずに許可します。
可能ですか?これで(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
。
または、NOPASSWD
slmで説明されているように、特定のユーザーがsudoersファイルを介して空のパスワードを使用できるようにすることもできます。
答え3
これは私のPAM "auth"スクリプトのバグです。スクリプトが「ok」または「done」を取得せずに終了します。