[Linux] su, sudo, sudoers

2024. 9. 3. 10:46·Linux

su 명령어

su는 ‘switch user’의 약자로, 현재 사용자의 세션을 다른 사용자로 전환하는 명령어

 

루트 사용자로 전환

$ su -

 

 

특정 사용자로 전환

$ su - cubrid

 

 

‘-’ 옵션 사용: ‘-’ 옵션을 사용하면, 환경 변수를 포함한 사용자의 환경을 모두 로드

$ su - cubrid

  • 해당 사용자의 홈 디렉터리로 이동됨

  • 해당 사용자의 환경변수가 적용됨
  • 환경 변수는 ~/.bashrc, ~/.bash_profile, ~/.profile 에서 설정한 변수

 

‘-’ 옵션 사용 X: -를 사용하지 않으면, 현재 디렉토리를 유지하면서 다른 사용자로 전환

$ su cubrid

  • 현재 디렉터리를 유지하면서 사용자만 변경됨

  • 환경변수는 변경되지 않음

 

‘-c’ 옵션: 다른 사용자로 로그인하지 않고, 특정 사용자 권한으로 단일 명령어를 실행

$ su root -c "vi /etc/sudoers"

 

 

whoami: 현재 사용자를 확인

$ whoami

 

 

logout / exit: 전환 전 사용자로 돌아감

$ exit

  • root에서 cubrid로 사용자 전환하고, exit 명령을 사용하면 다시 root로 로그인됨

sudo 명령어

  • sudo 명령어를 실행하게 되면 다른 사용자의 권한(일반적으로 root)으로 명령어를 실행하게 됨
  • 즉, 하나의 명령에 대하여 일시적으로 다른 사용자의 권한을 사용하는 것을 말함
$ sudo -u root [명령어]
$ sudo [명령어]   # -u root와 같음

 

 

sudo 사용 X: 예를 들어서 시스템 설정 파일을 편집할 때 루트 권한이 필요한데, sudo 명령어를 사용하지 않고 사용자가 해당 파일에 접근하면 다음과 같이 접근이 거부됨

$ cat /etc/sudoers

 

 

sudo 사용: 다음과 같이 sudo 명령어를 입력해야 시스템 설정 파일에 접근할 수 있음

$ sudo cat /etc/sudoers
  • sudo 명령은 /etc/sudoers 파일에 권한 지정된 사용자만 사용 가능

 

권한 설정이 안된 사용자: sudoers 파일에 권한 설정이 되지 않은 사용자가 시스템 설정 파일에 접근하는 경우 다음과 같이 error

 

 

sudo 권한 설정: /etc/sudoers 파일에서 다음과 같이 사용자 권한을 지정

$ sudo vi /etc/sudoers

cubrid   ALL=(ALL)   ALL

/etc/sudoers

sudoers 파일: sudo 명령어를 사용해 특정 사용자나 그룹이 루트 또는 다른 사용자의 권한으로 명령어를 실행할 수 있도록 허용하는 설정 파일

 

 

sudoers 파일의 역할

  • 권한 부여: 특정 사용자나 그룹에게 루트나 다른 사용자의 권한으로 실행할 수 있는 권한을 부여
  • 명령어 제한: 어떤 사용자나 그룹이 특정 명령어만 실행할 수 있도록 제한
  • 호스트 제한: 명령어가 실행될 수 있는 호스트(서버)를 지정

 

 

사용자 권한 지정 예시

sudo vi /etc/sudoers

root ALL=(ALL:ALL) ALL  # (권한 설정할 사용자명) (규칙이 적용되는 호스트)=(사용 가능한 사용자 권한:사용 가능한 그룹 권한) (실행 가능한 명령어)  
  • 예시는 root 사용자가 어떤 명령어든지, 어떤 사용자 또는 그룹의 권한으로든지, 모든 호스트에서 실행할 수 있도록 허용하는 설정
  • 즉, root 사용자가 모든 명령어를 제약 없이 실행할 수 있음

 

그룹 권한 지정

  • % 기호는 그룹을 나타냄
%cubrid   ALL=(ALL)   ALL

 

 

비밀번호 없이 명령어 실행 허용

cubrid   ALL=(ALL)   NOPASSWD:ALL 

 

 

특정 명령어 실행 허용

cubrid   ALL=(ALL)   /usr/bin/yum check-update, /usr/bin/yum update

요약

  • su는 다른 사용자 계정으로 전환하거나 루트 계정으로 로그인하기 위한 명령어
  • sudo는 다른 사용자의 권한으로 명령어를 실행하기 위한 명령어
  • /etc/sudoers 파일은 시스템에서 sudo 명령어를 사용할 수 있는 권한과 범위를 관리하는 설정 파일

 

'Linux' 카테고리의 다른 글

[Linux] date 명령어  (0) 2024.09.03
[Linux] 실행 중인 프로세스 백그라운드로 변경하기  (1) 2024.09.03
[Linux] nohup 명령어  (0) 2024.09.03
[Linux] 리눅스 파일 권한 Permission  (1) 2024.05.02
[Linux] 기본 명령어  (0) 2023.08.27
'Linux' 카테고리의 다른 글
  • [Linux] date 명령어
  • [Linux] 실행 중인 프로세스 백그라운드로 변경하기
  • [Linux] nohup 명령어
  • [Linux] 리눅스 파일 권한 Permission
Doodo
Doodo
  • Doodo
    Doodo
    Doodo
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • CS (17)
        • Network (11)
        • Database (6)
      • Language (19)
        • Python (11)
        • SQL (6)
        • R (2)
      • Linux (17)
      • DevOps (35)
        • Git (7)
        • Docker (8)
        • Kubernetes (9)
        • GCP (4)
        • AWS (7)
      • Data Engineering (50)
        • 책 리뷰 (14)
        • Airflow (35)
        • Redis (1)
      • DBMS (21)
        • CUBRID (21)
      • ML & DL (2)
      • 코딩테스트 (24)
      • 프로젝트 (7)
        • 서울시 대기현황 데이터 적재 프로젝트 (4)
        • CryptoStream (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Doodo
[Linux] su, sudo, sudoers
상단으로

티스토리툴바