Bash:文件写入权限被拒绝

Bash:文件写入权限被拒绝

我关注了教程指南关于“如何使用 LKM 在 C 程序中创建 Linux Proc 文件”。

我已经成功创建了模块并将其加载。现在我想回显到我的 proc 文件以确保调用应该调用的方法。

我努力了:

$ echo "hello" > /proc/procEntry123       # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123  # Same error message.

我如何提升权限来回应此文件?我是此系统的唯一用户和管理员。

答案1

但它说许可被拒绝!

它可能这样说是因为您在调用时设置了限制性权限create_proc_entry()。(0644 转换为“u = rw,go = r”,仅向所有者授予写权限,默认为root。)

我在它前面加上了“sudo”——同样的消息。

重定向(例如>或)|由正在运行的 shell 执行,它调用sudo

您必须使用sudo sh -c "echo blah > /proc/blah",或者运行带有的 root shell sudo -s

我是唯一的用户——这是我自己的私人机器!

在 Linux 中这无关紧要。无论谁使用计算机,文件权限都会被强制执行。

如果你不想这样做,可以以 root 身份登录,或使用pam_cap为自己授予cap_dac_override权限 - 但无论哪种方法将要迟早都会惹麻烦。

相关内容