Arreglando '/dev/null: Permiso denegado' repetidamente en chroot

Arreglando '/dev/null: Permiso denegado' repetidamente en chroot

He hecho chroot en un disco externo con sudo chroot /mnt/disk, pero casi todo lo que hago (iniciar sesión, completar tabulaciones, lessingresar un archivo, ...) resulta en un error al mencionar /dev/null: Permission denied, incluso si el comando parece funcionar.

/dev/null tiene los permisos correctos (666) y filedice que es un dispositivo de caracteres, por lo que no es como si algo lo haya sobrescrito con un archivo normal o haya cambiado los permisos.

¿Qué puedo hacer para arreglar esto?

ls /uEsto es lo que resulta al completar con tabulación (de ):

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

Respuesta1

El disco podría montarse con la nodevopción, que mountse interpreta así:

No interprete caracteres ni bloquee dispositivos especiales en el sistema de archivos.

Puede verificar esto comprobando la salida demount afuerael chroot:

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

(¡Este es un problema particularmente complicado de detectar, ya que la configuración fuera del chroot está afectando el comportamiento de los programas dentro de él!)

Arreglarlo es tan fácil como volver a montarlo sin la nodevopción. El siguiente comando logrará esto (¡incluso mientras se ejecuta el proceso chroot!), aunque probablemente haya una manera de eliminarjustola nodevopción sin eliminar todas las demás opciones también:

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

información relacionada