FERRAMENTAS LINUX: A chamada de sistema fchmodat2 foi enviada para o Kernel Linux 6.6

segunda-feira, 28 de agosto de 2023

A chamada de sistema fchmodat2 foi enviada para o Kernel Linux 6.6

 


Antes do lançamento do kernel estável do Kernel Linux 6.5, já houve algumas solicitações pull enviadas de novos materiais de recursos para o Kernel Linux 6.6 .

Entre os primeiros pulls da v6.6 está um do proeminente desenvolvedor Linux Christian Brauner da Microsoft que apresenta a chamada de sistema fchmodat2() como uma evolução do fchmodat().

O fchmodat2() enviado para o Kernel Linux 6.6 é uma evolução da chamada fchmodat() para alterar permissões de um arquivo relativo a um descritor de arquivo de diretório. A nova chamada de sistema adiciona um argumento flag que permite suporte para os sinalizadores AT_SYMLINK_NOFOLLOW e AT_EMPTY_PATH. Com AT_SYMLINK_NOFOLLOW, se um caminho simbólico for usado, ele não desreferenciará, mas operará no próprio link.

chamada de sistema fchmodat2()

Christian Brauner explicou fchmodat2() e como ele melhorará a experiência para implementações da biblioteca C (libc) no espaço do usuário:

"Isso adiciona a chamada de sistema fchmodat2(). É uma versão revisada da chamada de sistema fchmodat(), adicionando um argumento de flag ausente. Suporte para AT_SYMLINK_NOFOLLOW e AT_EMPTY_PATH está incluído. Adicionar esta revisão de chamada de sistema tem sido uma solicitação de longa data, mas então o Far sempre falhou. Embora a implementação do kernel de fchmodat() não tenha um argumento de flag, a versão fchmodat(3) compatível com POSIX fornecida pela libc tem. Ambas as libcs ​​precisam implementar uma solução alternativa para suportar AT_SYMLINK_NOFOLLOW. 

A solução alternativa é frágil porque depende não apenas da semântica O_PATH e O_NOFOLLOW e dos links mágicos procfs, mas também de nossa semântica de link simbólico bastante inconsistente.

Esta solicitação pull fornece ao espaço do usuário uma chamada de sistema fchmodat2() adequada que os libcs ​​podem usar para implementar adequadamente o fchmodat(3) e permite que eles se livrem de seus hacks. Neste caso, irá beneficiá-los imediatamente, uma vez que a solução alternativa atual já está extinta devido às inconsistências mencionadas.

Além doAT_SYMLINK_NOFOLLOW, dê ao userspace a capacidade de usar AT_EMPTY_PATH com fchmodat2(). Isso já é possível com fchownat() então não há razão para não apoiá-lo também para o fchmodat2()."

Exceto que Linus Torvalds encontre qualquer falha nesta atualização básica de chamada do sistema, esta solicitação pull deve chegar assim que a janela de mesclagem do Linux 6.6 estiver oficialmente em andamento.





Fonte

Até a próxima !!


Nenhum comentário:

Postar um comentário