Debian: não é possível remover o link simbólico em / sys /: operação não permitida

10

Eu executei alguns comandos sem entendê-los completamente enquanto tentava fazer o brilho da tela funcionar e agora estou preso a um link simbólico desagradável em '/ sys / class / backlight / asus_laptop' do qual estou tentando me livrar.

eu tentei

sudo rm /sys/class/backlight/asus_laptop
sudo rm '/sys/class/backlight/asus_laptop'

su root
rm /sys/class/backlight/asus_laptop
sudo rm /sys/class/backlight/asus_laptop

Indo direto para o diretório e digitando rm asus_laptop, alterando a propriedade e usando o Thunar para tentar removê-lo.

eu recebo

rm: cannot remove '/sys/class/backlight/asus_laptop': Operation not permitted

O mesmo vale para desvincular, rmdir não funciona e Thunar falha.

As permissões nele são lrwxrwxrwx

Como posso removê-lo?

Jzuken
fonte
1
É a permissão no diretório que importa ao remover um arquivo. No entanto, /sysé especial, não sei se você pode adicionar ou remover arquivos.
ctrl-alt-Delor

Respostas:

28

O sysfssistema de arquivos , normalmente montado /sys, assim como o /procsistema de arquivos , não é um sistema de arquivos típico, é o chamado pseudo sistema de arquivos . Na verdade, é preenchido pelo kernel e você não pode excluir arquivos diretamente.

Portanto, se o suporte para laptop da ASUS não for apropriado para você, você deverá solicitar ao kernel que o remova. Para fazer isso, remova o módulo correspondente:

sudo rmmod asus-laptop

Isso removerá a /sysentrada relevante .

Stephen Kitt
fonte
Nota pequena: alguns arquivos podem ser removidos, o que aciona determinadas ações. Não tenho certeza de quais existem no sysfs, mas, por exemplo, o cgroupfs permite criar / remover cgroups com mkdir e rm.
allo
3
@ allo a distinção é sutil, mas o cgroupfs como o próprio nome sugere é um sistema de arquivos diferente. O sysfs, que está montado /sys, suporta apenas leituras e gravações, não suporta exclusão.
Stephen Kitt
1
@ StephenKitt: Se eu, como escritor do módulo do kernel, quisesse adicionar algo ao / sys, poderia muito bem fornecer meu próprio nó de diretório que excluiu a conexão. Criar me dá arrepios. Afinal, mknod () é uma chamada especial.
Joshua
@ Josué agora você me deixou intrigado - como você faria isso, sem montar um novo kernfs (então não kernfs_create_root) ou qualquer outro fs?
Stephen Kitt
Os módulos podem adicionar nós arbitrários ao sysfs e procfs com seus próprios manipuladores vfs.
Joshua