Bash:文件写入权限被拒绝

Sam*_*Sam 8 linux sudo file-permissions proc

我遵循了有关“如何使用 LKM 在 C 程序中创建 Linux Proc 文件”的教程指南

我已经成功地制作了我的模块并加载了它。现在我想回显到我的 proc 文件以确保调用应该调用的方法。

我试过了:

$ echo "hello" > /proc/procEntry123       # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123  # Same error message.
Run Code Online (Sandbox Code Playgroud)

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

use*_*686 16

但它说许可被拒绝!

它可能是这样说的,因为您在调用create_proc_entry(). (0644 转换为“u=rw,go=r”,它只授予所有者写入权限,默认为 root。)

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

重定向如>|由运行壳进行的,之前它调用sudo

您必须使用sudo sh -c "echo blah > /proc/blah",或者使用sudo -s.

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

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

如果您不希望那样,要么以 root 用户身份登录,要么使用它pam_cap来赋予自己这种cap_dac_override能力——但任何一种方法迟早都会造成麻烦。

  • 不,不要建议没有经验的人以 root 身份登录。这是灾难的秘诀! (2认同)
  • 但问题不在于您向有经验的用户建议此操作,而是访问此帖子的每个人、他们的兄弟和他们的狗都会看到您建议只是谨慎行事并以 root 身份登录。关于这个问题已经有 23 种观点,所以现在基本上有 23 人可能认为这没问题。:) 只是一个想法......话虽如此,无论我们告诉他们什么,很多人都会以root身份登录,所以我想这并不重要...... (2认同)