SU Command를 패스워드 없이 사용할 수 있도록 하는 방법에 대해 알아보겠습니다.
root(슈퍼유저) 권한을 획득하는데 sudo 또는 su command를 사용할 수 있습니다. sudo 명령어는 패스워드 없이 자주 사용이 되고 있지만 su command도 패스워드 없이 사용한다는 건 생소할 수 있습니다. 결과를 미리 알려드리면 su 명령어도 패스워드 없이 사용이 가능합니다. sudo 명령어를 패스워드 없이 사용하는 게 궁금하신 분들은 sudo 명령어 를 참고하시면 됩니다.
테스트 환경
아래의 OS버전에서 테스트 되었습니다.
- RHEL [6, 7, 8, 9]
목표
일반 유저가 root 패스워드를 몰라도 su
command를 사용하여 root 권한을 얻는 방법을 알아봅니다. 이렇게 되면 일반 사용자가 root user의 권한을 자유롭게 획득할 수 있게 되므로 꼭 필요한 사용자에게만 기능을 활성화해야 합니다.
SU command 패스워드 없이 사용하도록 설정
시스템에 이미 해당 기능을 사용할 수 있도록 설정되어 있기 때문에 그 기능을 사용할 수 있도록 활성화만 하면 됩니다. 이 방법은 이미 시스템에 만들어져 있는 wheel 그룹을 이용합니다.
“/etc/pam.d/su” 파일에 아래의 라인이 기본적으로 주석 처리되어 있습니다. wheel 그룹에 속한 사용자가 패스워드 없이 su
를 사용하게 하기 위한 설정입니다.
#auth sufficient pam_wheel.so trust use_uid
따라서 위에서 본 /etc/pam.d/su 파일의 해당 부분을 주석 해제하여 wheel 룹 사용자가 su
명령을 패스워드 없이 사용할 수 있도록 설정합니다. 그다음 su 명령을 사용할 사용자를 wheel 그룹에 포함시킵니다.
- /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
...
- 유저에게 wheel 그룹 부여 ( suser는 유저 이름입니다 )
# usermod -aG wheel suser
이제 패스워드 없이 로그인이 가능한지 확인합니다.
[suser@bastion ~]$ id
uid=1004(suser) gid=1004(suser) groups=1004(suser),10(wheel)
[suser@bastion ~]$ su -
[root@bastion ~]#
위 결과에서 보는 것과 같이 su -
명령을 사용하여도 root 유저의 패스워드를 물어보지 않고 root 권한을 획득하는 걸 보실 수 있습니다.