Я успешно использовал как stat ()
, так и access ()
по отдельности, чтобы определить, есть ли у пользователя доступ на чтение или чтение / запись к каталогу. .
Мой вопрос:
- Есть ли предпочтительный метод? Я вижу множество примеров с использованием stat
, но для моей цели доступ кажется более легким и служит цели.
- Есть ли проблемы (например, с безопасностью) с тем или другим?
- Возникли проблемы с моим подходом?
Вот псевдокод (воссоздание из памяти без компиляции):
// Using access():
bool readAccessPermission = false;
bool writeAccessPermission = false;
if (mode == 'r'){
if (access(directory, R_OK) == 0)
readAccessPermission = true;
}
else{
if (access(directory, R_OK && W_OK) == 0)
readAccessPermission = true;
writeAccessPermission = true;
}
// vs. using stat function
// assume I already called stat(directory) and have the object
bool readAccessPermission = false;
bool writeAccessPermission = false;
var retmode = ((stats.mode) & (0777));
if (modeString == 'r'){
if ((retmode) & (consts.S_IRUSR)){
readAccessPermission = false;
}
}
else{
if ((retmode) & (consts.S_IRUSR)){
readAccessPermission = true;
if ((retmode) & consts.S_IWUSR)){
writeAccessPermission = true;
}
}
}