Linuxサーバー上のユーザーのパスワードを忘れました:どのようにリセットしますか?


17

サーバーで、ユーザー16040がパスワードを失いました。ルートのパスワードは持っていますが、ユーザー16040のパスワードは持っていません。パスワードをリセットするにはどうすればよいですか?

passwd 16040、Unixは私が持っていない現在のパスワードを尋ねます。現在のパスワードなしでユーザーのパスワードをリセットするコマンドはありますか?

passwd 16040
Changing password for 16040.
Current password for 16040@friesbie.com:

回答:


24

走ったら passwd 16040ルートとして、現在のパスワードの入力は求められません。

パスワードを変更した後、の発行を検討する必要がありますchage -d 0 16040。これにより、パスワードの最終変更日が過去に設定されます。システムでパスワードの有効期限が切れていると仮定すると、ユーザーはログイン後にパスワードを強制的に変更します。これにより、ユーザーのみが知っているパスワードを選択できます。


3

パスワードを変更するには、passwd 16040rootとして(sudo passwd 16040ユーザーがsudoersファイルにいる場合)発行する必要があります。現在の質問は表示されません。

または、ボックスに物理的にアクセスできる場合はinit=/bin/bash、カーネルパラメータとして追加してルートアクセスを取得し、を発行できますpasswd 16040


3
インラインコマンドにプロンプ​​トを表示するのはかなり不可解であり、コマンドの一部であると簡単に誤解される可能性があります。プロンプトはブロック引用符でのみ使用してください。また、# >ここではかなり珍しいとある>だけで、コマンドの一部と誤解されるの招待-一般的な方法は、単純なを使用している#ためroot-shellsと$、root以外のもののために。
アンドレアスヴィーゼ14

そのとおりです。わかりやすくするために回答を編集しました。ありがとう。
ペペルーナ

1

ルートとして直接ログインできない場合は、試すことができます

  • sudo /usr/bin/passwd 16040
  • sudo -i 以降 /usr/bin/passwd 16040

私はそれpasswdが/ usr / binにあると仮定しています(コマンドで確認できますwhich passwd


sudo bash 始めるために rootシェルは(一般的ですが)本当に、本当に悪いsudo習慣です。それはだsudo -ssudo -i(非ログインまたはログイン・シェル、RESP。)。これは、/etc/passwd自分で気にせずに設定されたデフォルトのシェルを尊重します。さらに、bash完全なパスがないと、悪意のあるユーザーがどこかに置く最初の偽のバイナリの1つになるため、それ自体は悪い考え$PATHです。
アンドレアスヴィーゼ14

私はフルパスの仕様、およびの使用について同意するsudo -iので、答えを変更しました...しかし、セキュリティと$PATH多分に隠されたトロイアンの可能性について話すsudo -s場合は、少なくとも$USER/binディレクトリとあなたが想像できるすべてのエイリアス... :-)
ハスター

確かに良い点ですが、sudo構成に依存します:出荷時のデフォルト構成でsudo$HOME変数セットが保持されないため、最終的にはrcファイルではなく独自のrcファイルがソースになり$SUDO_USERます。
アンドレアスヴィーゼ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.