| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- coreutils
- 파일시스템
- tcsh
- 유닉스
- 쉘스크립트
- environment
- bash
- linuxcommand
- php
- UnixCommand
- 터미널
- sysadmin
- Unix명령어
- 자바스크립트
- js
- 명령어
- terminal
- PackageManagement
- 유닉스명령어
- 리눅스
- JavaScript
- 정규표현식
- UNIX
- shell
- cups
- 리눅스명령어
- linux
- Solaris
- 사용자관리
- 시스템관리
Archives
- Today
- Total
ioerror
su 사용법 및 옵션 - 다른 사용자 계정으로 사용자를 전환하는 명령 본문
반응형

su - Substitute User / Switch User
현재 로그인된 세션에서 지정한 다른 사용자 계정의 권한 및 신원으로 전환하여 명령을 실행하거나 새로운 셸을 개시하는 유닉스 및 리눅스의 표준 계정 전환 명령어이다. 주로 일반 사용자 계정에서 시스템 관리 권한을 얻기 위해 root 계정으로 전환하거나, 특정 서비스 전용 계정(e.g., postgres, www-data)으로 변경하여 작업을 수행할 때 사용된다.
1. su 용도
- 서버 관리 작업 수행을 위해 일반 계정에서 root 관리자 계정으로 전환할 때 사용된다.
- 특정 애플리케이션이나 데이터베이스 계정(e.g. su - postgres)으로 전환하여 전용 작업을 수행할 때 활용된다.
2. su 서식
su [OPTIONS...] [USER [ARGUMENT...]]
3. su 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -, -l, --login | 대상 사용자의 로그인 환경(환경 변수, PATH, Working Directory 등)을 완전히 로드하여 전환한다. | 모든 유닉스/리눅스 |
| -c command, --command=command | 계정을 변경한 뒤 대화형 셸에 진입하지 않고 지정한 단일 명령만 실행한 후 기존 계정으로 돌아온다. | 모든 유닉스/리눅스 |
| -s shell, --shell=shell | /etc/passwd에 지정된 기본 셸 대신 지정한 셸 환경으로 전환한다. | 모든 유닉스/리눅스 |
| -m, -p, --preserve-environment | 현재 셸의 환경 변수(HOME, USER, SHELL 등)를 그대로 유지한 채 계정만 변경한다. | 모든 유닉스/리눅스 |
| -g group, --group=group | 주 그룹(Primary Group)을 지정하여 실행한다. | Linux shadow-utils |
| -G group, --supp-group=group | 보조 그룹(Supplementary Group)을 지정하여 실행한다. | Linux shadow-utils |
| -f, --fast | C Shell(csh) 환경에서 스타트업 파일(.cshrc)을 읽지 않고 빠르게 실행한다. | BSD csh |
# 로그인 환경을 완전히 포함하여 root 계정으로 전환
su -
# Password:
# [root@server ~]# whoami
# root
# 특정 서비스 계정으로 환경 변수를 유지하며 단일 명령 실행
su -s /bin/bash -c "psql -c '\l'" postgres
# List of databases
# Name | Owner | Encoding | Collate | Ctype | Access privileges
# -----------+----------+----------+---------+-------+-----------------------
# postgres | postgres | UTF8 | C | C |
# 현재 사용자의 환경 변수를 그대로 유지하며 developer 계정으로 전환
su -m developer
- Password:: 전환 대상 계정(기본값: root)의 비밀번호를 입력받는 프롬프트이다.
- root: 계정이 성공적으로 root 관리자로 변경되었음을 보여주는 결과이다.
- List of databases ...: postgres 계정 권한으로 PostgreSQL 데이터베이스 목록 조회 명령을 수행한 결과이다.
4. su 특이사항(유의사항)
- su와 su -의 차이점: su는 현재 사용자의 환경 변수(PATH, HOME 등)와 작업 디렉터리를 그대로 유지하지만, su -는 대상 사용자의 환경 변수와 초기화 파일(.bashrc, .bash_profile 등)을 완벽히 읽어 들어와 해당 사용자의 홈 디렉터리로 이동한다. 관리자 작업 시에는 환경 변수 꼬임을 방지하기 위해 su - 사용이 강력히 권장된다.
- Root 계정 비밀번호 공유 문제: su 명령은 대상 계정의 비밀번호를 입력해야 하므로 관리자 비밀번호를 여러 사용자에게 공유해야 하는 보안 위험이 존재한다. 이를 보완하기 위해 개별 사용자의 비밀번호로 특정 관리자 명령을 위임 실행하는 sudo 사용이 현대 시스템 관리 표준으로 자리 잡았다.
- Root 권한 사용자의 su 실행: root 계정에서 일반 사용자로 su 전환 시에는 비밀번호 입력 없이 즉시 계정이 전환된다.
관련 명령어들
- sudo: 다른 사용자(주로 root)의 권한으로 특정 명령을 실행한다.
- whoami: 현재 셸 세션의 실행 사용자 계정명을 출력한다.
- id: 현재 세션 또는 특정 사용자의 UID, GID 및 소속 그룹 정보를 출력한다.
- chsh: 사용자의 기본 로그인 셸을 변경한다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| sync 사용법 및 옵션 - 버퍼 캐시의 변경된 데이터를 디스크로 강제 동기화하는 명령 (0) | 2026.07.30 |
|---|---|
| sudo 사용법 및 옵션 - 다른 사용자(주로 root)의 권한으로 명령을 안전하게 실행하는 명령 (0) | 2026.07.30 |
| slogin 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
| ssh 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
| split 사용법 및 옵션 - 대용량 파일을 지정한 크기나 라인 수 단위로 분할하는 명령 (0) | 2026.07.30 |
Comments