Виправлення '/ dev / null: Дозвіл заборонено' у chroot


2

Я виділив зовнішній диск з sudo chroot /mnt/disk, але майже все, що я роблю (вхід, завершення табуляції, less у файлі, ...) призводить до помилки згадки /dev/null: Permission denied, навіть якщо команда, здається, працює.

/ dev / null має правильні права доступу (666) і file говорить, що це пристрій із символами, тож нічого не перезаписав його звичайним файлом або змінив дозволи.

Що я можу зробити, щоб виправити це?

Ось що табуляція завершення (з ls /u ) призводить до:

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

Відповіді:


1

Диск може бути встановлений з nodev варіант, який mount інтерпретує таким чином:

Не інтерпретувати символ або заблокувати спеціальні пристрої у файловій системі.

Це можна перевірити, перевіривши вихідні дані mount зовні chroot:

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

(Це особливо складна проблема для виявлення, оскільки конфігурація за межами chroot впливає на поведінку програм всередині неї!)

Фіксація її так само проста, як і повторне встановлення без nodev опції. Наступна команда виконає це (навіть якщо процес chroot працює!), Хоча, ймовірно, існує спосіб, який видаляє просто nodev опції, не видаляючи також інших параметрів:

sudo mount -o remount /dev/sda1 /mnt/disk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.