アカウントをグループに追加するときに同じ間違いを犯しました(忘れました-a
)。ルートログインがロックされた状態でシステムをインストールしましたが、アカウントはマシン上の唯一のアカウントでした。
受け入れられた答えは私を助けませんでした。復旧モードで起動中に、私が得たのは役に立たないメッセージだけでした
コンソールへのアクセスを開けません。ルートアカウントがロックされています。詳細は、sulogin(8)のmanページを参照してください。
Enterキーを押して続行します
ENTERを押すと、システムは正常に起動しました。問題を解決するためにルートアクセスを取得することはできません。この時点までに誰かが私の靴で終わる場合に備えて、私はこの答えを残しています。以下を使用するのは、Grubメニューから回復モードに到達できない場合のみです。
ルートシェルを取得するためのチュートリアル:
- Grubメニューを起動してEnter、通常の(回復ではなく、デフォルトの)起動オプションを強調表示します(ただし、オンにしないでください!)。
- を押し
e
ます。Grubは、複数行のコマンドラインエディターを表示します。各行は、威圧的でないとなじみのないものに見えるかもしれません。心配しないでください、あなたが加えた変更は永久に保存されません。
- という行を見つけます
linux ... ro ...
。これはカーネルコマンドラインです。ro
トークンをrw
に置き換えて、ルートファイルシステムを読み取り/書き込みにし、別のカーネルコマンドラインパラメーターを追加しますinit=/bin/sh
。これはカーネルにのsh
代わりに実行するよう指示します/sbin/init
。最終的に、行はのようになりlinux ... rw init=/bin/sh ...
ます。注:裸のgrub>
プロンプトでも取得できます。他のすべてがあなたのために失敗した場合、私はステップバイステップで、どのように説明させていただきます。この答えにコメントを残してください。
- 変更後、を押しF10てエディターからのコマンドを使用してシステムを起動します(または、Grubのコンパイル方法が異なる場合は、エディターウィンドウのすぐ下で起動する手順をお読みください)。initプロセスはルートIDでPID 1として実行されるため、ルートシェルプロンプトが表示されます。
- たとえば、必要な変更を加えます
usermod -a -Gadm,sudo YOURUSERID
。id -a YOURUSERID
sudoメンバーシップが戻ったことを確認します。「コマンドが見つかりません」というエラーが表示される場合は/sbin/usermod
、とを使用し/bin/id
ます。
この時点では、システムを完全にシャットダウンまたは再起動することはできません。reboot
、halt
または機能しpoweroff
ませんexit
。PID1プロセスが終了するだけではないため、シェルからカーネルパニックが発生します。したがって、次の2つのコマンドを発行する必要があります。
sync
exec /sbin/init
sync
何か問題が発生した場合に備えて、すべての変更をディスクに保存しexec
、シェルを実際のinit
システムに置き換えます(systemd、upstart、またはSystem V initですが、常に呼び出されます/sbin/init
)。ほとんどの場合、システムは通常どおり起動し続けます(リカバリモードなし)。
- ログインして、システムを1回再起動します。たとえば
sudo reboot
、sudo特権を取得する必要があります。(非常にまれですが)init
通常のブート中に追加のパラメーターが渡される可能性があるため、再起動は推奨されません。exec
失敗した場合は、単にマシンをリセットし、正常に起動します。ext4、xfs、btrfsのような最新のジャーナリングファイルシステムはすべて、迅速に回復し(sync
リセット前に編集された場合、せいぜいジャーナルチェックで数秒)、すべて設定できます。
背景のビット
Debianのバグレポートでこの問題に関する議論があり、理解する限りでは、これはバグではなく機能であると判断されました。このビジネスに25年間携わってきた私は、そのスレッドのメッセージ#31にあるMichael Bieblの主張に完全に反対せざるを得ません。
これを考慮してください:あなたはロックされたルートアカウントを持つラップトップを持っています。デフォルトでは、grubブートローダーはレスキューモード用のブートエントリを生成します。そのため、BIOSをロックダウンしてCD-RomまたはUSBからの起動を許可せず、grubをパスワードで保護している場合でも、ラップトップをしばらく放置すると、誰かが簡単にルートアクセスを取得できます。
十分な一般的ではないにしても、正しいIMOは、フェリペサテラーによってメッセージ#70で与えられました。
多くの(ほとんどの?)コンピューターにとって、物理的なアクセスとはゲームのセキュリティが失われることを意味します。ボックスを分解してハードドライブを取得するだけです。
これは、マイケルの議論で言及されているラップトップの場合に特に当てはまります:しばらく放置して、誰かがあなたのデータの後にいると、ラップトップは二度と見られなくなります。そして、のために任意のマシン「最も」、「多」かどうかさえものは、すぐに攻撃者がマシンに物理的にアクセスを取得して、ゲームは本当に終わって、ラックに8箇所でボルトで固定します。