개요
`su`는 현재 세션에서 다른 사용자의 권한으로 명령을 실행하거나 해당 사용자의 셸 환경으로 전환하는 데 사용됩니다. 기본적으로 대상 사용자를 지정하지 않으면 root 사용자로 전환을 시도합니다.
주요 특징
- 사용자 ID 전환: 현재 사용자의 권한을 다른 사용자의 권한으로 변경합니다.
- 기본 대상: 사용자 이름을 지정하지 않으면 기본적으로 root 사용자로 전환을 시도합니다.
- 비밀번호 인증: 대상 사용자의 비밀번호를 정확히 입력해야 권한 전환이 가능합니다.
- 환경 전환: `-` 또는 `-l` 옵션을 사용하여 대상 사용자의 로그인 셸 환경으로 완전히 전환할 수 있습니다.
주요 옵션
`su` 명령어는 다양한 옵션을 통해 사용자 전환 방식과 실행할 명령어를 제어할 수 있습니다.
사용자 전환 옵션
명령어 실행 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`su` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
`su` 명령어의 다양한 사용법을 통해 사용자 전환 및 특정 명령어 실행 방법을 익힐 수 있습니다.
root 사용자로 전환 (로그인 셸 아님)
su
기본적으로 root 사용자로 전환하지만, root의 로그인 셸 환경을 로드하지 않습니다. 현재 사용자의 환경 변수가 일부 유지될 수 있습니다.
root 사용자로 로그인 셸 전환
su -
root 사용자로 전환하며, root의 로그인 셸 환경(PATH, 홈 디렉토리 등)을 완전히 로드합니다. 가장 일반적이고 권장되는 방식입니다.
특정 사용자로 로그인 셸 전환
su -l username
지정된 'username' 사용자로 전환하며, 해당 사용자의 로그인 셸 환경을 로드합니다.
root 권한으로 특정 명령어 실행 후 복귀
su -c "ls -la /root"
root 권한으로 `ls -la /root` 명령어를 실행한 후, 자동으로 원래 사용자로 돌아옵니다. 셸 환경은 변경되지 않습니다.
다른 사용자로 특정 명령어 실행 후 복귀
su username -c "whoami"
'username' 사용자의 권한으로 `whoami` 명령어를 실행한 후, 원래 사용자로 돌아옵니다.
팁 & 주의사항
`su` 명령어는 시스템 보안에 직접적인 영향을 미치므로, 사용 시 몇 가지 중요한 사항을 고려해야 합니다.
보안 및 권장 사항
- root 비밀번호 노출 위험: `su`는 root 비밀번호를 직접 요구하므로, 이 비밀번호가 노출될 경우 시스템 전체가 위험에 처할 수 있습니다. `sudo`는 사용자 자신의 비밀번호를 사용하며, 특정 명령어에 대한 권한만 부여할 수 있어 더 세밀한 제어가 가능합니다. 일반적으로 `sudo` 사용이 더 권장됩니다.
- 로그인 셸 사용 권장: `su -` (하이픈 포함)를 사용하여 대상 사용자의 로그인 셸 환경을 완전히 로드하는 것이 좋습니다. 이는 PATH, 환경 변수 등이 올바르게 설정되어 예상치 못한 문제를 방지하고, 대상 사용자의 환경에서 작업하는 것과 동일한 효과를 줍니다.
- 불필요한 root 사용 자제: 필요한 작업이 끝나면 즉시 `exit` 명령어로 원래 사용자로 돌아오는 것이 보안상 안전합니다. root 권한으로 장시간 작업하는 것은 시스템에 위험을 초래할 수 있습니다.
- 로그 확인: `su` 사용 기록은 시스템 로그(예: `/var/log/auth.log` 또는 `/var/log/secure`)에 남습니다. 보안 감사를 위해 이 로그를 주기적으로 확인하는 것이 좋습니다.