su 와 su –

su - 명령과 su 명령의 차이는 사용자 계정을 전환할 때 로그인 환경을 어떻게 처리하는지에 있습니다.

  • su - 명령은 대시(-)를 포함합니다. 이 명령은 사용자를 전환하고, 전환된 사용자의 환경 변수를 초기화합니다. 마치 해당 사용자가 새로 로그인한 것처럼 사용자의 홈 디렉터리로 이동하고, 해당 사용자의 로그인 셸을 시작하며, 해당 사용자의 .bash_profile, .bashrc, .profile 등의 환경 설정 파일을 로드합니다. 이것은 “로그인 셸(login shell)”을 시작하는 것으로 간주됩니다.
  • su 명령은 단순히 사용자를 전환하기만 하며 현재 셸의 환경 변수를 유지합니다. 이 명령은 새 사용자의 홈 디렉터리로 이동하지 않고, 로그인 셸을 시작하지 않으며, 환경 설정 파일을 로드하지 않습니다. 이것은 “비로그인 셸(non-login shell)”을 시작하는 것으로 간주됩니다.

예를 들어, root 사용자로 전환할 때 su - 명령을 사용하면 root 사용자의 환경 설정에 따라 새로운 셸 세션이 시작되지만, su 명령을 사용하면 현재 사용자의 환경 설정을 계속 유지합니다.

간단하게 말하자면, su -는 사용자 전환과 함께 해당 사용자의 로그인 환경을 완전히 가져오고 싶을 때 사용하고, su는 단순히 사용자 권한만 전환하고자 할 때 사용합니다.

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다