Linuxを使っていると、「この操作には管理者権限が必要です」と表示されて、コマンドが実行できないことがあります。そんなときに使えるのが「sudo」コマンドです。sudoは、スーパーユーザー(root)の権限を一時的に借りてコマンドを実行するための機能です。セキュリティを保ちながら柔軟な管理作業ができるため、多くのLinuxディストリビューションで採用されています。この記事では、sudoの基本的な使い方から、よくあるエラーとその対処法、さらにはsudoersファイルの編集によるカスタマイズ方法まで、初心者にもわかりやすく解説します。
Linuxでは、通常のユーザーアカウントにはシステム全体を変更するような操作を行う権限がありません。たとえば、システム設定の変更やアプリケーションのインストールなどを行うには、root(管理者)権限が必要です。しかし、セキュリティの観点から、常にrootユーザーでログインするのは推奨されていません。
そこで登場するのが「sudo(スードゥ)」です。sudoは「superuser do」の略で、一時的に管理者権限を得てコマンドを実行するためのものです。sudoを使うことで、必要なときだけ管理者として動作し、日常的には一般ユーザーとして安全にシステムを使うことができます。
sudoの使い方はとてもシンプルです。基本構文は次の通りです。
sudo コマンド
たとえば、パッケージのインストールを行いたい場合は以下のようにします。
sudo apt install vim
このコマンドを実行すると、パスワードの入力を求められることがあります。これは自分のユーザーパスワードで、rootのパスワードではありません。
入力に成功すると、そのコマンドは管理者権限で実行されます。
ここでは、日常的によく使われるsudoの使用例を紹介します。
システムの設定ファイルを編集するには管理者権限が必要です。
sudo nano /etc/hosts
WebサーバーやSSHなどのサービスを再起動する場合:
sudo systemctl restart apache2
sudo apt update
sudo apt upgrade
一部のディレクトリ(例:/etc、/varなど)はrootしか操作できません。
sudo mkdir /etc/newdir
sudo rm -rf /etc/unnecessary
ときどき、sudoを使っても「permission denied」や「ユーザーがsudoersに登録されていません」といったエラーが出ることがあります。
Ubuntuなどのディストリビューションでは、sudoグループに属していないとsudoが使えません。以下のようにして確認・追加できます(rootでログインしている場合):
usermod -aG sudo ユーザー名
軽量なLinux環境ではsudoがインストールされていないこともあります。rootでログインした状態で以下のようにインストールしてください。
apt install sudo
sudoの挙動は/etc/sudoers
ファイルで管理されています。このファイルを直接編集するときは、専用のエディタvisudo
を使うのが安全です。
sudo visudo
たとえば、特定のユーザーに特定のコマンドだけsudoで実行させたい場合、以下のように記述できます。
user1 ALL=(ALL) NOPASSWD: /usr/sbin/service apache2 restart
この設定では、user1
はパスワード入力なしでApacheの再起動コマンドを実行できます。
sudoは非常に強力なツールですが、そのぶん誤った使い方をすると危険です。次のようなポイントに注意しましょう。
sudo rm -rf /
)。sudo su
でrootシェルに入るのは便利ですが、抜け忘れると危険です。適切にsudoを使えば、セキュリティを保ちつつ効率よく作業ができます。
sudoで実行されたコマンドのログは、通常以下のファイルに記録されています。
/var/log/auth.log
以下のようにして確認できます:
grep sudo /var/log/auth.log
管理者はこのログを見ることで、誰がどんなsudo操作を行ったかを把握できます。
A1. NOPASSWD
オプションをsudoersに設定すれば、特定のコマンドに限りパスワードなしでsudoが使えます。
A2. sudo -i
やsudo su
を使えば、rootとしてログインしたのと同じ環境になります。ただし、使用後は必ずexit
して戻るようにしましょう。
A3. history
コマンドでターミナルの履歴を見ることができます。あわせて/var/log/auth.log
も確認するとよいでしょう。
sudoはLinuxにおいて、管理者として安全かつ効率的に作業を行うための非常に重要なツールです。基本的な使い方を覚えるだけでなく、必要に応じてsudoersファイルを編集することで、より柔軟な管理が可能になります。
セキュリティを意識しながらsudoを活用することで、Linux操作の幅が一気に広がります。まずは日常的な操作からsudoを使ってみて、徐々に応用的な使い方にもチャレンジしてみてください。