私はLinux端末にはまったく慣れていませんが、ハイフン付きのsu
とハイフンなしのsu
の違いがどういうものなのか、よくわかりません。例えば、su - username
とsu username
。
私は ドキュメント を調べましたが、そこにはこれは記載されていませんでした。誰かが私を助けてもらえますか?
" - "と "no hyphen"の違いは、後者が既存の環境(変数など)を保持することです。前者は新しい環境を作ります(あなた自身のものではなく、実際のユーザの設定で)。
https://wiki.archlinux.org/index.php/Su
ハイフンには2つの効果があります。
1)そのユーザとしてログインすることによって、現在のディレクトリから新しいユーザのホームディレクトリ(例えば、ルートユーザの場合は/ root)に切り替える。
2)〜/ .bashrcの指示に従って、環境変数を新しいユーザーの環境変数に変更します。つまり、suの最初の引数がハイフンの場合、現在のディレクトリと環境は、新しいユーザーが実際に新しいセッションにログオンした場合(既存のセッションを引き継ぐのではなく)に想定されるものに変更されます。
su -
はroot用のログインシェルを起動します。通常のシェルとの違いについては、例えば this site を参照してください。