Ubuntuでグループ権限を失ったときの復旧方法——sudoフルアクセスを素早く取り戻す手順
Linuxは、ほかの主要なOSとは一線を画す存在です。それはユーザーに「自由」を与えているから。好きなやり方で使う自由、コードを研究し改変する自由、望む方法で配布する自由——そして、大事なグループから自分自身を締め出してしまう自由まで備えています。
この記事では、Ubuntuで唯一のユーザーアカウントをすべてのグループから外してしまったときの復旧方法を解説します。
Linuxにおけるグループの仕組み
Linuxでは、グループに属するユーザーは、追加の認証なしでファイルを読み書き・実行できる特権を持ちます。プライマリユーザーアカウントを作成すると、自動的に主要なグループへ追加されます。標準的なUbuntuインストール環境では、通常adm、cdrom、sudo、dip、plugdev、sambashareなどが該当します。
別のグループに自分を追加したい場合は、usermodコマンドを使用します。
sudo usermod -aG group_name your_username-Gオプションはユーザーを補助グループに追加することを意味し、-aはappend(追記)の略です。つまり、既存のグループ一覧に新しいグループが加わる形になります。
ところが、このコマンドを-aなしで実行すると、新しいグループがそれまでのすべてのグループを上書きしてしまいます。
特に深刻なのは、sudoグループから外れてしまう点です。sudoグループに属していないと、自分自身をsudoグループに再登録することはおろか、ソフトウェアのインストールやシステムのアップデートすらできなくなります。
うっかりユーザーのグループを消去してしまったら
些細なミスに見えますが、-aの付け忘れひとつで一日が台無しになりかねません。幸い、解決策自体はシンプルです。ただし、管理者権限を失っているため、普段のUbuntu環境の中から修復することはできません。rootシェルを起動する必要があります。
まず、GRUBメニューを表示させましょう。PCを再起動し、メニューが現れるまでEscキーを連打してください。
続いてAdvanced options for Ubuntu(Ubuntuの詳細オプション)を選択し、さらにRecovery Mode(リカバリーモード)を選びます。

メニューにrootシェルの項目が表示されたら、それを選択します。シェルは画面の下部に表示されます。

rootシェルで実行したコマンドはroot権限で処理され、標準的なUbuntuシステムではパスワード入力も求められません。
次のコマンドを入力して、自分をsudoグループへ追加します。
usermod -aG sudo your_usernameあとは再起動するだけです。再ログイン後にはsudoグループの一員に戻り、root権限を必要とする操作が再び行えるようになっています。
なお、現在所属しているグループを確認したいときは、groupsコマンドが便利です。
以前所属していたグループへ再加入する
Linuxはあらゆる操作をログに記録します。ログが巨大化してディスクを圧迫するのは困りものですが、ユーザーが過去にどのグループに属していたかを知りたい場面では、この記録が絶大な威力を発揮します。
sudo grep user-setup /var/log/installer/syslogこれを実行すると、ユーザーがグループに追加された履歴がすべて出力されます。グループ名を控えたら、次のコマンドでまとめて再追加しましょう。
sudo usermod -aG group1,group2,group3 your_usernameグループ名とカンマの間にスペースを入れないよう注意してください。
一度ログアウトして再度ログインすれば、グループ設定が完全に復元されます。
グループを活用してLinux管理をもっと簡単に
うっかり自分の権限を剥奪しさえしなければ、グループはUbuntuをはじめとする各種Linuxディストリビューションにおいて非常に強力なツールとなります。グループを活用すれば、大量のユーザーを効率的に管理し、各自が必要なアクセス権とパーミッションを適切に持つ状態を保ちながら、誤操作によるシステム破損を防ぐことができます。
また、どのユーザーにファイルの読み取り・書き込み・実行を許可するかを柔軟にコントロールできます。ユーザーをグループ間で移動させるのも簡単で、特定のファイルに関して完全な自由を与えたい場合は、所有権そのものを譲ることも可能です。
著者について
Davidは印刷ジャーナリズム出身のフリーランスライターで、フリー&オープンソースソフトウェアをこよなく愛しています。2000年代初頭からLinuxを使い続け、英国「Linux Format」誌にも定期的に寄稿。リビングのソファの上に鎮座するRaspberry Piで複数のサイトやサービスを運営しており、技術や人間について理解を深めるべく、edXの講座を受けるチャンスも決して逃しません。
ギターの腕前は壊滅的。暇なときにはキャラバンと愛犬たちとともに、ブリテン諸島をオフグリッドで旅しています。著書もいくつかあります(評判は……まあ、その)。最近の活動はdavidrutland.comで確認できます。
-
Linuxでデュアルモニター環境のフルスクリーンゲームを快適にする完全ガイド
Linuxでデュアルモニターを接続した状態でゲームを起動すると、通常はプライマリ画面で開きます。しかし、セットアップやディスプレイサーバーの種類によっては、フルスクリーンモードがうまく動作しないことがあります。ゲームが奇妙に引き伸ばされたり、ボーダーレスモードで起動したり、マウスが本来ロックされるべき場所からセカンドモニターへと移動してしまうこともあるでしょう。 適切な設定といくつかの簡単な調整を行えば、一方の画面ではゲームを完璧なフルスクリーンで表示しながら、もう一方の画面は通常どおり使用し続けることができます。また、ウルトラワイドな体験を好むなら、Gamescopeのようなツールを使ったり
-
【Taskbook】ターミナルだけで完結するタスク管理ツールの使い方徹底解説
GUIアプリを開いたりページが読み込まれるのを待ったりせずに、すべてのタスクをターミナルから直接管理できたら便利だと思いませんか?オープンソースのコマンドラインツール「Taskbook」を使えば、シンプルなコマンド入力だけでタスク管理が完結します。すべての操作はキー入力一つで即座に反映されるため、作業の流れを止めることなくTODOリストを整理できます。この記事では、Taskbookのインストール方法から基本的な使い方、ボード機能や優先度設定まで詳しく解説します。 Taskbookのインストール Taskbookのインストールには、Yarn・NPM・Snapcraftのいずれかを使う方法が推奨