Как определить уровень доступа к каталогу
Мне нужно проверить может-ли обычный пользователь(без админ прав) изменять каталог(Создавать файлы например) или только читать.Как я могу это узнать?
Ответы (1 шт):
Автор решения: dIm0n
→ Ссылка
Вот так можно узнать права на произвольный файл (в том числе директорию):
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
void log_permissions(fs::perms p) {
std::clog << ((p & fs::perms::owner_read) != fs::perms::none ? "r" : "-")
<< ((p & fs::perms::owner_write) != fs::perms::none ? "w" : "-")
<< ((p & fs::perms::owner_exec) != fs::perms::none ? "x" : "-")
<< ((p & fs::perms::group_read) != fs::perms::none ? "r" : "-")
<< ((p & fs::perms::group_write) != fs::perms::none ? "w" : "-")
<< ((p & fs::perms::group_exec) != fs::perms::none ? "x" : "-")
<< ((p & fs::perms::others_read) != fs::perms::none ? "r" : "-")
<< ((p & fs::perms::others_write) != fs::perms::none ? "w" : "-")
<< ((p & fs::perms::others_exec) != fs::perms::none ? "x" : "-")
<< '\n';
}
int main() {
log_permissions(fs::status("test.txt").permissions());
}
Пример вывода:
rw-r--r--