Linux
 Computer >> コンピューター >  >> システム >> Linux

Ubuntuでグループ権限を失ったときの復旧方法——sudoフルアクセスを素早く取り戻す手順

Linuxは、ほかの主要なOSとは一線を画す存在です。それはユーザーに「自由」を与えているから。好きなやり方で使う自由、コードを研究し改変する自由、望む方法で配布する自由——そして、大事なグループから自分自身を締め出してしまう自由まで備えています。

この記事では、Ubuntuで唯一のユーザーアカウントをすべてのグループから外してしまったときの復旧方法を解説します。

Linuxにおけるグループの仕組み

Linuxでは、グループに属するユーザーは、追加の認証なしでファイルを読み書き・実行できる特権を持ちます。プライマリユーザーアカウントを作成すると、自動的に主要なグループへ追加されます。標準的なUbuntuインストール環境では、通常admcdromsudodipplugdevsambashareなどが該当します。

別のグループに自分を追加したい場合は、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(リカバリーモード)を選びます。

Ubuntuでグループ権限を失ったときの復旧方法——sudoフルアクセスを素早く取り戻す手順

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

Ubuntuでグループ権限を失ったときの復旧方法——sudoフルアクセスを素早く取り戻す手順

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で確認できます。

  1. Linuxでデュアルモニター環境のフルスクリーンゲームを快適にする完全ガイド

    Linuxでデュアルモニターを接続した状態でゲームを起動すると、通常はプライマリ画面で開きます。しかし、セットアップやディスプレイサーバーの種類によっては、フルスクリーンモードがうまく動作しないことがあります。ゲームが奇妙に引き伸ばされたり、ボーダーレスモードで起動したり、マウスが本来ロックされるべき場所からセカンドモニターへと移動してしまうこともあるでしょう。 適切な設定といくつかの簡単な調整を行えば、一方の画面ではゲームを完璧なフルスクリーンで表示しながら、もう一方の画面は通常どおり使用し続けることができます。また、ウルトラワイドな体験を好むなら、Gamescopeのようなツールを使ったり

  2. 【Taskbook】ターミナルだけで完結するタスク管理ツールの使い方徹底解説

    GUIアプリを開いたりページが読み込まれるのを待ったりせずに、すべてのタスクをターミナルから直接管理できたら便利だと思いませんか?オープンソースのコマンドラインツール「Taskbook」を使えば、シンプルなコマンド入力だけでタスク管理が完結します。すべての操作はキー入力一つで即座に反映されるため、作業の流れを止めることなくTODOリストを整理できます。この記事では、Taskbookのインストール方法から基本的な使い方、ボード機能や優先度設定まで詳しく解説します。 Taskbookのインストール Taskbookのインストールには、Yarn・NPM・Snapcraftのいずれかを使う方法が推奨