Linux下的权限掩码umask

权限掩码umask

我们都知道在linux下创建一个文件或者目录之后是可以通过chmod等命令进行权限设置,来达到给当前用户、用户组用户以及其他用户分配不同的访问权限。那么,我们新创建的目录和文件本身也是有它的默认权限的,这个默认权限是什么,就是由权限掩码umask所确定的。它的功能可以说与chmod刚好相反的,代表默认拿走的也就是说不要的权限。

所以说,umask是用来指定"目前用户在新建文件或者目录时候的权限默认值"。那我们 如何得知或者设置这个umask呢?

在linux下我们查看umask的方式有两种,一种可以直接输入umask,就可以看到数字形态的权限设置数字串,一种则是加-S(Symbolic)参数,就能以符号类型的方式来显示出权限了。先进行一次查看,显示如下所示:
=====================================
[email protected]:~# umask
0022
[email protected]:~# umask -S
u=rwx,g=rx,o=rx
[email protected]:~#

=====================================
我们在这里看到的0022有四位数字,第一位代表的是特殊权限,我们这里先不做讨论。

然而,在目录和文件的默认权限属性是不同的,因为对于一个目录来说它的x权限也就是执行权限是很重要的,进入目录等操作都是需要对目录具有执行权限的,而对于文件来说,一般情况都是用于数据的记录操作,所以一般不需要执行权限。在linux下一般默认的情况是这样的:

1、如果用户创建的是目录,则默认的权限是,为755,drwxr-xr-x

2、如果创建的是文件,默认没有x权限,那么就只有r、w两项,默认为644,-rw-r--r--

那么上面的权限为什么不是777或666那,因为默认的umask为022,也就是说,对于目录或文件的所有者不拿掉权限,group用户和other用户都被拿走了w权限,所以此时如果用户进行创建目录和文件的时候,默认权限是会进行如下的减法操作:

新建文件:666-022=644;

新建目录:777-022=755.

我们来验证一下是不是这样做的:
========================================================================================
[email protected]:~/dd$ umask
0022
[email protected]:~/dd$ mkdir dd
[email protected]:~/dd$ vi ii
[email protected]:~/dd$ ls -l
drwxr-xr-x 2 laopi laopi 4096 9月  30 11:37 dd
-rw-r--r-- 1 laopi laopi    6 9月  30 11:43 ii
[email protected]:~/dd$
========================================================================================
可以看到确实是这样的,目录的默认权限是rwxr-xr-x(755),文件的默认权限是-rw-r--r--(644)。

Umask的设置:
上面的umask为022,我们创建的目录对于同组用户是没有写权限的,在实际中可能需要给同组用户能够在目录下创建和修改文件,那么此时需要创建的目录同组用户是具有写权限的,也就是说我们的umask不要拿走同组用户的写权限,那么就是把umask设置为002就可以达到效果。

Umask的设置很简单,只需要在umask命令后加想要拿掉的权限数字就行,不想拿掉的就为0:
======================================================================
[email protected]:~/dd$ umask 002
[email protected]:~/dd$ mkdir dd
[email protected]:~/dd$ vi ii
[email protected]:~/dd$ ls -l
drwxrwxr-x 2 laopi laopi 4096 9月  30 14:12 dd
-rw-rw-r-- 1 laopi laopi    4 9月  30 14:12 ii
[email protected]:~/dd$
=======================================================================
可以看到此时新建的目录group用户是具有写权限的。

这里还需要说明下用数字表示权限的时候只可能是4、2、1三个数字或者是三个数字的和或两个数字的和,4代表的是读(r),2代表的是写(w),1代表的是执行(x)

可以看到上面在系统里创建的文件和目录的默认权限的时候,我写的是这样的:666-022=644;777-022=755.,但这并不是做了对应数字的加减,刚刚看到数字相减的结果和最后验证的结果是一样的,但这只是巧合而已。
我们知道上面的每一个数字是代表着某一个用户对于文件或者目录有没有读、写、执行权限的衡量,比如6,代表了rw-,即只有度读和写权限,是421中4+2的结果,所以并不是一个随便的十进制数,我们在计算的时候并不能直接以十进制相减来计算。

其实也很简单,我们只要知道421分别对应rwx,在计算的过程中用rwx来算就行了,或者就用二进制计算。这个熟练一点的话根本不需要方法的,完全口算就可以出来的,熟练就好。

原文地址:https://www.cnblogs.com/pipci/p/9752918.html

时间: 2024-10-11 08:07:43

Linux下的权限掩码umask的相关文章

Linux下文件权限相关操作

一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读写权限) 二 umask的作用 默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认 权限是755(7-0,7-2,7-2),可以用ls -l验证一下哦 现在应该知道

Linux下的权限问题

刚刚经理给我讲了有关权限的问题,后自己也在网上收集整理了下,特记于此. ----------------------------------------------------------------------------------------------- linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作.文件或目录的访问权限分为只读,只写和可执行三种. 文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和

Linux 下的权限改变与目录配置

Linux 下的权限改变与目录配置 ./代表本目录的意思. (1):用户与用户组, 1:文件所有者,文件被某一用户所有 2:用户组:    对文件给与一个或者多个用户权限配置 3:其它人: (2):linux用户身份与用户组记录的文件 1:root 相关信息记录到 /etc/passwd中 2:个人密码记录到/etc/shadow中 3:linux所有的组名记录在/etc/group中 (3):linux文件权限概念 :permission deny,无权限的提示 (4):linux 的权限属性

linux下的权限、特殊权限、acl

首先,我们都知道Linux是一个多用户操作系统,那么问题就来了,假设我有一个文件叫file1,这个文件是用户user1的,user1有一个项目组g1,他希望他项目组里的同事可以查看修改这个文件,但是不希望其他人看到文件中的内容当然也不能编辑.那怎么解决这个问题靠的就是我们下面要说的权限.通过对文件权限的配置我们就可以实现不同的用户或用户组在访问相同资源时不同的访问权限. UGO模型 所谓UGO就是把对于文件所有的用户的三种身份,所属主user即文件主人,所属组group即文件所属群组,其他oth

Centos(Linux)下用户权限委派配置介绍

说到权限委派,对于一个服务的正常运行至关重要,对于企业中经常说到的一句话就是,权限越大,责任越大,当然危害也是最大的,当权限比较的时候误操作会给应用造成灾难性的损害,所以在权限分配上要绝对小心,当然,一般大的企业中,对于权限分配的是非常详细的,对于同一个服务会分不同的操作权限,所以相对来说比较安全的.这样出了问题直接可以找出对应的责任人.今天我们就介绍一下Centos下的用户权限委派,首先我们都知道Centos(Linux)下最大的权限账户为root,类似在windows中环境中的adminis

linux下的权限控制

终于还是要弄服务器了,这是多年前用fedora的时候整理的,也贴出来,顺便也再复习一下. 先来了解一下文件属性,在shell环境里输入:ls -l 可以查看当前目录文件.如:drwxr-xr-x. 14 root root  4096 Apr  5 18:26 usr分别对应的是:文件属性 连接数 文件拥有者 所属群组 文件大小 文件修改时间 文件名这里r是可读,w可写,x 可执行,其中文件属性分为四段,---- --- --- 10个位置例如: d rwx r-x r-x第一个字符指定了文件类

linux 文件夹权限及umask

先创建一个目录,看看权限: $ ll 总用量 20 drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ./ drwxr-xr-x 128 huangxm huangxm 12288 2月 16 16:35 ../ drwxrwxr-x 2 huangxm huangxm 4096 2月 16 16:35 test/ 然后我们将权限更改为444, 即所有都是r权限 $ ll 总用量 20 drwxrwxr-x 3 huangxm huangxm 4096

Linux系统默认权限之umask

默认情况下,目录权限值为755, 普通文件权限值为644, 那么这个值是由谁规定的,追究其原因是 umask [[email protected]]# vim /etc/profile 1.假设umask值为:022(所有位为偶数) 6 6 6 - 0 2 2 = 6 4 4 //文件的起始权限值 2.假设umask值为:045(其他用户组位为奇数) 6 6 6  -   0 4 5 = 6 2 1 //计算出来的权限.由于umask的最后一位数字是5,所以,在其他用户组位再加1.622 //真

linux 下 文件权限和文件主

文件与文件夹的权限和所有者 1.chmod -R 755 file 777 含义与来源: 777含义:分别为:所有者.同组用户.其他用户 7的来源:文件有三种操作模式:读4.写2.执行1,分别值为421. 比如:777:所有人可做所有操作 755:所有者可读写执行,同组用户可读可执行,其他用户可读可执行(755为最常见) 754:所有者可读写执行,同组用户可读可执行,其他用户可读 例:chmod -R 755 /backup 2.chown -R  所有者:[所有组] file 例:chown