web-dev-qa-db-ja.com

`Sudo -i -u user`と` Sudo su-user`の違いは何ですか?

両方のコマンド:

Sudo -i -u username
Sudo su - username

パスワードを入力すると、usernameとしてログインします。これらのコマンドには実際に違いがありますか?

12
Jan Dudulski

suコマンドは「代理ユーザー」を表し、別のユーザー(スーパーユーザー)になることができます。 _Sudo su_は現在のユーザーをrootに変更しますが、environment settings (PATH)は同じままです。 sudoersファイルで指定されているように、スーパーユーザーまたは別のユーザーとしてコマンドを実行する権限を持つユーザーを許可します。

_Sudo -i_を使用すると、クリーンなルートシェルを取得できます。 ‑i(初期ログインをシミュレート)オプションは、ターゲットユーザーのパスワードデータベースエントリで指定されたシェルをログインシェルとして実行します。これは、_.profile_や_.login_などのログイン固有のリソースファイルがシェルによって読み取られることを意味します。コマンドが指定されている場合、シェルの‑cオプションを介して実行するためにコマンドがシェルに渡されます。コマンドが指定されていない場合、対話型シェルが実行されます。

5
sTg