現在、Windows 上の Ubuntu に Bash をインストールしています。
Bashをインストールし、ユーザーを通常通り設定しました。すべて正常に動作しましたが、すべてのコマンドを実行し続けるのは面倒でしたsudo
。アンインストールしてから、「Bash on Ubuntu on Wwindows」を再インストールしました。
lxrun /install /y
ユーザー名は保存されましたが、以前のパスワードは保存されませんでした。使用しているユーザーの現在のパスワードを表示しようとしています。
Bash でユーザーのパスワードを表示するにはどうすればよいですか?
答え1
実際にはできません。パスワードはハッシュ化されており、一方向にのみデコードされます。
要約すると、ログインしようとするたびに次のような動作を想像してみてください。
if hash('password') == currentHash;
do grantAccess();
パスワードを保存するたびに、
hashedPass = hash('password');
writeOnShadowFile('hashedPass')
これは、ハッシュのセキュリティ標準により、実際のパスワードを保存するのを避け、代わりに関数の結果を格納し、その方法で評価するものです。ハッシュ関数は、データ損失を伴う元の値の変換を多数行うことを目的としており、データ損失により、元のパスワードを知ることはほぼ不可能になります。
usermod -p <password> <user>
、または を使用すると、簡単にパスワードを変更できますpasswd <user>
。
答え2
OSユーザーのパスワードを確認することはできません。パスワードはハッシュ化されたフォーム。正しいパスワードを知っている場合にのみ確認できます。これはセキュリティ上の脅威になるだけでなく、パスワードは定期的に変更する必要があります。また、新しいパスワードは古いパスワードとあまり似てはいけません。ただし、家庭環境 (プロフェッショナル環境とは対照的) では、コマンド ラインでこれを気にする必要はありません。
答え3
できません。正当な理由があります。それは重大なセキュリティ上の欠陥となります。 コマンドを使用してパスワードを変更できますpasswd
(を参照man passwd
)。
root の場合は、すべてのユーザーのパスワードを変更できます。