su
superuser excute()の代わりにsuperuserコマンドが実行される理由がわかりますsudo
。
答え1
su
これは、sudo
他のユーザー(おそらくroot)としてプログラム(おそらくシェル)を実行する2つの最も一般的な方法です。同じ効果がありますが、操作を許可するかどうかを決定する方法は非常に異なります。
su
ソースユーザーがrootであるか、ユーザーがターゲットアカウントにアクセスできることを証明する必要があります(通常はパスワードを入力して)。sudo
事前承認が必要:ソースユーザー、ターゲットユーザー、およびコマンドの組み合わせは、構成ファイルで宣言する必要があります。
su
最初に登場しました:早く登場しました。Unix V31973年。当時はルートになる場合のみ扱いました(したがって名前は次のようになります)。S優れた -あなたジャズ)。sudo
後で来た1980年に、複雑な認証ポリシーを定義する可能性を追加します。su
古くてシンプルなため、すべてのUNIXシリーズシステムで利用可能な標準ツールであり、sudo
非常に一般的なアドオンですが、基本的なインストールと組み込みシステムでは欠けていることがよくあります。
su
Debianはデフォルトシステムの一部であるため、デフォルトです。 Linuxには次のsu
プログラムがあります。GNU Coreutils(およびls
等cp
)およびユーティリティLinux(およびmount
、fdisk
などtaskset
)。ルートとして実行される多くのシステムスクリプトは、システムsu
ユーザーとしてタスクを開始するために使用されます。このsudo
パッケージは、システムなしでシステムを実行できるためオプションです。これはエンドユーザーツールであり、他のソフトウェアではほとんど使用されません。
セキュリティについては、以下を参照してください。sudo、su、またはloginの間でroot権限を取得する最も安全な方法は何ですか?
答え2
Sudoは、システムにインストールまたはインストールされない可能性がある追加のプログラムです。sudo
Debian ではソフトウェアパッケージとして提供されます。言及している特定の状況/コードに関する追加情報がなければ、最も可能性の高い答えはsudoがインストールされていると仮定できないことsu
です。POSIX 標準には以下が必要です。Debian 基本システムの一部としてインストールされます。したがって、移植性を最大化したいスクリプトやチュートリアルではsu
。