리눅스에서 Run0을 사용하는 방법

리눅스에서 Run0을 사용하는 방법
노트북 화면을 클로즈업한 사진입니다.

Run0은 Systemd 기반 Linux 배포판을 위한 새롭고 혁신적인 권한 상승 프로그램입니다. sudo 및 doas와 같은 기존 에스컬레이션 앱에 대한 가볍고 “구성 없는” 대안을 제공합니다. 여기에서는 Linux 시스템에 대한 명령을 에스컬레이션하기 위해 Run0을 사용하는 기본 사항을 보여드립니다.

그 전에, Run0이 무엇이고 sudo와 어떻게 다른지 알아보는 것이 좋습니다.

다른 사용자로 프로그램을 실행하는 방법

권한 상승 앱의 가장 일반적인 용도 중 하나는 루트 사용자로 명령을 실행하는 것입니다. 이와 관련하여 Run0에서 루트 사용자를 탭하려면 실행하려는 명령 앞에 run0을 추가해야 합니다. 예를 들어, 다음은 루트로만 액세스할 수 있는 디렉토리에 새 폴더를 만듭니다.

이렇게 하면 CLI 비밀번호 프롬프트나 현재 사용자의 비밀번호를 묻는 작은 GUI 창이 나타납니다.

Run0에 대한 비밀번호 입력 창을 보여주는 스크린샷입니다.

sudo 및 doas와 유사하게 Run0도 명령을 실행할 때 루트가 아닌 사용자로 전환할 수 있습니다. 이렇게 하려면 플래그를 추가한 --user다음 명령을 실행하려는 사용자 이름을 추가합니다.

전환하려는 사용자의 비밀번호를 입력한 후 을 누르세요 Enter.

다른 사용자의 셸로 전환하는 방법

권한 상승 앱의 또 다른 핵심 부분은 사용자를 루트 셸로 떨어뜨릴 수 있는 기능입니다. 이를 통해 루트 사용자로서 시스템과 상호 작용하고 CLI에서 더 복잡한 명령을 실행할 수 있습니다.

Run0에서는 추가 인수 없이 프로그램을 실행하여 이 작업을 수행할 수 있습니다.

Run0 프롬프트에서 루트 셸을 보여주는 터미널.

--user루트로 프로그램을 실행하는 것과 마찬가지로 플래그와 함께 Run0을 사용하여 특정 사용자로 셸 세션을 시작할 수도 있습니다 .

루트가 아닌 사용자를 위한 Run0 프롬프트를 보여주는 터미널입니다.

게다가, run0을 사용하면 루트가 아닌 사용자를 위한 임시 그룹 권한으로 셸 세션을 만들 수 있습니다. 이는 루트로 떨어지지 않고 특정 사용자 및 그룹 뒤에 잠긴 폴더에 액세스하려는 경우에 유용합니다.

예를 들어, 다음 명령은 “alice” 사용자에게 “www-data” 그룹에 대한 임시 액세스 권한을 부여합니다.

--chdir새 셸 세션으로 이동할 때 디렉토리를 강제로 변경하려면 플래그를 사용할 수도 있습니다 .

다른 사용자의 셸로 이동할 때 자동 디렉토리 전환을 보여주는 터미널입니다.

현재 Run0 세션을 사용자 지정하는 방법

Run0의 가장 큰 판매 포인트는 슈퍼유저 동작을 처리하기 위해 setuid(SUID)를 사용하지 않는다는 것입니다. 대신, 루트로 명령을 실행하기 위해 격리된 가상 TTY를 만드는 systemd-run에 의존합니다.

이 접근 방식의 한 가지 결과는 Systemd가 모든 Run0 셸을 서비스 관리자 아래에서 실행되는 개별 단위로 취급한다는 것입니다. 이를 통해 기존 권한 상승 앱과 달리 루트 셸 프로세스를 사용자 지정할 수 있습니다.

루트 셸에 라벨을 추가하려면 플래그 --unit뒤에 사용하려는 이름을 입력하세요.

플래그를 추가하여 루트 셸에 사용자 정의 설명을 추가할 수도 있습니다 --description.

다음을 사용하여 루트 셸의 사용자 정의 이름을 나열하여 세부 정보가 올바르게 적용되었는지 확인하세요 systemctl.

사용자 정의 Systemd 단위의 세부 정보를 보여주는 터미널입니다.

기본적으로 Run0은 루트 셸 배경색을 빨간색으로 변경합니다. 이는 유용한 시각적 표시기이지만 시스템에서 밝은 테마를 사용하는 경우 산만해질 수 있습니다.

이를 변경하려면 --background플래그 뒤에 40-49 사이의 값을 사용합니다.

Run0에서 다른 배경색을 보여주는 터미널.

마지막으로 루트 셸의 “niceness level”도 조정할 수 있습니다. 이것은 -20에서 19 사이의 값으로, 커널이 다른 프로세스보다 프로세스를 우선시할지 여부를 결정합니다.

루트 셸에 가장 높은 우선순위를 부여하려면 --nice“-20” 값이 있는 플래그를 사용하세요.

수정된 nice 레벨로 루트 쉘을 강조한 터미널.

Run0 세션을 함께 그룹화하는 방법

각 Linux 루트 셸을 사용자 정의할 수 있는 것 외에도 Run0을 사용하여 Systemd 슬라이스로 그룹화할 수도 있습니다. 이것은 나머지 시스템에 영향을 미치지 않고 머신이 프로세스에 대한 리소스 수요를 조정할 수 있게 해주는 특별한 구조입니다.

다른 슬라이스에 루트 셸을 만들려면 플래그 --slice뒤에 이동하려는 슬라이스 이름을 입력하세요.

새 슬라이스 내에서 프로세스를 나열하여 새 세션이 실행 중인지 확인하세요.

사용자 정의 Systemd 슬라이스의 세부 정보를 보여주는 터미널입니다.

플래그를 사용하여 Run0이 나온 슬라이스와 함께 새 슬라이스를 그룹화할 수도 있습니다 --slice-inherit. 이는 쉘을 해당 슬라이스에 이미 그룹화했고 새 쉘을 추가하려는 경우에 유용합니다.

Run0을 사용하여 Systemd 컨테이너에서 명령을 실행하는 방법

Systemd-nspawn은 Docker와 유사한 가벼운 Linux 컨테이너를 만들고 관리할 수 있는 특수 프로그램입니다. Systemd 제품군의 일부이므로 Run0을 사용하여 호스트 머신에서 nspawn 컨테이너의 명령을 실행할 수도 있습니다.

시스템에서 사용 가능한 Systemd-nspawn 컨테이너를 나열하여 시작하세요.

사용 가능한 Systemd-nspawn 컨테이너 목록을 보여주는 터미널입니다.

컨테이너의 루트 디렉토리 내에 폴더를 만들려면 다음 명령을 실행하세요.

Run0를 사용하여 컨테이너의 루트 셸로 드롭하는 것도 가능합니다.

컨테이너의 셸 프롬프트를 전환하는 명령을 보여주는 터미널입니다.

터미널 세션의 호스트 이름을 인쇄하여 이제 컨테이너 내부에서 실행 중인지 확인하세요.

로컬 시스템에서 Systemd-nspawn 컨테이너로 전환하는 과정을 보여주는 터미널입니다.

Linux에서 루트 명령을 실행하고 관리하는 데 Run0을 사용하는 방법을 배우는 것은 권한 상승 앱에 관한 한 빙산의 일각에 불과합니다. su, sudo, sudo -s의 차이점을 살펴보면서 복잡한 세계에 깊이 빠져보세요.

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

답글 남기기

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