Corrigindo '/dev/null: Permissão negada' repetidamente no chroot

Corrigindo '/dev/null: Permissão negada' repetidamente no chroot

Eu fiz chroot em um disco externo com sudo chroot /mnt/disk, mas quase tudo que faço (login, preenchimento de tabulação, lessing um arquivo, ...) resulta em um erro ao mencionar /dev/null: Permission denied, mesmo que o comando pareça funcionar.

/dev/null tem as permissões corretas (666) e filediz que é um dispositivo de caractere, então não é como se algo o tivesse substituído por um arquivo normal ou alterado as permissões.

Oque posso fazer para consertar isso?

ls /uAqui está o resultado do preenchimento de tabulação (of ):

$ ls /ubash: /dev/null: Permission denied
bash: _upvars: `-a2': invalid number specifier
bash: /dev/null: Permission denied
bash: _upvars: `-a0': invalid number specifier

Responder1

O disco pode ser montado com a nodevopção, que mounté interpretada da seguinte forma:

Não interprete caracteres nem bloqueie dispositivos especiais no sistema de arquivos.

Você pode verificar isso verificando a saída demount forao chroot:

$ mount
...
/dev/sda1 on /mnt/disk type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

(Este é um problema particularmente difícil de detectar, pois a configuração fora do chroot está afetando o comportamento dos programas dentro dele!)

Consertá-lo é tão fácil quanto remontar sem a nodevopção. O comando a seguir fará isso (mesmo enquanto o processo chroot estiver em execução!), embora provavelmente haja uma maneira de removerapenasa nodevopção sem remover todas as outras opções também:

sudo mount -o remount /dev/sda1 /mnt/disk

informação relacionada