게시일:2026년 4월 4일 오전 10시(EDT)
Yadullah Abidi는 델리 대학교에서 컴퓨터 과학을 전공하고 첸나이에 있는 아시아 저널리즘 대학에서 저널리즘 석사 학위를 취득했습니다. Windows 및 Linux 시스템, 프로그래밍, PC 하드웨어, 사이버 보안, 맬웨어 분석 및 게임 분야에서 10년 이상의 경험을 보유한 그는 깊은 기술 지식과 강력한 편집 본능을 겸비하고 있습니다.
Yadullah는 현재 MakeUseOf의 전속 작가로 사이버 보안, 게임 및 소비자 기술을 다루고 있습니다. 그는 이전에 Candid.Technology에서 편집장으로 일했으며 The Mac Observer에서 뉴스 편집자로 일하면서 격렬한 사이버 공격부터 최신 Apple 기술에 이르기까지 모든 것을 보도했습니다.
저널리즘 작업 외에도 Yadullah는 JavaScript/TypeScript, Next.js, MERN 스택, Python, C/C++ 및 AI/ML에 대한 경험이 있는 풀 스택 개발자입니다. 맬웨어를 분석하든, 하드웨어를 검토하든, GitHub에서 도구를 구축하든 그는 기술 저널리즘에 개발자의 실무적인 관점을 제시합니다.
Sudo는 지구상의 거의 모든 Linux 사용자의 머슬 메모리가 된 명령입니다. 높은 권한으로 무언가를 실행해야 할 때마다 sudo가 자동으로 나타납니다. 하지만 sudo는 오래되었으며 무시하고 있을 수도 있는 Linux 터미널에서 권한을 높이는 더 좋은 방법이 있습니다.
"일일 드라이버" OS에서 전환하면 작업 흐름이 즉각적으로 향상될 수 있는 것처럼 Linux에서 sudo에서 doas로 전환하면 터미널 작업 흐름에서도 동일한 작업을 수행할 수 있습니다. 전환을 했고 마침내 내 권한 규칙이 이해가 되었습니다.
Sudo는 강력하지만 너무 지저분합니다
대부분의 사람들이 거의 이해하지 못하는 지나치게 복잡한 규칙
Sudo는 어디에나 있습니다. Ubuntu, Fedora, Arch 및 여러분이 들어본 거의 모든 주요 Linux 배포판과 함께 제공됩니다. 대부분의 Linux 사용자의 경우 사용자 계정에 명령을 실행할 권한이 없을 때 명령 앞에 사용하는 접두사입니다. 대부분의 시스템 문제를 해결하는 Linux 터미널 명령 중 하나입니다.
그러나 문제는 sudo의 복잡성입니다. sudo 소스 코드는 C의 약 160,000줄입니다. 구성 및 지원 파일을 포함하면 그 숫자는 223,000개가 넘습니다. 특정 명령을 루트로 실행하는 것이 주요 작업인 도구의 경우 이는 권한 있는 프로세스를 실행하는 엄청난 양의 코드입니다.
출처:Yadullah Abidi / MakeUseOf 더 큰 코드베이스는 위협 행위자에게 더 큰 공격 표면을 제공하며, 혹시 모르셨던 경우를 대비해 sudo는 과거에 이와 긴밀한 접촉을 한 적이 있습니다. 예를 들어, sudo의 힙 기반 버퍼 오버플로 취약점인 CVE-2021-3156은 루트로의 전체 권한 상승을 허용했으며 거의 10년 동안 코드베이스에서 감지되지 않았습니다.
보안을 살펴보면 sudo를 사용한 구성도 그다지 좋지 않습니다. 사용자 정의 /etc/sudoers를 작성해 본 적이 있다면 처음부터 규칙을 적용하다 보면 구문 때문에 어느 시점에서 머리가 긁힐 수도 있습니다. 사람이 읽을 수 있는 것도 아닙니다. 사용자가 루트로 명령을 실행할 수 있도록 허용하는 것과 같은 간단한 명령은 다음과 같이 작성됩니다:
username ALL=(ALL:ALL) ALL
이 구문을 처음 다루는 사람에게는 매우 복잡할 수 있습니다. 이는 단순성을 고려하지 않고 수십 년간 기능을 결정한 구성 형식의 한 줄입니다.
Doas는 잔인할 정도로 단순합니다
하나의 작업, 최소한의 구문, 정신적 체조 없음
Doas는 OpenBSD 프로젝트에서 sudo가 너무 커서 시스템 기반에 탑재할 수 없다고 판단한 후 OpenBSD용으로 작성되었습니다. sudo의 부담을 짊어지지 않고 근본적으로 동일한 작업을 수행하기 위해 처음부터 만들어졌습니다.
그 결과 약 500줄의 C 소스 코드가 포함된 프로그램이 탄생했으며, 설치 시 디스크에 몇 킬로바이트만 차지합니다. 코드가 적다는 것은 공격 표면이 더 작고 잠재적인 버그가 적으며 합리적인 시간 내에 사람이 감사할 수 있는 바이너리를 의미합니다.
구성 구문도 동일한 미니멀리즘 철학을 따릅니다. doas는 sudoers 문법과 싸우게 만드는 대신 일반 영어를 사용합니다. 대부분의 doas 구성을 큰 소리로 읽고 그것이 의미하는 바를 정확히 이해할 수 있습니다. 예를 들어 앞서 언급한 sudoers 구성과 동일한 doas는 다음과 같습니다.
permit username as root
그게 다야. 쉽게 읽고 이해할 수 있도록 임의의 기호나 특수 문자를 사용하여 명령을 작성할 필요가 없습니다.
전환하는 데 몇 시간이 아닌 몇 분이 걸립니다
골치 아픈 일 없이 sudo를 대체하는 빠른 설정
이제 doas는 OpenBSD 기반 도구이지만 OpenDoas 포트를 사용하여 Linux에서 사용할 수 있습니다. Debian 및 Ubuntu에서는 기본 패키지 관리자를 사용하여 설치할 수도 있습니다:
apt install doas
그리고 이 접근 방식은 다른 배포판에서도 작동합니다. Arch에서는 pacman을, Fedora에서는 dns를 사용하고 단일 명령으로 doas를 설치할 수 있습니다. sudo와 달리 설치 시 자동으로 생성되지 않으므로 /etc/doas.conf에서 구성 파일을 생성해야 합니다. 믿거나 말거나 버그가 아닙니다. 이는 정확히 무엇을 허용하는지에 대해 더 신중하게 생각하도록 만드는 기능입니다. 구성 자체는 간단한 줄입니다:
permit persist yourusername as root
이는 단일 사용자 시스템을 위한 최소 구성입니다. 보유한 사용자 수와 특정 사용 사례에 따라 이를 변경할 수 있습니다.
구성 파일이 만들어지면 해당 권한을 적절하게 잠급니다. 소유권을 root:root로 설정하고 권한을 0400으로 설정하면 루트에서만 파일을 읽을 수 있습니다. 이는 실행하기 전에도 필요합니다. doas -C /etc/doas.conf를 실행하여 구성 파일의 유효성을 검사하면 됩니다.
doas는 OpenBSD용으로 설계되었기 때문에 XAUTHORITY 또는 LC_ALL과 같은 Linux 관련 환경 변수를 자동으로 보존하지 않습니다. X에서 그래픽 프로그램을 실행하거나 로케일 설정을 유지하려는 경우 이로 인해 문제가 발생할 수 있습니다. 다행히도 구성 파일에 한 줄이 추가되어 수정되었습니다.
setenv { DISPLAY XAUTHORITY LANG LC_ALL } doas는 GUI나 로케일 설정을 손상시키지 않습니다. 단지 무엇을 신뢰해야 하는지 가정하는 것을 거부할 뿐입니다. 숙련된 Linux 사용자라도 저지를 수 있는 실수는 루트가 X 세션을 볼 수 없고 명령이 갑자기 언어를 전환하거나 텍스트를 다르게 정렬하거나 일관되지 않게 동작할 수 있기 때문입니다.
오픈도스
운영체제 리눅스
개발자 테드 언앙스트
가격 모델 무료, 오픈 소스
OpenDoas는 doas 권한 확대 도구를 가볍고 이식 가능하게 구현한 것입니다.
이제 작업 흐름이 가벼워졌습니다
마찰 감소, 놀라움 감소, 동일한 제어
일상적인 사용법에서는 doas를 사용하는 것이 더 신중하게 느껴집니다. 이제 구성 파일을 읽을 수 있습니다. 즉, 실제로 구성 파일을 다시 수정하여 원하는 대로 컴퓨터 제어를 미세 조정할 수 있다는 뜻입니다. sudoer에서는 이런 일이 전혀 발생하지 않았습니다.
관련
Linux 사용자가 알아야 할 5가지 프로그램
Linux는 백업 OS 그 이상이며 이 프로그램이 이를 증명합니다.
모든 규칙은 일반 언어로 작성된 의식적인 결정이므로 의도하지 않은 권한을 실수로 부여할 가능성이 적습니다. 단일 사용자 데스크톱 환경을 실행하는 모든 사람에게 doas는 애초에 의도하지 않았던 복잡성 없이 sudo가 제공하는 모든 것을 제공합니다.
스위치는 모든 사람을 위한 것이 아닙니다. sudo의 더 정밀한 제어에 의존하는 대규모 다중 사용자 서버 환경이나 설정은 sudo를 계속 사용할 가능성이 높습니다. 하지만 Arch, Mint, Ubuntu 등 개인용 Linux 시스템의 경우 doas는 sudo보다 더 우수하고 간단하며 깔끔한 권한 관리 방법을 제공합니다.