• int mkdir(const char *pathname, mode_t mode)
  • int open(const char *pathname, int flags, mode_t mode)
  • mode_t umask(mode_t mask)

mkdir, open 最後一個參數都是用來設定權限,我一般都設定為 0777,也就是權限全開。但是每次執行完,所得到的權限卻是 0755,百思不得其解。

原來 linux 還有一個東東叫做 process's file mode creation mask,每次執行 open, mkdir 時,權限設定值跟 process's file mode creation mask 做 AND 之後才是真的權限。

umask 預設值為 022,0777 & ~022 = 0755,所以每次所得到的權限都是 0755。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()