Ist es möglich, ein Verzeichnis und eine Datei in / proc / sys zu erstellen?

10

Ich verwende CentOS 6.2 und muss ein Unterverzeichnis mit dem Namen "crypto" erstellen /proc/sys. Im Inneren /proc/sys/cryptomuss ich eine Datei mit dem Namen test"1" erstellen .

Idinahui
quelle
Wie aus den beiden anderen Antworten hervorgeht, /proc/handelt es sich um ein virtuelles Dateisystem. /proc/sys/cryptosollte magisch erscheinen, sobald der Kernel einen Treiber lädt, der ihn verwendet. Ich vermute, dass Ihnen tatsächlich etwas anderes fehlt. Können Sie näher erläutern, was Sie tun, um diese Datei zu erstellen?
Shadur

Antworten:

7

/procist ein virtuelles Dateisystem. Sie müssen ein Kernelmodul schreiben, das die entsprechenden Strukturen darin erstellt.

Ignacio Vazquez-Abrams
quelle
Könnten Sie mir mehr Details dazu geben, ich bin keine Linux-Person, die Sie Schritt für Schritt gelöst haben? Ich wette, es wird dann nur ein anderes Verzeichnis gemountet?
2
IBM Developerworks hat sogar ein Tutorial dazu: ibm.com/developerworks/linux/library/l-proc/index.html Ich weiß, dass dies einmal funktioniert hat. Ich kann mich nicht erinnern, ob es sich um einen 2.4- oder 2.6-Kernel handelte ...
Bruce Ediger
7

Die Antwort von Ignacio Vazquez-Abrams ist richtig : Dateien unter /procund /syswerden vom Kernel bereitgestellt. Wenn Sie dort eine Datei hinzufügen möchten, schreiben Sie ein Kernelmodul. Eine leicht veraltete Darstellung der /procProgrammierschnittstelle finden Sie in Linux Device Drivers 3rd ed. CH. 4 .

Technisch ist es möglich, durch Rahmen zu springen, um eine Datei in /proc/sys/crypto(oder wirklich irgendwo anders) erscheinen zu lassen. Erstellen Sie einen Bind-Mount von /proc/sys/cryptozu einem Staging-Verzeichnis und machen Sie einen Union-Mount des Staging-Verzeichnisses und eines Overlay-Verzeichnisses zurück zu /proc/sys/crypto. Hier ist ein Beispiel mit 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

Hinweis: Ich lehne jede Verantwortung für System- oder Hirnschäden ab, die durch das Experimentieren mit diesem Material verursacht werden. Die obigen Befehle sind absolut sicher, aber das Durcheinander mit anderen Bereichen von /sysund /prockann seltsames Verhalten verursachen.

Gilles 'SO - hör auf böse zu sein'
quelle