我跟著這個教程指南關於「如何使用 LKM 在 C 程式中建立 Linux 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
功能 – 但無論哪種方法將要遲早會帶來麻煩。