首页 > 代码库 > Linux中的umask系统变量的笔记
Linux中的umask系统变量的笔记
umask是一个系统变量,它的作用是:当文件被创建时,为文件的访问权限设定一个掩码。执行umask命令可以修改这个变量的值。它是一个由3个八进制数字组成的值。每个数字都是八进制值1、2、4的OR的操作结果。他们的具体含义见下面表格。其中三个数字分别对应着用户(user)、组(group)和其他用户(other)的访问权限。
数字 | 取值 | 含义 |
1 | 0 | 允许属主的任何权限 |
4 | 禁止属主的读权限 | |
2 | 禁止属主的写权限 | |
1 | 禁止属主的执行权限 | |
2 | 0 | 允许组任何权限 |
4 | 禁止组的读权限 | |
2 | 禁止组的写权限 | |
1 | 禁止组的执行权限 | |
3 | 0 | 允许其他用户的任何权限 |
4 | 禁止其他用户的读权限 | |
2 | 禁止其他用户的写权限 | |
1 | 禁止其他用户的执行权限 |
理解:将每个八进制用一个三位二进制数来表示----RWX,其中,若R=1,则禁止读权限,若W=1,则禁止写权限,若X=1,则禁止执行权限。这和chmod 命令里的八进制数用法正好相反。
当通过 open 或者 creat 调用创建文件时,mode参数将与当前的umask值进行比较。在mode参数中被设置的位如果在umask值中也被设置了,那么它就会从文件的访问权限中删除。因此,用户完全可以设置自己的环境,比如“不准创建允许其他用户有写权限的文件,即使创建该文件的程序要求该权限也不行。”这样做虽然不能只程序或用户在随后使用 chmod 命令(或者在程序中使用chmod 系统调用)来添加其他用户的写权限,但它却是能够帮助用户,使他们不必对每个新文件都去检查和设置其访问权限。
Linux中的umask系统变量的笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。