セカンダリグループを削除した後、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経由)。デフォルトでは、これはルートアクセスを意味します。

おすすめ記事