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

su
원저자데니스 리치,
켄 톰프슨
개발자AT&T 벨 연구소
발표일1971년 11월 3일(52년 전)(1971-11-03)
운영 체제유닉스유닉스 계열
종류명령어

어떤 사용자의 권한으로 실행할지 정하지 않고 실행한 경우에는 루트 사용자로 간주된다(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:~$

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

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

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

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

참조 편집

  1. 《Unix™ Time-Sharing System: Unix Programmer's Manual: Seventh Edition, Volume 1》 (PDF). Murray Hill, New Jersey: Bell Telephone Laboratories, Incorporated. 1979년 1월. 2007년 7월 16일에 원본 문서 (PDF)에서 보존된 문서. 2009년 11월 2일에 확인함. 
  2. su -로, su - root와 동일하다
  3. Levi, Bozidar (2002). 《UNIX Administration: A Comprehensive Sourcebook for Effective Systems and Network Management》. CRC Press. 207쪽. ISBN 0-8493-1351-1. 
  4. “Why GNU su does not support the wheel group”. 2013년 8월 7일에 원본 문서에서 보존된 문서. 2013년 8월 7일에 확인함. 

외부 링크 편집