ACLs e XATTRs nos principais sistemas de arquivos Linux
| EXT4 | XFS | |
|---|---|---|
| POSIX_ACL | CONFIG_EXT4_FS_POSIX_ACL |
CONFIG_XFS_POSIX_ACL |
| XATTR | CONFIG_EXT4_FS_XATTR[1] |
sempre habilitado |
| SECURITY | CONFIG_EXT4_FS_SECURITY |
CONFIG_XFS_SECURITY[2] |
| OP. MOUNT | desnecessárias[3] | desnecessárias |
| Btrfs | JFS | |
|---|---|---|
| POSIX_ACL | CONFIG_BTRFS_FS_POSIX_ACL |
CONFIG_JFS_POSIX_ACL |
| XATTR | sempre habilitado | sempre habilitado |
| SECURITY | sempre habilitado | CONFIG_JFS_SECURITY |
| OP. MOUNT | desnecessárias | desnecessárias |
| ReiserFS | |
|---|---|
| POSIX_ACL | CONFIG_REISERFS_FS_POSIX_ACL |
| XATTR | CONFIG_REISERFS_FS_XATTR |
| SECURITY | CONFIG_REISERFS_FS_SECURITY |
| OP. MOUNT | acl,user_xattr |
Legenda:
- POSIX_ACL: configuração requerida para habilitar ACLs.
- XATTR: configuração requerida para habilitar atributos extendidos (XATTRs).
- SECURITY: configuração requerida para permitir o uso de XATTRs por módulos LSM (SELinux, Smack, etc.).
- OP. MOUNT: opções de montagem requeridas para habilitar ACLs e XATTRs.
As configurações dos três primeiros itens são definidas na hora da compilação e são controladas pelos empacotadores das distribuições. São recursos básicos, habilitados em praticamente todo lugar.
Caso complicado: EXT2/3/4
Desde o kernel 2.6.33 é possível usar o driver
ext4 para montar volumes EXT2 e EXT3 (CONFIG_EXT4_USE_FOR_EXT23). No 4.3, o driver ext3 foi removido; portanto, o ext4 é sempre usado em volumes EXT3 a partir dessa versão. O driver ext2 continua disponível e a configuração para usar o ext4 em volumes EXT2 foi renomeada para CONFIG_EXT4_USE_FOR_EXT2. Levando em conta que desde o 2.6.39 o driver ext4 aplica as opções acl,user_xattr por padrão, caso sua distribuição tenha um kernel minimamente recente e habilite CONFIG_EXT4_USE_FOR_EXT23 ou CONFIG_EXT4_USE_FOR_EXT2 (a maioria habilita[4]), sistemas EXT2 e EXT3 também sempre terão suporte a ACLs e XATTRs sem precisar mexer nas opções de montagem.Desde muito tempo atrás (lá na pré-história do kernel 2.4), sistemas EXT permitem que algumas opções de montagem pré-definidas sejam salvas em seus superblocos, o que possibilita, na hora da criação do sistema de arquivos, ao
mke2fs (e seus atalhos de conveniência mkfs.ext2, mkfs.ext3 e mkfs.ext4) as definir. O mesmo pode ser feito posteriormente através da opção -o da ferramenta tune2fs. São respeitadas pelos três drivers, ext2, ext3 e ext4. A partir da versão 1.42, o mke2fs cria sistemas de arquivos EXT2/3/4 com as opções acl,user_xattr salvas no superbloco por padrão (redundante[5] com o driver ext4 desde o kernel 2.6.39). Note que as opções noacl,nouser_xattr (inexistentes no driver ext4 a partir da versão 6.1), usadas para desabilitar os recursos, não podem ser armazenadas no superbloco[6]. Precisam ser passadas ao mount (via -o) ou postas no fstab.Considerando volumes EXT2/3/4 com
defaults em fs_mntops (fstab):| ACLs e XATTRs | |
|---|---|
Kernel ≥ 2.6.39 comCONFIG_EXT4_USE_FOR_EXT23 ouCONFIG_EXT4_USE_FOR_EXT2 |
habilitados |
Kernel ≥ 2.6.39 semCONFIG_EXT4_USE_FOR_EXT23 ouCONFIG_EXT4_USE_FOR_EXT2 |
EXT4: habilitados EXT3 (kernel ≥ 4.3): habilitados EXT3 (kernel < 4.3) e EXT2: dependem das opções salvas no superbloco[7] |
| Kernel < 2.6.39 | dependem das opções salvas no superbloco |
Ou seja, com exceção do ReiserFS, que ainda requer opções de montagem, os principais sistemas de arquivos vêm de fábrica com ACLs e XATTRs habilitados por padrão em distribuições modernas.
[1] A partir do kernel 3.8, a opção não existe mais e o suporte é sempre habilitado.
[2] A partir do kernel 2.6.26, a opção não existe mais e o suporte é sempre habilitado.
[3] Desde o kernel 2.6.39.
[4] CentOS 7+, Debian 8+, Ubuntu 14.04+, Fedora, openSUSE, Arch.
[5] Mesmo depois de remover as opções do superbloco com
tune2fs -o ^acl,^user_xattr <dispositivo> e remontá-lo, o sistema de arquivos continuará suportando ACLs e XATTRs.[6] Desde o kernel 2.6.35 e e2fsprogs 1.41.13, opções de montagem arbitrárias podem ser armazenadas no superbloco com
tune2fs -E mount_opts="opção1 opção2 ..." <dispositivo>. No entanto, são interpretadas apenas pelo driver ext4 e não servem para noacl,nouser_xattr.[7] Ver com
tune2fs -l <dispositivo>.
Comentários
Postar um comentário