sudoコマンドを使用すると、プログラムを別のユーザー(デフォルトではrootユーザー)として実行できます。コマンドラインに多くの時間を費やす場合、sudoは非常に頻繁に使用するコマンドの1つです。
rootとしてログインする代わりにsudoを使用すると、rootパスワードを知らなくても個々のユーザーに制限付きの管理者権限を付与できるため、より安全です。
このチュートリアルでは、sudoの使用方法を説明します。 コマンド。
Sudoのインストール(sudoコマンドが見つかりません)#
sudoパッケージは、ほとんどのLinuxディストリビューションにプリインストールされています。
sudoパッケージがシステムにインストールされているかどうかを確認するには、コンソールを開いて、sudoと入力します。 、Enterを押します 。 sudoをシステムにインストールしている場合は、短いヘルプメッセージが表示されます。それ以外の場合は、 sudo command not foundのようなものが表示されます。 。
sudoがインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
UbuntuとDebianにSudoをインストールする#
apt install sudo CentOSおよびFedoraにSudoをインストールする#
yum install sudo Sudoersへのユーザーの追加#
デフォルトでは、ほとんどのLinuxディストリビューションでは、sudoアクセスの許可は、sudoersで定義されたsudoグループにユーザーを追加するのと同じくらい簡単です。 ファイル。このグループのメンバーは、rootとして任意のコマンドを実行できます。グループの名前は、配布ごとに異なる場合があります。
CentOSやFedoraなどのRedHatベースのディストリビューションでは、sudoグループの名前はwheelです。 。ユーザーをグループに追加するには、次のコマンドを実行します:
usermod -aG wheel username
Debian、Ubuntu、およびそれらの派生物では、グループsudoのメンバー sudoアクセスが許可されます:
usermod -aG sudo username Ubuntuのrootユーザーアカウントはセキュリティ上の理由からデフォルトで無効になっており、ユーザーはsudoを使用してシステム管理タスクを実行することをお勧めします。 Ubuntuインストーラーによって作成された最初のユーザーはすでにsudoグループのメンバーであるため、Ubuntuを実行している場合は、ログインしているユーザーにsudo特権が既に付与されている可能性があります。
特定のユーザーが特定のプログラムのみをsudoとして実行できるようにするには、ユーザーをsudoグループに追加するのではなく、ユーザーをsudoersに追加します。 ファイル。
たとえば、ユーザーにlinuxizeを許可するには mkdirのみを実行する sudoとしてのコマンド、次のように入力します:
sudo visudo
次の行を追加します:
linuxize ALL=/bin/mkdir
ほとんどのシステムでは、visudo コマンドは/etc/sudoersを開きます vimテキストエディタでファイルします。 vimの経験がない場合は、ファイルを保存してvimエディターを終了する方法についての記事を確認してください。
ユーザーがパスワードを入力せずにsudoコマンドを実行できるようにすることもできます:
linuxize ALL=(ALL) NOPASSWD: ALL
Sudoの使用方法#
sudoの構文 コマンドは次のとおりです:
sudo OPTION.. COMMAND
sudo コマンドには、その動作を制御する多くのオプションがありますが、通常、オプションなしで最も基本的な形式で使用されます。
sudoを使用するには、コマンドの前にsudoを付けるだけです。 :
sudo command
commandの場所 sudoを使用するコマンドです。
Sudoは/etc/sudoersを読み取ります ファイルを作成し、呼び出し元のユーザーにsudoassessが付与されているかどうかを確認します。セッションで初めてsudoを使用するときは、ユーザーパスワードの入力を求められ、コマンドはrootとして実行されます。
たとえば、/root内のすべてのファイルを一覧表示するには 使用するディレクトリ:
sudo ls /root
[sudo] password for linuxize:
. .. .bashrc .cache .config .local .profile
パスワードタイムアウト#
デフォルトでは、sudoは、sudoが5分間非アクティブになった後、パスワードの再入力を求めます。 sudoersを編集して、デフォルトのタイムアウトを変更できます ファイル。 visudoでファイルを開きます :
sudo visudo
以下の行を追加して、デフォルトのタイムアウトを設定します。ここで、10 分単位で指定されたタイムアウトです:
Defaults timestamp_timeout=10
特定のユーザーのタイムスタンプのみを変更する場合は、次の行を追加します。ここで、user_nameは問題のユーザーです。
Defaults:user_name timestamp_timeout=10
ルート以外のユーザーとしてコマンドを実行する#
sudoという誤った認識があります 通常のユーザーにroot権限を提供するためにのみ使用されます。実際には、sudoを使用できます 任意のユーザーとしてコマンドを実行します。
-u オプションを使用すると、指定したユーザーとしてコマンドを実行できます。
次の例では、sudoを使用しています。 whoamiを実行するには ユーザー「リチャード」としてのコマンド:
sudo -u richard whoami
whoami コマンドは、コマンドを実行しているユーザーの名前を出力します:
richard
Sudoでリダイレクトする方法#
コマンドの出力を、ユーザーに書き込み権限がないファイルにリダイレクトしようとすると、「権限が拒否されました」というエラーが発生します。
sudo echo "test" > /root/file.txt bash: /root/file.txt: Permission denied
これは、リダイレクト「> 」の出力は、sudoで指定されたユーザーではなく、ログインしているユーザーの下で実行されます。リダイレクトはsudoの前に行われます コマンドが呼び出されます。
1つの解決策は、sudo sh -cを使用して、ルートとして新しいシェルを呼び出すことです。 :
sudo sh -c 'echo "test" > /root/file.txt'
もう1つのオプションは、通常のユーザーとして出力をteeにパイプすることです。 以下に示すように、コマンド:
echo "test" | sudo tee /root/file.txt 結論#
sudoの使用方法を学習しました コマンドと、sudo権限を持つ新しいユーザーを作成する方法。
ご不明な点がございましたら、お気軽にコメントをお寄せください。