1. umask的中文意思是用户权限“掩码”, 掩码中相应的位被设置了, 它所对应的权限就会被“禁止/拒绝”
2. 更改进程的umask值并不影响其父进程(通过是shell)的umask值
3. linux下默认, 创建文件的权限是666(rw-rw-rw), 创建目录的权限是777(rwxrwxrwx), 但是, 实际上open/creat调用中的标志是设置文件访问权限的请求, 所请求的权限是否被设置取决于当时的umask值, 如何取决, 见4
4. open/creat调用里给出的模式值与umask的“位反”做”位与“操作, 即得到创建文件的权限
网上一些说法的误解:
umask值为022, 则创建文件的权限为644, 所以umask值为033, 则创建文件的权限为633, 实际上为644
umask 022 不仅仅可以这样用, 也可以直观的umask u=rw,g=rw,o= 使用来设置umask, 这时的umask值为117
umask -S 打印符号形式的umask值(即允许设置的权限位)
umask也有系统调用, 可以在进程里面设置当前进程在创建文件时使用的umask值
阅读(1093) | 评论(0) | 转发(0) |