linux 文件 目录 默认权限

旧城冷巷雨未停 提交于 2020-01-29 19:22:21

结论

在linux系统中任何文件/目录都有一定的权限,对于新创建的文件或目录,也会有默认的访问权限。可能是出于安全的考虑,linux系统新建文件默认没有执行权限,其最大权限为rw-rw-rw-(666),新建目录的最大权限为rwx-rwx-rwx(777)。而默认的权限与umask命令有关。

umask指定当前用户在新建文件和目录时的默认权限,其值可以通过 umask 命令得到,其值的含义与 chmod 命令是补码的关系。也可以通过 umask -S 直接查看默认权限。

例如:

[root@localhost /]# umask
0022
[root@localhost /]# umask -S
u=rwx,g=rx,o=rx

默认文件权限:777 - 022 = 755

默认目录权限:666 - 022 = 644

 

实验

实现此案例需要按照如下步骤进行。
步骤一:以用户root登入,测试umask掩码值
查看当前的umask值
新建目录udir1、文件ufile1,查看默认权限
将umask设为077,再新建目录udir2、文件ufile2,查看默认权限
请把umask值重新设置为022
命令操作如下所示:

[root@localhost ~]# whoami       //确保自己登录身份是root
root
[root@localhost ~]# umask        //查看当前umask值,文件需用最大权限777减去022 目录需要用最大权限减去022
0022
[root@localhost ~]# umask –S     //另外一种查看方式,-S选项是直接显示默认权限
u=rwx,g=rx,o=rx

分析: 查看创建目录以及文件的默认权限,是否与umask一致,注意文件默认安全起见没有赋予x执行权限

[root@localhost ~]# mkdir /udir1        //创建测试目录
[root@localhost ~]# touch /ufile1       //创建测试文件
[root@localhost ~]# ls -ld /udir1/      //查看是否与umask值相符合
drwxr-xr-x. 2 root root 4096 2月  26 16:37 /udir1/
[root@localhost ~]# ls -l /ufile1        //查看是否与umask值相符合
-rw-r--r--. 1 root root 0 2月  26 16:37 /ufile1
[root@localhost ~]# umask 077            //更改umask值
[root@localhost ~]# umask                //查看是否修改成功
0077
[root@localhost ~]# umask –S             
u=rwx,g=,o=
[root@localhost ~]# mkdir /udir2         //创建测试目录
[root@localhost ~]# touch /ufile2        //创建测试文件
[root@localhost ~]# ls -ld /udir2        //查看是否与umask值相符合
drwx------. 2 root root 4096 2月  26 16:43 /udir2
[root@localhost ~]# ls -l /ufile2        //查看是否与umask值相符合
-rw-------. 1 root root 0 2月  26 16:44 /ufile2
[root@localhost ~]# umask 022             //更改umask值为022
[root@localhost ~]# umask                 //查看是否修改成功
0022

步骤二:以用户zhangsan登入,查看当前的umask值(本题的目的主要是为了让大家知道管理员与普通用户的默认umask是不同的)
命令操作如下所示:

[root@localhost ~]# umask    //查看root的umask值
0022
[root@localhost ~]# su – zhangsan   //切换zhangsan用户身份
[zhangsan@localhost ~]$ umask       //查看zhangsan的umask值
0002

步骤三:请问为什么普通用户的家目录权限都是700
分析: 本题主要考察,useradd这条命令在执行的时候,与那些默认配置文件相关,有两个配置文件分别为/etc/default/useradd、/etc/login.defs。
命令操作如下所示:

[root@localhost ~]# grep -v "^#" /etc/login.defs | grep -v "^$" | grep -i umask
UMASK           077       //此配置文件规定创建用户家目录时,需遵循的umask值

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!