/etc/sudoers ファイルは通常のテキスト ファイルですが、Vim や nano などの標準的なテキスト エディターで直接編集しないことが重要です。 /etc/sudoers ファイルは、昇格されたすべての権限へのアクセスを制御します。このファイルに誤りがあると、サーバーで root 権限を取得できなくなる可能性があります。ほとんどのディストリビューションでは、/etc/sudoers にデフォルトのエディター (通常は Vim または nano) が設定されます。 visudo コマンドを使用すると、システムは変更をコミットする前に /etc/sudoers ファイルの構文を検証します。これにより、管理者は間違いが実行中の構成の一部になる前に修正することができます。
visudo コマンドの「vi」部分は、多くのディストリビューションで標準装備されている vi テキスト エディターを指します。ただし、名前にだまされてはいけません。他のテキスト エディタを使用して sudoers ファイルを編集できます。ただし、適切な対策として、visudo コマンドを使用して編集する必要があります。 sudo visudo コマンドを入力すると、デフォルトのテキスト エディターが開き、/etc/sudoers ファイルの内容が表示されます。 Mint の場合、ターミナルのデフォルトのテキスト エディターは nano であるため、このコマンドを実行すると、nano テキスト エディターで /etc/sudoers ファイルが開きます。何らかの理由で別のテキスト エディターで開く場合は、次のコマンドを使用して、使用するテキスト エディターを明示的に指定できます:
$ sudo EDITOR=nano visudo
visudo コマンドの構文は次のとおりです。
$ visudo [options]
コマンド ライン オプション
オプション | 説明 |
---|---|
-c | 編集せずに、ファイルの内容を構文チェックします。有効な場合は 0、そうでない場合は 1 で終了します。 |
-f ファイル名 | sudoers ファイルの別の場所を指定します。 |
-q | 静かなモード。 -c と共に使用すると、エラーを出力しません。 |
-s | 厳密なチェック。定義する前にエイリアスを使用するとエラーになります。 |
-V | バージョン番号を出力します。 |
visudo コマンドの実行中に以下のエラーが発生した場合:
visudo: command not found
選択したディストリビューションに従って、以下に示すように sudo パッケージをインストールしてみてください:
分布 | コマンド |
---|---|
Debian | apt-get install sudo |
Ubuntu | apt-get install sudo |
アルパイン | apk add sudo |
Arch Linux | pacman -S sudo |
カリ Linux | apt-get install sudo |
CentOS | yum install sudo |
Fedora | dnf install sudo |
Raspbian | apt-get install sudo |
visudo コマンドの例
1. sudoers ファイルを編集します:
$ sudo visudo
2. sudoers ファイルでエラーを確認します:
$ sudo visudo -c
3. 特定のエディターを使用して sudoers ファイルを編集します。
$ sudo EDITOR=editor visudo
4. バージョン情報を表示する:
visudo --version
結論
直接編集する代わりに visudo を使用すると、2 人のユーザーが同時に編集を実行できなくなります。また、編集が構文的に正しくない場合、visudo は編集を sudoers に保存しません。 visudo を介してユーザー アクセスを変更する場合は、十分に注意してください。注意しないと、完全なアクセスを許可したくない人にマシン全体を開放してしまう可能性があります。あなたが会社の管理者である場合、ユーザーに仕事をするために必要な特定のコマンドへのアクセスを許可したいと思うでしょう。