У меня есть задача для выполнения, и частично это получить определенные возможности файлов и проверить, правильно ли они установлены с помощью C / C ++. Я хочу убедиться, что определенный файл имеет возможность cap_new_raw + ep. Что может быть другим способом достижения этого, кроме использования системы (файл get_cap) и чтения вывода (не возвращая значение, вывод)?
Так что, если я хорошо понимаю руководство, что-то вроде этого должно работать:
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
Других решений пока нет …