作者uorol (′‧ω‧‵)
看板LinuxDev
標題[問題] filp_open 沒有產生正確的權限
時間Wed Dec 6 10:57:26 2017
Dear all
我嘗試在 kernel 中開啟一個檔案來做 dump,
其中在 filp_open 這個函數有點疑惑
// Open & Create file
static struct file *dump_fp = NULL;
struct file *OpenFile(char *path, int flag, int mode){
struct file *fp;
InitKernelEnv();
fp = filp_open(path, flag, 0);
printk(KERN_ERR "filp_open at %p\n", fp);
DinitKernelEnv();
if (IS_ERR(fp)) {
long err = PTR_ERR(fp);
printk(KERN_ERR "Occurs error: %ld\n", err);
return NULL;
}
return fp;
}
我傳入的參數如下:
dump_fp = OpenFile(MY_FILE, (O_RDWR | O_CREAT), 0666);
不過生成的 MY_FILE 權限卻是 ---------- (我預期應該要是 -rw-rw-rw-)
變成還要去手動 chmod 變成 666 才能正確使用
不知道版上的大神有沒有遇過這種問題...
我的 Kernel 版本是 4.1.15
All suggestions are welcome, thank you QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.79.73
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1512529052.A.108.html
※ 編輯: uorol (118.163.79.73), 12/06/2017 10:58:53
→ dododavid006: 不是應該把 mode 傳給 filp_open 的第三個參數嗎 12/06 11:04
→ galic: fp = filp_open(path, flag, 0); 12/06 11:16
→ galic: ↑ 黑人問號 12/06 11:16
→ uorol: ......抱歉我寫錯了 XDDD 12/06 12:23
→ uorol: 來測試一下正確傳入是否能 work QQ 12/06 12:24
→ uorol: _(:3 」∠ )_ 他現在可以生成 -rw------- 了 感謝 12/06 12:29