linux 文件 目录 默认权限

以你之姓@ 2021-08-24 11:50 874阅读 0赞

结论

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

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

例如:

  1. [root@localhost /]# umask
  2. 0022
  3. [root@localhost /]# umask -S
  4. u=rwx,g=rx,o=rx

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

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

实验

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

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

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

  1. [root@localhost ~]# mkdir /udir1 //创建测试目录
  2. [root@localhost ~]# touch /ufile1 //创建测试文件
  3. [root@localhost ~]# ls -ld /udir1/ //查看是否与umask值相符合
  4. drwxr-xr-x. 2 root root 4096 2 26 16:37 /udir1/
  5. [root@localhost ~]# ls -l /ufile1 //查看是否与umask值相符合
  6. -rw-r--r--. 1 root root 0 2 26 16:37 /ufile1
  7. [root@localhost ~]# umask 077 //更改umask值
  8. [root@localhost ~]# umask //查看是否修改成功
  9. 0077
  10. [root@localhost ~]# umask S
  11. u=rwx,g=,o=
  12. [root@localhost ~]# mkdir /udir2 //创建测试目录
  13. [root@localhost ~]# touch /ufile2 //创建测试文件
  14. [root@localhost ~]# ls -ld /udir2 //查看是否与umask值相符合
  15. drwx------. 2 root root 4096 2 26 16:43 /udir2
  16. [root@localhost ~]# ls -l /ufile2 //查看是否与umask值相符合
  17. -rw-------. 1 root root 0 2 26 16:44 /ufile2
  18. [root@localhost ~]# umask 022 //更改umask值为022
  19. [root@localhost ~]# umask //查看是否修改成功
  20. 0022

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

  1. [root@localhost ~]# umask //查看root的umask值
  2. 0022
  3. [root@localhost ~]# su zhangsan //切换zhangsan用户身份
  4. [zhangsan@localhost ~]$ umask //查看zhangsan的umask值
  5. 0002

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

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

发表评论

表情:
评论列表 (有 0 条评论,874人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux 文件 目录 默认权限

    结论 在linux系统中任何文件/目录都有一定的权限,对于新创建的文件或目录,也会有默认的访问权限。可能是出于安全的考虑,linux系统新建文件默认没有执行权限,其最大权