「拡張属性」の版間の差分
(英語版から) タグ: リダイレクト解消 |
(翻訳) |
||
1行目: | 1行目: | ||
[[en:Extended attributes]] |
[[en:Extended attributes]] |
||
+ | {{man|7|xattr}} から: "拡張属性は、ファイルやディレクトリと永続的に関連付けられた名前:値のペアです。" 拡張属性には4つのクラスがあります: security、system、trusted、そして user です。 |
||
+ | {{Warning|デフォルトでは、拡張属性は [[cp]]、[[rsync]]、そして他の似たようなプログラムによって保持されません。[[#拡張属性を保持する]] を見てください。}} |
||
− | From {{man|7|xattr}}: "Extended attributes are name:value pairs associated |
||
− | permanently with files and directories". There are four extended attribute |
||
− | classes: security, system, trusted and user. |
||
+ | 拡張属性は、[[ケイパビリティ]]を設定する際にも用いられます。 |
||
− | {{Warning|By default, extended attributes are not preserved by [[cp]], [[rsync]], and other similar programs, see [[#Preserving extended attributes]].}} |
||
− | |||
− | Extended attributes are also used to set [[Capabilities]]. |
||
=== ユーザ拡張属性 === |
=== ユーザ拡張属性 === |
||
+ | ユーザ拡張属性は、ファイルに関する任意の情報を保存するために使用できます。属性を作成するには: |
||
− | User extended attributes can be used to store arbitrary information about a |
||
− | file. To create one: |
||
$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt |
$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt |
||
+ | 拡張属性を表示するには getfattr を使用してください: |
||
− | Use getfattr to display extended attributes: |
||
{{hc|$ getfattr -d foo.txt|2= |
{{hc|$ getfattr -d foo.txt|2= |
||
23行目: | 19行目: | ||
}} |
}} |
||
+ | 拡張属性を削除するには: |
||
− | Finally, to remove an extended attribute: |
||
+ | |||
$ setfattr -x user.checksum foo.txt |
$ setfattr -x user.checksum foo.txt |
||
+ | 一部のユーザ拡張属性には以下が含まれています: |
||
− | some other user xattrs include: |
||
+ | |||
− | * {{ic|user.mime_type}}: helps programs know mimetype and set it with less guesswork. |
||
+ | * {{ic|user.mime_type}}: プログラムに mimetype を知らせ、推測しなくても良くします。 |
||
− | * {{ic|user.charset}}: used by the Apache httpd module [http://0pointer.de/lennart/projects/mod_mime_xattr mod_mime_xattr]. |
||
+ | * {{ic|user.charset}}: Apache httpd モジュール [http://0pointer.de/lennart/projects/mod_mime_xattr mod_mime_xattr] によって使用されます。 |
||
− | * {{ic|user.creator}}: The name of the application that created the file. |
||
+ | * {{ic|user.creator}}: そのファイルを作成したアプリケーションの名前。 |
||
+ | |||
+ | XDG は、プログラムによって使用される標準化された拡張属性のセットも提案しています: |
||
+ | * {{ic|user.xdg.comment}}: Dolphin などのファイルマネージャによってサポートされます。 |
||
− | XDG also proposes a set of standardized xattrs to be used by programs: |
||
− | * {{ic|user.xdg. |
+ | * {{ic|user.xdg.origin.url}}: URL からダウンロードしたファイル用。 |
+ | * {{ic|user.xdg.robots.index}}: ファイルがインデックスに含まれるならば "true"。さもなくば "false"。 |
||
− | * {{ic|user.xdg.origin.url}}: for files downloaded from a url. |
||
− | * {{ic|user.xdg.robots. |
+ | * {{ic|user.xdg.robots.backup}}: ファイルがバックアップに含まれるならば "true"。さもなくば "false"。 |
− | * {{ic|user.xdg.robots.backup}}: "true" if a file is included in backup, "false" otherwise |
||
* {{ic|user.xdg.language}} |
* {{ic|user.xdg.language}} |
||
* {{ic|user.xdg.creator}} |
* {{ic|user.xdg.creator}} |
||
46行目: | 45行目: | ||
{| class="wikitable" |
{| class="wikitable" |
||
+ | ! コマンド || 必要なフラグ |
||
− | ! Command || Required flag |
||
|- |
|- |
||
| {{ic|cp}} || {{ic|1=--preserve=mode,ownership,timestamps,xattr}} |
| {{ic|cp}} || {{ic|1=--preserve=mode,ownership,timestamps,xattr}} |
||
|- |
|- |
||
− | | {{ic|mv}} || {{Y| |
+ | | {{ic|mv}} || {{Y|デフォルトで保持<sup>1}} |
|- |
|- |
||
− | | {{ic|tar}} || {{ic|--xattrs}} |
+ | | {{ic|tar}} || 作成時には {{ic|--xattrs}}、展開時には {{ic|1=--xattrs-include='*'}} |
|- |
|- |
||
− | | {{ic|bsdtar}} || {{ic|-p}} |
+ | | {{ic|bsdtar}} || 展開時に {{ic|-p}} |
|- |
|- |
||
| [[rsync]] || {{ic|-X, --xattrs}} |
| [[rsync]] || {{ic|-X, --xattrs}} |
||
65行目: | 64行目: | ||
|} |
|} |
||
+ | # mv は、対象のファイルシステムが拡張属性をサポートしていない場合、何も言わずに拡張属性を破棄します。 |
||
− | # mv silently discards extended attributes when the target file system does not support them. |
||
+ | [[テキストエディタ]]で拡張属性を保持するには、保存時に {{man|2|rename}} を使わずファイルを切り詰める/拡張する (truncate) するように設定する必要があります。[https://unix.stackexchange.com/questions/45407] |
||
− | To preserve extended attributes with [[text editor]]s you need to configure them |
||
− | to truncate files on saving instead of using {{man|2|rename}}. [https://unix.stackexchange.com/questions/45407] |
||
== サポート == |
== サポート == |
||
74行目: | 72行目: | ||
=== ファイルシステム === |
=== ファイルシステム === |
||
+ | Ext、Btrfs、ZFS などの主要な Linux ファイルシステムの全てで拡張属性がサポートされています。カーネルは、拡張属性の名前は 255 バイトまで、値は 64 KiB まで許可しています。しかし、ext と btrfs では、拡張属性を "ファイルシステムブロック" 内に収める必要があることから、より小さい制限が課されるかもしれません。 |
||
− | All major Linux file systems including ext, btrfs, zfs, xfs, and more support |
||
− | xattrs. The kernel allows to have xattrs names of up to 255 bytes and values of |
||
− | up to 64 KiB, but ext and btrfs might impose smaller limits, requiring xattrs to |
||
− | be within a "filesystem block". |
||
+ | [[NTFS]] は代替データストリーム (Alternative Data Streams) を使って user を保存します。マウントオプションの {{ic|user_xattr}} か {{ic|1=streams_interface=xattr}} がデフォルトで使用されるはずです。しかし、マウントオプション {{ic|1=streams_interface=windows}} が使用されている場合は、拡張属性はサポートされないかもしれません。{{pkg|ntfs-3g}} は、FUSE 内での代替データストリームの拡張属性へのマッピングをサポートしています。 |
||
− | [[NTFS]] uses Alternative Data Streams to store user. The mount option |
||
− | {{ic|user_xattr}} or {{ic|1=streams_interface=xattr}} should be used by default. However it |
||
− | might not be supported if mount option {{ic|1=streams_interface=windows}} is used. |
||
− | {{pkg|ntfs-3g}} supports mapping ADS to extended attributes in FUSE. |
||
+ | NFS は現在、拡張属性をサポートしていません。 |
||
− | NFS does not currently support xattrs. |
||
=== ファイルマネージャ === |
=== ファイルマネージャ === |
||
+ | 説明: |
||
− | Legend: |
||
+ | |||
− | # Preserved: whether xattrs are preserved when copied or moved. |
||
+ | # 保持: コピーや移動をした時に拡張属性が保持されるか。 |
||
− | # Tags: whether tags xattrs are supported. |
||
+ | # Tags: Tags 拡張属性がサポートされているか。 |
||
{| class="wikitable" |
{| class="wikitable" |
||
+ | ! ファイルマネージャ |
||
− | ! File manager |
||
+ | ! 保持 |
||
− | ! Preserved |
||
! Tags |
! Tags |
||
|- |
|- |
||
114行目: | 107行目: | ||
|} |
|} |
||
− | # caja: |
+ | # caja: 拡張機能の caja-xattr-tags と caja.eiciel によってサポートされています。 |
=== プログラム === |
=== プログラム === |
||
{| class="wikitable" |
{| class="wikitable" |
||
+ | ! アプリケーション |
||
− | ! Application |
||
+ | ! サポートされている拡張属性 |
||
− | ! Supported xattrs |
||
+ | ! いつから |
||
− | ! Supported since |
||
− | ! |
+ | ! 備考 |
|- |
|- |
||
| {{pkg|baloo}} |
| {{pkg|baloo}} |
||
147行目: | 140行目: | ||
| {{No}} |
| {{No}} |
||
| |
| |
||
+ | | mbox 拡張属性をリセットします。 |
||
− | | Resets mbox xattrs. |
||
|- |
|- |
||
| [[Gwenview]] |
| [[Gwenview]] |
||
180行目: | 173行目: | ||
* [[wikipedia:Extended file attributes#Linux]] |
* [[wikipedia:Extended file attributes#Linux]] |
||
* [https://www.lesbonscomptes.com/pages/extattrs.html Extended attributes: the good, the not so good, the bad.] |
* [https://www.lesbonscomptes.com/pages/extattrs.html Extended attributes: the good, the not so good, the bad.] |
||
+ | |||
+ | {{TranslationStatus|Extended attributes|2023-08-12|784937}} |
2023年8月12日 (土) 10:49時点における版
xattr(7) から: "拡張属性は、ファイルやディレクトリと永続的に関連付けられた名前:値のペアです。" 拡張属性には4つのクラスがあります: security、system、trusted、そして user です。
拡張属性は、ケイパビリティを設定する際にも用いられます。
ユーザ拡張属性
ユーザ拡張属性は、ファイルに関する任意の情報を保存するために使用できます。属性を作成するには:
$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt
拡張属性を表示するには getfattr を使用してください:
$ getfattr -d foo.txt
# file: foo.txt user.checksum="3baf9ebce4c664ca8d9e5f6314fb47fb"
拡張属性を削除するには:
$ setfattr -x user.checksum foo.txt
一部のユーザ拡張属性には以下が含まれています:
user.mime_type
: プログラムに mimetype を知らせ、推測しなくても良くします。user.charset
: Apache httpd モジュール mod_mime_xattr によって使用されます。user.creator
: そのファイルを作成したアプリケーションの名前。
XDG は、プログラムによって使用される標準化された拡張属性のセットも提案しています:
user.xdg.comment
: Dolphin などのファイルマネージャによってサポートされます。user.xdg.origin.url
: URL からダウンロードしたファイル用。user.xdg.robots.index
: ファイルがインデックスに含まれるならば "true"。さもなくば "false"。user.xdg.robots.backup
: ファイルがバックアップに含まれるならば "true"。さもなくば "false"。user.xdg.language
user.xdg.creator
user.xdg.publisher
user.xdg.origin.email.subject
user.xdg.origin.email.from
user.xdg.origin.email.message-id
拡張属性を保持する
コマンド | 必要なフラグ |
---|---|
cp |
--preserve=mode,ownership,timestamps,xattr
|
mv |
デフォルトで保持1 |
tar |
作成時には --xattrs 、展開時には --xattrs-include='*'
|
bsdtar |
展開時に -p
|
rsync | -X, --xattrs
|
cpio | No |
gzip | No |
pax | No |
- mv は、対象のファイルシステムが拡張属性をサポートしていない場合、何も言わずに拡張属性を破棄します。
テキストエディタで拡張属性を保持するには、保存時に rename(2) を使わずファイルを切り詰める/拡張する (truncate) するように設定する必要があります。[1]
サポート
ファイルシステム
Ext、Btrfs、ZFS などの主要な Linux ファイルシステムの全てで拡張属性がサポートされています。カーネルは、拡張属性の名前は 255 バイトまで、値は 64 KiB まで許可しています。しかし、ext と btrfs では、拡張属性を "ファイルシステムブロック" 内に収める必要があることから、より小さい制限が課されるかもしれません。
NTFS は代替データストリーム (Alternative Data Streams) を使って user を保存します。マウントオプションの user_xattr
か streams_interface=xattr
がデフォルトで使用されるはずです。しかし、マウントオプション streams_interface=windows
が使用されている場合は、拡張属性はサポートされないかもしれません。ntfs-3g は、FUSE 内での代替データストリームの拡張属性へのマッピングをサポートしています。
NFS は現在、拡張属性をサポートしていません。
ファイルマネージャ
説明:
- 保持: コピーや移動をした時に拡張属性が保持されるか。
- Tags: Tags 拡張属性がサポートされているか。
ファイルマネージャ | 保持 | Tags |
---|---|---|
dolphin | No | |
thunar | Yes | |
caja | Yes1 | |
nautilus |
- caja: 拡張機能の caja-xattr-tags と caja.eiciel によってサポートされています。
プログラム
アプリケーション | サポートされている拡張属性 | いつから | 備考 |
---|---|---|---|
baloo | user.xdg.tags
|
||
Chromium | user.xdg.origin ,user.xdg.referrer
|
||
CURL | |||
Dropbox | user.com.dropbox.attributes
|
||
emacs-vm | No | mbox 拡張属性をリセットします。 | |
Gwenview | user.xdg.tags
|
||
recoll | user.xdg.tags
|
||
tmsuAUR | No | ||
tagspacesAUR | No | ||
Wget |