Невозможно выполнить запись в / dev / console через узел не в / dev

Кто-нибудь может объяснить это:

Система Embedded Arm, Linux 3.18.44. Нет SELinux или что-то еще:

# ls -l /dev/console crw------- 1 root root 5, 1 Jan 6 02:40 /dev/console # ls -l /tmp/console crw------- 1 root root 5, 1 Jan 6 02:39 /tmp/console # echo foo > /dev/console foo # echo foo > /tmp/console -sh: can't create /tmp/console: Permission denied # ls -ld /tmp drwxr-xr-x 2 root root 80 Jan 6 02:39 /tmp # ls -ld /dev drwxr-xr-x 11 root root 5480 Jan 6 02:32 /dev 

Некоторые детали из strace :

 # strace sh -c 'echo foo > /tmp/console' 2>&1 | grep console execve("/bin/sh", ["sh", "-c", "echo foo > /tmp/console"], [/* 12 vars */]) = 0 open("/tmp/console", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = -1 EACCES (Pe) 

Против:

 # strace sh -c 'echo foo > /dev/console' 2>&1 | grep console execve("/bin/sh", ["sh", "-c", "echo foo > /dev/console"], [/* 12 vars */]) = 0 open("/dev/console", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 3 foo 

Это одно и то же устройство: майор 5, минор 1. Почему устройство должно заботиться о имени пути узла файловой системы, который ссылается на него? Если это именно так, это выглядит так:

 # mknod -m 600 /tmp/cons c 5 1 # echo foo > /dev/cons foo # mknod -m 600 /tmp/cons c 5 1 # echo foo > /tmp/cons -sh: can't create /tmp/cons: Permission denied 

Какой-то «театр безопасности»? Он работает под Linux 3.14 на очень похожем аппаратном обеспечении.

One Solution collect form web for “Невозможно выполнить запись в / dev / console через узел не в / dev”

/tmp монтируется nodev и / dev не …?

  • суммирование двух матриц, каждый из которых в другом файле
  • Скопируйте последние n-строки из одного файла в другой
  • Поддерживать (или восстанавливать) разрешения файлов при замене файла
  • Какие символы действительны для использования в именах файлов?
  • Могут ли каталоги и файлы наследовать те же разрешения, что и родительский каталог?
  • Как рекурсивно перечислить все скрытые файлы и каталоги?
  • Как выполнить команду во всех подпапках
  • gvim -p предел открытых вкладок?
  • Как изменить только mtime каталога?
  • Копирование файлов в каталог, открытый через ACL, не получает маску по умолчанию
  • Как вставить файлы с тем же именем из разных каталогов?
  • Разделить содержимое файла в Linux
  • Linux и Unix - лучшая ОС в мире.