유닉스 명령 su는, 'substitute user'를 의미하고, 컴퓨터 사용자에 의해 또 다른 사용자 계정의 권한으로 명령을 실행하기 위해 사용됩니다. 실행될 때, 그것은 현재 작업 디렉토리 또는 사용자 환경을 변경하지 않고 쉘을 호출합니다.
그 명령은 새로운 사용자 ID를 명령줄 인수로 지정하는 것없이 사용될 때, 그것은 시스템의 수퍼유저 계정 (사용자 ID 0)을 사용하는 것이 기본값입니다.
History
유닉스 허가권 시스템과 setuid 시스템 호출을 포함한, su 명령은 버전 1 유닉스의 일부였습니다. 암호화된 암호가 버전 3에 나타났습니다.
Usage
명령줄에서 실행할 때, su는 대상 사용자의 암호를 묻고, 인증되면, 운영자에게 해당 계정과 해당 계정이 접근할 수 있는 파일과 디렉터리에 대한 접근 권한을 부여합니다.
john@localhost:~$ su jane
Password:
jane@localhost:/home/john$ exit
logout
john@localhost:~$
하이픈과 함께 (su -) 사용될 때, 그것은 로그인 쉘을 시작하기 위해 사용될 수 있습니다. 이 모드에서, 사용자는 대상 사용자의 사용자 환경을 가정할 수 있습니다.
john@localhost:~$ su - jane
Password:
jane@localhost:~$
sudo 명령은 관련이 있고, 또 다른 사용자로 명령을 실행하지만 어떤 사용자가 다른 사용자로 어떤 명령을 실행할 수 있는지에 대한 일련의 제약 조건을 준수합니다 (일반적으로 visudo 명령으로 가장 잘 편집할 수 있는 /etc/sudoers라는 구성 파일에서). su와 달리, sudo는 대상 사용자의 암호가 아닌 자신의 암호로 사용자를 인증합니다 (특정 호스트의 특정 사용자에게 암호를 공유하지 않고 무인 터미널의 위험을 완화하면서 특정 명령을 위임할 수 있습니다).
일부 유닉스-계열 시스템은 사용자 그룹 wheel을 구현하고, 오직 구성원에게 su로 루트가 되도록 허용합니다. 침입자가 먼저 해당 계정 중 하나에 침입할 수 있기 때문에, 이것은 이들 보안 문제를 완화하거나 완화하지 않을 수 있습니다. GNU su는, 어쨌든, 철학적 이유로 그룹 wheel을 지원하지 않습니다. Richard Stallman은 그 그룹이 사용자를 자신에게 유출된 루트 암호를 사용하는 것을 방지할 것이기 때문에, 그 그룹은 기존 관리자에게 보통의 사용자를 능가하도록 허용한다고 주장합니다.