SU(1)

이름
su - 사용자와 그룹 ID 를 교체하여 쉘을 실행한다

개요
su [-flmp] [-c 명령] [-s 쉘] [--login] [--fast] [--preserve-environment] [--command=명령] [--shell=쉘] [-] [--help] [--version] [사용자 [인수...]]

설명
이 맨페이지는 GNU 버전의 su 를 설명한다. su 는 한 사용자가 잠시 다른 사용자가 될 수 있도록 해준다. 실제 사용자 ID, 그룹 ID, USER의 보충적인 그룹으로 쉘을 실행한다. USER가 주어지지 않으면 기본적으로 수퍼유저인 root 로 설정된다. 실행되는 쉘은 USER의 패스워드 목록에서 찾아오거나 없으면 /bin/sh 를 수행한다. 만약 USER에 패스워드가 있다면 su 는 실제 사용자 ID 0 (수퍼유저)가 아닌 한 패스워드를 물어온다.

기본적으로, su 는 현재 디렉토리를 변경하지 않는다. USER 의 패스워드 항목으로부터 `HOME', `SHELL' 등의 변수를 설정하고 만약 수퍼유저가 아니라면 `USER'와 `LOGNAME'을 USER로 설정한다. 기본적으로 이 쉘은 로그인 쉘이 아니다.

만약 한 개 이상의 인수가 주어지면 쉘에 대한 인수로 전달된다.

su 는 /bin/sh나 다른 쉘을 특별히 다루지는 않는다. (argv[0]를 "-su"로 하고 -c 를 특정 쉘로 지정하지 않는 한... )

syslog를 가지고 있는 시스템에서는, su 가 실패하는 경우 보고를 하도록, 그리고 성공의 경우에는 선택적으로 보고하도록 컴파일하면 su 가 syslog를 사용한다.

  옵션

-c COMMAND, --command=COMMAND
    대화형 쉘을 시작하지 않고 -c 옵션을 쉘에 주어서 한 개의 명령만을 수행하도록 한다.

-f, --fast
    쉘에 -f 옵션을 전달한다. csh 와 tcsh 에만 해당되는 것으로서, -f 옵션은 시작 화일(.cshrc)를 읽지 않도록 한다. 본쉘의 경우, -f 옵션은 화일 패턴 확장을 불능으로 설정하는 것으로서 일반적으로 그렇게 하지 않는다.

--help
    표준출력으로 사용법을 출력하고 정상적으로 종료한다.

-, -l, --login
    쉘을 로그인 쉘로 만든다. 그 의미는 다음과 같다. `TERM', `HOME', `SHELL' (위에서 설명) 그리고 `USER', `LOGNAME'(위에서 설명하였듯 수퍼유저라 할 지라도 설정된다)을 제외하고 나머지 환경 변수를 제거한다. 그리고 `PATH'를 컴파일 기본 설정값으로 설정한다. USER의 홈 디렉토리로 이동한다. 쉘 이름에 "-" 를 추가하여 로그인 스크립트 화일들을 읽을 수 있게 할 수 있다.

-m, -p, --preserve-environment
    `HOME', `USER', `LOGNAME', `SHELL' 등의 환경변수값을 변경하지 않는다. 만약 su 를 실행하는 사용자가 수퍼유저이거나 사용자의 쉘이 제한된 쉘일 때는 /etc/passwd에 기재된 USER의 쉘이 아니라 `SHELL' 환경변수에 설정된 쉘을 실행한다. 제한된 쉘이란 /etc/shells에 등록되어 있지 않거나 /etc/shells 화일이 존재하지 않을 때 내장 컴파일된 목록에 들어있지 않는 경우를 말한다. 이 옵션의 일부는 다음 --login 과 --shell 옵션에 의해 무시될 수 있다.

-s, --shell shell
    su 를 실행하는 사용자가 수퍼유저가 아니거나 사용자의 쉘이 제한된 쉘일 때는 /etc/passwd에 등록된 USER의 쉘을 수행하지 않고 지정한 쉘을 수행한다.

--version
    표준출력으로 버전정보를 출력하고 정상적으로 종료한다.