物理/有効な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)は所有者またはルートのみ実行できます。

関連情報