「ユーザー名が Sudoers ファイルにない」を修正。この事件は報道されます
Unix/Linux システムでは、root ユーザー アカウントはスーパー ユーザー アカウントであるため、システム上で実行可能なあらゆる操作に使用できます。
ただし、これはさまざまな意味で非常に危険である可能性があります。1 つは、root ユーザーが間違ったコマンドを入力してシステム全体を破壊する可能性や、攻撃者が root ユーザー アカウントにアクセスして制御を奪う可能性があるということです。システム全体の責任者であり、自分に何ができるかは誰にもわかりません。
このような背景に基づいて、Ubuntu および Ubuntu 派生製品では、root ユーザー アカウントはデフォルトでロックされており、通常のユーザー (システム管理者であろうとなかろうと) は、 sudoコマンド。
そして、Ubuntu システム管理者に起こり得る最悪の事態の 1 つは、 sudo コマンドを使用する権限を失うことです。この状況は一般に「 sudo が壊れた 」と呼ばれます。これは本当に壊滅的な事態になる可能性があります。
壊れた sudo は、次のいずれかが原因である可能性があります。
- ユーザーを sudo または admin グループから削除しないでください。
- /etc/sudoers ファイルは、sudo または admin グループのユーザーが自分の権限を root< の権限に昇格できないように変更されました。 sudo コマンドを使用します。
- /etc/sudoers ファイルの権限が 0440 に設定されていません。
重要なシステム ファイルの表示や変更、システムの更新など、システム上で重要なタスクを実行するには、sudo コマンドを使用してスーパーユーザー権限を取得する必要があります。上記の 1 つまたは複数の理由により、sudo の使用が拒否された場合はどうなりますか。
以下の画像は、デフォルトのシステム ユーザーが sudo コマンドを実行できない場合を示しています。
tecmint@TecMint ~ $ sudo visudo
[ sudo ] password for aaronkilik:
aaronkilik is not in the sudoers file. This incident will be reported.
tecmint@TecMint ~ $ sudo apt install vim
[ sudo ] password for aaronkilik:
aaronkilik is not in the sudoers file. This incident will be reported.
Ubuntuで壊れたsudoコマンドを修正する方法
マシン上で Ubuntu のみを実行している場合は、電源を入れた後、Shift
キーを数秒間押して Grub ブートを取得します。メニュー。一方、デュアルブート (Windows またはMac OS X と並行して Ubuntu) を実行している場合は、デフォルトで Grub ブート メニューが表示されるはずです。
下矢印
を使用して、「Ubuntu の詳細オプション」を選択し、Enterを押します。
以下のインターフェイスが表示されます。以下のように「回復モード」オプションでカーネルを選択し、Enter キーを押して「回復メニュー」に進みます。 >」。
以下は「回復メニュー 」で、ルート ファイルシステムが読み取り専用としてマウントされていることを示しています。 「root Drop to root Shell プロンプト」という行に移動し、Enter を押します。
次に、Enter を押してメンテナンスを行います。
この時点でルートシェルプロンプトが表示されているはずです。前に見たように、ファイルシステムは読み取り専用としてマウントされているため、システムに変更を加えるには、以下のコマンドを実行して読み取り/書き込みとして再マウントする必要があります。
mount -o rw,remount /
ケース #1 の解決 – ユーザーを sudo または admin グループに追加する
ユーザーが sudo グループから削除されたと仮定して、ユーザーを sudo グループに戻すには、以下のコマンドを実行します。
adduser username sudo
注: システム上の実際のユーザー名を使用することを忘れないでください。私の場合は、aaronkilik です。
または、ユーザーが管理グループから削除された状況で、次のコマンドを実行します。
adduser username admin
ケース #2 の解決 – ユーザーに sudo 権限を付与する
/etc/sudoers
ファイルが、sudo または admin グループのユーザーがその権限に昇格できないように変更されたと仮定します。スーパー ユーザーとして、次のようにsudoers ファイルのバックアップを作成します。
cp /etc/sudoers /etc/sudoers.orginal
次に、sudoers ファイルを開きます。
visudo
以下のコンテンツを追加します。
#
This file MUST be edited with the 'visudo' command as root.
#
Please consider adding local content in /etc/sudoers.d/ instead of
directly modifying this file.
#
See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbi$
Host alias specification
User alias specification
Cmnd alias specification
User privilege specification
root ALL=(ALL:ALL) ALL
Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
ケース #3 の解決 – sudoers ファイルに正しいアクセス許可を設定する
/etc/sudoers ファイルの権限が 0440 に設定されていないと仮定すると、次のコマンドを実行して正しく設定します。
chmod 0440 /etc/sudoers
最後になりましたが、必要なコマンドをすべて実行した後、exit
コマンドを入力して「リカバリ メニュー」に戻ります。
exit
右矢印
を使用して
を選択し、Enterを押します。
を押して、通常のブート シーケンスを続行します。
まとめ
この方法は、特に管理ユーザー アカウントが関係しており、回復モードを使用する以外に選択肢がない場合に問題なく機能します。
ただし、うまくいかない場合は、以下のフィードバック セクションを通じてご経験を表明して、ご連絡ください。また、当面の問題を解決したり、このガイド全体を改善したりするための提案やその他の考えられる方法を提供することもできます。