커널 모듈에서 call_usermodehelper 함수를 사용하여 파일을 인수로 취하여 SHA1 해시 합계를 다른 파일 (출력이라는 이름)에 쓰는 실행 파일 sha1을 실행하려고합니다. 실행 파일은 완벽하게 작동합니다.call_usermodehelper가 대부분의 경우 실패하는 이유는 무엇입니까?
int result=-1;
name = "/home/file"
char *hargv[] = {"/home/sha1", name,NULL };
char *henvp[] = {"HOME=/", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
result = call_usermodehelper("/home/sha1", hargv, henvp, 1);
하지만 대부분의 경우 call_usermodehelper는 -14를 반환하고 실행 파일을 실행하지 못합니다. 그 이유는 무엇일까요?
가끔은 작동하지만 출력 파일이 잠긴 경우 (sha1이 직접 실행될 때와 달리) 생성 된 출력 파일이 제대로 작동하려면 chown을 실행해야합니다. 어떻게 예방할 수 있습니까?
call_usermodehelper없이이 작업을 수행 할 수 있습니까?
는
2로 변경 한 후 작동하는 것으로 보입니다. 감사합니다. –