
데비안 리눅스 설치 후 반드시 진행해야 하는 첫번째 필수 설정. sudo는 사용자가 안전하게 관리자 권한을 사용게 하는 도구이다. 또한, root 뿐 아니라, 시스템에 존재하는 다른 계정의 권한도 사용할 수 있게 해 준다. Debian Linux 에서 sudo 를 설치하고 root 권한을 사용하도록 설정하는 방법을 안내한다.
sudo란?
sudo는 사용자가 다른 계정의 권한으로 명령어를 실행할 수 있도록 해주는 명령어이다. 흔히 일반 사용자가 root
권한으로 작업해야 할 때 사용하는 것으로 알려져 있으나, root
뿐 아니라 시스템에 존재하는 계정이라면 모두 다 가능하다. (그럴 일이 별로 없어서 그렇지).
데비안 리눅스뿐만 아니라, 윈도우를 포함한 거의 모든 현대 OS들은 평소에 관리자 계정을 사용하지 말라고 권고한다. 보안 문제도 있긴 하지만, 아무 생각 없이 잘못 건드렸다가는 ‘복구가 불가능한’ 상황까지 아무런 제약 없이 한 방에 갈 수도 있기 때문이다.
또한, 일반 사용자 권한으로 작업 중 자신도 모르는 사이에 설정을 변경한다거나 하는 경우 이를 효과적으로 감지하고 상황에 따른 적절한 조치를 취할 수 있게 된다.
특히, 최근의 리눅스 시스템에서는 root
계정을 아예 사용하지 않는 경우가 점점 늘어나고 있다. 본 필자가 예로 들고있는 데비안 리눅스의 경우에도, 설치 과정에서 root
비밀번호를 입력하지 않으면 계정이 비활성화 되며, 일반 사용자 계정에서 sudo
를 통해 관리자 권한을 사용하게 된다.
sudo 설정 방법
- sudo 설치 여부 확인
먼저
sudo
가 설치되어 있는가를 확인한다. 방법은 의외로 간단한데, 그냥 실행해 보면 된다. 일반 사용자 계정으로 접속해서 sudo라고 친 후 엔터를 쳐 보자.newuser@debian:~$ sudo -bash: sudo: 명령어를 찾을 수 없음
위와 같이 명령어가 존재하지 않아 실행할 수 없다는 메시지가 출력되면,
sudo
가 설치되어 있지 않아 사용할 수 없는 상황이다. root
권한으로sudo
설치:
sudo
를 설치하기 위해 슈퍼유저 권한을 가져온다.$ su
암호를 입력해 주면, 프롬프트가 #으로 바뀌면서 루트가 된다. 루트 계정에서
sudo
를 설치하기 위해 아래의 명령어를 입력해 준다.# apt-get install sudo -y
뭔가가 좌라락 나오면서 설치를 진행할 것이다.
- 사용자 등록
설치가 완료된 다음 프롬프트에 다음의 명령어를 입력해 준다.
# /sbin/usermod -aG sudo newuser
여기서 newuser는
sudo
를 사용하게 할 계정명(ID)이고, sudo는sudo
명령어를 사용할 수 있는 권한을 가진 그룹이다. 즉, 특정한 사용자를 sudo 사용자 그룹에 등록한다는 의미이다. (이 그룹에 속한 사용자를 보통sudoers
라고 한다.) - 설치 확인
exit를 입력해 원래의 사용자 계정으로 돌아와서,
sudo
를 다시 실행해 본다. 아래와 같이 명령이 실행되면 정상적으로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
명령으로 시험을 해본다. GUI 환경에서도 역시 마찬가지이다.newuser@debian:/$ apt 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 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
사용을 생활화해서 귀중한 시스템을 지킬 수 있도록 하자.
- sudo란?
- 리눅스 시스템에서 다른 사용자 권한으로 프로그램을 실행할 수 있도록 해 주는 도구이다.
- sudo는 root(관리자)계정만 사용할 수 있는가?
- 아니다 root권한을 사용하는 용도로 자주 사용될 뿐이며, 다른 계정권한을 사용하는 것도 가능하다.
- sudo명령을 사용할때 입력하는 암호는 어느것을 입력해야 하는가?
- 현재 접속해 있는 사용자의 암호를 입력해 주면 된다. 사용할 계정의 암호 아니다.
- sudo를 사용해야 하는 이뉴는?
- 사용자로 인한 시스템의 우발적인 손상을 방지할 수 있으며, 접속 정보의 보안을 유지하기 위해서이다.
- 관리자 권한을 사용하는 다른 방법은?
- 리눅스 명령 중
su
명령을 사용하면 관리자 계정의 암호를 입력한 후 관리자 계정으로 변경할 수 있다. - sudo의 한계는?
- sudo는 시스템의 보안성을 유지하기 위한 방법이다. 하지만 사용하는 사람이 주의를 기울이지 않는다면 시스템의 안정성과 보안성을 지킬 수 없다. sudo는 만능이 아니다.