Por que o getfacl remove os nomes de caminho principais / absolutos?

10

Estou aprendendo sobre ACLs para o CentOS / Red Hat 6; quando corro getfaclusando um caminho absoluto, fico entre a saída:

getfacl: Removendo '/' principal dos nomes de caminho absolutos

Por que ele precisa fazer isso? Em que situações você precisaria usar o botão -pou --absolute-names?

Meus livros de Wale Soyinka e Michael Jang não fazem uma menção passageira a isso, não estou vendo nenhuma pista na página de manual e não consigo encontrar sites que abordem diretamente esse aviso.

Seananigans
fonte
1
Tem sido assim desde o início da ACL no Linux . Não sei porque.
Gilles 'SO- stop be evil'
Obrigado por me ajudar a analisar e para o link. Minhas habilidades de programação são um pouco rudimentares no momento, mas salvei o arquivo para quando começar a lidar com C / C ++ com o meu livro Gaddis.
21713 Seananigans

Respostas:

6

Na página de manual de getfacl:

-p, --absolute-names
       Do not strip leading slash characters (`/'). The  default  behavior
       is to strip leading slash characters.

Uma mensagem de aviso é emitida quando você fornece o caminho absoluto sem usar o -pcomutador.

As saídas são diferentes quando o caminho absoluto é dado ao getfaclcomando.

Sem -pinterruptor:

$ getfacl /path/foo/bar
getfacl: Removing leading '/' from absolute path names
# file: path/foo/bar
[Output truncated...]

Observe que a barra principal no caminho do arquivo é exibida apenas quando a -popção é usada.

$ getfacl -p /path/foo/bar
# file: /path/foo/bar
[Output truncated...]

-p é útil manter a barra principal quando você canalizou a saída para processamento adicional.

As saídas são as mesmas quando o caminho relativo é dado ao getfaclcomando.

$ getfacl bar
# file: bar
[Output truncated...]

Sem alterações:

$ getfacl -p bar
# file: bar
[Output truncated...]
Ivan Chau
fonte
Perdoe-me, como eu sou relativamente novo no Linux, mas isso parece uma opção bastante supérflua, pois se você estivesse canalizando a saída para outro programa, teria que editar o fluxo de qualquer maneira para obter essa seção da saída no primeiro lugar, estou correto? Qual seria um exemplo de caso em que seria útil remover a barra principal? Uma vez que é um caminho absoluto, parece um pouco tolo removê-lo em primeiro lugar.
Seananigans 23/10
2
Em outras distros (por exemplo, FreeBSD), essa opção não existe. Ao visualizar a fonte do pacote RHEL acl, parece que --absolute-nameslida apenas com a sequência de saída - "# file:", mas não com a lógica por trás. No começo, acho que pode ser um recurso de segurança. No entanto, a opção não existe no setfacl. Minha última suposição é que o autor gostaria de simular o tarcomportamento, embora o -puso do switch getfaclpossa ser inútil.
quer
9
Isso não responde ao porquê. Por que as barras principais são removidas por padrão, como isso ajuda?
Segfault