데비안 리눅스 설치 후 필수 설정 1 - sudo

데비안 리눅스 시스템에서 sudo 를 설치하고, 일반 사용자가 루트 권한을 사용할 수 있도록 설정해 보는 방법에 대해 설명 한다

윈도우나 다른 OS들과 마찬가지로, 데비안 리눅스 역시 설치한 후 필수적으로 해야 하는 설정들이 몇 가지 있다. 그 중, (필자 생각으로는) 가장 먼저 설정 해 줘야 하는 것은 sudo 설정이다.

sudo란

sudo는 사용자가 다른 계정의 권한으로 명령어를 실행할 수 있도록 해 주는 명령어이다. 흔히 일반 사용자가 root 권한을 대신 가져올 때 사용하는 것으로 알려져 있으나, root 뿐 아니라 존재하는 계정이라면 모두 다 가능하다. (그럴 일이 별로 없어서 그렇지)

데비안 리눅스 뿐만 아니라, 거의 모든 리눅스 시스템에서는 root 계정을 직접 사용하지 말라고 권고한다. 보안 문제도 있긴 하지만, 아무 생각 없이 잘못 건드렸다가는 '복구가 불가능한' 상황까지 아무런 제약 없이 한 방에 갈 수 있기 때문이다.

sudo 설정 방법

먼저 sudo가 설치되어 있는가를 확인한다. 방법은 의외로 간단한데, 그냥 실행해 보면 된다. 일반 사용자 계정으로 접속해서 sudo라고 친 후 엔터를 쳐 보자.

newuser@debian:~$ sudo -bash: sudo: 명령어를 찾을 수 없음

이렇게 나오면, sudo 가 설치되어 있지 않아 사용할 수 없는 상황이다. 먼저 sudo를 설치하기 위해 슈퍼유저 권한을 가져온다.

$ su

암호를 입력해 주면, 프롬프트가 #으로 바뀌면서 루트가 된다. 루트 계정에서 sudo를 설치하기 위해 아래의 명령어를 입력해 준다.

apt-get install sudo -y

뭔가가 좌라락 나오면서 설치를 진행 할 것이다. 설치가 완료 된 다음 프롬프트에 다음의 명령어를 입력해 준다.

/sbin/usermod -aG sudo newuser

여기서 newuser는 sudo 를 사용하게 할 계정 명(ID)이고, sudo은 sudo를 사용할 수 있는 권한을 가진 그룹이다. 즉, 특정한 사용자를 sudo 사용자 그룹에 등록한다는 의미이다. (이 그룹에 속한 사용자를 보통 sudoers 라고 한다.)

exit를 입력해 원래의 사용자 계정으로 돌아와서, sudo을 다시 실행해 보면 실행이 되는것이 확인 된다.

root@debian:/home/newuser# exit newuser@debian:~$ sudo usage: sudo -h | -K | -k | -V usage: sudo -v [-ABkNnS] [-g group] [-h host] [-p prompt] [-u user] usage: sudo -l [-ABkNnS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command [arg ...]] usage: sudo [-ABbEHkNnPS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] [VAR=value] [-i | -s] [command [arg ...]] usage: sudo -e [-ABkNnS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ... newuser@debian:~$

실제 적용이 잘 되었는가 확인하기 위해, apt-get명령으로 시험을 해 본다.

newuser@debian:/$ apt-get update 패키지 목록을 읽는 중입니다... 완료 E: 잠금 파일 /var/lib/apt/lists/lock 파일을 열 수 없습니다 - open (13: 허가 거부) E: /var/lib/apt/lists/ 디렉터리를 잠글 수 없습니다 W: /var/cache/apt/pkgcache.bin 파일을 삭제하는데 문제가 있습니다 - RemoveCaches (13: 허가 거부) W: /var/cache/apt/srcpkgcache.bin 파일을 삭제하는데 문제가 있습니다 - RemoveCaches (13: 허가 거부) newuser@debian:/$ sudo apt-get update [sudo] newuser 암호: 기존:1 http://security.debian.org/debian-security bookworm-security InRelease 기존:2 http://deb.debian.org/debian bookworm InRelease 기존:3 http://deb.debian.org/debian bookworm-updates InRelease 패키지 목록을 읽는 중입니다... 완료 newuser@debian:/$

일반 사용자 였을때는 권한이 부족해 정상적으로 실행 되지 않았던 명령어가 sudo와 함께 정상적으로 실행되어 종료 되는 것을 확인 할 수 있다.

sudo 명령어를 이용할 때 암호를 물어보는데, 이때는 현재 로그인 되어 있는 사용자 계정의 암호를 입력해 주면 된다. root의 비밀번호가 아니다.

마무리

사실, sudo 명령을 통해 root 권한을 가져와서 사용하는 것은 많이 귀찮다. 하지만 조금 익숙해 지고 나면 sudo를 사용하는 것이 너무나도 자연스럽게 될 것이다. (그리고, 시스템을 한번 날려먹으면 선택이 아닌 필수인 것을 알게 된다.) 귀찮고 번거롭게 느껴지더라도 sudo 사용을 생활화 해서 두 세번 삽질하는 시간을 아끼도록 하자.