文件系统权限管理


权限就是对文件或目录“加锁”,有不同权限的人才能进去不同的入口……

一、正常权限

1.1权限的查看


其中rw-r--r--.就是这个文件的权限了,而后边的root root代表文件的属主和数组。

我们先来看一下权限用什么代表:

  • r:读权限(read)
  • w:写权限(write)
  • x执行(execute)

所属:

  • u:属主
  • g:属组
  • o:其他人

rw-r--r--9个位,分为三段,每段三个位,依次为r,w,x权限,三段分别为属主,属组,其他人三种类别的权限。
属主具有读写权限,属组有读权限,其他人有读权限,如果显示为-,则代表该类人没有此权限。那么root用户对此文件有读和写的权限,但是没有执行权限,什么是执行权限呢,比如说我们的Windows中的exe文件,能双击执行的就为可执行的,那么linux中,x则代表可执行,一般为脚本文件,或者是二进制文件(比如说ls命令)。
root组的用户对这个文件有只读权限,也就是不能更改和执行了,。对于不是root用户,和不属于root组的用户,则也是只有只读权限。

那么如何才能有自己想有的权限呢,就要所属用户或者root用户来设置了。

1.2权限设置相关命令

权限设置有两种方法:
1.2.1模式法
对象+-=权限
对象:ugoa——a相当于ugo三种类别的人
权限:rwx

[root@centos7.3 app]#chmod a-x dir/ #去掉dir所有对象的执行权限
[root@centos7.3 app]#ll
drwxr-xr-x. 2 root root   6 May 29 19:48 di2
drw-r--r--. 2 root root   6 May 29 19:48 dir  #dir的全部对象的执行权限已经去掉
[root@centos7.3 app]#chmod u+x dir/ #给属主添加执行权限
drwxr-xr-x. 2 root root   6 May 29 19:48 di2
drwxr--r--. 2 root root   6 May 29 19:48 dir #已经有属主执行权限了

还可以复制其他文件的权限

[root@centos7 ~]#chmod --reference=dir dir2   #参考dir的权限,为dir2设置权限

1.2.2数字法
数字也可以代表权限,r使用4表示,w使用2表示,x使用1表示,1、2、4看着有规律啊,不错,的确rwx使用二进制表示的话,有权限使用1表示,没有使用0,那么如下图:


具体只要在相应位上有权限,则二进制为1,则三个位组合起来,再从二进制转化为十进制则数字可计算出来权限。

[root@centos7.3 app]#chmod 754 dir/  
#用数字法给dir的属主赋予rwx权限,属组为rx权限,其他人为只读r权限
[root@centos7.3 app]#ll
drwxr-xr-x. 2 root root   6 May 29 19:48 di2
drwxr-xr-. 2 root root   6 May 29 19:48 dir 

1.3umask

umask值用来消除创建文件时的相应位上的权限(从二进制方面理解);
新建文件: 666 - umask值就是新建文件的默认权限,因为新建文件默认没有执行权限的(没有1权限,所以只要有奇数权限则代表有执行权限),所以得到的权限必定是偶数,如果umask为奇数,则用666减去将得到奇数权限,如果所得结果某位存在奇数权限,则将其权限+1(因为从二进制方面理解,如果相应位没有权限,则多减了1,故要加上1来弥补这个权限);

[root@CentOS7 ~]# umask
0022
[root@CentOS7 ~]# umask 135     #将当前umask设为135,
[root@CentOS7 ~]# umask
0135       #修改成功
[root@CentOS7 ~]# touch f2
[root@CentOS7 ~]# ls -l f2
-rw-r---w-. 1 root root 0 Jun  3 20:45 f2#按理说666-135=531,但是奇数权限加上1,则成为642

新建目录: 777 - umask值就是新建目录的默认权限;
管理员的umask 是 022
普通用户的umask是 002

[root@centos7.3 app]#umask  #查看当前用户的umask值
0022 #root的umask值是002
[root@centos7.3 app]#umask 002 #把当前用户的umask值改为002
[root@centos7.3 app]#umask
0002 #修改成功
[root@centos7.3 app]#umask -S #模式方式显示
u=rwx,g=rwx,o=rx
[root@centos7.3 app]#umask -p #显示全部,输出可被程序调用
umask 0002

1.4X权限的理解

X的作用(x权限特殊形式)
针对目录增加x权限
对文件
1 无执行的文件,不会增加x权限
2 任意三种人有执行权限,也会增加x权限
目录

[root@CentOS7 ~]# chmod 600 tmp/
[root@CentOS7 ~]# ls -ld /root/tmp/
drw-------. 2 root root 38 Jun  3 16:02 /root/tmp/
[root@CentOS7 ~]# chmod u+X tmp/
[root@CentOS7 ~]# ls -ld tmp/
drwx------. 2 root root 38 Jun  3 16:02 tmp/

文件:

[root@CentOS7 ~]# chmod 000 f1 #去掉文件的所以权限,以便看的更清楚
[root@CentOS7 ~]# ls -l f1
----------. 1 root root 1098 Jun  3 19:34 f1
[root@CentOS7 ~]# chmod u+X f1 #赋予X权限
[root@CentOS7 ~]# ls -l f1 #并没有权限x被赋予
----------. 1 root root 1098 Jun  3 19:34 f1
[root@CentOS7 ~]# chmod 100 f1#一旦赋予任何一类人x权限
[root@CentOS7 ~]# chmod a+X f1
[root@CentOS7 ~]# ls -l f1
---x--x--x. 1 root root 1098 Jun  3 19:34 f1#则所以位都被赋予x权限

1.5文件与目录的权限与注意

对目录的权限意义:
只有读:只能查看目录文件列表,不能访问文件,也不能cd目录(查看,删除)
只有执行:可以cd进去,不能ls,可以访问目录中的文件。执行是基础权限
写权取:配合x权限才生效

二、特殊权限

2.1SUID

SUID权限代表不管是谁执行此程序,将继承此程序所有者的权限
比如修改密码命令passwd,因此每个用户都可以用此命令修改自己的密码,由于其继承的是属主root用户的权限。

[root@CentOS7 ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

创建一个文件,赋予s权限

[root@CentOS7 ~]# touch f3
[root@CentOS7 ~]# ll f3
-rw-r---w-. 1 root root 0 Jun  3 21:17 f3
[root@CentOS7 ~]# chmod u+s f3
[root@CentOS7 ~]# ll f3
-rwSr---w-. 1 root root 0 Jun  3 21:17 f3  #此处为S权限
#由于其没有x权限,S并不能代表SUID权限,必须赋予x权限使其成为可执行程序,此时将自动变为s
[root@CentOS7 ~]# chmod u+x f3
[root@CentOS7 ~]# ll f3
-rwsr---w-. 1 root root 0 Jun  3 21:17 f3

2.2SGID

SGID作用于目录或可执行程序,作用于目录代表在此目录创建的文件或目录,默认的属组继承此目录的属组

[root@CentOS7 ~]# ls -ld tmp/  查看权限
drwx------. 2 root bin 58 Jun  3 21:32 tmp/
[root@CentOS7 ~]# chmod g+s tmp #赋予此目录的g有s权限
[root@CentOS7 ~]# ll -d tmp
drwx--S---. 2 root bin 58 Jun  3 21:32 tmp
[root@CentOS7 ~]# chmod g+wx tmp
[root@CentOS7 ~]# ll -d tmp
drwx-ws---. 2 root bin 58 Jun  3 21:32 tmp
[root@CentOS7 ~]# touch tmp/  #验证权限
f1         f2         functions  profile    
[root@CentOS7 ~]# touch tmp/f3
[root@CentOS7 ~]# ll tmp/f3
-rw-r--r--. 1 root bin 0 Jun  3 21:40 tmp/f3  #发现属组为bin,成功

2.3Sticky

粘贴位权限,只能作用于目录上,只有自己才能删除自己创建的文件.使用t来表示,同样需要执行权限x,否则表现为T
有这样的需求,如果多人合作,希望整个团队的人都能更改这个目录的文件,但是这个目录的文件 不能被其他人删除,比如说系统的/tmp目录,这个目录每个用户都可以在里面创建文件,但是不能删除其他用户创建的文件,除了root

 ll /tmp -d
drwxrwxrwt. 27 root root 4096 Jun  3 21:40 /tmp


[root@CentOS7 ~]# touch /tmp/f1
[root@CentOS7 ~]# ls /tmp/f1 
/tmp/f1
[root@CentOS7 ~]# ls /tmp/f1  -l
-rw-r--r--. 1 root root 0 Jun  3 21:48 /tmp/f1
[root@CentOS7 ~]# chown xiaoming:xiaoming /tmp/f1
[root@CentOS7 ~]# su - chenxuliang
Last login: Sat Jun  3 21:35:11 CST 2017 on pts/0
[chenxuliang@CentOS7 ~]$ echo "aaa" > /tmp/f1
-bash: /tmp/f1: Permission denied   #当然此处需要赋予其他用户可w权限。

[chenxuliang@CentOS7 ~]$ rm -f /tmp/f1
rm: cannot remove ‘/tmp/f1’: Operation not permitted
#此处tmp其他用户拥有rwx权限,却不能删除其中的文件,则就是因为加了粘贴位sticky权限的原因。(删除文件与文件本身的权限无关)

2.4特殊权限除了可以用模式方法设置,还可以使用数字法

特殊权限:
SUID:4
SGID:2
Sticky:1

[root@centos7.3 app]#ll #查看当前目录文件列表和文件属性
drwxr-xr-x. 2 root root  24 May 30 19:46 dir  
[root@centos7.3 app]#chmod 1755 dir/  # 为dir目录设置权限,1表示Sticky权限,755表示普通权限
[root@centos7.3 app]#ll #查看当前目录文件列表和文件属性
drwxr-xr-t. 2 root root  24 May 30 19:46 dir #在其他用户权限的x位上出现了t,表示Sticky权限添加成功

2.5特殊权限总结与注意

SUID只能作用于二进制可执行程序,不能作用于目录,因为其对应的是程序,程序需要能执行
为什么对于一个文件有读写执行权限,依然不能删除呢,因为删除文件要看其父目录是否有权限。删除的是目录项中的文件名(详细请看我的inode博客)

三、ACL权限

3.1为什么要有ACL权限

因为文件权限管理职能对三类人有效,在生产中远远不能满足要求,ACL则应运而生

3.2ACL权限的查看

[root@CentOS7 ~]# getfacl f1
# file: f1
# owner: root
# group: root
user::--x
group::--x
other::--x

3.3ACL权限的设定

  1. setfacl的选项和常用参数
  2. getfacl 文件 或 目录 #查看文件或目录的acl权限
  3. setfacl - m u:用户名:权限 文件或目录 #可以使用模式方法也可以使用数字方法设置
  4. setfacl - R #R表示递归
  5. setfacl - M 配置文件 文件或目录 #M表示把配置文件里权限设置给后面的文件或者目录,你可以先写好一个权限保存在文件中来批量设置
  6. setfacl - m g:组名:权限 #g表示组
  7. setfacl - m d:u:用户:rx #d选项表示创建默认权限不影响其他acl权限,加了d之后在目录下创建的文件都会获得父目录的设置默认acl权限
  8. setfacl - k #删除默认权限
  9. setfacl - x u:用户 #删除单个权限
  10. setfacl - X #X和M选线功能相似只不过X是按照文件的内容删除acl权限
  11. setfacl -b #删除所有acl权限
  12. setfacl -- set #set选项会把原来的acl设置用新的代替,相当于覆盖

举例:

[root@centos7.3 app]#setfacl -m u:admin:rw dir/ #为admin设置权限
[root@centos7.3 app]#getfacl dir/  #查看权限
# file: dir/
# owner: root
# group: root
user::rwx  
user:admin:rw- #设置的admin的权限
group::r-x  
mask::rwx #mask值是acl权限的上线,mask是除了所有者和其他的之外的人和组的最大权限
#在设置了acl权限之后文件的属组权限和mask值是绑定的
other::r-x

3.4复制其他文件ACL权限

root@centos7.3 app]#getfacl dir |setfacl -set-file=- dir2

3.5ACL权限的备份与还原

[root@centos7.3 app]#getfacl -R dir > acl.txt #把dir目录和子文件的acl权限备份至acl.txt文件
[root@centos7.3 app]#setfacl -R --set-file=acl.txt  dir #恢复acl权限
[root@centos7.3 app]#setfacl --restore acl.txt #第二种方法

终于写完啦,但是这还只是理论上的,还没有应用于实践,想要在应用中完美结合,还差的很远,毕竟文件权限管理是一门基础的大学问。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容