はじめに
SudoはSuperUserDOの略です 制限されたファイルと操作にアクセスするために使用されます。デフォルトでは、Linuxはシステムの特定の部分へのアクセスを制限し、機密ファイルが危険にさらされるのを防ぎます。
sudo
コマンドは一時的に特権を昇格させ、ユーザーがrootユーザーとしてログインせずに機密性の高いタスクを完了できるようにします。 このチュートリアルでは、例を使用してLinuxでsudoコマンドを使用する方法を学びます。
前提条件
- Linuxを実行しているシステム
- コマンドライン/ターミナルウィンドウへのアクセス(アクティビティ>検索>ターミナル)
-
sudo
のユーザーアカウント またはroot
特権
sudoコマンドの使用方法
sudo
ユーザーに一時的に管理者権限を付与する方法として開発されました。これを機能させるには、 sudo
を使用します 制限されたコマンドの前。システムはパスワードの入力を求めます。提供されると、システムはコマンドを実行します。
構文
sudo
の使用を開始するには 、次の構文を使用します:
sudo [command]
sudo
コマンドを使用すると、タイムスタンプがシステムログに入力されます。ユーザーは、昇格された特権でコマンドを短時間(デフォルトは15分)実行できます。 sudo以外のユーザーがsudo
を使用しようとした場合 コマンドの場合、セキュリティイベントとしてログに記録されます。
オプション
sudo
追加のオプションで使用できます:
-
-h
- ヘルプ;構文とコマンドオプションを表示します -
-V
- バージョン; sudoアプリケーションの現在のバージョンを表示します -
-v
- 検証;コマンドを実行せずにsudoの制限時間を更新する -
-l </ code>
–リスト;ユーザーの権限を一覧表示するか、特定のコマンドをチェックします -
-k
- 殺す;現在のsudo権限を終了します
追加のオプションは、 -h
の下にあります。 オプション。
sudo権限の付与
最新のLinuxディストリビューションのほとんどでは、ユーザーは sudoにいる必要があります 、 sudoers、 またはホイール sudo
を使用するグループ 指図。デフォルトでは、シングルユーザーシステムはそのユーザーにsudo権限を付与します。複数のユーザーアカウントを持つシステムまたはサーバーは、一部のユーザーをsudo権限から除外する場合があります。
ユーザーが日常のタスクを実行するために絶対に必要な特権のみを付与することをお勧めします。
次のセクションでは、sudoersグループにユーザーを追加する方法について説明します。
RedHatとCentOS
Redhat / CentOSでは、ホイール グループコントロールsudo ユーザー。次のコマンドを使用して、ホイールグループにユーザーを追加します。
usermod -aG wheel [username]
[username]
を置き換えます 実際のユーザー名で。管理者としてログインするか、 su
を使用する必要がある場合があります コマンド。
DebianとUbuntu
Debian / Ubuntuでは、 sudo groupはsudoユーザーを制御します。次のコマンドを使用して、sudoグループにユーザーを追加します。
usermod -aG sudo [username]
[username]
を置き換えます 実際のユーザー名で。管理者としてログインするか、 su
を使用する必要がある場合があります コマンド。
visudoとsudoersグループの使用
Linuxの一部の最新バージョンでは、ユーザーは sudoersに追加されます。 特権を付与するファイル。これは、 visudo
を使用して行われます コマンド。
1. visudo
を使用します 構成ファイルを編集するコマンド:
sudo visudo
2.これにより、 / etc / sudoersが開きます。 編集用。ユーザーを追加し、完全なsudo権限を付与するには 、次の行を追加します:
[username] ALL=(ALL:ALL) ALL
3.ファイルを保存して終了します。
付与されたsudo権限の内訳は次のとおりです。
[username] [any-hostname]=([run-as-username]:[run-as-groupname]) [commands-allowed]
Linuxでのsudoの例
基本的なsudoの使用法
1.ターミナルウィンドウを開き、次のコマンドを試してください。
apt-get update
2.エラーメッセージが表示されます。コマンドを実行するために必要な権限がありません。
3. sudo
で同じコマンドを試してください :
sudo apt-get update
4.プロンプトが表示されたら、パスワードを入力します。システムはコマンドを実行し、リポジトリを更新します。
別のユーザーとしてコマンドを実行
1.別のユーザーとしてコマンドを実行するには、ターミナルで次のコマンドを入力します。
whoami
2.システムにユーザー名が表示されます。次に、次のコマンドを実行します。
sudo -u [different_username] whoami
3. [different_username]
のパスワードを入力します 、および whoami
コマンドが実行され、別のユーザーが表示されます。
rootユーザーに切り替える
このコマンドは、コマンドプロンプトをrootユーザーとしてBASHシェルに切り替えます。
sudo bash
コマンドラインを次のように変更する必要があります:
[email protected]:/home/[username]
ホスト名
値は、このシステムのネットワーク名になります。 ユーザー名
現在ログインしているユーザー名になります。
sudoを使用して前のコマンドを実行する
Linuxコマンドラインは、以前に実行されたコマンドの記録を保持します。これらのレコードには、上矢印を押すことでアクセスできます。昇格された特権で最後のコマンドを繰り返すには、次を使用します:
sudo !!
これは古いコマンドでも機能します。次のように履歴番号を指定します。
sudo !6
この例では、履歴の6番目のエントリを sudo
で繰り返します。 コマンド。
1行で複数のコマンドを実行
複数のコマンドをセミコロンで区切って文字列化します:
sudo ls; whoami; hostname
既存のファイルにテキストの文字列を追加する
ファイルにテキストの文字列を追加することは、編集のためにファイルを開かずに、ソフトウェアリポジトリの名前をソースファイルに追加するためによく使用されます。 echo、sudo、およびteeコマンドで次の構文を使用します。
echo ‘string-of-text’ | sudo tee -a [path_to_file]
例:
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list