复习之linux系统中的权限管理

1.权限的查看及读取

(1)权限的查看

# ls  -l   file  : 查看文件的权限

# ls  -ld  dir :查看目录权限

 (2)权限的读取

文件的属性叫做文件的元数据。

元数据Metadata),又称中介数据中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。"一种元数据用1个byte来记录内容",则以下文件元数据共占用8个字节(byte)。

# 文件权限信息

 -  |  rw-rw-r--   |   .     |   1   |   westos  |    westos   |   0    |    May  29  10:22  |    westosfile

[1]        [2]            [3]      [4]         [5]                [6]            [7]                   [8]                        [9]

# 对于每一位的详细解释

[1] : 文件类型

#  -  : 普通文件  # d :目录   # l :软连接 # b : 快设备 # c :字符设备 # s : socket套接字 # p 管道 |

[2] : 用户权限

# rw- : 读,写,执行

[3] : 系统的selinux开启,安全上下文

#  ls  -Z  file  : 查看安全上下文

[4] : #  对于目录:目录中子目录的个数

 #对于文件: :文件内容被系统记录的次数(硬链接个数)

每一个文件都有一个硬链接数,它表示有多少个文件指向它。当一个文件创建时,它的硬链接数被设置为1。当一个新的硬链接被创建时,它的硬链接数就会增加1。

#  ln  file  file1 :  创建硬链接 (ps: 硬连接建立的文件与原文件是同一个文件,节点号相同)

[5] : 文件拥有者

[6] : 文件拥有组

[7] :  # 对于文件 : 文件内容大小

 # 对于目录:目录中子文件/子目录的元数据(属性)大小

 [8 ]# 对于目录 : 目录中子目录/子文件属性修改的时间,文件内容修改也改变。

  # 对于文件: 文件内容被修改的时(文件属性修改时间不变)

[9] : 文件名

2.文件中用户和组的修改

# 实验环境设置:在/mnt下新建文件并建立监控

 (1)修改文件的所有人所有组

# chown  用户名  文件名:修改文件的所有人

# chgrp 组名 文件名 :修改文件的所有组

 #  chown  用户名 . 组名  文件名 :同时修改文件的所有人和所有组

# chown  用户名 :组名  文件名 :同时修改文件的所有人和所有组

 (2)修改目录的所有人所有组

# chown   用户名  目录 :修改目录的所有人

# chgrp  组名  目录 :修改目录的所有组

# chown  用户名 . 组名  目录 :同时修改目录的所有人和所有组

# chown  用户名  :组名  目录 :同时修改目录的所有人和所有组

ps: 注意以上只要修改了目录的所有人所有组,并未修改目录下文件的所有人所人组

# chown   -R  用户名  目录 :修改目录及目录下文件的所有人

# chgrp  -R  组名  目录 :修改目录及目录下文件的所有组

# chown   -R   用户名 . 组名  目录 :同时修改目录及目录下文件的所有人和所有组

# chown  -R   用户名  :组名  目录 :同时修改目录及目录下文件的所有人和所有组

 3.普通权限的类型

(1)用户对文件的身份

# u : 文件的拥有者

#  g : 文件的拥有组

# o :  既不是拥有者也不是拥有组成员的其他用户的通称

(2)权限类型

# r  :可读                  # 对于文件:可以读取文件内容   #对于目录:可以ls列出目录中的文件

# w  : 可写                   # 对于文件:可以更改文件内容   #对于目录 : 可以在目录中新建或删除文件

# x : 可执行       # 对于文件 :可以用文件名称调用文件内记录的程序 #对于目录 :可以进入目录中

 4. 文件权限管理

# chmod   设定文件权限

(1)复制文件权限

# chmod --reference=/mnt/westosdir    /mnt/westosfile1    复制/mnt/westosdir目录的权限到文件/mnt/westosfile1上

#chmod -R --reference=/mnt/westosfile1 /mnt/westosdir  复制/mnt/westosfile1文件的权限到/mnt/westosdir及#目录中的子文件上 -R 代表第归操作

 (2)利用字符设定权限

# chmod    <  a  |  u  |  g  |  o  ><  +  |  -  |  =  ><  r  |  w  |  x  >    file     : 利用字符设定权限

实验:

#  chmod  a+x   /mnt/westosfile2  :   所有权限增加可执行权限

# chmod   ug-r    /mnt/westosfile1   : 所有人所有组减去可读权限

#  chmod  u-w,g+wx,o=rwx   /mnt/westosfile3

 (3)利用数字设定权限

权限转换为八进制数字为:

- - - : 000

- - x : 001 = 1

- w - : 010 = 2

- w x : 011 = 3

r - - : 100 = 4

r - x : 101 = 5

r w - : 110 = 6

r w x : 111 = 7

5.系统默认权限设定

当建立文件或目录时,系统默认分配的权限并不是777

# umask表示系统保留权力

文件默认权限 = 777-umask-111
目录默认权限 = 777-umask

# umask    查看保留权力

 系统本身存在的意义共享资源
#从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
#既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认保留

(1)临时设定系统保留权力

# umask  权限 : 临时设定系统预留权力

ps:后三位是设定的权限,第一位是特殊权限位,umask值越大系统安全性越高

 重新打开一个shell,查看保留权力发现还是022,因为刚刚只是临时设定!

 (2)永久设定系统保留权力

要想永久修改系统保留权力,需要编辑两个文件:/etc/bashrc  (shell系统配置文件 )和 /etc/profile(系统环境配置文件)且 立即生效!

#vim /etc/bashrc  (75行左右)

 #  vim /etc/profile  (60行左右)

 两个文件编辑完成后,查看系统保留权力,发现还是没有变化!

此时利用source 使文件立即生效

#  source /etc/bashrc
#  source /etc/profile

此时系统保留权力已立即更改!

6.特殊权限

(1)粘滞位(stickybit)----  SBIT(o的x位置上使用一个t)

粘滞位(stickybit),又称黏着位,是Linux文件系统权限的一个特殊权限。默认情况下,如果一个目录o上有w和x权限,则任何人可以在此目录中建立与删除文件。一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。其他用户则不能。

实验如下:

root用户建立一个新目录,修改目录权限为777。

两个普通用户(westos , lee)进入该目录建立文件,

用户lee可以删除westos建立的文件,这显然不符合常理!

 因此必须设置粘滞位,只有目录内文件的所有者或者root才可以删除或移动文件

设置粘滞位的方法:

# chmod  o+t  /mnt/pub/ 

# chmod  1XXX /mnt/pub :XXX为目录原权限

ps: chmod  o-t  /mnt/pub:恢复原权限

注意:当目录没有执行权限时,设置粘滞位,最后一位会变成T。

此时无法进入目录。

(2)强制位(set gid) --  SGID(在g的x位置上使用一个s)

针对目录:目录中新建的文件自动归属到目录的所属组中,默认情况下,用户建立的文件夹属于用户当前所在的组,但是设置了SGID后,表示在此目录中,任何人建立的文件,都会属于目录所属的组,但是用户还是属于创建的用户。

设定方法:

# chmod  2XXX /mnt/pub

# chmod  g+s  /mnt/pub

ps : chmod  g-s  /mnt/oub  : 恢复原权限

针对二进制的可执行文件(c程序):当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关

实验:

# watch -n 1 "ps ax -o comm,user,group | grep cat "watch : 设置监控cat程序

/bin/cat 程序本身所有组是root用户,但当westos用户执行/bin/cat时,进程显示所有组是westos.

#当运行二进制可执行文件时都是用执行用户身份运行

 设置强制位,可以保证#当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关

 (3)冒险位(set uid) --- SUID(在u的x位置上使用一个s)

Suid是让执行者临时拥有属主的权限,仅对二进制文件(命令)生效。

对文件作用:
默认情况下,用户执行一个指令,会以该用户的身份来运行进程。当一个文件设置了SUID后,所有用户执行这个文件时都是以这个文件的所有者的权限来执行。即可以让对此文件没有执行权限的用户执行此文件。

设定方法:

# chmod  u+s  /bin/cat

# chmod 4XXX /bin/cat :XXX是文件的原权限

ps: chmod  u-s /bin/cat : 恢复原权限

 7.ACL访问控制列表

访问控制列表(Access Control Lists,ACL)可以对文件的权限进行细分。

(1)ACL的基本使用方法

1) ACL列表的开启与关闭

# setfacl   -m   o::r   /mnt/pub/ (随意输入一条acl设定命令)

权限后出现“ +  ”号表示acl列表成功开启!

 # setfacl  -b  /mnt/pub  :  关闭acl列表

 2)ACL列表权限读取
# getfacl  目录/文件:当ACL列表权限开启后,可以通过此命令显示文件的列表权限。

显示内容分析:

# file: mnt/pub   :文件名
# owner: root     :所有人
# group: root      :  所有组
# flags: -s-          :特殊权限(这里开启了强制位)
user::r--               :所有人的权限

user:lee:rw-        : 特殊指定用户权限
group::rw-           :所有组的权限

group:westos:---  :特殊指定组权限

mask::rw-            : 能够赋予特殊用户和特殊用户组的最大权限阀值
other::---              :其他的权限

3)ACL权限设定

# setfacl -m  u:lee:rx   /mnt/pub/  :指定用户lee的权限为rx

# setfacl   -m    g:lee:rx    /mnt/pub/ :特殊指定组lee的权限为rx

 

# setfacl -m   u::r    /mnt/pub/  :设定文件所有人的权限

 

# setfacl -m g::rw /mnt/pub/  : 设定文件所有组的权限

 

# setfacl   -m   o::0   /mnt/pub/ :设定其他人的权限

 

# setfacl -x   u:lee   /mnt/pub/  : 删除lee用户

setfacl  -x    g:westos    /mnt/pub/  :删除westos这个组

 

 Ps: 注意只能删除特殊指定的用户或组,不能删除所有人,所有组!

(2)ACL的优先级匹配

拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他

实验:

1)拥有者 > 特殊指定用户

在/mnt下建立westosfile文件-->所有者改为westos---->acl设定特殊用户westos权限为0------>

查看acl列表------>用户westos在westosfile文件里写东西------> 成功写入------>拥有者权限>特殊指定用户

2)特殊指定用户>特殊指定组

特殊指定用户lee权限改为rw------>设定lee用户所属的wheel组的权限为0-----> 用户lee在westosfile文件里写东西------> 写入成功------>特殊指定用户>特殊指定组

3)权限多的组>权限少的组

建立用户linux,设置附加组为westos -----> 设定所有组权限为0------>设定westos为特殊指定组,权限为rw------->用户linux在文件写东西----->写入成功!

设定所有组权限为rw------>设定westos为特殊指定组,权限为0------->用户linux在文件写东西----->写入成功!

因此总结:权限多的组>权限少的组

(3)Mask权限

mask是能够赋予指定用户或组权限的最大阀值,它将用户或群组所设定的 ACL 权限限制在 mask 规定的范围内,超出部分直接失效。

设定mask方法:

# setfacl   -m   m:权限  文件

 (4)默认权限列表

设定用户lee对目录/mnt/westodir的权限为rwx

1)针对已存在的文件生效

#  setfacl   -m      u:lee:rwx       /mnt/westosdir/ : 只对于/mnt/westosdir目录本身生效

#  setfacl    -Rm   u:lee:rwx   /mnt/westosdir/ :对于/mnt/westosdir目录和目录中已经存在的内容生效

 

此时在目录中新建westosfile4 ,设定的权限不会生效!因此,此命令只针对已存在的文件!

 

 2)针对新建文件生效

#  setfacl   -m  d:u:lee:rwx   /mnt/westosdir/  :针对新建的文件生效,已存在的文件没用!

 8.attr权限

attr权限限制所有用户,包括超级用户!

# lsattr   -d   dir/  :查看目录本身的attr权限

# chattr +a dir/ :设定attr权限,a表示只能添加不能删除

ps: chattr  -a  dir :关闭该权限

# chattr +i  dir/ :设定attr权限,i 表示不能做任何修改

ps: chattr   -i   dir/ :关闭该权限

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>