Linux umask-- 设置文件和目录的默认权限

对于新创建的文件和目录,系统会为它们设置默认的访问权限,命令格式: umask [value],value 是由4位数字组成的权限掩码:

[centos@laizili:/home/centos]umask
0002

[root@laizili centos]# umask
0022


以上是系统中 普通用户和root用户的默认权限掩码

新创建的文件的默认的权限为0666(也就是 rw-rw-rw-,所有者、属组、其他 拥有读写权限),目录的默认权限为0777(也就是 rwxrwxrwx,拥有全部权限),在创建文件时,系统先检查当前设置的umask值,然后把默认的权限值与权限掩码相减,就得到了新文件的访问权限,看例子:

[centos@laizili:/home/centos]touch testfile && ll testfile
-rw-rw-r--. 1 centos centos 0 Aug  8 21:03 testfile

# 文件默认权限为 0666,普通用户的umask为 0002,所以创建的文件新文件权限为 0664(即 -rw-rwr--)




[centos@laizili:/home/centos]mkdir dirtest && ll -d dirtest 
drwxrwxr-x. 2 centos centos 6 Aug  8 21:07 dirtest

# 目录默认权限为 0777,普通用户的umask为0002, 所以创建的新目录的权限为 0775(即 rwxrwxr-x)



[centos@laizili:/home/centos]umask 0022
[centos@laizili:/home/centos]touch testfile2; ls -l testfile2
-rw-r--r--. 1 centos centos 0 Aug  8 21:43 testfile2

# 修改umask后,默认创建的文件权限
#(注:umask只在当前登录的shell及其子shell生效,重启系统或登出shell umask将被还原为系统默认值,要想长期生效,需要修改相关配置文件)

附:

文件和目录权限的控制对象包括3类:所有者、组用户、其他用户;每个对象的权限位共三位依次代表 读、写、执行权限

权限 数值 说明
r 4
w 2
x 1 执行

 

例:

[centos@laizili:/home/centos/code/the_vim_way]ll hello.c 
-rw-rw-r--. 1 centos centos 62 Aug  7 18:57 hello.c

# 解释
# 从左往右依次看 第一个 - 代表这是一个普通文件
# rw-rw-r--为文件权限描述:
# 所有者centos(第一个)有用读写权限,组用户centos(第二个)拥有读写权限,其他用户只有读权限
# 这里权限位上的 - 代表无权限

 

你可能感兴趣的:(Linux)