Salut et merci.
Je viens d'essayer 2 faire / adapter 2 codes ...
=> l'exécution du prog m'affiche "Error3"Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 cap_t caps; cap_value_t cap_list[1]; caps = cap_get_proc(); if (caps == NULL) { std::cout << "error1" << std::endl; return ; } cap_list[0] = CAP_SYS_BOOT; if (cap_set_flag(caps, CAP_EFFECTIVE, 1, cap_list, CAP_SET) == -1) { std::cout << "error2" << std::endl; return ; } if (cap_set_proc(caps) == -1) { std::cout << "error3" << std::endl; return ; } if (cap_free(caps) == -1) { std::cout << "error4" << std::endl; return ; }
=> Celui-ci "Error4"Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 cap_t cur; int uid = getuid(); if (prctl(PR_SET_KEEPCAPS, 1)) { std::cout << "Error1" << std::endl; return ; } if (setresuid(uid, uid, uid)) { std::cout << "Error2" << std::endl; return ; } cur = cap_from_text("cap_sys_boot=eip"); if (cur == NULL) { std::cout << "Error3" << std::endl; return ; } if (cap_set_proc(cur) == -1) { std::cout << "Error4" << std::endl; cap_free(cur); return ; } cap_free(cur);
Dans tout les cas le cap_set_proc ne passe pas !
Cordialement,
NeoKript