精华内容
下载资源
问答
  • linux系统umask值及其对应的文件权限1)简单好用的加减法计算文件权限计算小结论:创建文件默认最大权限为666(-rw-rw-rw-),默认创建的文件没有可执行权限x位。对于文件来说,umask的设置是在假定文件拥有八进制666的...

    linux系统umask值及其对应的文件权限

    1)简单好用的加减法计算

    文件权限计算小结论:

    创建文件默认最大权限为666(-rw-rw-rw-),默认创建的文件没有可执行权限x位。

    对于文件来说,umask的设置是在假定文件拥有八进制666的权限上进行的,文件的权限就是666减去umask的掩码数值;重点在接下来的内容,如果umask的部分位或全部位为奇数,那么,在对应为奇数的文件权限位计算结果分别再加1就是最终文件权限值。

    创建目录默认最大权限777(-rwx-rwx-rwx),默认创建的目录属主是有x权限,允许用户进入。对于目录来说,umask的设置是在假定文件拥有八进制777权限上进行,目录八进制权限777减去umask的掩码数值。

    文件权限的一般计算方法:

    默认文件权限计算方法

    1)假设umask值为:022(所有位为偶数)

    6 6 6==>文件的起始权限值

    0 2 2 -==>umask的值

    ---------

    6 4 4

    2)假设umask值为:045(其他用户组位为奇数)

    6 6 6==>文件的起始权限值

    0 4 5 -==>umask的值

    ---------

    6 2 1==>计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。

    0 0 1 +

    ---------

    622 ==>真实文件权限

    默认目录权限计算方法

    7 7 7==>目录的起始权限值

    0 2 2 -==>umask的值

    ---------

    7 5 5

    规范成图表如下:

    实例一:umask所有位全为偶数时,多数读者对这个例子无疑问

    [root@oldboy oldboy]# umask

    0022#→umask当前数值

    [root@oldboy oldboy]# umask 044#→更改为044

    [root@oldboy oldboy]# umask

    0044

    [root@oldboy oldboy]# mkdir umask_test#→建目录测试

    [root@oldboy oldboy]# ls -ld umask_test

    drwx-wx-wx 2 root root 4096 Nov 12 19:21

    umask_test#→对应数字权限为733,是不是符合上面的计算方法?

    [root@oldboy oldboy]# touch umask_test.txt

    [root@oldboy oldboy]# ls -l umask_test.txt

    -rw--w--w- 1 root root 0 Nov 12 19:21

    umask_test.txt#→对应数字权限为622,是不是符合上面的计算方法?

    实例二:umask值的部分或全部位为奇数时,这个是读者疑问最大的

    当umask值的其他属组位为奇数时

    [root@oldboy oldboy]# umask 0023

    [root@oldboy oldboy]# mkdir dir

    [root@oldboy oldboy]# touch file

    [root@oldboy oldboy]# ls -l

    总计4

    drwxr-xr-- 2 root root 4096 11-15 01:04 dir#→对应数字权限为754

    -rw-r--r-- 1 root root0 11-15 01:04 file#→对应数字权限为644

    提示:根据前面的计算方法,当umask为0023时,dir的权限应该是754,而file的权限应该为643,但是由于umask的其他组位为奇数,因此最终权限为其他组位加1,即643加001(对应实践结果644)。注意:umask为偶数的位不要加1。

    实例三:umask值的所有位为奇数时

    [root@oldboy oldboy]# umask 0551

    [root@oldboy oldboy]# umask

    0551

    umask为0551根据掩码方法计算:目录权限为226,文件权限115,而实际文件权限为226(umask的三个权限位都是奇数,所以,每个位分别加1就是正确的权限)

    [root@oldboy oldboy]# mkdir dir5

    [root@oldboy oldboy]# touch file5

    [root@oldboy oldboy]# ls -l

    总计4

    d-w--w-rw- 2 root root 4096 11-15 01:27

    dir5#→目录对应数字权限为226

    --w--w-rw- 1 root root0 11-15 01:27 file5#→目录对应数字权限为226

    再来一例验证下:

    [root@oldboy oldboy]# umask 0333

    [root@oldboy oldboy]# umask

    0333

    umask为0333根据掩码方法计算:目录权限为444,文件权限333,而实际文件权限为444(umask的三个位都是奇数,所以,每个位分别加1就是正确的权限)

    [root@oldboy oldboy]# mkdir dir3

    [root@oldboy oldboy]# touch file3

    [root@oldboy oldboy]# ls -l|grep 3

    dr--r--r-- 2 root root 4096 11-15 01:30

    dir3#→目录对应数字权限为444

    -r--r--r-- 1 root root0 11-15 01:30 file3#→目录对应数字权限为444

    2)通过8进制字母符号计算(记忆此法也可)

    拿上面的实例3验证。

    [root@oldboy oldboy]# umask 551

    umask值为551,对应的权限为-r-xr-x--x,即所有的文件和目录都取消权限中的-r-xr-x--x权限。

    文件权限:【-rw-rw-rw-】-【-r-xr-x--x】=【--w--w--rw-】=226(文件的x位上没有x,就不用取消了)

    目录权限:【-rwxrwxrwx】-【-r-xr-x--x】=【--w--w--rw-】=226(目录的x位上有x,直接取消即可)

    继续拿前面的例子验证:

    [root@oldboy oldboy]# umask 333

    umask值为333,对应的权限为-wx-wx-wx,即所有的文件和目录都取消权限中的-wx-wx-wx权限。

    文件权限:【-rw-rw-rw-】-【-wx-wx-wx】=【-r--r--r--】=444(文件的x位上没有x,就不用取消了)

    目录权限:【-rwxrwxrwx】-【-wx-wx-wx】=【-r--r--r--】=444(目录的x位上有x,直接取消即可)

    3)通过二进制方法计算(不好记忆不推荐)

    通过进制之间转换,八进制转成二进制来计算。

    0022

    022

    ----------#→八进制转换二进制

    01010

    说明:把umask值八进制转换成二进制

    666

    ------------#→八进制转换二进制

    110 110110

    说明:把文件默认最大权限值八进制转换成二进制

    01010#→umask二进制

    -------------#→与运算

    110 110110#→文件最大权限二进制

    -------------

    000 010010

    -------------#→转换八进制

    022

    说明:最后得到的值是022,然后使用666减去022,那么文件的创建权限就是644

    [root@oldboy oldboy]# umask 551

    [root@oldboy oldboy]# umask

    0551

    551

    -------------#→转换二进制

    101101001#→umask二进制

    -------------#→与运算

    110110110#→文件最大权限二进制

    -------------

    100100000

    -------------#→转换八进制

    440

    说明:最后得到的值是440,然后使用666减去440,那么文件的创建权限就是226。

    展开全文
  • 在Linux中设置UMASK值

    2021-05-11 14:09:16
    umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。...

    umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。

    对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查看当前用户的umask值。

    [root@localhost ~]# umask

    0022

    umask值一共有4组数字,其中第1组数字用于定义特殊权限,我们一般不予考虑,与一般权限有关的是后3组数字。

    默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。因为x执行权限对于目录是必须的,没有执行权限就无法进入目录,而对于文件则不必默认赋予x执行权限。

    对于root用户,他的umask值是022。当root用户创建目录时,默认的权限就是用最大权限777去掉相应位置的umask值权限,即对于所有者不必去掉任何权限,对于所属组要去掉w权限,对于其他用户也要去掉w权限,所以目录的默认权限就是755;当root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。

    可以通过下面的测试操作来了解umask值。

    [root@localhost ~]# mkdir directory1 #创建测试目录

    [root@localhost ~]# ll -d directory1 #目录的默认权限是755

    drwxr-xr-x. 2 root root 4096 12月 2 13:08 directory1

    [root@localhost ~]# touch file1 #创建测试文件

    [root@localhost ~]# ll file1 #文件的默认权限是644

    -rw-r--r--. 1 root root 0 12月 2 13:09 file1

    通过umask命令可以修改umask值,比如将umask值设为0077。

    [root@localhost ~]# umask 0077

    [root@localhost ~]# umask

    0077

    此时创建的目录默认权限为700,文件默认权限是600:

    [root@localhost ~]# mkdir directory2

    [root@localhost ~]# ll -d directory2

    drwx------. 2 root root 4096 12月 2 13:14 directory2

    [root@localhost ~]# touch file2

    [root@localhost ~]# ll file2

    -rw-------. 1 root root 0 12月 2 13:14 file2

    考虑一下,如果将umask值设为0003,那么此时创建的目录或文件的默认权限是多少?

    正确的结果应该是:目录的默认权限是774,文件的默认权限是664。在计算默认权限时,不应用最大权限直接减去umask值,而是将umask值所对应的相应位置的权限去掉,这样才能得到正确的结果。

    umask命令只能临时修改umask值,系统重启之后umask将还原成默认值。如果要永久修改umask值,需要修改/etc/profile文件或是修改/etc/bashrc文件,例如要将默认umask值设置为027,那么可以在文件中增加一行“umask 027”。

    /etc/profile和/etc/bashrc都可以用于设置用户登录系统时自动执行某些操作,他们的区别是/etc/profile只在用户第一次登录时被执行,而/etc/bashrc则在用户每次登录加载Bash Shell时都会被执行。

    因而,如果是修改/etc/profile文件,将只对新创建的用户生效;而如果是修改/etc/bashrc文件,则对所有用户都生效。

    展开全文
  • 在Linux系统中umask值代表的是我们创建新文件/目录的默认权限设置,系统root账号默认的umask的值为0022 普通账号的umask的值为0002.2、查看umask值 使用命令umask命令可以查看当前帐号umask的值 [root@RedHat8-2 ~...

    1、umask说明
    在Linux系统中umask值代表的是我们创建新文件/目录的默认权限设置,系统root账号默认的umask的值为0022 普通账号的umask的值为0002

    2、查看umask值
    使用命令umask命令可以查看当前帐号umask的值

    [root@RedHat8-2 ~]# umask
    0022
    [root@RedHat8-2 ~]# umask -S
    u=rwx,g=rx,o=rx
    
    [root@RedHat8-2 ~]# su - stu10
    Last login: Fri Jun 11 14:05:19 CST 2021 on pts/0
    [stu10@RedHat8-2 ~]$ umask
    0002
    [stu10@RedHat8-2 ~]$ umask -S
    u=rwx,g=rwx,o=rx

    可以看到umask值有四位数字,第一位数字代表的是特殊权限忽略,后三位数字为我们看到的文件/目录的默认权限。
    账号能有的目录最大权限为777,文件能有的最大权限为666,我们根据此权限对应umask的值就能够计算出该账号的默认文件/目录权限。

    root:目录 777-022=755
    root:文件 666-022=644
    stu10:目录 777-002=775
    stu10: 文件 666-002=664
    
    权限对应数字
    rwx rwx rwx
    第一部分(user) 读:  r--    4
    第二部分(group)写:  -w-    2
    第三部分(其它) 执行: --x    1

    3、验证测试

    root测试:

    [root@RedHat8-2 ~]# whoami
    root
    [root@RedHat8-2 ~]# umask 
    0022
    [root@RedHat8-2 ~]# mkdir umask
    [root@RedHat8-2 ~]# cd umask/
    [root@RedHat8-2 umask]# mkdir dir
    [root@RedHat8-2 umask]# touch file
    [root@RedHat8-2 umask]# ll
    total 0
    drwxr-xr-x 2 root root 6 Jun 11 14:27 dir
    -rw-r--r-- 1 root root 0 Jun 11 14:27 file

    root新建默认目录权限为:rwxr-xr-x=755 / 777-022=755
    root新建默认文件权限为:rw-r--r--=644 / 666-022=644

    普通账号测试:

    [stu10@RedHat8-2 ~]$ whoami
    stu10
    [stu10@RedHat8-2 ~]$ umask
    0002
    [stu10@RedHat8-2 ~]$ ls
    [stu10@RedHat8-2 ~]$ mkdir stu-dir
    [stu10@RedHat8-2 ~]$ touch stu-file
    [stu10@RedHat8-2 ~]$ ll
    total 0
    drwxrwxr-x 2 stu10 stu10 6 Jun 11 15:14 stu-dir
    -rw-rw-r-- 1 stu10 stu10 0 Jun 11 15:14 stu-file

    stu10普通账号新建默认目录权限为:rwxrwxr-x=775 / 777-002=775
    stu10普通账号新建默认文件权限为:rw-rw-r--=664 / 666-002=664

    4、修改umask值测试
    我们将umask的值设置成0027进行测试

    [root@RedHat8-2 ~]# umask
    0022
    [root@RedHat8-2 ~]# umask 0027
    [root@RedHat8-2 ~]# umask
    0027
    [root@RedHat8-2 ~]# umask -S
    u=rwx,g=rx,o=
    [root@RedHat8-2 ~]# cd umask/
    [root@RedHat8-2 umask]# mkdir dir-027
    [root@RedHat8-2 umask]# touch file-027
    [root@RedHat8-2 umask]# ll
    total 0
    drwxr-xr-x 2 root root 6 Jun 11 14:27 dir
    drwxr-x--- 2 root root 6 Jun 11 15:32 dir-027
    -rw-r--r-- 1 root root 0 Jun 11 14:27 file
    -rw-r----- 1 root root 0 Jun 11 15:33 file-027

    我们可以对比两次测试权限的变化
    此时root新建默认目录权限为:rwxr-x---=750 / 777-027=750
    此时root新建默认文件权限为:rw-r-----=640 / 666-027=640

    注:
    但是这种方式并不能永久更改umask的值,只是将当前的shell临时更改
    如果要永久更改umask的值,可以将命令添加至/etc/profile或/etc/bashrc文件中
    对已存在文件/目录无效,只会对新建生效。

    展开全文
  • umask是用来控制创建文件模式的命令,它为创建文件定义初始化的权限位,uamsk遵循POSIX的标准,因为它会影响当前shell的执行环境,通常内置到shell中查看当前umask值➜ umask000计算umask值当创建新文件时,通常都会...

    umask是用来控制创建文件模式的命令,它为创建文件定义初始化的权限位,uamsk遵循POSIX的标准,因为它会影响当前shell的执行环境,通常内置到shell中

    查看当前umask值

    ➜ umask

    000

    计算umask值

    当创建新文件时,通常都会有默认的权限位,这是因为系统会根据我们设置umask值来为新文件设置权限,有时我们需要更改此值,需要重新计算umask的值,假设我们系统的umask值是027

    0 第一位即user的所有权 7-0 7

    2 第二位即group的所有权 7-2 5

    7 第三位即other的所有权 7-7 0

    十进制二进制 含义

    0 000 没有权限

    1 001 只执行

    2 010 只写

    3 011 写,执行

    4 100 只读

    5 101 读,执行

    6 110 读,写

    7 111 读写,执行

    从表中可以看到创建新文件时默认设置的权限是用最高权限(777)减去umak值(027)即750,对应到第二个表就是user为读写,执行,group为读,执行,other则没有权限,但在Linux中不允许创建有可执行权限的新文件,因此需要去掉user,group,other执行权限1,因此在这个示例中默认的新文件权限为640,而目录则没有限制,新创建的文件权限最高是666,目录可以是777

    另一种计算方式

    比如umask=022;文件默认最高权限为666,则文件的初始权限就为:rw-rw-rw- 减去 ----w--w- 得到 rw-r--r-- 的文件初始权限,umask值代表着,被 “抛弃” 的权限

    Thank SmartA

    设置umask值

    ➜ umask 0000 #十进制的方式

    ➜ touch test

    ➜ stat -c %a test

    666

    命令的方式仅在当前会话有效,可以在配置文件设置永久生效~/.bashrc,/etc/bashrc

    Ubuntu

    vim /etc/login.defs

    展开全文
  • 在Linux中设置umask值以及umask函数

    千次阅读 2019-05-24 13:24:03
    umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。 对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是...
  • umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。 对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002...
  • Linux umask值默认权限分配

    千次阅读 2019-02-13 19:22:42
    (2)若umask值有任意一位奇数(如035),即奇数位在相减后每位要加1,则创建文件的权限值为(666-035=631+011=642) 4 测试不同umask值创建目录的权限 # 目录起始权限值:777 # umask 022 [root@oldboy ...
  • centos下的umask值的更改

    千次阅读 2018-09-03 14:41:17
    1.全局的设置 更改/etc/profile文件,如下处: if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`"... umask 002 else umask 022 fi 然后执行命令:source /etc/profile,使更...
  • 目标:将umask改为003,在root用户和普通用户下创建文件和目录,查看权限是否分别符合777-003和666-003? root用户下 [root@sotneC6 ~]# umask 0022 [root@sotneC6 ~]# umask 0003 # 设置umask为0003 [root@sotneC...
  • 缘起: 1、此文的撰写特别为感谢51cto的博客...3、有一些网友和学生总纠结这个umask问题,到处搜索也找不到好的说明文章。  另:本文最值得博友思考的地方不是内容,而是勤于思考并较周全的努力实践的学习心态,然后
  • 这篇教程教将指导 Linux 用户如何永久性地更改其系统的 Umask 。特别建议全新安装的用户学习(想知道为什么的话,请移步下文) Umask 是什么?解释下,UMASK 代表用户掩码或用户文件创建掩码,它用于新创建的文件...
  • C系统默认的umask值是0022 D每个系统用户都可以设置自己的umask值 答案为ABD 新建文件的权限=666-umsak值 新建目录的权限=777-umask值 umask定义对象是用户,不受操作系统的统一定义。故根本没有系统默认...
  • 修改umask值

    千次阅读 2012-10-25 11:46:05
    临时修改(只是当前终端有效,下次登录就没有了) umask 000 注:000为权限所表示的八进制数据,如:022, 002 永久修改: 修改/etc/bashrc 文件 行8~行12 ... then umask 002else umask 0...
  • 如何计算umask

    2021-05-16 16:41:43
    umask 命令允许你设定文件创建时的缺省权限,对应每一类用户(文件主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行...
  • 目录的默认权限是777-umask值,文件的默认权限是666-umask值,如果umask值中有任意一位为奇数,用777或666减去umask值后的结果,如果有奇数的就加1,例如umask 005后,创建文件的默认权限为662,如果用666-005=66
  • 下表是umask值与权限的对照表:  umask 文件 目录  --------------------  0 6 7  1 6 6  2 4 5  3 4 4  4 2 3  5 2 2  6 0 1  7 0 0  --...
  • 修改linux的umask值

    2021-05-11 17:22:32
    修改linux的umask值发布时间:2007-12-11 10:07:59来源:红联作者:Oracleust您知道当你建立一个新的档案或目录时,他的预设属性会是什么吗?呵呵!那就与 umask 有关了!那么 umask 是在搞什么呢?基本上, umask 就是...
  • 补充上一篇文章中的local_umask与anon_umask值的介绍。在Linux系统中,当我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢? 在vsftpd配置中有local_umask项: local_umask=022 首先,我们要搞清楚...
  • umask值为022,则默认目录权限为755,默认文件权限为644   umask: 022 ==> 000 010 010 directory: 755 ==> 111 101 101 file: 644 ==> 110 100 100 (remove x authority)
  • umask 默认权限是 Linux 权限的一种,主要用于让 Linux 中的新建文件和目录拥有默认权限。Linux 是一个比较安全的操作系统,而安全的基础就是权限,所以,在 Linux 中所有的文件和目录都要有基本的权限,新建的文件...
  • umask值修改 暂时修改   暂时修改的方式,可以通过umask命令来更改,比如计算出权限对应的umask值要改为027,则直接用该用户登录Linux系统后,使用命令umask 027即可。但是,一旦用户退出登录后,umask将恢复...
  • umask使用详解

    万次阅读 多人点赞 2018-10-15 11:12:59
    A 什么是umask?  当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。...一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。...
  • 修改 umask

    千次阅读 2014-09-22 09:48:19
    uamsk 指令,用于文件和目录的... 在根用户下,用 vi 打开 /etc/bashrc 文件,然后找到 设置 umask 的行,此时就可以修改了。  修改完保存,退出,记住,此时只有先关掉 命令行终端,下次再启动时生效。
  • 系统之后创建一个文件总是有一个默认权限的,使用umask设置了用户创建...一般在/etc/profile、$ [home]/.bash_profile或$[home]/.profile中设置umask值。umask命令格式umask [-p] [-S] [mode]umask 函数格式及头文件...
  • Linux 的umask详解

    2021-05-16 11:37:03
    1.由权限得到umask值umask是一个系统变量,是一个由3个八进制数字组成的,具体含义见表;每个数字都是八进制1、2、4的OR操作结果。作用:当文件被创建时,为文件的访问权限设定一个掩码。执行umask命令可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,061
精华内容 13,224
关键字:

umask值

友情链接: S2_LED.rar