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
- 표준출력으로
버전정보를 출력하고
정상적으로
종료한다.