> 패키지 및 시스템 관리 > su

su: 다른 사용자로 전환

`su` 명령어는 'substitute user'의 약자로, 현재 사용자의 ID를 다른 사용자의 ID로 전환할 때 사용됩니다. 주로 관리자 권한(root)을 얻거나 다른 사용자의 환경에서 작업을 수행할 때 활용됩니다. 비밀번호 인증을 통해 권한을 획득하며, 보안상 중요한 명령어입니다.

개요

`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`)에 남습니다. 보안 감사를 위해 이 로그를 주기적으로 확인하는 것이 좋습니다.

동일 카테고리 명령어