더북(TheBook)

sudo 권한 부여하기

sudo를 실행할 수 있는 권한은 sudo 설정 파일 /etc/sudoers에서 지정하거나 직접 부여할 수 있습니다. /etc/sudoers 파일을 cat 명령으로 확인해봅시다.

shinjaehun@losttemple:~$ sudo cat /etc/sudoers

설정 내용을 살펴보면 sudo를 실행할 수 있는 권한에 대한 정보를 얻을 수 있습니다. 사용자 계정 root와 그룹 admin, sudo에 속하는 사용자는 모든 명령어에 대해 sudo로 루트 권한을 얻을 수 있습니다.

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

su는 사용자 계정을 전환하는 명령입니다. su [옵션] [사용자 계정] 형식으로 입력하며 전환하려는 사용자 계정의 환경을 그대로 유지하려면 ‘ -’를 붙여 사용합니다. 명령을 실행하면 전환 대상 사용자의 패스워드를 입력합니다.

shinjaehun@losttemple:~$ su - gunsmoke
암호: ********

사용자가 속해 있는 그룹을 확인하는 명령은 groups입니다. 모든 사용자는 기본적으로 사용자 계정과 같은 그룹에 속합니다. 계정을 생성할 때 자동으로 같은 이름의 그룹이 생성되기 때문입니다.

gunsmoke@losttemple:~$ groups
gunsmoke

exit를 입력하면 세션을 종료하고 다시 원래 계정으로 돌아올 것입니다.

gunsmoke@losttemple:~$ exit
로그아웃

새로 추가한 사용자 계정과 달리 우분투를 설치하면서 생성한 사용자는 다양한 시스템 그룹에 속해 있습니다. 실제로 sudo를 통해 시스템 관리자 역할을 맡고 있기 때문입니다. /etc/sudoers에서 살펴봤듯이 sudo 그룹에 속한 사용자는 sudo 명령을 사용할 수 있습니다. 따라서 사용자 계정을 sudo 그룹에 추가하면 sudo 명령을 사용할 수 있습니다.

shinjaehun@losttemple:~$ groups
shinjaehun adm cdrom sudo dip plugdev lpadmin sambashare libvirtd bumblebee

사용자 계정 정보를 변경하는 명령은 usermod입니다. usermod [옵션] [사용자 계정] 형식으로 입력합니다. -a는 변경 대신 정보를 추가 append하는 옵션이고 -G [그룹]은 사용자 계정의 그룹^Group^을 대상으로 합니다. gunsmoke 사용자를 sudo 그룹에 포함시키는 명령입니다.

shinjaehun@losttemple:~$ sudo usermod -a -G sudo gunsmoke
Tip

만일 -a 옵션이 없으면 사용자 계정의 그룹은 ‘추가’가 아니라 ‘변경’되어 버립니다. 즉, 기존의 정보가 모두 삭제되므로 주의하기 바랍니다.

사용자 계정이 sudo 그룹에 포함된 상태를 확인할 수 있습니다. sudo를 사용해서 명령을 실행할 수 있습니다.

shinjaehun@losttemple:~$ su - gunsmoke
암호: ********
gunsmoke@losttemple:~$ groups
gunsmoke sudo
gunsmoke@losttemple:~$ sudo apt-get update
[sudo] password for gunsmoke: ********
이렇게 하세요!

새로운 사용자 계정을 추가하는 과정에서 그룹을 지정하면 사용자 계정을 추가하고 다시 정보를 변경하는 번거로움을 피할 수 있습니다. useradd 명령의 ‘-G [그룹]’ 옵션을 사용해서 새로 추가하는 사용자를 sudo 그룹에 포함시킬 수 있습니다.

shinjaehun@losttemple:~$ sudo useradd -m -G sudo gunsmoke

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.