SU(1)

명칭
su - 일시적으로 다른 유저에게든지 변한다

서식
su [-] [-Kflm] [-c class] [login [args]]

해설
su 유틸리티는, login 할 경우에 Kerberos 패스워드 (혹은 로그인 ( login )(이)가 지정되지 않는 경우에는, “login.root” 의 패스워드)를 요구해, Kerberos 인증을 얻은 뒤에 유저와 그룹 ID 를 바꿉니다. 쉘은 그 후에 실행됩니다. 만약 Kerberos 에러가 있어라 , su 유틸리티는, login (을)를 위한 패스워드를 찾아내기 위해서(때문에) 로컬 패스워드 파일을 조사 su 하지만 root 에 의해 실행되었을 경우, 패스워드는 요구되지 않고, 적당한 유저 ID 를 가진 쉘이 실행됩니다. 부가적인 Kerberos 인증은 하나도 이득 선.

디폴트에서는, USER, HOME, SHELL 이외의 환경 변수는 인계됩니다. HOME (와)과 SHELL (은)는 타겟이 되는 로그인의 기본값이 됩니다. USER (은)는, 타겟 로그인의 유저 ID 가 0 이외이면, 타겟트로그이 의 것이 세트 됩니다. 0 의 경우는 변경되지 않습니다. 실행되는 쉘은 타겟 로그인의 로그인 쉘입니다. 이것은 su 의 전통적인 행동입니다. 오리지날 유저의 로그인 클래스 ( login.conf(5) 참조)의 자원 제약과 세션 우선도도 통상 유지됩니다. 예외는 타겟 로그인이 유저 ID 0 의 경우입니다.

옵션으로서는, 이하의 것이 있습니다:

-K  유저 인증에 Kerberos 를 사용하지 않습니다.

-f  쉘로서 csh(1) 하지만 실행되는 경우, “.cshrc” 파일을 읽어들이지 않습니다.

-l  통상에 로그인했을 경우와 같게 되도록(듯이) 환경 변수가 설정됩니다. 즉, 환경 변수는 HOME, SHELL, PATH, TERM, USER 이외는 버려집니다. HOME (와)과 SHELL (은)는 상기와 같이 변경됩니다. USER (은)는 타겟 로그인의 값이 됩니다. PATH 하 “/bin:/usr/bin” (이)가 됩니다. TERM (은)는, 당신의 현재의 환경 변수의 값이 됩니다. 타겟 로그인의 클래스에 의해, 로그인크라스케이파비리티데이타베이스에 근거해, 환경 변수가 설정 혹은 변경되는 일이 있습니다. 실행되는 쉘은 타겟 로그인의 로그인 쉘이 되어, 타겟 로그인의 홈 디렉토리로 이동합니다. 자원 제약과 세션 우선도는, 타겟 어카운트의 로그인 클래스의 것으로 변경됩니다.

-   (캐릭터 없음) -l (와)과 같습니다.

-m  환경 변수는 변화하지 않습니다. 실행되는 쉘은 자신의 로그인 쉘로, 디렉토리의 이동도 행해지지 않습니다. 보안의 조심으로서 만약 타겟 유저의 쉘이 비표준 쉘 ( getusershell(3) 그리고 정의된다)에서 만나거나 호출측의 열매 유저 ID 가 0 이 아니면, su (은)는 실패합니다.

-c class
    지정된 로그인 클래스의 설정을 사용합니다. 슈퍼 유저만이 사용이 용서됩니다.

-l (또는 - )(와)과 -m (은)는, 동시에 지정할 수 없습니다. 마지막에 지정한 것이 우선됩니다.

옵션의 args 하지만 명령행으로 지정되면(자), 그것들은 타겟 로그인의 로그인 쉘에 인도해집니다.

그룹 0 (통상은 “wheel”) 의 멤버만 “root” 되는 것이 가능합니다. 그룹 0 이 존재하지 않는가 하늘의 경우에는, 어느 유저라도 “root” 에 su 하는 것이 가능합니다.

디폴트에서는 (설정이되어 있지 않으면) 슈퍼 유저의 prompt는 “#” (으)로 설정됩니다.

관련 파일
/etc/auth.conf
    인증 서비스의 설정

관련 항목
csh(1), kerberos(1), kinit(1), login(1), sh(1), group(5), login.conf(5), passwd(5), environ(7)

환경 변수
su 그리고 이용되는 환경 변수는 이하와 같습니다:

HOME
    상기로 가리킨 개서가 없는 한, 열매 유저 ID 의 디폴트의 홈 디렉토리입니다.

PATH
    상기로 가리킨 개서가 없는 한, 열매 유저 ID 의 디폴트의 서치 패스로

TERM
    되어 대신하는 사람이 소유하고 있는 단말의 터미널 타입입니다.

USER
    유저 ID 가 0 (root) 이외의 경우는, 유저 ID 는 항상 su 후의 effective ID (타겟이 되는 유저 ID)입니다.

사용예
su man -c catman
    명령 catman (을)를 유저 man 그리고 실행합니다. 당신 열매 UID 가 0 이 아닌 경우는, man 의 패스워드를 묻습니다.
su man -c 'catman /usr/share/man /usr/local/man /usr/X11R6/man'
    위와 같습니다만, 명령이 복수의 말로부터 구성되어 있습니다. -c 옵션을 쉘에 건네주기 위해서(때문에) 쿼트 하고 있습니다 (대부분의 쉘에서는 -c 에의 인수가 단일어이다고 기대합니다).
su -c staff man -c 'catman /usr/share/man /usr/local/man /usr/X11R6/man'
    위와 같습니다만, 로그인 클래스 “staff” 의 자원 제한에서 타겟 명령을 실행합니다. 주: 이 예에서는, 최초의 -c 옵션은 su 에 적용되어 2 번째의 것은 기동되는 쉘의 인수가 됩니다.
su -l foo
    유저 foo 의 로그인을 시뮬레이트 합니다.
su - foo
    위와 같습니다.
su -
    root의 로그인을 시뮬레이트 합니다.

역사
su 명령은 AT&T UNIX (으)로부터 등장했습니다.