XFCE - 루트로 바로가기 실행, 비밀번호 필요 없음

XFCE - 루트로 바로가기 실행, 비밀번호 필요 없음

제가 사용하는 XFCE는 노트북의 키보드 백라이트 제어 키를 지원하지 않습니다.

제어할 수 있는 스크립트( /etc/acpi/asus-keyboard-backlight.sh)를 찾았는데, 루트로 실행해야 합니다.

키보드 백라이트를 변경할 때마다 루트 비밀번호를 입력하고 싶지 않습니다.

비밀번호를 묻지 않고 루트로 실행되도록 키보드 단축키를 어떻게 구성합니까?

답변1

sudo를 사용하여 추가를 실행한 후에 visudo실행할 수 있습니다 YOURUSER ALL=(ALL) NOPASSWD:ALL. 그러면 sudo사용자에게 비밀번호를 묻는 메시지가 표시되지 않습니다.

답변2

Bash를 호출하여 스크립트를 실행하는 작은 C 프로그램을 작성하세요. 프로그램을 컴파일하고 약간 수정하여 suidBash(및 스크립트)를 루트로 실행합니다.

다음은 해당 래퍼의 예입니다.

#include <unistd.h>

int main(void) {
    const char *bin = "/bin/bash";
    const chrar *script = "/tmp/myscrypt.sh";
    char *const argv[] = {bin, script, NULL};
    char *const env[] = {"SHELL=/bin/bash", 
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "HOME=/root", "LOGNAME=root", "_=/usr/bin/env", NULL};

    execve(bin, argv, env);

    return 0;
}

그러면 스크립트가 실행됩니다.루트 사용자로, 뿌리가 있다고 믿는 것을 포함하여 /root. 이를 원하지 않으면 래퍼를 수정하십시오.

따라서 일단 컴파일하고 나면 남은 것은 조금만 제공하는 것뿐입니다 suid.

gcc wrapper.c -o wrapper
chown root wrapper
chmod u+wrxs,g+rx,o-wrx wrapper

이렇게 하면 ls -l권한이 다음과 같이 표시됩니다.

-rwsr-x--- 1 root group [snip] wrapper

이는 그룹의 사용자만 group이 래퍼를 실행할 수 있음을 의미합니다. 이렇게 하면 sin은 유효 사용자 ID가 0이 된다는 것을 의미합니다.

많은 사용자가 동일한 그룹에 속하는 공유 환경에서 이 작업을 수행하는 경우 해당 파일만을 위한 특수 그룹을 만들고 해당 그룹에 사용자만 추가할 수 있습니다. 예를 들어 LDAP를 사용하여 로그인하고 모든 사용자가 도메인 사용자 그룹에 속할 수 있습니다. "JulieOnly"라는 로컬 그룹을 만들고 해당 그룹에 사용자만 추가할 수 있습니다. 그런 다음 chown래퍼를 root:JulieOnly.

관련 정보