sudo su
私は入力するとroot権限を持つインタラクティブなプロンプトが表示されるという多くの投稿を見ました。sudo -i
sudo su
私はここに座って、なぜ人々が文章を書かないのか頭を傷つけますsu
。結局...su
はい部族代替ユーザーそして基本的にrootに変換されますが、必ず書く必要がありますかsudo su
?
答え1
簡単に使えればそうしなければなりませんsu
。
ただし、ほとんどの最新(デスクトップ)Linuxディストリビューション(Ubuntuなど)では、rootユーザーは無効になっており、パスワードは設定されていません。したがって、rootユーザーに切り替えることはできませんsu
(試してみることができます)。 root権限でsudo:を呼び出す必要がありますsudo su
。
答え2
sudo su
、sudo -i
その他すべての項目にはsudo
ユーザーパスワードが必要です。
su
ルートパスワードが必要です。
答え3
どちらのプログラムもsuid rootです。sudo su
人々がsudoオプション-i
と-E
sudoオプションに慣れていない場合、またはそのタスクが実行される理由を理解していないが、rootでタスクを実行することに慣れていない場合は、入力する理由はありません。 suコマンドは、いくつかのハードコーディングされた環境変数を渡します(または最近のLinuxでは、環境全体を-p
渡すために使用できます)。一方、sudoは渡される変数を正確に制御できます($DISPLAY
便利な例を見てください)。 suコマンドは、ターゲットユーザーのパスワード(デフォルトのpamスタック仮定)のみを求めるメッセージを表示できますが、sudoはソースユーザーまたはターゲットユーザーとして認証するか、両方を認証しないか、常にrootユーザーとして認証するように構成できます。コマンドでこれを行うことができます。コマンドはsu
リセットされ$HOME
、sudoは利用可能なルールセットに基づいて決定できます。これは存在する必要がない別の分岐プロセスです。また、sudoは実行されるコマンドを記録するので、sudo -i
シェルを実行または起動しない限り、次のようになります。方法より良い監査証跡のためにsudoを使用してください。 sudoでコマンドを実行すると、.
$ PATHから2つの要素と空の要素が削除され、最後の要素があるかどうかを確認して、人々が似たようなわざに/tmp
"ls"というシェルスクリプトを貼り付けることを防ぎます。 :)
基本的に、sudo su
これはsudoの後ろに手を差し伸べてどこにも行かないようです。 :)
答え4
これらのコマンド間の主な違いは、その機能へのアクセスを制限する方法です。
su(「代替ユーザー」または「ユーザー切り替え」を意味) - まさにこれを行い、ターゲットユーザーの権限で別のシェルインスタンスを起動します。これを行う権限があるかどうかを確認するには、ターゲットユーザーのパスワードを尋ねます。したがって、ルートになるには、ルートパスワードを知る必要があります。コンピュータにrootとしてコマンドを実行する必要があるユーザーが複数いる場合は、rootパスワードをすべて知っておく必要があります。パスワードは同じであることに注意してください。ユーザーの1人から管理者権限を取り消す必要がある場合は、rootパスワードを変更してアクセスを維持する必要がある人にのみ通知する必要があります。混乱しています。
sudo(ええと…ニーモニックとは何ですか?Super-User-DO?)はまったく異なります。これは、特定のタスク(rootでコマンドを実行するなど)を実行する権限を持つユーザーを一覧表示する構成ファイル(/ etc / sudoers)を使用します。呼び出されたら、それを開始したユーザーのパスワードを尋ねます。これは、端末にいる人が実際に/ etc / sudoersにリストされている「joe」と同じであることを確認するためのものです。誰かの管理者権限を取り消すには、構成ファイルを編集します(または構成にリストされているグループからユーザーを削除するだけです)。これにより、権限管理がより明確になります。
したがって、多くのDebianベースのシステムでは、rootユーザーにパスワードが設定されていません。つまり、rootとして直接ログインする方法はありません。
また、/etc/sudoersを使用すると、いくつかの追加オプションを指定できます。つまり、ユーザーXはプログラムYのみを実行できます。
一般的なsudo suの組み合わせは次のように動作します。まず、sudoがパスワードを要求して許可されている場合は、スーパーユーザーとして次のコマンド(su)を呼び出します。 suはrootによって呼び出されるため、ターゲットユーザーのパスワードを入力する必要はありません。したがって、/ etc / sudoersファイルがスーパーユーザーアクセスを許可している場合、sudo suを使用すると、rootを含む他のユーザーとしてシェルを開くことができます。