Run0 대 Sudo: 차이점은 무엇인가?

Run0 대 Sudo: 차이점은 무엇인가?
명령어가 포함된 터미널 프롬프트를 보여주는 모니터 사진

Run0은 Systemd 기반 Linux 시스템을 위한 새로운 권한 상승 프로그램입니다. sudo와 유사하게 루트 사용자로 명령을 실행하고 머신의 내부에 액세스할 수 있습니다. 이 글에서는 Run0과 Sudo를 비교하여 여러분에게 적합한 권한 상승 도구를 결정하는 데 도움을 드립니다.

Run0 대 Sudo: 나란히 비교

범주 Run0 수도
구성 가능성 구성 파일이 함께 제공되지 않습니다. 명령줄 플래그를 사용하여 동작을 변경합니다. 2개의 구성 파일과 많은 명령줄 플래그가 함께 제공됩니다.
사용의 용이성 대부분의 작업에 사용하기 간편하고 직관적입니다. 제대로 작동하려면 약간의 구성이 필요할 수 있습니다.
보안 SUID에 의존하지 않으며 코드 크기가 더 작습니다. SUID에 의존하며 코드 크기로 인해 공격 표면이 더 큽니다.
확장성 타사 플러그인을 지원하지 않습니다 타사 플러그인 개발을 위한 API가 있습니다
네트워크 지원 단일 머신에서 실행되도록 설계되었습니다 중앙 집중식 액세스 정책을 사용하여 컴퓨터 네트워크에서 작업할 수 있습니다.
가장 좋은 더 간단한 Sudo 대안을 찾는 일반 사용자 사용자 정의가 가능한 안정적인 옵션을 찾는 전문 사용자

Run0란 무엇이고 왜 사용해야 하나요?

Systemd의 버전 256에서 출시된 Run0은 Linux의 권한 상승에 대한 독특한 접근 방식입니다. Systemd-run을 사용하여 루트 권한으로 프로그램을 실행하기 위한 안전하고 격리된 환경을 만듭니다.

Run0의 주요 판매 포인트는 루트 명령을 실행하기 위해 setuid(SUID)에 의존하지 않는다는 것입니다. 이를 통해 프로그램은 대규모 SUID 프로그램에서 흔히 발생하는 권한 상승 공격에 면역이 됩니다.

sudo 바이너리의 setuid 속성을 run0과 비교하여 강조한 터미널입니다.

Run0의 또 다른 판매 포인트는 인증 에이전트를 Polkit에 오프로드한다는 것입니다. 이 프로그램은 시스템의 앱 정책 설정을 관리합니다. 머신에서 인증을 중앙 집중화할 뿐만 아니라 프로그램과 사용자가 루트 액세스를 얻는 방법을 보다 세밀하게 제어할 수 있습니다.

마지막으로, Run0은 특권 명령을 호출할 때마다 새로운 pseudo-TTY(PTY)를 만듭니다. 즉, 프로그램은 현재 셸 환경을 상속하지 않으므로 시스템에서 잘못 작동하는 프로세스를 쉽게 격리할 수 있습니다.

시스템의 systemctl에 표시된 PTY 루트 프로세스를 강조하는 터미널입니다.

Sudo란 무엇이고 왜 사용해야 하나요?

Sudo는 Linux 및 기타 UNIX 유사 운영 체제를 위한 가장 초기의 권한 상승 프로그램 중 하나입니다. 1980년대에 처음 개발되었으며, 내장된 UNIX 사용자 및 그룹 시스템을 사용하여 시스템 명령에 대한 루트 권한을 관리합니다.

sudo의 주요 판매 포인트는 권한 상승 및 허가를 위한 올인원 솔루션이라는 것입니다. 이를 사용하면 sudoers 파일을 구성하여 누가 슈퍼유저가 될 수 있는지, 어떤 프로그램을 루트로 실행할 수 있는지 관리하기만 하면 됩니다. 이는 루트 액세스를 관리하는 간소화된 방법을 원하는 시스템 관리자에게 매력적입니다.

sudoers 파일의 내용을 보여주는 터미널.

sudo를 사용하는 또 다른 이유는 여러 슈퍼유저에서 컴퓨터에서 실행된 시스템 명령의 기록을 모니터링하고 검토할 수 있다는 것입니다. 이는 시스템에 문제가 발생한 정확한 순간을 가리킬 수 있으므로 문제 해결 시 유용합니다.

시스템에서 실행된 모든 sudo 명령을 나열하는 sudoreplay 명령의 출력을 보여주는 터미널입니다.

마지막으로, sudo는 내장된 LDAP 및 Active Directory 지원으로 여러 호스트에서 쉽게 확장할 수 있습니다. 그로 인해 sudo는 팀과 기업을 위해 여러 머신을 관리하는 관리자에게도 좋은 도구가 될 수 있습니다.

Run0 대 Sudo: 종합 비교

Run0과 Sudo는 사용자 권한을 높이는 훌륭한 도구이지만, 두 프로그램은 이를 달성하기 위해 서로 다른 접근 방식을 취했습니다. 아래에서 이러한 차이점 중 일부를 살펴보고 어느 것이 자신에게 더 잘 맞는지 확인하는 데 도움을 드리겠습니다.

구성 가능성

다른 권한 상승 프로그램과 달리 Run0은 기본 동작을 변경하기 위해 구성 파일을 사용하지 않습니다. 대신 터미널에서 실행할 때 몇 가지 기본 제공 플래그를 사용하여 사용자 정의합니다. 이를 통해 구성 파일을 조정하는 데 얽매이지 않고 워크플로에 집중할 수 있습니다.

run0에 대한 도움말 화면을 보여주는 터미널.

반면, sudo는 두 가지 기본 구성 파일인 “/etc/sudo.conf”와 “/etc/sudoers”에 걸쳐 많은 옵션을 제공합니다. 둘 다 시스템에서 sudo가 작동하는 방식을 제어하기 위해 함께 작동합니다. 예를 들어, 비밀번호 없이 실행되도록 sudo를 구성할 수도 있습니다. 이는 새로운 사용자에게는 혼란스러울 수 있지만, 이러한 수준의 유연성과 사용자 정의를 통해 고유한 사용자 정의 sudo 워크플로를 만들 수 있습니다.

sudo.conf 파일의 내용을 보여주는 터미널.

우승자: 수도

사용의 용이성

오늘날 대부분의 Linux 배포판은 Run0과 Sudo를 합리적인 기본값으로 제공하여 추가 구성 없이도 쉽게 사용할 수 있습니다. 그렇긴 하지만 두 프로그램 사이에는 여전히 몇 가지 사용성 문제가 있어 일부 사용자에게는 거래 차단 요인이 될 수 있습니다.

Run0의 주요 단점은 인증을 위해 Polkit에 의존하는 데서 비롯됩니다. 일부 터미널에서 Run0은 다른 디스플레이에 비밀번호 프롬프트를 표시할 수 있습니다. 이는 Tmux와 같은 터미널 멀티플렉서를 사용하여 여러 셸 세션을 관리하는 경우 문제가 될 수 있습니다.

다중화된 터미널에서 run0 요청에 대한 Polkit 프롬프트를 보여주는 스크린샷입니다.

한편, Sudo의 가장 큰 단점은 일반 텍스트 편집기를 통해 sudoers 파일을 편집할 수 없다는 것입니다. 대신 Visudo라는 프로그램을 사용하라고 요청하는데, 이 프로그램은 sudoers 파일에 무결성 검사를 추가합니다. 이렇게 하면 sudoers 파일을 편집하는 것이 더 안전해지지만, 루트 권한만 관리하려는 일반 사용자에게는 불필요하게 복잡할 수 있습니다.

visudo 유틸리티의 도움말 화면을 보여주는 터미널입니다.

우승자: Run0

소스 코드 크기

프로그램 소스 코드의 전체 크기는 현재 얼마나 복잡한지를 보여주는 좋은 지표입니다. 이는 권한 상승 프로그램에 중요한데, 코드 복잡성으로 인해 잠재적인 보안 악용이 발생할 수 있기 때문입니다.

다른 권한 상승 앱과 비교했을 때 Run0의 한 가지 차이점은 Systemd-run 위에 구축된다는 것입니다. 이를 통해 Run0은 Systemd-run의 기능을 활용할 수 있을 뿐만 아니라 프로그램 자체에 많은 코드가 포함되지 않는다는 것을 의미합니다. 결과적으로 Run0은 향후 잠재적인 보안 문제를 감사하기가 더 쉽습니다.

Systemd-run 위에 빌드되었다고 설명하는 Run0 매뉴얼 페이지의 문장을 강조한 터미널.

Sudo는 여러 파일과 프로그래밍 언어에 걸쳐 있는 거대한 소프트웨어 프로젝트입니다. 이러한 복잡성으로 인해 sudo는 강력한 권한 상승 앱이 될 수 있었지만, 잠재적인 악용에 대한 거대한 공격 표면이 있다는 것을 의미합니다.

sudo Github 저장소의 전체 코드 줄을 보여주는 터미널입니다.

우승자: Run0

소스 코드 연령

특정 소프트웨어 프로젝트의 연령도 권한 상승 프로그램의 신뢰성을 살펴볼 때 중요한 요소입니다. 새로운 프로젝트는 종종 버그와 문제가 더 많은 반면, 오래된 프로젝트는 일반적으로 더 안정적입니다.

Run0는 2024년 6월에 Systemd에 추가된 비교적 새로운 프로그램입니다 . 현재 Arch Linux 및 Fedora Rawhide와 같은 최첨단 배포판에서만 앱을 얻을 수 있습니다. 그로 인해 Run0는 캐주얼하고 미션 크리티컬하지 않은 작업에 더 적합합니다.

Sudo는 오늘날에도 여전히 개발되고 있는 가장 오래된 소프트웨어 프로젝트 중 하나입니다. 30년 이상의 개발 역사를 가진 sudo는 다양한 워크로드를 처리할 수 있는 매우 성숙한 프로그램입니다. 이는 신뢰할 수 있는 안정적인 권한 상승 프로그램을 찾는 사람들에게 매우 바람직합니다.

우승자: 수도

Run0 대 Sudo: 어느 앱이 이길까

결국 올바른 권한 상승 프로그램을 선택하는 것은 시스템을 통해 무엇을 달성하려고 하는지에 따라 달라집니다.

  • 사용하기 쉽고 간단한 권한 상승 앱을 찾고 있다면 Run0이 좋은 선택입니다. 구성 없는 디자인과 루트 프로세스를 격리하는 접근 방식이 결합되어 번거로움 없는 Sudo 대안을 찾는 일반 사용자에게 적합합니다.
  • 사용자 정의 가능하고 안정적인 권한 상승 앱을 원한다면 Sudo를 사용하면 실수할 수 없습니다. 수십 년의 개발 역사와 풍부한 기능을 통해 Sudo를 사용자 정의 워크플로에 맞게 조정하기가 매우 쉽습니다.

머신에 맞는 권한 상승 앱을 선택하는 것은 Linux에서 슈퍼유저가 어떻게 작동하는지 이해하는 첫 번째 단계일 뿐입니다. 머신의 내부를 깊이 파고들어 Su가 Sudo와 어떻게 다른지 살펴보세요.

이미지 출처: Gabriel Heinzer via Unsplash . 모든 변경 사항과 스크린샷은 Ramces Red가 제공했습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다