Respostas:
Os atributos manipulados pelo lsattr
/ chattr
no Linux e alguns dos quais podem ser armazenados por alguns sistemas de arquivos (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...) e até consultados pelo CIFS / SMB (quando com extensões POSIX) são sinalizadores. Apenas bits que podem ser ativados ou desativados para desativar ou ativar um atributo (como imutável ou arquivar ...). Como eles são armazenados é específico do sistema de arquivos, mas geralmente como um registro de 16/32/64 bits no inode.
A lista completa de sinalizadores é encontrada nos sistemas de arquivos nativos do Linux (ext2 / 3/4, btrfs ...), embora nem todos os sinalizadores se apliquem a todo o FS e, para outros FS não nativos, o Linux tenta mapeá-los para equivalentes recursos no sistema de arquivos correspondente. Por exemplo, o sinalizador simmutable armazenado pelo OSX nos sistemas de arquivos HFS + é mapeado para o sinalizador imutável correspondente no Linux chattr
. Qual sinalizador é suportado por qual sistema de arquivos quase não está documentado. Freqüentemente, a leitura do código fonte do kernel é a única opção.
Atributos estendidos, por outro lado, conforme definido com setfattr
ou attr
no Linux, armazenam mais que sinalizadores. Eles também estão anexados a um arquivo e são pares de chave / valor que podem ser (chave e valor) matrizes arbitrárias de bytes (embora com limitação de tamanho em alguns sistemas de arquivos).
A chave pode ser, por exemplo: system.posix_acl_access
ou user.rsync.%stat
. O system
espaço para nome é reservado para o sistema (você não alteraria as ACLs POSIX com setfattr
, mas mais com setfacl
, as ACLs POSIX são armazenadas como atributos estendidos pelo menos em alguns sistemas de arquivos), enquanto o user
espaço para nome pode ser usado por aplicativos (aqui rsync
usa-o como --fake-super
opção, para armazenar informações sobre propriedade ou permissões quando você não é superusuário).
Novamente, como eles são armazenados é específico do sistema de arquivos. Veja WikiPedia para mais informações .
lsattr
/ chattr
trabalho para não ext
sistemas de arquivos? Se não, como você mudaria os sinalizadores em ext
sistemas não no Linux? Além disso, a attr
página de manual diz que foi escrita para o XFS (mesmo que funcione para mim ext4
). Na verdade, passei muito tempo analisando isso ontem, é difícil obter boas informações. Veja - unix.stackexchange.com/questions/118840/…
lsattr/chattr
são para sinalizadores de arquivo. Nem todos os sinalizadores são suportados por todos os sistemas de arquivos, por exemplo, alguns deles, como a compactação, não funcionam no ext4, mas no btrfs.
reiserfs
.
Tudo foi incluído inode
. Quando você altera um arquivo, na verdade, você altera seu inode
script. Para obter um bom comando:
stat --format=%a yourfile
Você pode usar %variable
e retornar um útil deinode
Mas sua resposta:
xattr
está no MacOS e chattr
na caixa Linux.
attr
comando é destinado a sistemas de arquivos XFS, o comando independente do sistema de arquivos equivalente ésetfattr