> Linux教程 > Linux学习 >

Linux umask权限

chmod  chown  chgrp
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
#chmod

#权限位XXX

0表示没有权限,
1表示可执行权限, =x 可执行一般具备可读权限
2表示可写权限,   =w 可写一般具备可读权限
4表示可读         =r


#权限分类
用户自身 u
同组用户 g
其他用户 o


所有用户 a =u+g+o


#权限矩阵
   u g o
0
x
w
r

#用法 
1.chmod XXX file/diretory 
XXX为三位数值
X可取值: 0,1,2,3,4,5,6,7
      0:无权限
      1:x
      2: w
      3: xw
      4: r
      5: xr
      6: rw
      7: xwr


2.chmod -R XXX directory 
递归改变文件夹权限


3. 最简单的使用是通过三位数值XXX分别表示 文件拥有者,文件所在同组用户,其他用户 访问文件的权限
chmod 700 file
chmod 750 file 

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
#chown  改变文件owner 文件组owner  具体查看man chown 
chown -[R] username:groupname file|directory

1.-R 选项递归更改
  chown -R username:grpupname directory

2.chown username file  只改变userowner不改变groupowner

3.chown :groupname file  只改变groupowner不改变userowner

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
#chgrp 改变文件所属组
chgrp [-R] groupname file|directory

1.-R 选项 递归

2.等价于 chown :groupname file|directory


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
linux 权限

权限对于目录:
x决定能否进入目录
r决定能否读
w决定能否新建文件
目录只有x权限,只能进入,不能ls ,也不能在其下建立文件。
xr权限 可以进入,可以查看,不能新建文件
xw权限 可以进入,可以新建文件,不能查看,一般不使用
rw权限 是进不去目录的,故一般不常用


目录下新建文件除受unmask 影响,还受所在目录影响
x对于程序决定能否执行


最常用的权限:
7wxr
5xr
6wr
4r
0无任何权限
其他组合很少使用,长用与系统特殊,敏感程序权限设置。


用户新建权限是拿系统权限减去unmask权限;


系统默认权限:
文件:
-rw-rw-rw-
目录:
drwxdwxdwx 


如unmask=022=----w--w-


则用户创建后的权限为:


文件权限=-rw-rw-rw-  -  ----w--w- = -rw-r--r--
目录权限=drwxdwxdwx  -  ----w--w- = dwrxr-xr-x






=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
Ext Ext3 系统增加的属性设置
chattr
lsattr 
-i -a 属性在安全领域应用广泛


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
/tmp 文件夹权限 最好不要更改,会发生很多程序无法使用




=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
文件第四属性:


SUID 4
SGID 2
SBIT 1


chmod 1777 /tmp


查看整个系统设置了第四特殊属性的文件:


find / -perm +6000











 

现在,我们知道如何建立或者是改变一个目录或文件的属性了,不过,你知道,当建立一个新的文件或目录时,它的默认属性是什么吗?那就与umask有关了。那么,umask是什么呢?基本上,umask就是指定“当前用户在建立文件或目录时候的属性默认值”。那么,如何得知或设置umask呢?它以下面的方式来指定条件:

[root@linux ~]# umask
0022
[root@linux ~]# umask -S
u=rwx,g=rx,o=rx
查看方式有两种,一种是直接输入umask,可以看到数字类型的权限设置分数,一种是加入 -S(Symbolic)参数,就会以符号类型的方式显示权限。奇怪的是,怎么umask会有4组数字啊?不是只有3组吗?没错。第一组是特殊权限用的,我们先不要理它,所以先看后面3组即可。
在默认权限的属性上,目录与文件是不一样的。由于我们不希望文件具有可执行的权力,默认情况中,文件是没有可执行(x)权限的。因此:
• 若用户建立为”文件”则默认“没有可执行(x)项目”,即只有rw这两个项目,也就是最大为666分,默认属性如下:
-rw-rw-rw-
• 若用户建立为”目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为777分,默认属性如下:
drwxrwxrwx
umask指定的是“该默认值需要减掉的权限”。因为r、w、x分别是4、2、1,所以。也就是说,当要去掉能写的权限,就是输入2,而如果要去掉能读的权限,也就是4,那么要去掉读与写的权限,也就是6,而要去掉执行与写入的权限,也就是3。请问,5是什么?就是读与执行的权限。如果以上面的例子来说明的话,因为umask为022,所以user并没有被去掉属性,不过group与others的属性被去掉了2(也就是w这个属性),那么当用户:
• 建立文件时:(-rw-rw-rw-) – (-----w--w-) ==> -rw-r--r-- 
• 建立目录时:(drwxrwxrwx) – (d----w--w-) ==> drwxr-xr-x
我们来测试看看。
[root@linux ~]# umask
0022
[root@linux ~]# touch test1
[root@linux ~]# mkdir test2
[root@linux ~]# ll 
-rw-r--r--  1 root root      0 Jul 20 00:36 test1
drwxr-xr-x  2 root root 4096 Jul 20 00:36 test2
看见了吧?确定属性是没有错的。假如要让与用户同用户组的人也可以存取文件呢?也就是说,假如dmtsai是users用户组的人,而dmtsai做的文件希望让users同用户组的人也可以存取,这也是在团队开发计划时常常会考虑到的权限问题。在这样的情况下,umask自然不能取消group的w权限,也就是说,我们希望制作出来的文件应该是 -rw-rw-r-- 的模样,所以,umask应该是002才好(仅去掉others的w权限)。如何设置umask呢?简单得很,直接在umask后面输入002。
[root@linux ~]# umask 002
[root@linux ~]# touch test3
[root@linux ~]# mkdir test4
[root@linux ~]# ll 
-rw-rw-r--  1 root root      0 Jul 20 00:41 test3
drwxrwxr-x  2 root root 4096 Jul 20 00:41 test4
所以,这个umask对于文件与目录的默认权限是很有关系的。这个概念可以用在任何服务器上,尤其是将来在架设文件服务器(file server),比如SAMBA服务器或FTP服务器时,都很重要。这牵涉到用户是否能够将文件进一步利用的问题。不要等闲视之。
例题四:假设umask为003,请问使用该umask,建立的文件与目录权
限是什么?
答:
umask为003,所以去掉的属性为 --------wx,因此:
文件:(-rw-rw-rw-) - (--------wx) = -rw-rw-r--
目录:(drwxrwxrwx) - (--------wx) = drwxrwxr--

 

提示:有关umask与权限的计算方式中,教科书喜欢使用二进制方式来进行AND与NOT计算,不过,笔者比较喜欢使用符号方式计算,联想比较容易。但是,有的书籍或BBS上,有人喜欢使用文件默认属性666与目录默认属性777来与umask进行相减计算。这是不好的。以例题4来看,如果使用默认属性相加减,则文件变成:666-003=663,即 -rw-rw--wx,这是完全不对的。想想看,原本文件就已经去除x的默认属性了,怎么可能突然间冒出来了?所以,这个地方要特别小心。

在默认的情况中,root的umask会去掉比较多的属性,root的umask默认是022,这是基于安全的考虑。一般身份用户通常的umask为002,即保留同用户组的写入权力。其实,关于默认umask的设置可以参考 /etc/bashrc文件的内容.


 

转自:http://blog.csdn.net/zhaowenchao1988/article/details/6090188

 






































chmod  chown  chgrp
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
#chmod


#权限位XXX


0表示没有权限,
1表示可执行权限, =x 可执行一般具备可读权限
2表示可写权限,   =w 可写一般具备可读权限
4表示可读         =r




#权限分类
用户自身 u
同组用户 g
其他用户 o


所有用户 a =u+g+o


#权限矩阵
   u g o
0
x
w
r




#用法 
1.chmod XXX file/diretory 
XXX为三位数值
X可取值: 0,1,2,3,4,5,6,7
      0:无权限
      1:x
      2: w
      3: xw
      4: r
      5: xr
      6: rw
      7: xwr


2.chmod -R XXX directory 
递归改变文件夹权限


3. 最简单的使用是通过三位数值XXX分别表示 文件拥有者,文件所在同组用户,其他用户 访问文件的权限
chmod 700 file
chmod 750 file 




=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
#chown  改变文件owner 文件组owner  具体查看man chown 


chown -[R] username:groupname file|directory


1.-R 选项递归更改
  chown -R username:grpupname directory


2.chown username file  只改变userowner不改变groupowner


3.chown :groupname file  只改变groupowner不改变userowner






=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
#chgrp 改变文件所属组
chgrp [-R] groupname file|directory


1.-R 选项 递归


2.等价于 chown :groupname file|directory




=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
linux 权限


权限对于目录:
x决定能否进入目录
r决定能否读
w决定能否新建文件
目录只有x权限,只能进入,不能ls ,也不能在其下建立文件。
xr权限 可以进入,可以查看,不能新建文件
xw权限 可以进入,可以新建文件,不能查看,一般不使用
rw权限 是进不去目录的,故一般不常用


目录下新建文件除受unmask 影响,还受所在目录影响
x对于程序决定能否执行


最常用的权限:
7wxr
5xr
6wr
4r
0无任何权限
其他组合很少使用,长用与系统特殊,敏感程序权限设置。


用户新建权限是拿系统权限减去unmask权限;


系统默认权限:
文件:
-rw-rw-rw-
目录:
drwxdwxdwx 


如unmask=022=----w--w-


则用户创建后的权限为:


文件权限=-rw-rw-rw-  -  ----w--w- = -rw-r--r--
目录权限=drwxdwxdwx  -  ----w--w- = dwrxr-xr-x






=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
Ext Ext3 系统增加的属性设置
chattr
lsattr 
-i -a 属性在安全领域应用广泛


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
/tmp 文件夹权限 最好不要更改,会发生很多程序无法使用




=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
文件第四属性:


SUID 4
SGID 2
SBIT 1


chmod 1777 /tmp


查看整个系统设置了第四特殊属性的文件:


find / -perm +6000



(责任编辑:IT)