目次:
sudo
コマンドを使用すると、信頼できるユーザーはプログラムを別のユーザー、デフォルトではrootユーザーとして実行できます。 コマンドラインで多くの時間を費やしている場合、
sudo
は頻繁に使用するコマンドの1つです。
通常、ユーザーにsudoアクセスを許可するには、
sudoers
ファイルで定義されているsudoグループにユーザーを追加する必要があります。 Debian、Ubuntu、およびそれらの派生物では、
sudo
グループのメンバーにsudo特権が付与されますが、CentOSやFedoraなどのRedHatベースのディストリビューションでは、sudoグループの名前は
wheel
です。
このグループの各メンバーは、sudoコマンドを実行する前にパスワードの入力を求められます。 これにより、セキュリティの層が追加され、sudo特権をユーザーに付与するのに好ましい方法です。
ただし、自動スクリプトの実行など、状況によっては、sudoersファイルを構成し、特定のユーザーがパスワードを要求されずに
sudo
コマンドを実行できるようにする必要があります。
Sudoersファイルへのユーザーの追加
sudoersファイルには、ユーザーおよびグループのsudo特権を決定する情報が含まれています。
sudoersファイルを変更するか、構成ファイルを
/etc/sudoers.d
ディレクトリに追加することにより、ユーザーのsudoアクセスを構成できます。 このディレクトリ内に作成されたファイルは、sudoersファイルに含まれます。
変更を行う前に、現在のファイルをバックアップすることをお勧めします。
sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)}
dateコマンドは、現在の日付をバックアップファイル名に追加します。
visudo
コマンドで
/etc/sudoers
ファイルを開きます。
sudo visudo
sudoersファイルを変更するときは、常に
visudo
を使用してください。 このコマンドは、編集後にファイルをチェックし、構文エラーがある場合、変更を保存しません。 テキストエディタでファイルを開くと、構文エラーによりsudoアクセスが失われます。
ほとんどのシステムでは、
visudo
コマンドはvimテキストエディターで
/etc/sudoers
ファイルを開きます。 vimの経験がない場合は、別のテキストエディターを使用できます。 たとえば、エディターをGNU nanoに変更するには、次を実行します。
sudo EDITOR=nano visudo
ファイルの最後までスクロールし、ユーザーlinuxizeがパスワードを要求されることなく
sudo
を使用してコマンドを実行できるようにする次の行を追加します。
linuxize ALL=(ALL) NOPASSWD:ALL
アクセスを許可するユーザー名で「linuxize」を変更することを忘れないでください。
たとえば、
mkdir
および
mv
コマンドのみを許可するには、次のコマンドを使用します。
linuxize ALL=(ALL) NOPASSWD:/bin/mkdir, /bin/mv
完了したら、ファイルを保存してエディターを終了します。
/etc/sudoers.d
を使用
/etc/sudoers.d
sudoersファイルを編集する代わりに、/ etc
/etc/sudoers.d
ディレクトリーに許可ルールを含む新しいファイルを作成できます。 このアプローチにより、sudo特権の管理がより維持しやすくなります。
テキストエディターを開き、ファイルを作成します。
sudo nano /etc/sudoers.d/linuxize
ファイルには好きな名前を付けることができますが、通常は、ユーザー名をファイルの名前として使用することをお勧めします。
/etc/sudoers.d/linuxizesudoersファイルに追加するのと同じルールを追加します。
linuxize ALL=(ALL) NOPASSWD:ALL
最後に、ファイルを保存してエディターを閉じます。
結論
パスワードを入力せずに
sudo
コマンドを実行できるように、
/etc/sudoers
を編集する方法を示しました。 これは、非rootユーザーが管理タスクを実行する必要があるスクリプトがある場合に役立ちます。