Как получить файловые возможности в Linux, используя C / C ++ с помощью другого метода, кроме системного вызова system ()? - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть задача, которую нужно выполнить, и часть ее состоит в том, чтобы получить определенные файловые возможности и проверить, правильно ли они установлены, используя C / C ++.Я хочу убедиться, что определенный файл имеет возможность cap_new_raw + ep.Что может быть другим способом достижения этого, кроме использования системы (файл get_cap) и чтения вывода (не возвращая значения, вывод)?

1 Ответ

0 голосов
/ 19 сентября 2018

Так что, если я хорошо понимаю руководство, что-то вроде этого должно работать:

capt_t file_cap;
cap_flag_value_t cap_flag_value;

file_cap = cap_get_file("/path/");
if(file_cap != 0) {
    if(cap_get_flag(file_cap, CAP_NEW_RAW, CAP_EFFECTIVE, &cap_flag_value) == 0) {
        if(cap_flag_value == CAP_SET)
        // it works
    }
    else // handle error
    if(cap_get_flag(file_cap, CAP_NEW_RAW, CAP_PERMITTED, &cap_flag_value) == 0) {
        if(cap_flag_value == CAP_SET)
        // it works
    }
    else // handle error
}
else // handle error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...