root로 bash를 열 수있는 C 프로그램을 작성하고 싶지만 암호는 입력하지 마십시오.암호없이 root로 C 프로그램 실행하기
#include <unistd.h>
#include <stdio.h>
int main(void)
{
char *argv[] = { "/bin/bash","-c","sudo /bin/bash",0 };
execve(argv[0], &argv[0],0);
return 0;
}
내 시스템은 리눅스 민트 18.2 소냐이고, 나는이 2 개의 명령
chown root:root a.out
chmod u=srwx,go=xr a.out
하지만 난 이것을 실행하려고 할 때 아직도, 그것은 암호를 묻습니다을 설정합니다. 다른 옵션이 있으면/etc/sudoers를 편집하고 싶지 않습니다.
루트의 암호를 지정하지 않고 (sudoers 또는 다른 수단을 통해 명시 적으로 권한을 부여하지 않고) 실행중인 프로그램을 루트 권한으로 허용하면 보안 취약점처럼 들릴지 모르겠다 고 생각하지 않습니까? –
일부 특정 경우에는 그렇지 않습니다. 전체 그림을 알 때까지 판단 할 수 있습니까? OP *는 위험에 대해 경고를 받거나 전체 그림이 무엇인지 설명해야합니다. 많은 프로그램 (특히 데몬)에는 setuid 비트가 있고 루트로 실행되며 대개 일반 사용자로 setuid()를 수행 한 다음 초기화합니다. –
@DanielKamilKozar OP에는 소유자를 루트로 설정하고 SETUID를 설정할 수있는 기능이 있습니다. – iBug