[Explained] Ubuntu에서 Sudoers에 사용자를 추가하는 방법
Ubuntu에서 sudo 권한을 가진 사용자 추가하기
Ubuntu에서 사용자를 sudoer로 지정하는 방법을 알아보기 전에 먼저 그 이유를 이해하는 것이 중요합니다. Ubuntu에서 서비스를 관리하거나 소프트웨어를 설치 또는 업데이트해야 할 경우가 있습니다. 이러한 작업을 시도할 때 "액세스가 거부되었습니다"라는 메시지를 본 적이 있으신가요?
이러한 상황에서는 루트 또는 수퍼유저 권한으로 명령을 실행해야 합니다. 하지만 보안상의 이유로 이 방법은 권장되지 않습니다. 사용자가 일부 설정을 잘못 건드릴 경우 루트 권한으로 명령을 실행하면 시스템에 문제가 발생할 수 있습니다.
가장 널리 사용되는 Linux 배포판 중 하나인 Ubuntu에는 사용자가 루트로 로그인하는 대신 고급 권한으로 명령을 실행할 수 있도록 하는 sudo라는 기능이 있습니다.
이 글에서는 sudoer가 무엇인지, 왜 sudoer가 필요한지, 그리고 Ubuntu 운영 체제에 sudoer를 추가하는 방법을 설명합니다.
Sudo/Sudoers란 무엇인가?
그렇다면 왜 su 또는 사용자 전환 명령을 사용하지 않을까요? 사용자 전환 명령을 사용하면 루트로 로그인할 수 있습니다. 이렇게 하면 시스템에서 루트 비밀번호를 묻고 원하는 작업을 수행할 수 있습니다. 새 파일이나 소프트웨어를 추가하고 모든 설정을 변경할 수 있습니다. 하지만 루트로 로그아웃하는 것을 잊어버릴 수도 있고, 간단한 오타 하나로 중요한 파일이나 전체 하드 드라이브를 삭제할 수도 있습니다.
Sudo는 "수퍼유저 do"의 약어입니다. 이 사용자는 높은 권한으로 명령을 실행하고 소프트웨어를 설치 및 업데이트하거나 시스템 설정을 변경할 수 있습니다. sudoer는 이러한 권한을 가진 사용자를 의미합니다. sudo를 사용하는 사용자는 Ubuntu에서 명령을 실행하기 전에 항상 'sudo' 키워드를 사용해야 합니다. 그러나 명령을 실행한 후에는 로그아웃할 필요가 없습니다.
Ubuntu 시스템에 여러 사용자가 있는 경우 모든 사용자에게 sudo 권한이 부여되지는 않습니다. 설치 과정에서 생성한 첫 번째 사용자는 기본적으로 sudo 권한을 갖게 됩니다. sudoers 파일 또는 그룹에 속한 사용자만 sudo 명령을 실행할 수 있습니다.
- sudoers 파일: sudo를 사용할 수 있는 사용자와 방법을 정의하는 구성 파일입니다.
- Sudoers 그룹: sudo 권한을 가진 특별한 사용자 그룹입니다.
사용자에게 sudo 액세스 권한을 부여해야 하는 경우
특정 사용자가 개인용 또는 회사 컴퓨터에서 sudo 명령을 실행할 수 있도록 허용할 수 있습니다. 다음과 같은 시나리오에서 허용할 수 있습니다.
- 루트 액세스가 필요한 작업을 수행해야 하는 관리자 또는 개발자 팀이 있는 경우입니다. 예를 들어 소프트웨어를 설치하거나 시스템을 업데이트해야 할 수 있습니다.
- 시스템의 특정 파일이나 디렉터리에 대한 사용자 액세스를 제한하고 전체 액세스 권한을 부여하지 않으려는 경우입니다.
- 루트 액세스가 필요한 일회성 작업을 수행해야 하는 게스트 사용자가 있는 경우입니다. 예를 들어 전문 소프트웨어를 설치하고 구성하거나 시스템을 업데이트해야 할 사람이 필요할 수 있습니다.
사용자에게 sudo 권한을 부여하는 것의 중요성
- 시스템 보안 강화: 사용자가 루트 사용자로 시스템에 로그인할 필요가 없어 시스템이 잠재적인 위협과 오류에 노출될 위험을 줄일 수 있습니다. sudo 권한을 부여하면 필요한 부분에만 액세스할 수 있도록 제한할 수 있습니다.
- 권한 사용자 정의 가능: sudo 사용자를 추가하면 해당 사용자가 실행할 수 있는 명령과 실행 시점을 지정할 수 있습니다. 또한 해당 명령을 실행할 때 비밀번호가 필요한지 여부도 설정할 수 있습니다.
- 사용자 모니터링 용이: /var/log/auth.log 파일을 확인하여 sudoer가 시스템에서 실행하는 모든 명령을 추적할 수 있습니다.
sudoers 파일에 사용자를 추가하기 위한 전제 조건
- sudo 권한이 있는 사용자 계정: sudo 권한이 있는 계정에 로그인한 상태에서 sudoer를 추가해야 합니다.
- 사용자 이름: 시스템에 여러 사용자가 있는 경우 sudoers 파일이나 그룹에 추가할 사용자의 정확한 사용자 이름을 알아야 합니다.
- 텍스트 편집기: Ubuntu는 기본적으로 Nano 편집기를 사용하지만, 필요에 따라 다른 편집기를 사용할 수도 있습니다.
sudoers 파일에 사용자 추가
sudoers 파일에 사용자를 추가하는 방법은 다양합니다. 그러나 먼저 새 사용자를 생성해야 합니다.
'titus'라는 새 사용자를 생성한다고 가정해 봅시다. 다음 단계를 따를 수 있습니다.
- sudo 권한이 있는 사용자 계정으로 로그인하고
sudo adduser titus명령을 실행합니다. "titus" 부분을 원하는 사용자 이름으로 변경할 수 있습니다.

- 새 사용자의 비밀번호를 설정합니다. 명령줄에 비밀번호를 입력하라는 메시지가 표시됩니다.
- 새로운 비밀번호를 설정하고 확인합니다.

- 표시되는 프롬프트에 따라 (기본값을 선택해도 됩니다) 모든 세부 사항을 확인하려면 'Y'를 입력합니다.

이제 새로운 사용자가 생성되었습니다.
Ubuntu에 sudoer를 추가하는 방법에는 크게 두 가지가 있습니다.
#1: sudo 그룹에 사용자 추가
이제 생성한 사용자를 sudo 그룹에 추가할 수 있습니다. 다른 sudo 사용자 또는 루트 사용자로 로그인한 상태에서 다음 명령을 실행하십시오.
sudo usermod -aG sudo username
username 부분을 sudoer로 지정하려는 사용자의 이름으로 바꾸세요. 위 예시의 경우 명령은 다음과 같습니다.
sudo usermod -aG sudo titus
이제 새로운 사용자가 sudo 그룹에 추가되었습니다.
#2: sudoers 파일에 사용자 추가
일반적인 Linux 시스템(Ubuntu 포함)에는 여러 사용자가 있을 수 있습니다. 이러한 사용자는 시스템 내에서 다양한 Linux 파일 및 디렉터리 권한을 갖게 됩니다. 예를 들어, 사용자가 Unix 시스템에서 파일을 '읽기', '쓰기' 또는 '실행'할 수 있도록 권한을 줄 수 있습니다.
sudoers 파일에서 sudo를 사용할 수 있는 사용자와 방법을 정의할 수 있습니다. sudoers 파일은 /etc/sudoers 경로에서 찾을 수 있습니다.
sudo 권한이 없는 사용자가 있다고 가정하고 다음 단계를 따르십시오.
- 터미널을 엽니다.
- 다음 명령을 사용하여 파일을 엽니다.
sudo visudo
비밀번호를 입력하라는 메시지가 표시됩니다.

- 파일을 편집합니다. 명령을 실행하면 다음과 같은 결과가 나타납니다.

모든 sudo 권한을 부여하고 싶은 'kamunya'라는 사용자가 있다고 가정합니다.
다음과 같은 섹션을 찾습니다.
# User privilege specification root ALL=(ALL:ALL) ALL
이제 다음과 같이 'kamunya'에게 모든 sudo 권한을 부여하는 줄을 추가할 수 있습니다.
kamunya ALL=(ALL:ALL) ALL
- 변경 사항을 저장하고 편집기를 종료합니다. Ctrl+O를 눌러 변경 사항을 저장하고, Ctrl+X를 눌러 편집기를 종료할 수 있습니다.
이제 sudoers 파일을 통해 새로운 sudo 사용자를 추가했습니다. 사용자(kamunya)에게 비밀번호 없이 소프트웨어를 업데이트하는 등의 특정 권한을 부여하려면 동일한 단계를 수행하되 다음 줄을 추가하면 됩니다.
kamunya ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/apt-get upgrade
사용자에게 sudo 권한이 있는지 확인하는 방법
위에 제시된 모든 단계를 따랐더라도 시스템의 특정 사용자가 sudoer인지 확실하지 않을 수 있습니다. 다음과 같은 방법을 사용하여 확인할 수 있습니다.
sudo 명령 사용
'titus'라는 사용자가 sudoer인지 확인해 보겠습니다. 다음 명령을 실행합니다.
sudo -l -U titus
titus 부분을 확인하려는 사용자의 사용자 이름으로 변경할 수 있습니다.
사용자가 sudoer인 경우 다음과 유사한 결과를 얻을 수 있습니다.

사용자에게 sudo 권한이 없으면 다음과 같은 오류가 발생할 가능성이 높습니다. "사용자 'username'은 'name of your machine'에서 sudo를 실행할 수 없습니다."
sudo 그룹 확인
sudo 사용자를 생성하면 시스템은 자동으로 해당 사용자를 선택한 사용자 이름을 포함하는 그룹에 할당합니다. 예를 들어 'tk'라는 sudo 사용자가 있는 경우 다음 명령을 사용하여 이 사용자가 그룹에 속해 있는지 확인할 수 있습니다.
groups tk
tk 부분을 사용자 이름으로 변경할 수 있습니다.
다음과 유사한 결과를 얻을 수 있습니다.

sudo 사용자 삭제 방법
sudo 사용자를 삭제해야 할 때가 있습니다. 예를 들어 프로필을 설정할 때 실수를 했거나, 생성한 사용자가 일회성 작업을 수행해야 할 수 있습니다.
GUI 또는 명령줄을 사용하여 Ubuntu 시스템에서 사용자를 삭제할 수 있습니다. 명령줄을 사용하여 사용자를 삭제하는 방법은 다음과 같습니다.
sudo deluser username명령을 실행합니다. 여기서username부분을 삭제하려는 사용자 프로필로 바꿉니다. 이 방법을 사용하면 사용자는 삭제되지만 해당 사용자의 파일은 그대로 유지됩니다.
위 예시에서 사용자 중 하나(kamunya)를 삭제한 경우입니다.

사용자의 파일까지 제거하려면 다음 명령을 실행합니다.
sudo deluser --remove-home username
위 예시의 경우 명령은 다음과 같습니다.
sudo deluser --remove-home kamunya
sudoers 파일에서 사용자 관리 모범 사례
- visudo 명령 사용: sudoer 파일에 sudoer를 추가하기로 결정한 경우 항상
visudo명령을 사용하십시오. 작업을 완료한 후에는 오타를 확인하고 저장한 다음 편집기를 종료하십시오. - 그룹 활용: 개인을 sudo 사용자로 추가하는 대신 새 사용자를 추가할 때마다 그룹에 추가할 수 있습니다. '관리자' 및 '개발자'와 같이 다양한 권한을 가진 여러 그룹을 만들 수 있습니다.
- 액세스 기록 유지: sudo 권한을 부여한 사용자와 해당 사용자가 수행할 수 있는 작업을 기록해 두십시오. 이 접근 방식을 사용하면 새로운 직원이 변경 사항을 쉽게 확인할 수 있습니다.
- 액세스 모니터링: sudoer로 추가한 다른 사용자가 시스템에 로그인하는 내용과 실행하는 명령을 항상 모니터링하십시오. 정기적인 검토를 통해 필요에 따라 사용자를 삭제하거나 권한을 변경할 수 있습니다.
결론
Ubuntu는 관리자와 프로그래머가 가장 많이 사용하는 운영 체제 중 하나입니다. 그러나 시스템에 액세스할 때 올바른 사용자에게 올바른 권한을 부여하는 것이 중요합니다.
이제 sudoer가 무엇인지, 그리고 Ubuntu에 sudoer를 추가하는 다양한 방법을 이해했을 것입니다. 이러한 사용자는 전체 액세스 권한으로 시스템에 로그인할 필요 없이 작업을 완료하는 데 필요한 제한된 권한을 가질 수 있습니다.
시스템 관리자가 알아야 할 몇 가지 유용한 Linux 성능 관련 명령을 살펴보는 것도 좋은 생각입니다.