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