現在、WindowsのUbuntuにBashをインストールしています。
Bashをインストールし、正常にユーザーを設定しました。すべてがうまく機能しますが、sudo
すべてのコマンドを実行したくはありません。 「WwindowsのUbuntu on Bash」をアンインストールしてから再インストールしました。
lxrun /install /y
ユーザー名は保存されましたが、以前のパスワードは保存されませんでした。私が使用しているユーザーの現在のパスワードを表示しようとしています。
Bashで自分のパスワードをどのように表示できますか?
答え1
実際にはできません。あなたのパスワードはハッシュされており、一方向にのみデコードされます。
全体的にログインしようとするたびに、次のことが想定されます。
if hash('password') == currentHash;
do grantAccess();
パスワードを保存するたびに
hashedPass = hash('password');
writeOnShadowFile('hashedPass')
これは、実際のパスワードを保存せずに関数の結果を保存して評価するハッシュセキュリティ標準に基づいています。ハッシュ関数の目的は、データが失われたときに元の値に多くの変換を実行することであり、データの損失のために元のパスワードを知ることはほとんど不可能です。
usermod -p <password> <user>
パスワードを使用または変更できますpasswd <user>
。
答え2
オペレーティングシステムのユーザーパスワードを表示できません。パスワードは次の場所に保存されます。ハッシュフォーム。そのうちの1つがわかっている場合にのみ確認できます。これはセキュリティの脅威になるだけでなく、パスワードを定期的に変更する必要があります。そして、新しいものは前のものとあまり似てはいけません。しかし、家庭環境(専門環境とは反対)では、コマンドラインに閉じ込められてはいけません。
答え3
あなたはできません!そんな理由があります。これは非常にセキュリティ上の欠陥になります。コマンドを使用してパスワードを変更できますpasswd
(参照man passwd
)。
ルートであれば、すべてのユーザーのパスワードを変更できます。