Linux基础教程:Linux权限管理

权限管理是Linux中一个十分重要的概念,也是系统安全性的重要保障。

一、基本权限

用户对文件拥有所有者,所属组和其他人三个身份,每个身份都有读写执行三个权限。

wKioL1fRRnWA-kEJAAAv59NmBXk327.png

-rw-r--r--:第一个"-"位置是代表文件类型的。

 

文件权限前的第一个字母用来标识文件类型:

-:一般文件

d:目录文件

b:块设备文件

c:字符设备文件

l:链接文件

p:人工管道

常见的为-dI

rw-  r--  r-- :文件权限

u    g   o

u所有者,g所属组,o其他人

rwx执行 -不具有权限

8进制数值表示方法

  r:4          

  w:2      

  x: 1 

如:-rw- r-- r--的意思就是这个文件的类型是一般文件,文件本身所在的用户可读可写不可执行,所在的组可读,不可写不可执行,其他用户可读,不可写不可执行。

权限管理命令

chmod  改变文件或目录权限

英语原意:change the permissions mode of a file

语法:1chmodugoa】【+-=】【rwx】【文件或目录】

执行权限:文件所有者和root用户

wKioL1fRR0WysK_fAAAenq4u69U054.png

2、权限的数字表示

chmod 【421】【文件或目录】

 r——4

 w——2

 x——1

wKioL1fRR1zRDh1aAAARomiwKPM862.png

chown  更该文件或目录的所有者

英语原意:chamge file ownership

执行权限:root

语法:chown 【用户】【文件或目录】

wKiom1fRR42jscvQAAAhFQxb7EU869.png

chgrp  改变文件或目录的所属组

英语原意:change file froup ownnership

执行权限:root

语法:chgrp【用户组】【文件或目录】

wKioL1fRR6nSfzJ2AAAc5SEuLjo398.png

二、默认权限

umask  显示、设置文件的缺省权限

英语原意:the user file-creation mask

语法:umask【选项】

执行权限:root

-S 以rwx形式显示新建文件缺省权限

wKiom1fRSACCCDftAAAk2TBvtwI828.png

看到目录默认的权限和umask -S的权限一致,touch的权限每位比umask -S显示的权限少一个x权限,在linux会把任何一个新建的文件的可执行权限去掉(基于安全性考虑),所以也是和umask -S的权限是一样的

直接输入umask,得到0022,第一个0是特殊权限,后三位代表正常权限,表示拥有者,所属组,其他用户,但其实真正的权限是777-022=755,所以是rwxr-xr-x

wKioL1fRSCHSHL1OAAAHaLZT9wo146.png

设置默认权限为754,应由777-754=023

umask 023,但不建议更改,默认的权限是比较合理的

wKiom1fRSDqTUt2PAAAao0loDFc324.png

三、ACL权限

有时候,所有者,所属组,其他人三个身份的权限是770,假如想要某一个用户的身份为5,那么这些身份权限就满足不了要求了,就要使用到ACL权限了。

ACL权限

需要文件所在的分区支持ACL权限

查看分区ACL权限是否开启

 dumpe2fs -h /dev/sda3

dumpe2fs命令是查询指定分区详细文件系统信息额命令

  -h 仅显示超级块中信息,而不显示磁盘块组的详细信息

df 查看分区使用状况,查看到//dev/sda3

wKioL1fRSHiROfxtAABHzBv6I-M215.png

默认挂载选项,支持ACL,默认都开启了ACL

wKiom1fRSJGCQVmsAAC9sBkgwbI758.png

若没有开启

临时开启分区ACL权限

mount -o remount,acl/  重新挂载跟分区,并挂载加入acl权限

永久开启分区ACL权限

vim /etc/fstab   是系统开机自动挂载文件

 

 

wKiom1fRSK3htocWAADgloFUrsw946.png

在defaults后加,acl,重启系统或重新挂载文件系统就可以了,当然,在默认的情况下,本身就支持acl的。

查看与设定acl权限

getacle 文件名        查看acl权限

setfacl  【选项】 文件名  设定ACL权限

-m    设定ACL权限  

-x     删除指定的ACL权限

-b     删除所有的ACL权限

-d     设定默认ACL权限

-k     删除默认ACL权限

-R     递归设定ACL权限

setfacl -m u:test:rx //root/wt/   u/g

为给用户/组分配acltest为用户名,rx为写执行权限,/root/wt为文件名)

wKiom1fRSM3xBNQBAABH6DPiXxY200.png

可以看到,权限后面多了个+号,然后使用getfacl查看acl权限,可以看到usertestr-x

最大有效ACL权限与删除ACL权限

wKioL1fRSOiiCB4kAAAwQdTY1SA766.png

mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限。

相与就是逻辑运算两个都为真才为真,如user的读r权限和mask的读r权限相与为读权限,若其中任何一个为-权限,则结果就为-权限。

上面用setfacl -m u来指定用户,用m来指定mask的权限

wKiom1fRSQKBxnVzAAB4q4jMxXQ181.png

当然,mask设置成了rwx权限,任何权限与他相与,都是本身,所以默认的mask权限是合理的。

删除ACL权限

setfacl -x u:用户名  文件名     删除指定用户的ACL权限

setfacl -b 文件名  删除文件的所有的ACL权限

wKiom1fRSSjiSm9uAAB7zwkUn9s612.png

默认ACL权限和递归ACL权限

递归ACL权限:递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。之前所说的命令,也有递归的概念,比如mkdirrm的时候。

setfacl -m u:用户名:权限 -R文件名

wKioL1fRSUaRooKVAABEQX92iNw508.png

但是新建的文件不是拥有ACL权限。

默认ACL权限

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。

setfacl -m d:u:用户名:权限 文件名

wKioL1fRSXjAwAiJAABCc_1JmfA823.png

猜你喜欢

转载自www.linuxidc.com/Linux/2016-09/135076.htm
今日推荐