Apakah mungkin membuat direktori dan file di dalam / proc / sys?

10

Saya menjalankan CentOS 6.2 dan saya perlu membuat subdirektori bernama "crypto" di dalamnya /proc/sys. Di dalam /proc/sys/crypto, saya perlu membuat file bernama testyang berisi nilai "1".

Idinahui
sumber
Seperti dua jawaban lainnya, /proc/adalah sistem file virtual. /proc/sys/cryptoakan muncul secara ajaib saat kernel memuat driver yang menggunakannya. Saya menduga Anda benar-benar kehilangan sesuatu yang lain - dapatkah Anda menguraikan apa yang Anda lakukan yang memberi tahu Anda untuk membuat file itu?
Shadur

Jawaban:

7

/procadalah sistem file virtual. Anda perlu menulis modul kernel yang menciptakan struktur yang sesuai di dalamnya.

Ignacio Vazquez-Abrams
sumber
Bisakah Anda memberi saya rincian lebih lanjut tentang itu, saya bukan orang linux Anda mendapat solusi langkah demi langkah? Saya yakin itu hanya me-mount beberapa direktori lain?
2
IBM Developerworks bahkan memiliki tutorial tentang cara melakukan ini: ibm.com/developerworks/linux/library/l-proc/index.html Saya tahu ini berfungsi, sekali waktu, tidak dapat mengingat apakah itu kernel 2.4 atau 2.6 kernel ...
Bruce Ediger
7

Jawaban Ignacio Vazquez-Abrams benar : file-file di bawah /procdan /sysdisediakan oleh kernel. Jika Anda ingin menambahkan file di sana, tulis modul kernel. Anda dapat menemukan presentasi yang sedikit tanggal dari /procantarmuka pemrograman di Linux Device Drivers 3rd ed. ch. 4 .

Secara teknis, dimungkinkan untuk melompat melalui lingkaran untuk membuat file muncul /proc/sys/crypto(atau di tempat lain, sungguh). Buat bind mount dari /proc/sys/cryptoke direktori staging, dan buat union mount dari direktori staging dan direktori overlay kembali /proc/sys/crypto. Berikut ini contoh menggunakan 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

Catatan: Saya melepaskan tanggung jawab atas kerusakan sistem atau otak yang disebabkan oleh percobaan dengan hal ini. Perintah di atas sangat aman, tetapi mengacaukan area lain /sysdan /procdapat menyebabkan perilaku aneh.

Gilles 'SANGAT berhenti menjadi jahat'
sumber