리눅스 su 명령어 사용법
리눅스에서 su 명령어는 계정을 전환할 때 자주 사용되는 기본 명령어입니다. 이 포스팅에서는 su 명령어의 다양한 옵션과 사용 방법에 대해 설명하겠습니다. 본인은 CentOS를 사용하기 때문에 Ubuntu와의 차이는 있을 수 있지만, 기본 개념은 유사할 것입니다.
su 명령어 개요
su는 "substitute user"의 약자로, 다른 계정으로 전환할 때 사용합니다. 일반 사용자 계정에서 root 또는 다른 사용자 계정으로 전환할 때 패스워드를 입력해야 하지만, root 계정에서 다른 사용자로 전환할 때는 패스워드를 요구하지 않습니다. 이는 root가 시스템의 모든 권한을 가지고 있기 때문입니다.
su 명령어 옵션
su 명령어에는 몇 가지 유용한 옵션이 있습니다:
- -c: 쉘을 실행하지 않고 주어진 명령만 수행합니다.
- -s: 지정된 쉘로 로그인을 할 수 있습니다.
- - 또는 -l: 지정한 사용자의 환경 변수를 적용하여 로그인합니다.
계정 변환 예제
쉘 환경변수 미적용
# su root
# su
위 두 명령은 동일하며, root 계정으로 전환하지만 쉘 환경변수를 가져오지 않습니다.
쉘 환경변수 적용
# su - root
# su -
위와 같이 -를 사용하면 root의 쉘 환경변수를 가져옵니다.
일반 계정으로 변환
# su user1
# su user2
위와 같이 su 뒤에 바꿀 계정을 입력하면 됩니다. root에서 일반 계정으로 변환할 경우 패스워드는 묻지 않으며, 일반 계정 간 또는 일반 계정에서 root 계정으로 전환할 때는 패스워드를 요구합니다.
특정 명령어만 실행하기
계정 변환 없이 특정 명령어를 실행할 수도 있습니다. 사용법은 다음과 같습니다.
# su -c 'cat /etc/shadow' - root
이 명령은 root 권한으로 /etc/shadow 파일의 내용을 출력합니다. 이는 sudo와 유사한 기능입니다.
쉘 변경하여 다른 계정으로 전환
특정 쉘로 변경하여 계정을 전환할 수도 있습니다.
# su -s /bin/csh - root
이 명령은 C 쉘로 변경하여 root 사용자로 전환합니다.
마무리
su 명령어는 리눅스에서 자주 사용되지만, 그 옵션에 대해서는 잘 알려져 있지 않은 경우가 많습니다. 이러한 옵션을 이해하고 활용하는 것은 시스템 관리에 도움이 됩니다. 비록 이 정보가 대단한 것은 아니지만, 작은 지식이 쌓여 큰 도움이 될 수 있습니다. 이러한 내용을 기억해 두면 유용할 것입니다.