このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:sudoersファイルを編集する:visudoコマンド

sudoersファイルを編集する:visudoコマンド
Linuxシステムにおいて、sudoコマンドを利用して特定のユーザーに管理者権限を付与する際、設定ファイルである/etc/sudoers
を編集する必要があります。しかし、このファイルを直接テキストエディタで開いて編集することは非常に危険です。誤った記述をすると、sudoが正しく動作しなくなり、最悪の場合、どのユーザーもsudoを使用できなくなる可能性があります。その結果、システム管理が困難になり、復旧には高度な知識が必要となる場合があります。
そこで、ここでは安全に/etc/sudoers
ファイルを編集するための専用コマンドであるvisudoについて解説します。

visudoコマンドの概要
visudo
は、/etc/sudoers
ファイルを安全に編集するための特別なコマンドです。このコマンドは以下の特徴を持ちます。
- 文法チェック:編集内容を保存する前に、記述の文法を自動的にチェックします。
- 同時編集の防止:複数のユーザーが同時に
/etc/sudoers
を編集することを防ぎます。 - ロック機能:編集中にファイルをロックし、他のプロセスからの変更を防ぎます。
注意:
visudo
コマンドの実行にはスーパーユーザー権限が必要です。
visudoコマンドの使用方法
スーパーユーザーになる
まず、visudo
を実行するためにスーパーユーザー(root)に切り替えます。
user01@ubuntu:~$ su -
パスワード:
root@ubuntu:~#
visudoの実行
スーパーユーザーの状態でvisudo
コマンドを実行します。
root@ubuntu:~# visudo
エディタの起動
visudo
を実行すると、デフォルトのテキストエディタ(Ubuntuの場合はnanoエディタ)が起動し、/etc/sudoers
ファイルが開かれます。
/etc/sudoersファイルの編集
/etc/sudoers
ファイルに必要な設定を追加または修正します。例えば、ユーザーuser01
にsudo権限を付与する場合、以下の行を追加します。以下のように閉じカッコ「)
」の入力をミスします。
user01 ALL=(ALL ALL
エディタの操作方法(nanoの場合)
- 保存:
Ctrl + O
を押してEnterキーを押す。 - 終了:
Ctrl + X
を押す。
visudoによる文法チェック
編集内容を保存して終了すると、visudo
は自動的に文法チェックを行います。もし記述に誤りがある場合、以下のようなエラーメッセージが表示されます。
/etc/sudoers:48:17: 構文エラー
user01 ALL=(ALL ALL
^~~
エラーへの対応
エラーメッセージが表示された場合、以下のオプションが提示されます。
オプション:
e -- sudoersファイルを再度編集します
x -- sudoersファイルへの変更を保存せずに終了します
Q -- sudoersファイルへの変更を保存して終了します (*危険です!*)
- e:エディタに戻り、誤りを修正します。
- x:変更を破棄して終了します。
- Q:誤りがあるまま強制的に保存して終了します(推奨しません)。
重要:通常はeを選択して誤りを修正してください。Qを選ぶと、sudoが動作しなくなる可能性があります。
エラーの修正例
誤って以下のように閉じカッコ「)
」を忘れた場合
user01 ALL=(ALL ALL
修正後
user01 ALL=(ALL) ALL
修正が完了したら、再度保存して終了します。
Ubuntuでの注意点
Ubuntuでは、インストール時に作成した最初のユーザー(例:user01
)には既にsudo権限が付与されています。そのため、上記の設定を追加する必要はありません。visudo
を使用して該当の行を削除してください。
不要な設定の削除
root@ubuntu:~# visudo
エディタが開いたら、追加した行を削除し、保存して終了します。
visudoを使用する理由
- 安全性の確保:文法チェックにより、sudoersファイルの誤った設定を防止します。
- システムの保護:sudoコマンドが使用不能になるリスクを軽減します。
警告:
/etc/sudoers
ファイルを直接編集すると、誤った設定によってシステム管理が困難になる可能性があります。必ずvisudo
コマンドを使用してください。
まとめ
- visudoコマンドは、
/etc/sudoers
ファイルを安全に編集するための専用コマンドです。 - 文法チェックにより、誤った設定からシステムを守ります。
- 編集手順
1.スーパーユーザーになる(su -
)。
2.visudo
コマンドを実行。
3.必要な設定を追加または修正。
4.保存して終了。 - エラー対応:文法エラーが発生した場合は、エディタに戻って修正します。
- Ubuntuでの注意:初期ユーザーには既にsudo権限があるため、追加の設定は不要です。
visudo
コマンドを正しく使用し、安全にsudoersファイルを管理することで、Linuxシステムのセキュリティと安定性を維持できます。システム管理者として、慎重な操作と正確な設定を心がけましょう。