RHCSA 준비/01. 사용자 및 그룹 관리

1.3 사용자 전환 (su, sudo)

Jaden Park 2021. 5. 19. 20:33

su 명령으로 사용자 전환

사용법

su [-] [user-name]
[user@centos7 root]$ su
Password: 
[root@centos7 ~]# 
#root 사용자가 일반 사용자 전환 시에는 비밀번호가 필요 없음
[root@centos7 ~]# su user
[user@centos7 root]$ 

-(dash : 대시)

[user@centos7 ~]$ pwd
/home/user
[user@centos7 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin

[user@centos7 ~]$ su
Password: 
[root@centos7 user]# pwd
/home/user
[root@centos7 user]# echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin

[root@centos7 user]# su -
Last login: Wed May 19 17:04:57 KST 2021 on pts/0
[root@centos7 ~]# pwd
/root
[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  • su 명령이 성공하면 /etc/passwd 파일에 지정된 사용자의 쉘을 실행
  • su 명령 사용 시 '-'(대시) 옵션을 지정할 수 있는데 이 옵션을 지정하면 해당 사용자의 환경 설정을 읽어옴
  • 지정하지 않을 경우에는 기존 사용자의 환경 설정을 유지
  • 대시 옵션을 지정하면 해당 사용자의 홈 디렉토리에 있는 설정들을 전부 읽어오기 때문에 환경변수가 적용
  • 대시 옵션을 지정하면 로그인 시 기본 작업공간인 홈 디렉토리로 이동하게 됌

sudo

특정(root) 사용자의 패스워드를 공유하지 않고 sudo 명령을 사용하여 특정(root) 사용자의 권한을 사용

사용 조건

  • "현재 사용자의 패스워드"를 알아야 함
  • 사용자가 "/etc/sudoer" 파일에 등록되어있어야 함

사용법

sudo [option] [user-name] command
  • "sudo" 명령만 사용하면 "su" 명령에서 대시 없는 옵션과 동일하게 사용자 권한만 획득한다.
  • "sudo -i" 명령을 사용하면 "su -" 명령처럼 환경 설정 전환과 홈 디렉토리까지 일시적으로 바뀌게 된다.

/etc/sudoers

  • 모든 사용자가 sudo 명령을 사용해서 특정 사용자 권한을 사용 가능한 것은 아님
  • 최신 리눅스에서는 /etc/sudoers 파일을 직접 수정하지 않고 sudo 명령을 사용할 수 있는 자격으로 부여함
    • "wheel" 그룹의 구성원일 경우 sudo 명령을 사용할 수 있음
[root@centos7 ~]# cat /etc/sudoers
...
## Allow root to run any commands anywhere 
root    ALL=(ALL)     ALL   #1
#1 : root 사용자가 사용할 수 있는 명령을 정의
#    현재는 모든 명령을 사용할 수 있다고 명시
#    이전 버전의 리눅스에서는 "[user-name] ALL=(ALL) ALL"을 추가하면 sudo 명령이 사용 가능
...
## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL   #2
#2 : "%" 기호는 그룹을 의미. 따라서 wheel 그룹의 구성원들은 sudo 명령을 사용할 수 있다는 의미
#    이전 버전 리눅스에는 주석 처리가 되어 있음.
...

su 와 sudo 의 로깅

  • su 명령이나 sudo 명령을 사용하여 특정 사용자의 권한을 빌리게 되면 시스템에 로그가 기록됌
  • /var/log/secure 파일은 인증과 관련된 로그를 담는 파일
    • 기록된 시간, 시스템의 이름, 인증 방식, 로그 메시지를 담고 있음
[root@centos7 ~]# tail -1 /var/log/secure
May 19 17:05:08 localhost su: pam_unix(su-l:session): session opened for user root by user(uid=0)