[Linux] SU command 패스워드 없이 사용하기

 



 

SU Command를 패스워드 없이 사용할 수 있도록 하는 방법에 대해 알아보겠습니다.

root(슈퍼유저) 권한을 획득하는데 sudo 또는 su command를 사용할 수 있습니다. sudo 명령어는 패스워드 없이 자주 사용이 되고 있지만 su command도 패스워드 없이 사용한다는 건 생소할 수 있습니다. 결과를 미리 알려드리면 su 명령어도 패스워드 없이 사용이 가능합니다. sudo 명령어를 패스워드 없이 사용하는 게 궁금하신 분들은 sudo 명령어 를 참고하시면 됩니다.

 

테스트 환경

다음과 같은 OS 버전에서 동작을 확인하였습니다.

  • RHEL 6

  • RHEL 7

  • RHEL 8

  • RHEL 9

 

목표

일반 사용자가 root 패스워드를 알지 못하더라도 su 명령어를 통해 root 권한을 얻을 수 있도록 설정하는 방법을 설명합니다. 이 기능은 매우 강력한 권한 상승 수단이므로, 반드시 신뢰할 수 있는 사용자에게만 적용해야 합니다.

 

SU command 패스워드 없이 사용하도록 설정

RHEL 시스템에서는 해당 기능이 이미 기본적으로 제공되며, 설정을 활성화하는 것만으로 사용이 가능합니다. 이 방법은 시스템에 존재하는 wheel 그룹을 활용합니다.

/etc/pam.d/su 파일에는 아래와 같은 라인이 기본적으로 주석 처리되어 있습니다. 이 설정은 wheel 그룹에 속한 사용자가 su 명령어를 패스워드 없이 사용할 수 있도록 허용합니다.

#auth            sufficient      pam_wheel.so trust use_uid

위 라인의 주석을 해제하여 기능을 활성화하고, su 명령어를 사용할 사용자를 wheel 그룹에 추가합니다.

1) /etc/pam.d/su 파일에서 주석 해제

# vi /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth            sufficient      pam_wheel.so trust use_uid	## 주석 해제
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid
auth            substack        system-auth
2) 사용자에게 wheel 그룹 권한 부여
# usermod -aG wheel suser


SU 명령어 패스워드 없이 실행 확인

설정 후, 해당 사용자가 wheel 그룹에 정상적으로 포함되어 있는지 확인합니다.

[suser@bastion ~]$ id
uid=1004(suser) gid=1004(suser) groups=1004(suser),10(wheel) 

이제 su - 명령어를 실행하면 root 패스워드 없이 바로 전환이 가능한 것을 확인할 수 있습니다.
[suser@bastion ~]$ su -
[root@bastion ~]#

위 결과에서 알 수 있듯이, root 패스워드를 입력하지 않아도 곧바로 root 권한을 획득할 수 있습니다.


댓글

이 블로그의 인기 게시물

[Linux] RHEL Local YUM Repository 구성

[Linux Command] sudo command 설명

[Ansible Modules] Fetch module 설명 및 활용