su의 작동 방식리눅스 시스템에서 쉘(Shell)은 사용자가 운영체제와 상호작용할 수 있도록 해주는 프로그램입니다. 쉘은 크게 두 가지 방식으로 실행됩니다.
susu 명령어 뒤에 아무것도 붙이지 않고 su만 사용할 경우, 기본적으로 비-로그인 쉘로 동작합니다.
root)로 신분만 전환합니다.root 계정이 로그인할 때 필요한 시스템 환경 설정 파일 (예: /etc/profile)이나 root 계정 고유의 사용자 설정 파일 (예: ~/.bash_profile, ~/.bashrc)을 로드하지 않습니다.root이지만, 쉘 환경 자체는 여전히 이전 사용자(ubuntu)의 설정을 많이 물려받게 되어 root의 표준 환경이 갖춰지지 않습니다.root 권한으로 실행해야 하는 스크립트가 "명령어를 찾을 수 없다"는 오류를 낼 수 있습니다.예시:
ubuntu사용자가su로root가 되었을 때,echo $HOME을 해보면 여전히/home/ubuntu가 출력될 수도 있습니다.
su - 또는 sudo su -su 명령어 뒤에 하이픈(-)을 붙여 su -를 사용하면, 대상 사용자(root)로 로그인 쉘을 실행하도록 지시합니다.
root)의 홈 디렉토리인 /root로 완벽하게 변경됩니다.root) 고유의 모든 설정 파일을 순서대로 로드하여 환경 변수($PATH, $HOME 등)를 완벽하게 초기화하고 설정합니다.root 환경이 보장됩니다.su -를 통해 실행할 때 가장 오류 없이 안정적으로 작동할 수 있습니다.결론적으로, 시스템 관리나 설치 작업을 할 때는 완벽한 환경을 보장하는 로그인 쉘(
su -) 방식을 사용하는 것이 업계 표준이며 가장 안전한 방법입니다.