我正在运行 CentOS 6.2,我需要在内部创建一个名为“crypto”的子目录/proc/sys
。在内部/proc/sys/crypto
,我需要创建一个名为test
包含值“1”的文件。
答案1
伊格纳西奥·巴斯克斯·艾布拉姆斯的答案是正确的/proc
:和下的文件/sys
由内核提供。如果要在那里添加文件,请编写内核模块。您可以/proc
在以下位置找到稍微过时的编程接口演示:Linux 设备驱动程序第三版。ch. 4。
从技术上讲,可以跳过重重困难使文件出现在/proc/sys/crypto
(或其他任何地方,实际上)。做一个绑定挂载from/proc/sys/crypto
到暂存目录,并创建一个联合安装的暂存目录和覆盖目录回到/proc/sys/crypto
.这是一个使用的示例UnionFS熔断器。
# 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
会导致奇怪的行为。
答案2
/proc
是一个虚拟文件系统。您将需要编写一个内核模块来在其中创建适当的结构。
答案3
您可能不想这样做,但如果您这样做需要要在 /proc 中创建目录,这就是内核模块中所需的全部内容
#include <linux/module.h>
#include <linux/proc_fs.h>
static int procfoo_init(void) {
proc_mkdir("foo", NULL);
return 0;
}
module_init(procfoo_init);
一旦你在 /proc 中有了一个挂载点,你就可以将一个普通的 fs 路径绑定到它,并在用户空间的目录中执行你喜欢的操作。
mount --bind /var/lib/foo /proc/foo
一旦你升级内核,这个问题就会被破坏,而且几乎肯定不是操作所需要的,但它就是这样,因为它出现在搜索引擎中。