Linuxのsudoコマンド徹底解説!知っておくべき基本と便利なテクニック
Linux(特にUbuntu)を使い始めたばかりのユーザーは、いずれ「sudo」コマンドの存在に気づくことになります。多くのユーザーは「Permission denied(アクセス権がありません)」というエラーメッセージを回避するためだけにsudoを使っていますが、実はsudoにはそれ以外にもさまざまな便利な機能が備わっています。
sudoコマンドとは
sudoについてよくある誤解の一つが、「一般ユーザーにroot権限を与えるためだけのコマンドだ」というものです。実際には、sudoコマンドを使えば任意のユーザーとしてコマンドを実行できます。デフォルトでは通常rootユーザーとして実行されますが、それはあくまで初期設定にすぎません。
ユーザーにsudo権限を付与する方法
Ubuntuのユーザーは、sudoコマンドを実行できることを当然のことと思いがちです。これは、インストール時にデフォルトユーザーが作成され、Ubuntuではそのデフォルトユーザーに必ずsudo権限が設定されるためです。しかし、他のディストリビューションを使用している場合や、Ubuntu上で別のユーザーを追加した場合には、そのユーザーに対してsudoコマンドの実行権限を付与する必要があります。
sudoコマンドへのアクセスは少数の人間だけに限定すべきであり、その対象はシステム管理者であるのが望ましいでしょう。ユーザーには、業務の遂行に必要な最小限の権限のみを付与するのがセキュリティの原則です。
ユーザーにsudo権限を付与するには、そのユーザーをsudoグループに追加するだけでOKです。新規ユーザーの作成時に同時に追加する場合は、次のコマンドを使用します。
sudo useradd -m -G sudo ユーザー名
このコマンドは、ホームフォルダ付きで新しいユーザーを作成し、そのユーザーをsudoグループに追加します。すでに存在するユーザーをsudoグループに加えたい場合は、次のコマンドを使用します。
sudo usermod -a -G sudo ユーザー名
sudoの実行を忘れたときに使える便利な小技
これはベテランから学べるターミナル操作の小技の一つで、「Permission denied」エラーをすばやく解消するのに役立ちます。長いコマンドを実行した後にsudoを付け忘れた場合、履歴をさかのぼって先頭にsudoを追記したり、コマンドを打ち直したりしてもよいのですが、もっと簡単な方法があります。次のコマンドを使えば、直前に実行したコマンドをsudo付きでそのまま再実行できます。
sudo !!
sudoでrootユーザーに切り替える方法
suコマンドは、あるユーザーアカウントから別のアカウントへ切り替えるために使用します。suコマンドを単体で実行すると、スーパーユーザー(root)アカウントに切り替わります。したがって、sudo経由でスーパーユーザーに切り替えたい場合は、次のコマンドを実行します。
sudo su
sudoコマンドをバックグラウンドで実行する方法
スーパーユーザー権限が必要なコマンドをバックグラウンドで実行したい場合は、-bオプションを付けてsudoコマンドを実行します。
sudo -b コマンド
ただし、実行しようとしているコマンドがユーザーとの対話(入力待ちなど)を必要とする場合、この方法は機能しないため注意してください。
コマンドをバックグラウンドで実行するもう一つの方法は、コマンドの末尾に「&」を付けることです。
sudo コマンド &
sudo権限でファイルを編集する方法
スーパーユーザー権限でファイルを編集する最も一般的な方法は、GNU nanoなどのエディターをsudo経由で起動することです。
sudo nano ファイル名
また、次の構文を使う方法もあります。-eオプションを指定すると、環境変数で指定されたエディターが安全な形で起動します。
sudo -e ファイル名
sudoで別のユーザーとしてコマンドを実行する方法
sudoコマンドは、他の任意のユーザーとしてコマンドを実行するためにも使えます。たとえば、ユーザー「john」としてログインしている状態で、ユーザー「terry」としてコマンドを実行したい場合は、次のようにsudoコマンドを実行します。
sudo -u terry コマンド
実際に試してみたい場合は、「test」という新しいユーザーを作成し、次のwhoamiコマンドを実行してみてください。出力結果に「test」と表示されれば成功です。
sudo -u test whoami
sudoの認証情報を更新する方法
sudoでコマンドを実行すると、パスワードの入力を求められます。その後一定時間は、パスワードを再入力せずにsudoコマンドを実行できます。この猶予期間を延長したい場合は、次のコマンドを実行しましょう。
sudo -v
sudoについてさらに詳しく
sudoは、単にコマンドをスーパーユーザーとして実行するだけのコマンドではありません。ここで紹介した以外にも、さまざまなオプションが用意されています。「man sudo」コマンドで公式マニュアルを確認すれば、自分の用途に合ったオプションがきっと見つかるはずです。
-
Bashの特殊文字まとめ:知っておきたい記号の意味と使い方
Bashでは、すべての文字が同じ役割を持つわけではありません。一部の文字は特別な機能を担い、コマンドを調整したり、データ操作を支援したりします。この記事では、Bashで特に重要な特殊文字を一覧にまとめました。それぞれの使い方と、日々のターミナル作業を快適にする活用術をぜひご覧ください。 パスの区切り文字(/) Bashでは、スラッシュ(/)がパスの各部分、つまりフォルダの中にあるサブフォルダを区切ります。ホームフォルダ内の「pictures」というフォルダに移動するには、次のように cd コマンドを使います。 cd /home/USERNAME/pictures 上の例では、スラッシュ
-
Linuxの起動プロセスを徹底解説!BIOSからランレベルまで知っておくべき流れ
オープンソースOS「Linux」の起動には、いくつかの重要な段階があります。起動プロセス全体を理解しておくと、トラブル発生時の切り分けや復旧作業に大きく役立ちます。特にシステム管理者にとっては、押さえておきたい必須知識と言えるでしょう。では、電源ボタンを押した瞬間からシステムが立ち上がるまでの間、裏側では一体何が起こっているのでしょうか。順を追って詳しく見ていきましょう。BIOS(基本入出力システム)BIOS(Basic Input/Output System)は、マザーボード上の小さなメモリチップに格納された低レベルのファームウェアです。このファームウェアは起動プロセスを支援するとともに、マ