Respostas:
Permissões estendidas, como listas de controle de acesso definidas por setfacl
e sinalizadores de capacidade definidas por, setcap
são armazenadas no mesmo local que as permissões tradicionais e definem [ug] id sinalizadores definidos por chmod
: no inode do arquivo.
(Na verdade, eles podem ser armazenados em um bloco separado no disco, porque um inode tem um tamanho fixo que tem espaço para os bits de permissão tradicionais, mas não para as permissões estendidas potencialmente ilimitadas. Mas isso só importa em casos raros, como precisar cuidado que setcap
pode ficar sem espaço em disco. Mas ainda chmod
pode ficar sem espaço em disco em um sistema que usa desduplicação!)
O GNU ls não exibe os atributos setcap de um arquivo. Você pode exibi-los com getcap
. Você pode listar todos os atributos estendidos com getfattr -d -m -
; o atributo setcap é chamado security.capability
e é codificado em um formato binário que getcap
decodifica para você.
setcap define recursos de arquivo que são armazenados no atributo estendido do sistema de arquivos. Estes são explicados em man 7 capabilities
:
Os conjuntos de recursos de arquivo são armazenados em um atributo estendido (consulte setxattr (2)) denominado security.capability.
Você pode inspecionar os recursos de um processo em execução examinando os campos CapInh / CapPrm / CapEff em /proc/PID/status
. Veja minha resposta em " Como definir recursos com o comando setcap? " Para obter uma explicação sobre como os recursos são aplicados ao processo no exec.
/usr/bin/sleep
e forneça os recursos para essa cópia.