3

次のようにファイル属性を設定しようとしています。

  1. 0644の権限を持つファイルfoo.txtを作成します
  2. 私がこれのためにsetxattrをしようとしているとき

    if (setxattr("foo.txt", "user.test", "test", 4, XATTR_CREATE) == -1)
        perror("");
    

操作がサポートされていないため、エラーが発生します

有効にするものはありますか?これを解決する方法は?

4

1 に答える 1

5

からsetxattr

戻り値

   On success, zero is returned.  On failure, -1 is returned and errno is set
   appropriately.  
   ...  
   If extended attributes are not supported by the file system, or are disabled,
   errno is set to ENOTSUP.

したがって、ファイル システムが拡張属性をサポートしていないか (ext[234]、cifs、btrfs など)、カーネルのビルド時またはマウント時に無効になっています。

NFS の場合、カーネル構成で拡張属性を有効にする別のスイッチはありません。ソースから、またはfs/nfs/dir.cのサポートを有効にすると有効になるようです。ただし、NFS は依然として基盤となるファイル システムに依存しています。そのため、サーバー側でも拡張属性を有効にする必要があります。CONFIG_NFS_V3CONFIG_NFS_V4

からman mount

ext2 のマウント オプション
...
user_xattr|nouser_xattr
"user" をサポートします。拡張属性 (またはそうでない)。

于 2013-02-14T10:37:14.100 に答える