web-dev-qa-db-ja.com

ハイフォンの存在による "su"の違いは何ですか?

私はLinux端末にはまったく慣れていませんが、ハイフン付きのsuとハイフンなしのsuの違いがどういうものなのか、よくわかりません。例えば、su - usernamesu username

私は ドキュメント を調べましたが、そこにはこれは記載されていませんでした。誰かが私を助けてもらえますか?

85
user574183

" - "と "no hyphen"の違いは、後者が既存の環境(変数など)を保持することです。前者は新しい環境を作ります(あなた自身のものではなく、実際のユーザの設定で)。

https://wiki.archlinux.org/index.php/Su

ハイフンには2つの効果があります。

1)そのユーザとしてログインすることによって、現在のディレクトリから新しいユーザのホームディレクトリ(例えば、ルートユーザの場合は/ root)に切り替える。

2)〜/ .bashrcの指示に従って、環境変数を新しいユーザーの環境変数に変更します。つまり、suの最初の引数がハイフンの場合、現在のディレクトリと環境は、新しいユーザーが実際に新しいセッションにログオンした場合(既存のセッションを引き継ぐのではなく)に想定されるものに変更されます。

81
paulsm4

su -はroot用のログインシェルを起動します。通常のシェルとの違いについては、例えば this site を参照してください。

3
Lars Kotthoff