セカンダリグループを削除した後、sudoアクセス権を再取得してください。

セカンダリグループを削除した後、sudoアクセス権を再取得してください。

Ubuntu 20.04でdockerを設定するときsudo usermod -G docker $USER。ここに関連する質問で述べたように、フラグを見逃してすべての-a補助グループを交換しました。しかし、私はマシンを再起動するまでこれを実現できませんでした。これはシングルユーザーワークステーションです。でこの問題を解決できますが、rootパスワードはありません。ルートアクセスなしで正しいグループを復元するにはどうすればよいですか?今問題を引き起こす唯一の事はですsudo。しかし、他の問題が発生すると確信しています。 Ubuntuを最初から再インストールせずにできることはありますか?

答え1

1セット残った: docker。これはまだdockerデーモンを制御できることを意味します。このデーモンは、ホストのルートファイルシステムを使用してコンテナを実行できます。インストール済みその後、コンテナはファイルを編集できますvi忙しい箱)またはより簡単:chrootホストのファイルシステムに接続できます。

最小画像ダウンロードbusybox:

myuser@myhost:~$ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
b71f96345d44: Pull complete 
Digest: sha256:930490f97e5b921535c153e0e7110d251134cc4b72bbb8133c6a5065cc68580d
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest

chrootこのイメージを含むコンテナをインタラクティブで特権モードで実行します(AppArmorが後でこのイメージなしでコマンドをブロックする場合)。

$ docker run -it --mount type=bind,source=/,target=/host --privileged busybox

コンテナ内で対話型コマンドを引き続き使用します。単にマウントポイントにchrootしてルートファイルシステムに「入力」し、すべてのUbuntuコマンドを取得できます。

/ # chroot /host

adduserより簡単なラッパーを使用してくださいuseradd

root@74fc1b7903e5:/# adduser myuser sudo
Adding user `myuser' to group `sudo' ...
Adding user myuser to group sudo
Done.
root@74fc1b7903e5:/# exit
exit
/ # exit

ログアウトして再度ログインするか、グループを手動で変更します。

myuser@myhost$ sg sudo

ルートアクセスが復元されました:

myuser@myhost$ sudo -i
[sudo] password for myuser:
root@myhost# 

結論は非常にDockerへのリモートアクセスを許可するときは注意してください(ポート2375 / TCP経由)。デフォルトでは、これはルートアクセスを意味します。

答え2

Ubuntuを最初から再インストールせずにできることはありますか?

他の回答で提供されているドッカー固有の方法に加えて、物理的なアクセスがあり、対策がない場合*再起動する準備ができている場合は、ほぼ常にシステムに入ることができます。

いくつかの一般的な方法があります。

1つはlivecdを使用してファイルシステムをマウントすることです。

もう一つの方法は、"init = / bin / sh"トリックを使用することです。 grubメニューに入ったら、起動オプションを選択してEnterキーを押すのではなく、eを押してからinit = / bin / shを押します。カーネルコマンドライン。これにより、起動プロセスの初期にシェルに入ることができます。この時点で、ルートファイルシステムはまだ読み取り専用である可能性があるため、書き込みmount -o remount,rw /可能にしてください。その後、sudoグループを使用してrootパスワードを設定したり、passwd rootユーザーをsudoグループに追加したりできますadduser myuser sudo。編集が完了したら、通常はexec init起動プロセスを続行できます。

* BIOS/ブートローダのパスワードは1つであり、一部のディスク暗号化タイプは別のパスワードである可能性があります。

関連情報