sudoパスワードをログインパスワードとは異なる設定にしてください。

sudoパスワードをログインパスワードとは異なる設定にしてください。

sudo特権ユーザーとしてログインするときに使用する別のパスワードでパスワードを設定してみました。

いくつかの調査をしてみましたが、答えが見つかりませんでした。sudoこれらの設定はサポートされていますか?

パスワードを忘れると、すべてが失われます。誰かがroot同じパスワードでログインして自分自身を宣伝できます。

sudoroot発信者のパスワード()の代わりにパスワードを尋ねるオプションがありますがrootpwrootパスワードを共有することは絶対オプションではないので設定しておきましたsudo

過去にやったことconfig 2FAがあり、うまくいきましたが、自動化という目標を達成できませんでした。たとえば、スクリプトを使用して12台のサーバーで特権コマンドを実行したい場合は、expectaddを使用して2FAこれを行うことはできません。

sudo私が見つけた最も近い解決策は、SSH秘密鍵のみを許可し(ログイン)、パスワードとは異なるキーでパスワードを設定することです。それでも緊急状況に対応するキーがないと、コンピュータにログインできないため、あまり快適ではありません。

ベストアンサー1

ユーザーパスワードの代わりにルートパスワードの入力を求めるメッセージを表示するには、いくつかのオプションを入力します/etc/sudoersrootpw具体的には、ルートパスワードを入力するように求められます。はいrunaspwtargetpwそうです。詳細については、sudoers(5) マンページを参照してください。

それ以外の場合、sudoは他のすべてと同様にPAMを介して認証します。 PAMはアプリケーション固有の設定をサポートします。 Sudoの設定は(少なくとも私のDebianシステムでは)/etc/pam.d/sudo次のようになります。

$ cat sudo 
#%PAM-1.0

@include common-auth
@include common-account
@include common-session-noninteractive

つまり、デフォルトではシステムの他のすべてと同様に認証されます。その行を変更@include common-authし、PAM(およびsudo)に代替パスワードソースを使用させることができます。 common-authでコメントアウトされていない行は次のとおりです(デフォルトではLDAPなどを使用している場合は異なります)。

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

pam_userdb.so代わりに、例を使用して、pam_unix.soBerkeley DBデータベースに代替パスワードを保存できます。

はい

私はディレクトリ/var/local/sudopass、所有者/グループroot:shadow、スキーマを作成しました2750。その中にパスワードデータベースファイルを作成しましたdb5.1_load(Debian Wheezyで使用されているBerkeley DBのバージョンです)。

#マスク0027
#db5.1_load -h /var/local/sudopass -t hash -T passwd.db
アンソニー
WMaEFvCFEFplI
^D

ハッシュはmkpasswd -m desパスワード「password」を使用して生成されます。非常に安全! (残念ながら、pam_userdbはcrypt(3)古代のハッシュよりも良いものをサポートしていないようです)。

さて、/etc/pam.d/sudoその@include common-auth行を編集して削除し、所定の位置に置きます。

auth    [success=1 default=ignore]      pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

pam_userdbは.db渡されたデータベースに拡張機能を追加するため、オフにする必要があります.db

~によるとデニサウア存在するコメント/etc/pam.d/sudo-i、同じ修正を行う必要があるかもしれません。

passwordsudoの場合、実際のログインパスワードの代わりに次のものを使用する必要があります。

アンソニー@sudotest:~$ sudo -K
anthony@sudotest:~$ sudo echo -e '\nit ジョブ'
[sudo] Anthonyのパスワード:passwordRETURN

効率的な

おすすめ記事