Tecmintは2018年2月5日(米国時間)、「Learn Difference Between "su" and "su -" Commands in Linux」において、「su」コマンドと「su -」コマンドの違いを説明した。
suではカレントディレクトリも環境変数も元のユーザーのものが引き継がれ、su -ではカレントディレクトリや環境変数は変更したユーザーの初期値に設定されるとしている。su -はsu -lでも同じ動作をする。
suコマンドは指定したユーザーに変更するコマンド。ユーザーを引数に指定しなかった場合、rootユーザーへの変更として処理される。Linuxでは管理者権限が必要な場合、sudoコマンドを使って処理を行うか、suコマンドを使ってrootユーザーになってから処理を行うことが多い。
suでrootユーザーになった場合、変更前のユーザーの環境変数などがrootユーザーでの操作に悪影響を与えることがある。このため、rootとして作業する場合は、su -のように-を指定してsuを使うように説明されることがある。