openSUSE sudo 명령 시 root 비밀번호 요구를
사용자의 비밀번호 요구로 변경하기
openSUSE 와 sudo
openSUSE 를 처음 사용하려고 할 때, 당황스러운 점이 몇 가지 있습니다.
사실, 혼자서 사용할 때는 그다지 당황스럽지 않습니다만, 여러명이 동시에 사용하는 컴퓨터이거나 관리를 위해 여러 사용자들이 이용해야 하는 서버 환경에서는 이전까지 쉽게 경험해보지 못 했던 상황에 놓이는 경우가 간혹 존재합니다.
저는 우스겟소리로 "수세스럽다." 라고 표현합니다. 물론, openSUSE 를 비하하거나 얕잡아 보는 것은 아닙니다. 수세만의 독특한 방식이라고 해야 옳다고 봅니다.
openSUSE 를 사용하기 위해서 또는, openSUSE 에 대한 정보를 알고자 이 블로그를 방문하셨을텐데, 처음 openSUSE 를 사용할 때 당황스럽게 하는 다른 배포판들과 다른 점을 이야기하려고 합니다.
첫번째로 " sudo " 에 대한 이야기입니다.
아마 이 글을 방문하신 분들은 대체로 이미 이런저런 많은 배포판들을 경험하셨을테고, 'sudo 란 무엇인가?' 가 궁금해서 오시진 않았을 겁니다. 따라서, sudo 에 대해서는 별도로 이야기하지 않으려고 합니다.
그럼, "openSUSE 에서 사용하는 sudo 에 대해 이야기를 할 것이 무엇인가?" 라고 한다면 단, 하나의 스크린샷으로 설명드릴 수 있습니다.
'으잉? 루트 비밀번호를 내놓으라고?'
"아니, 이게 무슨 소리야? test 사용자가 sudo 를 했는데, root 비밀번호를 내놓으라니!"
openSUSE 를 처음 설치 시에 계정을 만들고 설치가 완료된 이후에 sudo 와 함께 명령어를 입력하면, 위의 스크린샷과 같이 "password for root", 즉 루트 비밀번호를 요구합니다.
보통 다른 배포판에서는 해당 사용자의 비밀번호를 요구하는 보편적인 편... 흔한 편 입니다.
개인용, 서버 전체적으로 접근성이 상당히 높은 커뮤니티 배포판인 우분투의 스크린샷도 함께 가져왔습니다.
openSUSE 와 다른 점이 보이시나요?
바로 '어떤 사용자의 비밀번호' 요구인 점이 다릅니다.
흔히 많이 사용하는 Ubuntu 또는 Arch 계열의 요구와 많이 다른 편 입니다.
저도 openSUSE 듀얼 모니터 지원 업데이트가 되기 이전까지는 Arch Linux 를 사용했었기 때문에 아무런 생각없이 비밀번호를 입력하고 설정을 진행하다가 사용자를 추가하면서 보게 되었습니다.
흔한 기본값이 사용자의 비밀번호인 점을 생각하고 새 사용자에서는 비밀번호가 제대로 입력이 되지 않아서 제가 뭘 잘못했나? 싶었고, 제 서버에서 앱을 테스트하는 형도 "그게 기본값이라고!" 라며, 바보 취급을 당했죠. ㅠㅠ.
하지만, 저는 바보가 아니었습니다!
하도 이상해서 자세히 표시된 내용을 확인했는데, " root " 에 대한 비밀번호 요구였습니다.
혹시라도 다른 배포판을 경험하고, openSUSE 를 처음 사용하실 때, 당황할 수 있는 root 비밀번호 요구를 다시 사용자의 비밀번호로 요구할 수 있도록 설정을 변경하는 방법을 설명드립니다.
1. visudo 수정하기
visudo 또는 /etc/sudoers 를 변경해야 합니다.
리눅스 환경에 익숙하신 분들이라면 수정하는데에 문제가 없겠지만, 처음 사용하시는 분들은 주의하여 수정해야 합니다.
vi 에디터나 nano 에디터로 직접 /etc/sudoers 를 편집 할 수 있지만, 추천하는 방법이 아닙니다.
권장하는 방법은 visudo 를 통해 sudoers 파일을 편집하는 것을 추천합니다.
하지만, 이미 편집하는 방법을 알고 계신다면 편하신 방법으로 수정하셔도 됩니다.
visudo는 시스템 사용자의 계정을 변경하는 것으로 관리자 계정으로 접속한 뒤에 sudo EDITOR=nano visudo 를 통해 sudoers 파일에 접근합니다.
내용을 수정하실때, 주의하시기 바랍니다.
잘못 수정하는 경우, 손이 더 많이 가게 됩니다.
sudo EDITOR=nano visudo # 에디터는 nano 또는 vi, vim 등 원하는 것으로 변경
그럼 아래와 같은 화면 내용이 나타납니다.
스크롤을 아래로 내리시거나, 찾기, 또는 73, 74 라인으로 이동합니다.
2. root 비밀번호 요구 내용 주석 처리하기
찾아야 하는 내용은
73 라인 : Defaults targetpw # ask for the password of the target user i.e. root
74 라인 : ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw' !
상기 두 줄 입니다.
저 두 줄 맨 앞에 " # " 으로 주석 처리를 하면 됩니다.
3. sudo 사용 권한 추가
주석 처리를 한 이후에 sudo 를 사용할 수 있는 사용자의 계정 또는 그룹을 visudo 에 추가로 입력해 주어야 sudo 명령을 이용할 수 있습니다.
스크린샷에 보이는 내용 중, " User privilege specification " 또는 " Uncomment to allow members of group wheel to excute any command " 에 사용자 계정 또는 그룹을 추가해주면 됩니다.
1. User privilege specification 은 사용자 계정을 입력합니다.
즉, 계정별로 입력해주어야 합니다.
만약 sudo 명령을 사용할 관리자 계정이 10개라면 10개의 계정 전체를 모두 입력해주어야 합니다.
(쉽게 말해 아이디로 지정)
2. Uncomment to allow members of group wheel to excute any command 는 그룹을 입력합니다.
sudo 를 사용할 관리자 계정이 그룹으로 묶여있다면, 그룹 이름을 입력하면 됩니다.
예시로 "wheel 이 작성되어 있습니다. 관리자 계정이 wheel 그룹으로 묶여있다면, # %wheel 내용에서 # 주석을 삭제하고 저장하면 됩니다.
예시)
제가 사용하는 계정은 razorbacks 입니다. 계정별로 추가하려면 위쪽에 입력하시고
testadmin 그룹에 있는 모든 사용자에게 sudo 권한을 부여하려면 두번째 단에서 그룹명을 입력해주면 됩니다.
4. 적용 후
73 라인 : Defaults targetpw # ask for the password of the target user i.e. root
74 라인 : ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw' !
주석 처리 후
User privilege specification 에 test ALL=(ALL:ALL) ALL 추가
이제 스크린샷에서 확인이 가능하듯, 접속한 사용자 계정의 비밀번호를 요구하도록 변경되었습니다.
이제 더 이상 sudo 를 사용하면 root 비밀번호를 요구하지 않습니다!
5. 추가사항 (다시 적용하기 또는 다른 배포판에 적용하기)
다시 root 비밀번호를 요구하도록 요구하고자 하는 경우에는 주석 처리했던
Defaults targetpw # ask for the password of the target user i.e. root
ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw' !
주석을 해제하면 됩니다.
또, sudoer 를 이용하는 다른 배포판에서도 root 비밀번호를 요구하도록 적용하고자 하는 경우에는 동일하게 사용하는 배포판에서 EDITOR=nano visudo 를 통해, 해당 내용을 추가하면 됩니다.
이제 openSUSE 를 당황하지 않고 이용할 수 있도록 한 발 더 나아갔습니다!