리눅스 명령어 · 4 min read · Jan 31, 2026
리눅스에서 sudo와 su 명령어의 차이 이해하기

이전 기사 중 하나에서 우리는 ‘sudo’ 명령어에 대해 자세히 논의했습니다. 그 튜토리얼의 끝부분에서는 ‘su’라는 또 다른 유사한 명령어에 대한 언급이 있었습니다. 이번 기사에서는 ‘su’ 명령어와 ‘sudo’ 명령어의 차이점에 대해 자세히 논의하겠습니다.
하지만 그 전에, 이 튜토리얼에서 언급된 모든 지침과 예제는 Ubuntu 18.04 LTS와 Debian 10에서 테스트되었음을 알려드립니다.
리눅스의 su 명령어
su 명령어의 주요 작업은 로그인 세션 중에 다른 사용자로 전환할 수 있게 해주는 것입니다. 즉, 이 도구는 로그아웃하고 다시 로그인하지 않고도 다른 사용자의 신원을 가질 수 있게 해줍니다.
su 명령어는 주로 슈퍼유저/루트 계정으로 전환하는 데 사용되지만(명령줄 작업 시 루트 권한이 자주 필요하기 때문에), 이미 언급했듯이 다른 비루트 사용자로 전환하는 데도 사용할 수 있습니다.
다음은 이 명령어를 사용하여 루트 사용자로 전환하는 방법입니다:
이 명령어가 요구하는 비밀번호는 루트 사용자의 비밀번호입니다. 따라서 일반적으로 su 명령어는 대상 사용자의 비밀번호를 입력해야 합니다. 올바른 비밀번호가 입력되면, 도구는 터미널의 기존 세션 내에서 하위 세션을 시작합니다.
su -
루트 사용자로 전환하는 또 다른 방법이 있습니다: ‘su -‘ 명령어를 실행하는 것입니다:
그렇다면 ‘su’와 ‘su -‘의 차이점은 무엇인가요? 전자는 루트로 전환한 후에도 이전/원래 사용자의 환경을 유지하는 반면, 후자는 새로운 환경을 생성합니다(루트 사용자의 ~/.bashrc에 의해 지시됨), 이는 로그인 화면에서 루트 사용자로 명시적으로 로그인할 때와 유사합니다.
중요: Debian 10 사용자에게. ‘su’와 ‘su -‘를 사용할 때 루트 사용자의 PATH 변수는 Debian 10에서 다릅니다. ‘su’만 사용할 경우 /sbin과 같은 디렉토리가 누락되어 기본 시스템 관리 명령어에 대해서도 ‘명령을 찾을 수 없음’ 오류가 발생할 수 있습니다. 따라서 Debian 10에서는 항상 ‘su -‘를 사용하여 루트 사용자로 전환해야 합니다.
‘su’의 매뉴얼 페이지에서도 명확히 설명하고 있습니다:
선택적 인수 -는 사용자가 직접 로그인했을 때 기대할 수 있는 환경을 제공하는 데 사용될 수 있습니다.따라서 ‘su -‘로 로그인하는 것이 더 합리적이라는 데 동의할 것입니다. 그러나 ‘su’ 명령어도 존재하므로, 언제 유용한지 궁금할 수 있습니다. 다음 발췌문은 ArchLinux 위키 웹사이트에서 가져온 것으로, ‘su’ 명령어의 장점과 단점에 대한 좋은 아이디어를 제공합니다:
시스템 관리자가 자신의 계정보다 일반 사용자의 셸 계정을 사용하는 것이 때때로 유리할 수 있습니다. 특히, 사용자의 문제를 해결하기 위한 가장 효율적인 방법은 해당 사용자의 계정에 로그인하여 문제를 재현하거나 디버깅하는 것입니다.
그러나 많은 상황에서 루트 사용자가 일반 사용자의 셸 계정과 해당 계정의 환경 변수를 사용하여 작업하는 것은 바람직하지 않거나 심지어 위험할 수 있습니다. 일반 사용자의 셸 계정을 실수로 사용하면서 루트는 프로그램을 설치하거나 시스템에 다른 변경을 가할 수 있으며, 이는 루트 계정을 사용할 때와 동일한 결과를 가져오지 않을 수 있습니다. 예를 들어, 일반 사용자가 시스템을 우연히 손상시키거나 특정 데이터에 무단으로 접근할 수 있는 권한을 부여하는 프로그램이 설치될 수 있습니다.
참고: ‘su -‘에서 - 뒤에 더 많은 인수를 전달하려는 경우, 명령어가 제공하는 -l 명령줄 옵션을 사용해야 합니다(대신 -). 다음은 - 및 -l 명령줄 옵션의 정의입니다:
-, -l, --login
사용자가 직접 로그인했을 때 기대할 수 있는 환경을 제공합니다.
-가 사용될 경우, 마지막 su 옵션으로 지정되어야 합니다. 다른 형태(-l 및 --login)는 이 제한이 없습니다.su -c
‘ su’ 명령어의 또 다른 언급할 만한 옵션이 있습니다: -c. 이는 대상 사용자로 전환한 후 실행할 명령을 제공할 수 있게 해줍니다.
‘su’의 매뉴얼 페이지는 다음과 같이 설명합니다:
-c, --command COMMAND
셸이 -c를 사용하여 호출할 명령을 지정합니다.
실행된 명령은 제어 터미널이 없습니다. 이 옵션은 제어 TTY가 필요한 대화형 프로그램을 실행하는 데 사용할 수 없습니다.다음 예제 템플릿을 고려해 보십시오:
su [대상-사용자] -c [실행할-명령]따라서 이 경우 ‘실행할-명령’은 다음과 같이 실행됩니다:
[셸] -c [실행할-명령]여기서 ‘셸’은 /etc/passwd 파일에 정의된 ‘대상-사용자’의 셸로 대체됩니다.
Sudo vs Su
이제 ‘su’ 명령어의 기본 사항을 논의했으므로, ‘sudo’와 ‘su’ 명령어의 차이점을 논의할 시간입니다.
비밀번호
두 명령어의 주요 차이점은 요구하는 비밀번호입니다: ‘sudo’는 현재 사용자의 비밀번호를 요구하는 반면, ‘su’는 루트 사용자의 비밀번호를 입력해야 합니다.
보안 측면에서 볼 때, ‘sudo’는 두 명령어 중 더 나은 대안입니다. 예를 들어, 여러 사용자가 루트 접근이 필요한 컴퓨터를 사용하는 경우를 고려해 보십시오. 이러한 시나리오에서 ‘su’를 사용하면 모든 사용자와 루트 비밀번호를 공유해야 하므로 일반적으로 좋은 관행이 아닙니다.
더욱이, 특정 사용자의 슈퍼유저/루트 접근을 철회하려는 경우, 유일한 방법은 루트 비밀번호를 변경한 후 모든 다른 사용자에게 새 루트 비밀번호를 재배포하는 것입니다.
반면, Sudo를 사용하면 이러한 두 시나리오를 수월하게 처리할 수 있습니다. ‘sudo’는 사용자가 자신의 비밀번호를 입력하도록 요구하므로, 처음부터 모든 사용자와 루트 비밀번호를 공유할 필요가 없습니다. 특정 사용자가 루트 권한에 접근하지 못하도록 하려면, ‘sudoers’ 파일의 해당 항목을 수정하기만 하면 됩니다.
기본 동작
두 명령어의 또 다른 차이점은 기본 동작입니다. ‘sudo’는 단일 명령을 상승된 권한으로 실행할 수 있도록 허용하는 반면, ‘su’ 명령어는 새로운 셸을 시작하여 사용자가 명시적으로 종료할 때까지 루트 권한으로 원하는 만큼 많은 명령을 실행할 수 있게 해줍니다.
따라서 ‘su’ 명령어의 기본 동작은 사용자가 루트로 작업하고 있다는 사실을 잊을 가능성이 있기 때문에 잠재적으로 위험합니다. 사용자는 실수로 복구할 수 없는 변경을 할 수 있습니다(예: 잘못된 디렉토리에서 ‘rm -rf’ 명령을 실행하는 경우). 루트로 항상 작업하는 것이 권장되지 않는 이유에 대한 자세한 논의는 여기로 가십시오.
로깅
‘sudo’를 통해 실행된 명령은 대상 사용자(기본적으로 ‘root’)로 실행되지만, sudo 사용자의 사용자 이름이 태그로 붙습니다. 그러나 ‘su’의 경우, 사용자가 루트 계정으로 전환한 후에 그 사용자가 무엇을 했는지를 직접 추적하는 것은 불가능합니다.
유연성
‘sudo’ 명령어는 훨씬 더 유연하여, sudo 사용자에게 접근할 수 있는 명령어를 제한할 수도 있습니다. 즉, ‘sudo’에 접근할 수 있는 사용자에게는 그들의 작업에 필요한 명령어만 접근할 수 있도록 할 수 있습니다. 그러나 ‘su’의 경우 이는 불가능합니다 - 모든 것을 할 수 있는 권한이 있거나 아무것도 할 수 없는 것입니다.
Sudo su
‘su’를 사용하거나 루트로 직접 로그인하는 데 관련된 잠재적 위험 때문에, Ubuntu와 같은 일부 리눅스 배포판은 기본적으로 루트 사용자 계정을 비활성화합니다. 사용자는 루트 권한이 필요할 때마다 ‘sudo’를 사용하도록 권장됩니다.
그러나 여전히 ‘su’를 성공적으로 수행할 수 있습니다. 즉, 루트 비밀번호를 입력하지 않고도 가능합니다. 필요한 것은 다음 명령어를 실행하는 것입니다:
sudo su‘sudo’로 명령어를 실행하므로, 비밀번호를 입력해야 합니다. 비밀번호 입력이 완료되면, ‘su’ 명령어가 루트로 실행되며, 비밀번호를 요구하지 않습니다.
PS: 시스템에서 루트 계정을 활성화하려는 경우(비추천되지만, ‘sudo’ 또는 ‘sudo su’를 항상 사용할 수 있으므로), 루트 비밀번호를 수동으로 설정해야 하며, 다음 명령어를 사용하여 설정할 수 있습니다:
sudo passwd root결론
이 글과 이전 튜토리얼(‘sudo’에 초점을 맞춤)은 권한 상승(또는 완전히 다른 권한 세트)이 필요한 작업을 수행할 수 있는 도구에 대한 좋은 아이디어를 제공해야 합니다. ‘su’ 또는 ‘sudo’에 대해 공유할 내용이 있거나 자신의 경험을 공유하고 싶다면, 아래 댓글에 남겨 주시기 바랍니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.