Linux umask命令:设置用户在创建文件或目录时需要减去的默认权限 BUG之神 2023-06-26 27 umask命令:设置用户在创建文件或目录时需要减去的默认权限 在Linux系统中umask值代表的是我们创建新文件/目录的默认权限设置,系统root账号默认的umask的值为0022 普通账号的umask的值为0002 查看umask值 使用命令umask命令可以查看当前帐号umask的值 Shell [root@RedHat8-2 ~]# umask 0022 [root@RedHat8-2 ~]# umask -S u=rwx,g=rx,o=rx 复制 文本 可以看到umask值有四位数字,第一位数字代表的是特殊权限忽略,后三位数字为我们看到的文件/目录的默认权限。 文件默认权限 对于目录,默认权限=777-umask 对于文件,默认权限=666-umask(文件默认无执行权限) 下方的这种算法是错的 root:目录 777-022=755 root:文件 666-022=644 非root用户:目录 777-002=775 非root用户: 文件 666-002=664 在计算默认权限时,不应用最大权限直接减去umask值,而是将umask值所对应的相应位置的权限去掉,这样才能得到正确的结果。 权限对应数字 rwx rwx rwx 第一部分(user) 读: r-- 4 第二部分(group)写: -w- 2 第三部分(其它) 执行: --x 1 如何修改默认umask值 临时修改umask值: Shell [root@Hadoop ~]#umask 700 [root@Hadoop ~]umask 022 但是这种方式并不能永久更改umask的值,只是将当前的shell临时更改 如果要永久更改umask的值,可以将命令添加至/etc/profile或/etc/bashrc文件中 要修改默认值, 请在您的 shell 配置文件中或者 /etc/profile 文件中写入一个新的 umask 值 Shell vi /etc/profile umask 022 source /etc/profile 练习题:假如将umask值设为0003,那么此时创建的目录或文件的默认权限是多少? 再次说明: 在计算默认权限时,不应用最大权限直接减去umask值,而是将umask值所对应的相应位置的权限去掉,这样才能得到正确的结果。 答案:目录的默认权限是774,文件的默认权限是664 计算过程: 可通过ls -l查看文件详细信息: 本文作者为BUG之神,转载请注明。 0人点赞