Correzione di "/ dev / null: autorizzazione negata" ripetutamente in chroot


2

Ho fatto il chroot in un disco esterno con sudo chroot /mnt/disk, ma quasi tutto ciò che faccio (accesso, tab-completion, less un file, ...) genera un errore di menzione /dev/null: Permission denied, anche se il comando sembra funzionare.

/ dev / null ha le autorizzazioni corrette (666) e file dice che è un dispositivo di carattere, quindi non è come se qualcosa lo avesse sovrascritto con un file normale o modificato le autorizzazioni.

Cosa posso fare per risolvere questo problema?

Ecco cosa è il tab-completion (di ls /u ) risulta in:

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

Risposte:


1

Il disco potrebbe essere montato con nodev opzione, che mount interpreta così:

Non interpretare caratteri o bloccare dispositivi speciali sul file system.

Puoi verificarlo controllando l'output di mount al di fuori il chroot:

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

(Questo è un problema particolarmente difficile da individuare, poiché la configurazione esterna al chroot influisce sul comportamento dei programmi al suo interno!)

Ripararlo è facile come rimontare senza nodev opzione. Il seguente comando eseguirà questo (anche mentre il processo di chroot è in esecuzione!), Anche se probabilmente c'è un modo che rimuove appena il nodev opzione senza rimuovere anche tutte le altre opzioni:

sudo mount -o remount /dev/sda1 /mnt/disk
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.