리눅스 필수 설정 1: sudo 설정과 사용법

데비안 리눅스 설치 과정에서 root 암호를 설정하면 sudo가 설치되지 않고 사용자가 sudo 그룹에 자동 등록되지 않을 수 있다. sudo를 설치한 뒤 /sbin/usermod 명령으로 사용자를 sudo 그룹에 등록한 후 다시 로그인하여 관리자 권한을 확인하는 과정과 sudo에 입력할 암호, 안전한 관리자 권한 사용 습관도 함께 설명한다.

sudo란?

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

데비안 리눅스뿐만 아니라 윈도우를 포함한 거의 모든 현대 OS(운영체제)는 평소에 관리자 계정을 사용하지 않는 것을 넘어, 전통적인 이름의 관리자 계정을 활성화하지 않도록 권고한다. 잘 알려진 관리자 계정 이름을 활성화해 두는 것은 외부에서 시스템을 공격하는 데 사용할 수 있는 좋은 실마리가 되어 주기 때문이다.

본 필자가 예로 들고 있는 데비안 리눅스의 경우에도 설치 과정에서 root 계정의 암호를 입력하지 않으면 계정이 비활성화되며, 일반 사용자 계정에서 sudo를 통해 관리자 권한을 사용하게 된다. 따라서 추가적인 설정이 불필요하다.

하지만 설치 과정에서 root 계정의 암호를 입력한 경우 sudo가 설치되지 않거나 사용자도 sudo 그룹에 자동으로 등록되지 않는다. 이러한 경우에는 이 글에서 설명하는 절차에 따라 sudo를 설치하고, 사용할 사용자 계정에 관리자 권한을 별도로 부여해야 한다.

sudo 설정 방법

  1. sudo 설치 여부 확인

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

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

    위와 같이 명령어가 존재하지 않아 실행할 수 없다는 메시지가 출력되면, sudo가 설치되어 있지 않아 사용할 수 없는 상황이다.

  2. root 권한으로 sudo 설치

    sudo를 설치하기 위해 슈퍼유저 권한을 가져온다.

    $ su --login

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

    # apt-get install sudo -y

    뭔가가 좌라락 나오면서 설치를 진행할 것이다.

  3. 사용자 등록

    설치가 완료되면 프롬프트에 다음 명령어를 입력한다.

    # /sbin/usermod -aG sudo newuser

    여기서 newusersudo를 사용하게 할 계정명(ID)이고, sudo는 관리자 권한을 사용할 수 있도록 설정된 사용자 그룹이다. 즉, 특정 사용자를 sudo 사용자 그룹에 등록한다는 의미이다.

  4. 설치 확인

    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:~$
  5. 설정 확인

    사용자의 그룹 변경 사항을 적용하려면 로그아웃한 후 다시 로그인해야 한다. 실제로 설정이 잘 적용되었는지 확인하기 위해 로그아웃하여 터미널을 종료한 다음, 일반 사용자 계정으로 다시 접속하여 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는 습관이 되어야 한다.

사실 명령어를 실행할 때마다 sudo를 붙여 root 권한을 사용하는 것은 많이 귀찮다. 하지만 조금 익숙해지고 나면 sudo를 사용하는 것이 너무나도 자연스러워질 것이다. 데비안 리눅스를 설치할 때 root 암호를 설정하지 않으면 비밀번호를 이용한 root 직접 로그인이 비활성화되고, 일반 사용자 계정에서 필요한 명령에만 관리자 권한을 사용하게 된다. 별도의 root 암호를 관리하거나 노출할 필요가 없다는 보안상의 이점과 함께, 자연스럽게 sudo 사용을 몸에 익힐 수 있다.

만약 이 글을 읽는 독자 제위께서 처음 리눅스의 세계에 발을 들이고 계시다면, root 계정이란 것은 세상에 없다라고 생각하시길 권해 드린다. 모든 작업은 일반 사용자 계정에서 진행하고, 관리자 권한이 필요한 순간에만 sudo를 사용해도 충분하다.

또한 데비안 리눅스를 설치하면서 root 암호를 설정하신 독자 제위께서도, 직접 root 계정으로 작업하기보다는 sudo를 설치하고 설정하여 사용하는 습관을 들이시기를 권해 드린다.

FAQ

sudo란?
sudo는 데비안 리눅스에서 일반 사용자가 root 또는 시스템에 존재하는 다른 사용자 계정의 권한으로 명령어를 실행할 수 있도록 해 주는 도구이다.
sudodoas의 차이는?
sudodoas는 모두 다른 사용자의 권한으로 명령어를 실행하는 도구이다. sudo는 세밀한 권한 설정과 다양한 기능을 제공하며, doas는 OpenBSD에서 시작된 도구로 비교적 간결한 명령과 설정 구조를 사용한다. 데비안에서는 일반적으로 sudo를 사용하며, doas를 사용하려면 opendoas 패키지를 별도로 설치하고 /etc/doas.conf를 설정해야 한다.
데비안에서 sudo: 명령어를 찾을 수 없음 오류가 발생하는 이유는?
데비안에 sudo 패키지가 설치되어 있지 않기 때문이다. 특히 데비안 설치 과정에서 root 암호를 설정하면 root 계정을 직접 사용하는 방식으로 구성되므로, sudo가 자동으로 설치되지 않을 수 있다. 이 경우 suroot 계정에 접속한 다음 apt-get install sudo를 실행하여 설치할 수 있다.
데비안에서 sudo를 설치하고 사용자 권한을 설정하는 방법은?
root 계정에서 apt-get install sudo -y를 실행한 다음, /sbin/usermod -aG sudo 사용자명을 실행하여 해당 사용자를 sudo 그룹에 등록한다. 그룹 변경 사항은 완전히 로그아웃한 후 다시 로그인해야 적용된다.
sudo는 root(관리자) 계정에만 사용할 수 있는가?
아니다. sudoroot 권한을 사용하는 용도로 자주 사용될 뿐이며, 데비안에서는 시스템에 존재하는 다른 사용자 계정의 권한으로 명령어를 실행하는 것도 가능하다.
sudo 명령을 사용할 때 어느 계정의 암호를 입력해야 하는가?
데비안의 기본 설정에서는 현재 로그인한 사용자 계정의 암호를 입력하면 된다. root 계정이나 명령을 실행할 대상 계정의 암호가 아니다.
사용자를 sudo 그룹에 등록했는데 바로 실행되지 않는 이유는?
사용자의 그룹 정보는 로그인할 때 적용되기 때문이다. sudo 그룹에 사용자를 등록한 후에는 현재 터미널만 닫는 것이 아니라 사용자 계정에서 완전히 로그아웃한 다음 다시 로그인해야 한다.
sudo를 사용해야 하는 이유는?
평상시에는 일반 사용자 권한으로 작업하고, 필요한 명령에만 관리자 권한을 사용하기 위해서이다. 이를 통해 관리자 계정의 직접 사용과 암호 노출을 줄이고, 사용자의 실수나 계정 침해로 인한 시스템 손상 위험도 줄일 수 있다.
sudo 없이 관리자 권한을 사용하는 방법은?
root 계정이 활성화되어 있다면 su 명령을 실행하고 root 암호를 입력하여 관리자 계정으로 전환할 수 있다. 다만 root로 전환한 이후에는 모든 명령이 관리자 권한으로 실행되므로 더욱 주의해야 한다.
sudo의 한계는?
sudo는 관리자 권한의 사용을 구분하고 시스템의 보안성을 높이는 도구이지만, 잘못된 명령의 실행까지 막아 주지는 않는다. 사용자가 주의를 기울이지 않으면 sudo로 실행한 명령도 시스템의 안정성과 보안을 훼손할 수 있다. sudo는 만능이 아니다.

갱신 내역

  1. 최초 게시
  2. 수정
  3. 수정 및 주소 이전 (https://www.EQMaker.kr)