私は、次のようにコーディングgetxattr
した FUSE ファイルシステムを持っています。setxattr
int mfs_setxattr(const char *path, const char *name, const char *value, size_t size, int flags)
{
... /* some translation processing of path to rpath */
int ret = lsetxattr(rpath, name, value, size, flags);
... /* some logging works */
if (ret == -1) {
return -errno;
}
return 0;
}
と
int mfs_getxattr(const char *path, const char *name, char *value, size_t size)
{
... /* some translation processing of path to rpath */
int ret = lgetxattr(rpath, name, value, size);
... /* some logging works */
if (ret == -1) {
return -errno;
}
return ret;
}
私はこれをテストしましたが、機能を除いて非常にうまく機能します。 setcap を使用してプログラムの機能を設定して実行すると、プログラムは特権作業を実行できません。getcap にもかかわらず、以前に設定した機能が返されます。
誰かが問題を追跡する方法を教えてくれますか、または何が起こっているかについての指針を教えてくれますか?