실제/유효한 UID에 파일이나 디렉터리를 변경할 수 있는 권한이 있는지 확인하는 방법

실제/유효한 UID에 파일이나 디렉터리를 변경할 수 있는 권한이 있는지 확인하는 방법

현재 사용자의 실제 유효한 UID를 얻을 수 있습니다. 따라서 일부 파일이나 디렉터리가 있는 경우 이러한 UID를 사용하여 rwx해당 파일이나 디렉터리에 대한 액세스/수정에 대한 특정 사용자의 권한을 어떻게 확인할 수 있습니까?

답변1

roaima의 의견 덕분에 나는 다음과 같은 결론에 도달했습니다.

//snip...
#include <fcntl.h>
#include <unistd.h>
...
    bool bcanR, bcanW, bcanX;
    //'fullpath' is to file or directory..
    bcanR=(faccessat(0, fullpath, R_OK, AT_EACCESS)==0);
    bcanW=(faccessat(0, fullpath, W_OK, AT_EACCESS)==0);
    bcanX=(faccessat(0, fullpath, X_OK, AT_EACCESS)==0);
...
//snip

이는 유효한 UID를 사용하여 권한을 확인하므로 내 요구 사항을 충족합니다.

또한 기반으로이 답변기억해야 해변화권한(사용 chmod)은 소유자 또는 루트만 실행할 수 있습니다.

관련 정보