Можно ли создать каталог и файл внутри / proc / sys?

10

Я использую CentOS 6.2, и мне нужно создать подкаталог с именем "crypto" внутри /proc/sys. Внутри /proc/sys/cryptoмне нужно создать файл с именем, testкоторый содержит значение «1».

Idinahui
источник
Согласно двум другим ответам, /proc/это виртуальная файловая система. /proc/sys/cryptoдолжен появиться волшебным образом, как только ядро ​​загрузит драйвер, который его использует. Я подозреваю, что вы на самом деле упускаете что-то еще - можете ли вы уточнить, что вы делаете, что говорит вам создать этот файл?
Шадур

Ответы:

7

/procвиртуальная файловая система Вам нужно будет написать модуль ядра, который создает соответствующие структуры внутри него.

Игнасио Васкес-Абрамс
источник
Не могли бы вы дать мне более подробную информацию об этом, я не человек Linux, у вас есть пошаговое решение? Могу поспорить, что он просто монтирует какой-то другой каталог?
2
В IBM Developerworks даже есть учебное пособие о том, как это сделать: ibm.com/developerworks/linux/library/l-proc/index.html Я знаю, что когда-то это работало, не могу вспомнить, было ли это ядро ​​2.4 или 2.6 ...
Брюс Эдигер
7

Игнасио Васкес-Абрамс ответил правильно : файлы находятся под /procи /sysпредоставляются ядром. Если вы хотите добавить туда файл, напишите модуль ядра. Вы можете найти немного устаревшую презентацию /procинтерфейса программирования в Linux Device Drivers 3rd ed. глава 4 .

Технически, можно прыгать через обручи, чтобы файл появился в /proc/sys/crypto(или где-то еще, действительно). Сделать привязку смонтированные из /proc/sys/cryptoв промежуточном каталог, и сделать объединение монтирования каталога ступенчатого и каталоги задним наложенным на /proc/sys/crypto. Вот пример использования unionfs-fuse .

# mkdir /tmp/original /tmp/overlay
# mount --bind /proc/sys/crypto /tmp/original
# unionfs-fuse -o nonempty /tmp/overlay=RW:/tmp/original=RO /proc/sys/crypto
# echo hello >/proc/sys/crypto/test
# cat /proc/sys/crypto/test
hello
# umount /proc/sys/crypto
# umount /proc/sys/crypto
# cat /tmp/overlay/test
hello

Примечание: я не несу никакой ответственности за повреждения системы или мозга, вызванные экспериментами с этим материалом. Команды, приведенные выше, совершенно безопасны, но мешают в других областях /sysи /procмогут вызвать странное поведение.

Жиль "ТАК - перестань быть злым"
источник