2012-09-24 57 views
1

Init.rcMKDIR在init.rc

號線,264 --- mkdir /data/misc/radio 0770 radio radio

我想更改/數據/其它/收音機的權限0775.

我有寫在旁邊上面的線: 線號-265 --- chmod 0775 /data/misc/radio

如果我改變線路264本--- mkdir /data/misc/radio 0775 radio radio ..

這有什麼線的問題? 有人說,如果mkdir失敗(如果目錄已經存在),那麼權限不會被設置爲0775.所以爲了確保當mkdir失敗時權限變爲0775,我們在不同的行寫了chmod命令。

但是有太多的mkdir命令使不同的目錄具有不同的權限,那麼如果我們按照上面的方案進行操作,那麼我們應該提供與每個mkdir命令相對應的不同的chmod命令?

回答

1

當init執行init.rc腳本時,如果該目錄不存在您提供的權限,那麼mkdir將創建該目錄,如果該目錄存在,則根據mkdir命令設置權限。

從AOSP系統/核心/ INIT/builtins.c在功能

do_mkdir()

ret = make_dir(args[1], mode); 
/* chmod in case the directory already exists */ 
if (ret == -1 && errno == EEXIST) { 
    ret = _chmod(args[1], mode); 
} 
if (ret == -1) { 
    return -errno; 
}