5

システムを起動せずに、bashスクリプトを使用してLinuxシステムのrootユーザーのパスワードを変更する方法を探しています。私がこれまでに見つけたのは、パスワードを削除するか、使用したくないchrootを使用することだけです。
ルートパスワードを空にする方法は知っていますが、スクリプトの前半で定義した別のパスワードに変更する必要があります。
ファイルシステム全体にrootアクセスできます。
システムはシャドウパスワードを使用していますが、ログイン/ chrootせずに暗号化されたシャドウパスワードを生成する方法はありますか?
スクリプトからルートパスワードを変更する他の方法はありますか?

4

2 に答える 2

8

パスワードハッシュはにあり/etc/shadowます。生成された(ソルトされた)ハッシュに置き換えるだけです。パスワードハッシュの形式は、crypt(3)で説明されています。デフォルトはDESですが、glibc2システムでは、いくつかの異なる暗号化方式のいずれかを含めることができます。

ID  | Method
---------------------------------------------------------
1   | MD5
2a  | Blowfish (not in mainline glibc; added in some
    | Linux distributions)
5   | SHA-256 (since glibc 2.7)
6   | SHA-512 (since glibc 2.7)

したがって、シャドウパスワード文字列は次のようになります。$5$saltysalt$KhboodWTnuXJ5siXvWx5mxYXbnuNJOxROfD1inCILfD

この場合、最初の$ 5 $の部分は、それがSHA-256ハッシュであることを示し、中央の部分はソルトであり、残りは実際のハッシュです。

1つを生成するには、システムのcrypt(3)関数を使用するのが最適です。たとえば、最小限のCプログラムを使用します。

#include <stdio.h>
#include <crypt.h>

int main(int argc, char *argv[]) {
        printf("%s\n", crypt(argv[1], argv[2]));
}

プレーンテキストのパスワードとソルト文字列を使用してコンパイルしcc mkpass.c -o mkpass -lcryptて実行し、次の場所に入力できる文字列を生成します/etc/shadow

./mkpass yourpassword yoursalt                   # DES (default)
./mkpass yourpassword '$6$yoursalt$encrypted'    # SHA-512 (quote your $)

2番目の形式は、古いLinuxシステムではサポートされていない可能性があります。シャドウファイル内の既存の文字列をよく見て、同じハッシュタイプを使用してください(上部の$ id $リストから)。

于 2012-06-28T11:58:01.487 に答える
-1

eOS選択メニュー画面のUbuntuタブを押します。次のようにコマンドを更新します

rw init=/bin/bash

Linuxルートシェルがドロップされます。passwd rootという名前のコマンドを入力するだけで、rootパスワードを変更できます。

于 2015-04-02T08:07:26.370 に答える