Su (유닉스)

su(substitute user의 줄임말)는 유닉스 명령을 로그아웃하지 않고 다른 사용자의 권한으로 셸을 실행하는 데 사용된다. 일반적으로 관리 작업을 위해 다시 로그오프하지 않고 사용자의 권한을 루트로 변경하는 데 사용된다. 같은 방법으로 다른 사용자로 전환하는 데 사용된다. KDE와 그놈과 같은 데스크톱 환경은 사용자가 이러한 액세스를 필요로 하는 명령들을 실행할 수 있도록 하기 위하여 비밀번호를 입력할 수 있는 상자를 보여주는 프로그램들이 있다.

어떤 사용자의 권한으로 실행할지 정하지 않고 실행한 경우에는 루트 사용자로 간주된다(su root)와 동일).

사용법 
명령줄에서 실행하였을 때, su는 일반적으로 목적 사용자의 비밀번호를 묻고, 제대로 입력되었다면, 해당 계정과 연관된 모든 파일에 대한 사용자 접근 권한을 부여한다.

운영체제 설치 후에는 root 계정의 비밀번호 설정이 안되어 있으니, sudo passwd root로 비밀번호를 설정 한 후에 사용 해야한다.

john@localhost:~$ su
Password:
root@localhost:/home/john# exit
logout
john@localhost:~$

또한, 수퍼 사용자가 아닌 다른 사용자로 전환할 수 있다. 예를 들어 su jane.

john@localhost:~$ su jane
Password:
jane@localhost:/home/john$ exit
logout
john@localhost:~$

일반적으로 관리자들은 하이픈을 붙여서 사용하는데,, 이는 로그인 셸을 시작하는 데 사용할 수 있다. 이렇게 하여 사용자가 목적 사용자의 사용자 환경을 얻을 수 있다.

john@localhost:~$ su - jane
Password:
jane@localhost:~$

관련 명령인 sudo는 다른 사용자로 명령을 실행하지만 어떤 사용자가 어떤 명령을 어떤 다른 사용자로 수행할 수 있는지에 대하여 제한(일반적으로 /etc/sudoers라는 설정 파일에 저장되어 있고 visudo등을 이용하면 편집할 수 있음)할 수 있다.su와는 달리, sudo는 인증할 때 다른 사용자의 비밀번호가 아닌 자신의 비밀 번호로 인증한다(특정 호스트에 있는 특정 사용자에게 명령 수행을 위임할 때 암호를 서로 공유하지 않고 할 수 있게 해 주고, 모든 무인 단말기의 위험을 방지함).

일부 유닉스 계열 운영 체제에서는 wheel 그룹에 속해 있는 사용자들에게만 수퍼 사용자로 su할 수 있다. 침입자가 그 그룹에 속해 있는 계정들 중에 하나를 침입할 수도 있기 때문에 이러한 보안 문제를 완화하지 않을 수도 있다. 그러나 GNU su는 wheel 그룹을 지원하지 않는다;이것은 철학적인 이유 때문이다.

참조

외부 링크 
 su - 매뉴얼 페이지 (GNU coreutils)
 su 명령 - 리눅스 정보 프로젝트 (LINFO)
 su의 정의 - dictionary.die.net
 runas - Windows XP에 있는 유사한 명령

유닉스 사용자 관리 및 지원 관련 유틸리티
시스템 관리