【发布时间】:2010-11-23 19:37:14
【问题描述】:
我正在编写内核模块(Linux 中的 C),我想更改其中其他文件的权限。 任何解决方案? 因为我在内核中,所以我不能使用 chmod 系统调用和...... 感谢您的帮助
这是我的 Makefile:
> obj-m += ca.o
>
> all:
> make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
>
> clean:
> make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
这是我的代码:
> #include <linux/string.h>
> #include <linux/mm.h>
> /* Snip, tons of includes (all of them :))*/
> #include <linux/delay.h> .... int procfile_write(struct file *file,
> const char *buffer, unsigned long
> count,
> void *data) { ... sys_chmod(path, per); ... } ...
制作时会发出警告:
WARNING: "sys_chmod" [file] undefiened
当使用“sudo insmod”加载模块时,会出现以下错误:
Unknown sybol in module
似乎这个错误尤其发生在内核模块中。任何想法?再次感谢!
【问题讨论】:
-
您要更改哪些文件的权限?在内核模块中?
-
普通文件。就像家里的那些等等。唯一的一点是我的代码在内核中。
-
嗯,我得听听这个“为什么”。您可以从用户空间执行此操作,那么为什么要在内核中执行此操作?
-
@derobert - 有时,无知是幸福 ;)
-
好吧,我打算制作一个内核模块,它可以做很多类似的事情。我总是喜欢了解更多:D
标签: c linux file-permissions kernel-module