ログイン時に通常使用するパスワードと、システム管理とsudoアクセス用に別のパスワードをユーザーに与えるにはどうすればよいですか?1人のユーザーに2つのパスワードを設定します。
sudo usermod -d /path/to/new/home
ログイン時に通常使用するパスワードと、システム管理とsudoアクセス用に別のパスワードをユーザーに与えるにはどうすればよいですか?1人のユーザーに2つのパスワードを設定します。
sudo usermod -d /path/to/new/home
回答:
sudoサービスのPAM(Pluggable Authentication Module)設定を上書きすることでこれを行う方法があります。これはマシンに大きなリスクを負って実行してください。コマンドの機能を理解していない限り、コピーアンドペーストするのではなく、ルートターミナルを常に開いたままにしてください-テストテストテスト!-戻って何かを修正する必要がある場合に備えて、ログアウトする前。
PAMのしくみに関する情報を読んで、壊れた場合の対処方法を知っておくことをお勧めします。権限を正しく設定していない場合、ソリューションがパスワードに対するハッシュテーブル攻撃を受けやすい可能性があるため、ほとんどのユーザーが別の角度からこの問題に取り組むことをお勧めします(管理用に別のユーザーアカウントを作成します)。
続行する場合は、新しいPAMモジュールをインストールする必要があります。pam_pwdfileは、古いスタイルの/ etc / passwdタイプのファイルを認証に使用します。これは、異なるサービスに異なるパスワードを使用するのに最適です。アカウント認識は提供されません。システムに存在しないユーザーのユーザー名とパスワードのペアを作成できます。これはsudoに使用するため、通常の方法でアカウントが存在することをsudoに確認させるだけなので、問題ではありません。
sudo apt-get install libpam-pwdfile
また、便利なhtpasswdファイルエディタを入手することもお勧めします。Benjamin Schweizerは、Pythonでうまく機能する便利なエディターを作成しました。http://benjamin-schweizer.de/htpasswd_editor.htmlからそれを取得し、その依存関係をインストールします。
sudo apt-get install python-newt
ツール-を使用して、htpasswd形式のファイルを生成しますsudo python htpasswd_editor sudo.passwd
。sudoで使用するのと同じユーザー名を使用して、ユーザー名とパスワードを入力します-使用するユーザーごとに1つ。安全な場所にコピーし(これをテストするときは、/ etc / sudo.passwdに入れます)、chmod 660 /etc/sudo.passwd
rootとして通常のユーザーが読めないようにします。
ファイルの所有者がrootであり、他のユーザーが読み取れないことを確認してください。ファイルにハッシュ化されたパスワードが含まれているため、これは脆弱性であり、他のユーザーが読み取りまたは書き込み可能である場合、セキュリティが著しく損なわれます。このため、セキュリティを確保する必要があるマシンでこの方法を使用することはお勧めしません。
最後に、/etc/pam.d/sudo
ファイルを編集します。他の行の上に次の行を追加します@include ...
。
auth required pam_pwdfile.so pwdfile /etc/sudo.passwd
明らかに、最後の引数を、生成されたhtpasswdファイルへのパスに置き換えます。次の行をコメント化し#@include common-auth
ます。新しい認証方法を使用していることを確認します。
注意事項 - /etc/pam.d/sudo
ルートターミナルからファイルを編集する必要があります。テストせずにこれを閉じないでください!その場合、(何かが壊れている場合は)再度ログインできず、システムを修復するためにリカバリディスクから起動する必要があります。新しい端末を開いてログアウトする前にテストし、を使用してみてくださいsudo
。通常のログインパスワードでは機能しなくなりますが、passwdファイルの生成時に使用した新しいパスワードが必要になります。ファイルを更新するには、もう一度便利なツールを使用します。