그래픽 sudo 프롬프트를 사용하여 systemctl 중지

그래픽 sudo 프롬프트를 사용하여 systemctl 중지

내 질문은 sudo 입력을 잊어버릴 때마다 이 짜증나는 팝업이 열리지 않도록 systemd(?)를 어떻게 구성할 수 있느냐는 것입니다. 텍스트 기반 sudo 프롬프트를 제공하거나 오류를 표시하면 신속하게 실수를 수정할 수 있습니다.

최신 버전인 Arch Linux(systemd 238.133)입니다.

여기에 이미지 설명을 입력하세요

답변1

이것은 'sudo' 프롬프트가 아니라 'polkit' 프롬프트입니다. 이를 피하는 한 가지 방법 – 글로벌모두systemctl뿐만 아니라 소프트웨어는 즉시 작업을 거부하거나 즉시 허용하는 polkit 규칙을 작성하는 것입니다.

polkit.addRule(function(action, subject) {
    if (subject.user !== "root") {
        if (/^org\.freedesktop\.systemd1\./.test(action.id)) {
            return polkit.Result.NO;
        }
    }
});

( subject.user루트 우회 폴킷 검사에 의해 호출된 작업이 완전히 검사되므로 테스트는 생략될 수 있습니다.)

polkit 규칙은 /etc/polkit/rules.d/*.rules일반적으로 다음과 같은 이름 으로 저장됩니다 80-custom.rules(오름차순으로 처리됨). 자세한 내용은 다음을 참조하세요.폴킷(8).


(즉, sudo 구성에 비밀번호가 없는 경우 'sudo'를 사용하는 것과 polkit에서 즉시 작업을 허용하도록 만드는 것 사이에는 실질적인 보안 차이가 없습니다. 그 반대의 경우도 마찬가지입니다.필요하다비밀번호... 그럼 그냥 폴킷 대화 상자에 입력하면 되지 않나요? 비밀번호는 같습니다.)

답변2

옵션이 있습니다 --no-ask-password. 별칭을 만드세요:

alias systemctl='systemctl --no-ask-password'

(Bash, Kubuntu에서 테스트).

답변3

systemctl에 sudo를 사용하지 마십시오.항상; 만약 너라면~이다유지 관리가 허용되면 폴킷을 올바르게 설정하세요.

이론적 해석: sudo요청한 사용자(보통: root)가 효과적으로 실행하는 프로그램을 만듭니다. 연결된 모든 툴킷을 포함합니다. 프로그램, 라이브러리 또는 ...sudo 구성에 버그가 있으면 취약해집니다. 의 경우 systemd바이너리 systemctl제어 장치(일반적으로). 그것하지 않습니다권한이 있는 작업을 자체적으로 수행하지 않고 요청하기 때문에 (대부분의 사용 사례에서) 루트 권한이 필요합니다 init. 실제 root계정을 사용하는 것(직접 또는 을 통해 sudo)은 전부 아니면 전무한 원자(폭탄) 솔루션인 반면,오직꼭 필요한 것은승인하다(아님: 인증)~에 맞서systemd. systemd이해 polkit하기 때문에권한 부여, 사용인증됨root너무 많은 권한이 부여되었습니다.

systemctl(를 통하지 않고) 임의의 명령을 직접 호출할 수 있는 버그를 고려해보세요 systemd. root에서 권한을 부여 하면 sudoEUID=0으로 모든 명령을 실행할 수 있습니다. 권한이 없는 사용자로 실행 하면 systemctl이전에 액세스 권한을 얻은 계정으로만 해당 명령을 실행할 수 있습니다. 이는 몇 가지 기본 보안 규칙의 간단한 결과입니다.

  • 필요한 권한 세트만 사용하십시오(전체 세트 == 아님 root).
  • 이러한 권한은 필요한 코드에만 부여합니다( systemd에 권한을 부여하지 않고 승인 systemctl).

컴퓨터의 유일한 사용자인 경우 - 권한이 없는 계정을 사용하여 작업하는 경우 root실행하는 프로그램이 불필요한 권한을 얻지 못하도록 제한하고 싶다고 가정합니다. 계정 이 명령을 내리기 systemctl때문에 권한 을 부여하는 것은 너무나 불필요한 권한입니다.rootauthorizedsystemd

또한 polkit다양한 작업(시작/중지/다시 로드/무엇이든) 및 다양한 서비스에 대해 다양한 액세스 기준을 가질 수 있습니다. 에 정확한 명령을 입력할 수 있지만 sudoerspolkit 솔루션은 그러한 명령의 특정 부분을 인식합니다.

결론sudo: 권한이 낮은 방법을 사용할 수 있는 경우에는 사용하지 마세요 . sudo최후의 수단 솔루션입니다.

비밀번호 프롬프트를 그래픽이 아닌 텍스트로 표시하려면DISPLAY 설정을 해제합니다. 예:인증 에이전트를 실행하는 그래픽 세션에서 터미널을 바인딩 해제합니다.

관련 정보