logo

Linuxのsudo

導入

Linux の sudo コマンドは次の略です。 スーパーユーザーの実行 。通常、これはスーパーユーザーが実行できるいくつかのコマンドの接頭辞として適用されます。

他のコマンドとともにこのコマンドにプレフィックスを付けると、そのコマンドは高い特権で実行されます。言い換えれば、適切な権限があれば、スーパーユーザーなどの他のユーザーとしてコマンドを実行することが許可されます。

オプションと同等です '管理者として実行' Windowsで。 sudo オプションを使用すると、複数の管理者を設定できます。 sudo コマンドを適用できるユーザーは、ファイル sudoers 内にエントリを配置する必要があります。 '/etc/sudoers/'

注: ファイルを表示または編集するには、sudo コマンドを適用する必要があります。ファイルを編集するには、「visudo」コマンドを適用することをお勧めします。

sudo コマンドはデフォルトで、ユーザーが root パスワードそのものではなく、ユーザーのパスワードであるパスワードとともに自分自身を検証する必要があります。

sudo コマンドの構文

sudo コマンドの構文は次のとおりです。

 sudo OPTION... COMMAND 

sudoコマンドのオプション

sudo コマンドの重要なオプションのいくつかを以下に説明します。

1. - で: の略です バージョン 。このオプションにより、sudo コマンドがバージョン番号を出力して終了することが有効になります。 -V オプションは、要求しているユーザーがすでに root である場合、デフォルトの sudo リストの一時停止が観察されたことを出力します。

Linuxのsudo

2. -l: の略です リスト 。このオプションは、現在のホスト上でユーザーに許可されているさまざまなコマンドを出力するのに役立ちます。

これは、現在のユーザーがすべてのコマンドを sudo として適用できることを示しています。

文字列の追加
Linuxのsudo

3. -h または -help: h は ヘルプ このオプションでは。このオプションにより、sudo コマンドが使用法と終了のメッセージを出力できるようになります。

Linuxのsudo

4. -in: の略です 検証 。 sudo コマンドがユーザーのタイムスタンプを更新する場合、検証では必要に応じてユーザーのパスワードの入力を求めるプロンプトが表示されます。 sudo コマンドのタイムアウトを残り 5 分間延長しますが、コマンドは実行されません。それは何の結果ももたらしません。

5. -k: の略です 殺す 。このオプションは、sudo に対するユーザーのタイムスタンプを無効にします。したがって、次回 sudo コマンドを実行するときはパスワードが必要になります。 -k オプションにはパスワードは必要ありません。これは、ユーザーが sudo コマンドの権限を取り消すことができるようにするために含まれていました。 。ログアウト ファイル。

6. -b: の略です 背景 。このオプションは、提供されたコマンドをバックグラウンドで実行するように sudo コマンドに指示します。

注: このオプションを適用すると、プロセスを操作するためにシェル ジョブ制御を適用できなくなります。

Linuxのsudo

7. -K: このオプションは、-k オプションと同じです。ただし、それは 必ず殺す 。このオプションは、ユーザーのタイムスタンプを完全に削除するために適用されます。同様にパスワードも必要ありません。

8. -p: の略です プロンプト 。このオプションを使用すると、パスワード プロンプト (デフォルト) を上書きし、カスタム プロンプトを適用できます。次のような数パーセントのエスケープが許可されます。

  • %u は、呼び出し元のユーザーのログイン名に展開されます。
  • %U はユーザーのログイン名に展開されます
  • %h は、ドメイン名なしのホスト名 (ローカル) に展開されます。
  • %H は、ドメイン名を使用してホスト名 (ローカル) に展開されます (マシンのホスト名が完全に修飾されている場合のみ)
  • %% (連続する 2 文字) は、個々の % 文字に分割できます。
Linuxのsudo

9. -n: このオプションは、パスワードを要求せずにコマンドを実行します。これは、sudo コマンドでパスワードを尋ねたくない場合に、いくつかのコマンドをバックグラウンド タスク (またはシェル スクリプト内) として実行したい場合に非常に便利です。このオプションは非対話型の略です。

デザインパターンJava

10. -in: の略です ユーザー 。このオプションを使用すると、sudo コマンドで root 以外のユーザーとして記述されたコマンドを実行できるようになります。を指定するには、 UID ユーザー名の代わりに、 #uid

11. -H: の略です 。このオプションで設定できるのは、 HOME環境変数 私たちのために ホームディレクトリ passwd ファイル内に記述されている root ユーザーの。デフォルトでは、sudo コマンドは HOME を変更しません。

12. -s: それは、 シェル 。このオプションは、 SHELL環境変数 設定されたとき、またはこのシェルが内部で説明されているように、 パスワード ファイル。

13. -S: の略です 標準入力 。このオプションを使用すると、sudo コマンドが端末デバイスではなく標準入力を介してパスワードを読み取ることができるようになります。

14. -: このオプションは、sudo コマンドがコマンド ラインの引数の処理を停止する必要があることを示します。 -s フラグと組み合わせて使用​​すると最も役立ちます。

15. -a: の略です 認証タイプ 。このオプションを使用すると、ユーザーを検証する場合に、指定された認証タイプを使用するための sudo コマンドが有効になります。 /etc/login/.config

システム管理者は、sudo 固有の認証方法のリストを、 「自動sudo」 内部の入り口 /etc/login/.config

Linuxのsudo

sudo コマンドの環境変数

以下は、sudo コマンドによって適用される環境変数の一部です。

はい・いいえ。 鬼ごっこ 説明
1. 編集者 これは、VISUAL が固定されていない場合に -e モード (sudoedit) 内で使用できるデフォルトのエディターです。
2. これは、-H または -s モード (または sudo コマンドがオプション、つまり -enable-shell-sets-home を使用して形成されたとき) でユーザー (ターゲット) のホームディレクトリに設定されます。
3. パス オプション、つまり secure_path sudoers が固定されている場合は、正常な値に設定されます。
4. シェル これは、-s オプションで実行するシェルを決定するために使用できます。
5. SUDO_COMMAND sudoコマンドで実行するコマンドに設定します。
6. SUDO_PROMPT パスワードプロンプト (デフォルト) として使用できます。
7。 SUDO_USER sudo コマンドを要求したユーザーのログインに設定されます。
8. SUDO_UID sudo コマンドを要求したユーザーの uid に設定されます。
9. SUDO_GID sudo コマンドを要求したユーザーの gid に設定されます。
10. 南_PS1 PS1 が設定されている場合、その値に固定されます。
十一。 ユーザー ユーザー (オプション、つまり -u が記述されていない場合は root) に設定されます。
12. ビジュアル これはデフォルトのエディターであり、-e モード (sudoedit) 内で使用します。

sudo コマンドの歴史

Cliff Spencer と Robert Coggeshall は、1980 年にニューヨーク州立大学バッファロー校のコンピュータ サイエンス学部で実際のサブシステムを作成しました。ロバート・コッゲシャルはsudoをコロラド大学ボルダー校まで連れて行った。機能とコードの実質的な変更は、1986 年から 1993 年の間に、工学部およびコロラド大学ボルダー大学コンピューター サイエンス学部の IT メンバーとトッド C. ミラーによる応用科学によって行われました。

最新バージョンは、1994 年から Todd .C Miller (OpenBSD 開発者) によって管理され、1999 年から ISC スタイルのライセンスに基づいて共有されています。

Pythonはバイトを文字列に変換します

Thomas Claburn 氏は、Microsoft が sudo 特権を持っていたことに対して、2009 年 11 月にそのような不確実性が誇張されていると特徴づけました。厳密に言えば、主張は sudo アプローチではなく特定の GUI に枠付けられていました。

sudo コマンドの設計

su コマンドとは異なり、ユーザーは必要に応じてスーパーユーザーの代わりに sudo にパスワードを入力できます。これにより、アクセス可能なユーザーは、他のアカウントのパスワードの秘密を扱うことなく、適格な権限を行使することができます。

jsp
  • 構成ファイルがユーザーのアクセスを許可している場合、認証後、システムは要求されたコマンドを要求します。
  • sudo コマンドは、疑似端末ごとに猶予時間 (通常 5 分) までユーザーの呼び出し権限を保持し、ユーザーがパスワードを再度指定することなく、要求されたユーザーとしてさまざまな連続コマンドを実行することを許可します。
  • sudo コマンドは、監査およびセキュリティ機能として実行されるすべてのコマンドをログに記録するように構成されている場合があります。
  • このとき、ユーザーが設定ファイル内にリストされていない sudo コマンドを呼び出すショットを実行すると、ショットが記録されたことを示す例外のイラストがそのユーザーに表示されます。
  • エントリはシステム内に保存され、root ユーザーにメールで通知されます。

sudoコマンドの設定

/etc/sudoers ファイルには、root ユーザーまたはその他のリストされたユーザーの権限を含みながら、一連のコマンドを実行する権限を持つユーザー グループまたはユーザーのリストが含まれています。プログラムはパスワードを必要とするように構成されている可能性があります。

sudo コマンドの影響

いくつかのシステム ディストリビューションでは、sudo コマンドがさまざまな管理操作でスーパーユーザーの別のログイン (デフォルト) の使用に取って代わりました。最も重要なのは、いくつかの Apple の macOS および Linux ディストリビューションです。

これにより、いくつかの悪用が防止され、管理コマンドのより保護されたロギングも可能になります。

RBAC

sudo コマンドは、SELinux と連携してロールベースのアクセス制御内のさまざまなタイプのロール間の移行に使用できます。

同様のプログラムとツール

visudo は、フェイルセーフな方法で sudo の設定ファイルを編集できるコマンドラインのユーティリティです。構文チェックと健全性チェックを実行し、ロックとともに複数の同時編集を防止します。

runas プログラムは、Microsoft Windows で同じパフォーマンスを実現します。ただし、現在の長いコマンド ラインを子、環境変数、またはディレクトリに渡すことはできません。

一般的な昇格はサポートされていませんが、子を他のユーザーとして実行するのには役立ちます。 Windows の場合、これらの各状態の詳細を転送し、別のユーザーまたは昇格された子として子を開始できる真の sudo および su が追加されます。 ハミルトンCシェル

GUI は sudo ( グクスド 特に) しかし、これは Debian では非推奨になり、Ubuntu でも廃止されました。他のさまざまなタイプのユーザー インターフェイスは sudo で直接設計されていませんが、次のような管理目標のために同じ権限の昇格 (一時的) を容易にします。 Mac OS Xの認証サービス、Microsoft Windows内のユーザーアカウント制御 、 そして Unix 系オペレーティング システム内の pkexec

OpenBSD バージョン 5.8 (2015 年 10 月) 以降、 寄付する 利用可能です。 OpenBSD の基本システム内で sudo コマンドを代替するように指定されています。

彼の対須藤

より古典的な Linux セットアップに慣れている場合は、root 権限を取得するために su コマンドを適用することに慣れています。 su コマンドを発行して、root として効果的にログインすることもできます (root のホームがホームになります)。

このような種類のディストリビューションを使用すると、ルート ユーザーとしてログインすることもできます。ただし、root ユーザーとしてログインすることはお勧めできません。 su コマンドに依存し、root ユーザーのログインを許可するディストリビューションを適用する場合は、標準ユーザーとしてログインし、root ユーザーに su コマンドを実行します。

おそらく、sudo ベースのディストリビューションを使用して root ユーザーとしてログインできないことに気づくでしょう。実際、Ubuntu などの一部のディストリビューションでは、root ユーザーのアカウントが無効になっています。

root ユーザーとしてログインし、su コマンドを使用して root ユーザーになることはできません。 sudo コマンドを使用してこれらのコマンドを発行し、管理者権限を取得することができます。

sudoコマンドの使い方

Linux で管理アプリケーションを実行するには 2 つの異なる方法があります。 su コマンドを使用してスーパーユーザーまたは root ユーザーを変更することも、sudo コマンドを利用することもできます。

パンダロック

ターミナルで時間を有効活用する場合、sudo は頻繁に使用する重要なコマンドの 1 つです。 root ユーザーとしてログインするのではなく sudo コマンドを使用すると、root パスワードを知らなくても 1 人のユーザーにわずかな管理権限しか付与できないため、より保護されます。

実装方法は、使用するディストリビューションによって異なります。いくつかのディストリビューションでは root ユーザーが許可されています (例: OpenSUSE、レッドハット 、 または フェドーラ )、そうでない人もいます(例: デビアン そして Ubuntu )。

sudo コマンドの使用は、非常に基本的な形式では簡単です。たとえば、ソフトウェアをインストールするには dpkg を実行する必要があります。単に実行すると、 dpkg -i ソフトウェア.deb 標準ユーザーとしてコマンドを実行すると、ユーザーにはコマンドを実行する権限がないというエラー メッセージが表示されます。

そのため、デフォルトでは標準ユーザーは Linux マシンにさまざまなアプリケーションをインストールできません。 Linux マシンにアプリケーションをインストールする場合は、スーパーユーザーの権限が必要です。

代わりに、 sudo dpkg -i software.deb コマンドを使用して、インストールを正常に実行できるようにします。

sudoコマンドのインストール

sudo コマンドのパッケージは、ほとんどの Linux ディストリビューションにプリインストールされています。パッケージがシステムにインストールされていることを確認するには、次の手順に従う必要があります。

  • まず、ターミナルを開きます。
  • sudo と入力して Enter ボタンをクリックします。
  • システムに sudo パッケージがインストールされている場合は、短いメッセージが表示されます。
  • それ以外の場合は、sudo コマンドが見つからないというメッセージで通知されます。
  • パッケージがインストールされていない場合は、オーバーディストリビューションのパッケージマネージャーを適用することで簡単にインストールできます。

Fedora と CentOS に Sudo をインストールする

 $ yum install sudo 

Debian と Ubuntu に Sudo をインストールする

 $ apt install sudo 

Linuxのsudo

sudo を更新するためのコマンド

Linuxのsudo