Linux操作系统基础之权限管理

本文详细介绍了Linux文件系统的权限管理,包括文件权限的查看、读取、类型、用户身份、权限位、权限设定方法等。还探讨了特殊权限如sticky位、sgid、suid的作用,以及ACL(Access Control Lists)的使用,包括权限列表的读取、控制、默认权限设定和mask管理。此外,还提到了attr权限和如何通过chmod、chattr等命令进行权限控制。
摘要由CSDN通过智能技术生成

目录

权限查看及读取

权限查看

权限的读取

普通权限的类型和作用

用户对文件的身份

权限位

用户身份匹配

权限类型

设定普通权限的方法

系统默认权限设定

如何保留权力

文件用户、用户组管理

特殊权限

stickyid        粘制位

sgid             强制位

suid             冒险位

acl权限列表

acl列表权限读取 

acl列表的控制

acl        mask控制

acl        列表的默认权限 

attr权限


权限查看及读取


权限查看

ls -l file    #查看文件权限
ls -l dir    #查看目录权限

 

权限的读取

文件的属性被叫做文件的元数据(meta data),元数据也称作是数据的数据。

一种元数据用1个byte来记录内容。

- | rw-r--r-- | . | 1 | root | root | 0 | JUN 21 20:30 | file1    #文件的权限

d | rw-r--r-- | . | 2 | root | root | 0 | JUN 21 20:30 | dir       #目录的权限查看

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

对每一位的解释
1

文件类型

-    普通文件

d  目录

l    软连接

b   快设备

c    字符设备

s  socket套接字(应用对内和对外实现通信的接口文件,该文件也是需要使用代码实现的)

p    管道 |

2

用户权限

  rw-        |     r--           | r--

 u(用户)      g(主组)    o(其他)

3系统的seLinux(安全上下文)开启 
4

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

对于目录:目录中子目录的个数

5文件拥有者
6文件拥有组
7

对于文件:文件内容大小

对于目录:目录中子文件的元数据大小

8文件内容被修改的时间
9

 文件名称  

补充:硬链接和软链接

参考博客软硬链接的解析https://blog.csdn.net/Tchalla/article/details/102492984?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164733410316780269885388%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164733410316780269885388&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-102492984.142%5Ev2%5Earticle_score_rank,143%5Ev4%5Econtrol&utm_term=linux%E4%B8%AD%E7%9A%84%E8%BD%AF%E9%93%BE%E6%8E%A5%E5%92%8C%E7%A1%AC%E9%93%BE%E6%8E%A5&spm=1018.2226.3001.4187

1、什么是硬链接

硬链接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index) 。为防止误删重要文件,linux系统采用使用多个文件名指向同一索引节点的方式来保证文件能够更有保障。只删除一个链接并不影响索引节点本身和其它的链接,只有当最后一个连接被删除后(硬链接数归0),文件的数据块及目录的链接才会被释放。文件真正删除的条件是与之相关的所有硬链接文件均被删除

ln 源文件 硬链接文件

 

2、什么是软链接

软链接类似Windows系统中的快捷方式,软链接后的文件中保存着指向的源文件的链接,即保存着源文件的位置信息,与指针类似。

3、两者的区别

硬链接与源文件内容、id、创建时间、权限等等都相同

软链接的文件内容与源文件相同,其他都不同。

4、硬链接和文件复制的区别

硬链接是节点的复制,一个文件对应一个节点,一个硬链接就是一个节点

文件复制相当于新建文件的内容与源文件相同,是另外一个文件

普通权限的类型和作用

用户对文件的身份

u:        user文件的拥有者,ls  -l 看到的第五列信息

g:        group,文件的拥有组ls  -l看到的第六列信息        

o:        other,既不是拥有者也不是拥有组成员的其他用户的通常

权限位

        rwx        |        r--        |r--

          u                   g            o

用户身份匹配

用户身份优先级:user > group >other

权限类型

权限符号权限名称具体含义
-权限未开启什么权限都没有
r可读

对于文件:可以读取文件内容

对于目录:可以ls列出目录中的文件

w可写

对于文件:可以更改文件内容

对于目录:可以在目录中新建或者删除文件

x可执行

对于文件:可以用文件名调用文件内记录的程序

对于目录:可以进入目录中

 

 

设定普通权限的方法

chmod    --reference=/tmp    /mnt/westosfdir    
#复制/tmp目录的权限到/mnt/westosdir
chmod    -R    --reference=/tmp    /mnt/westosfdir
#复制/tmp目录的权限到/mnt/westosdir,复制中的子文件 -R 代表递归操作

字符形式来修改文件的权限:

chmod u/g/o +/- rwx    #给不同身份添加/去掉某种权限
chmod u/g/o = rwx --表示空即什么权限都没有    #使得不同身份的权限为...
chmod a +/-/= ...     #a代表所有身份的权限

 可用watch -n 5 ls -Rl   /mnt/file来将权限的变化观察的更直观

chmod    u-rw    /mnt/westos1    #去掉文件所有人权限的读和写
chmod    u-rw,g+x,o+wx    /mnt/westosfile2    
#去掉文件所有人的读写权限,添加文件所有组的执行权限,添加取他用户的写和执行权限
chmod    a-rwx    /mnt/westosfile3    #所有人、所有组和其他用户都去掉读写执行的权限
chmod    u=rwx,g=rx,o=---    /mnt/westosfile4    
#设定文件所有人的权限读写执行,所有组的权限为读和执行,其他用户没有权限
chmod    -R u=rwx,g=rx,o=---    /mnt/westosdir/
#设定该目录和目录下的所有文件的权限为:所有人的权限读写执行,所有组的权限为读和执行,其他用户没有权限

 chmod        数字方式设定权限

权限波尔指表示方式

rwx= 111

--- =  000

三位二进制可以表示的最大范围为8进制数

 

权限波尔指表示方式

rwx = 111 = 7

rw- = 110 = 6

r-x  = 101 = 5

r-- = 100 = 4

-wx = 011 = 3

-w- = 010 = 2  

--x = 001 = 1 

--- = 000 = 0

系统默认权限设定

系统本身存在的意义是共享资源。

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

如何保留权力

umask表示系统保留权力

umask    #查看保留权力
umask    权限值    #临时设定系统预留权力

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

目录默认权限 = 777 - umask

 umask值越大系统安全性越高

umask临时更改

umask        077

umask永久更改 :

/etc/bashrc    #shell系统配置文件
vim    /etc/bashrc
74     if xxxxxxxxxxxxxxx
75          umask 002    #普通用户的umask
76    else
77          umask 022 -- 077    #root用户的umask
78    fi

 

 

文件用户、用户组管理

chown    username    file    #更改文件拥有者
chgrp    groupname   file    #更改文件拥有组(更改的拥有组必须已经存在)
chown    username:groupname    file    
#同时更改文件的拥有者和拥有组(更改的拥有者和拥有组必须都存在)
chown|chgrp    -R    user|group dir    
#更改目录本身及目录中内容的拥有者或者拥有组(更改的拥有者和拥有组必须都存在)

特殊权限

stickyid        粘制位

针对目录:如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除

chmod    1原始权限    dir
chmod         o+t    dir
chmod 1777 /pub
chmod o+t  /pub
#以上两条命令都可以开启目录的t权限

1、将该目录权限全部打开 

2、分别切换到两个用户,都可以在目录中创建和删除文件 

 且可以任意删除其他用户创建的文件,这样系统安全性得不到保障,应当设置为只有文件所有人才能删除文件

3、设置粘制位,需要切换到超级用户才能设置 

4、测试,发现westos用户不能删除hhh用户创建的文件 

sgid             强制位

强制位的本质:程序运行时以程序本身所有组的身份运行,与当时系统的用户身份无关

针对目录:目录中新建的文件自动归属到目录的所属组中

chmod    2源文件权限    dir
chmod    g+s    dir

1、创建一个新的组并设置给/mnt/pub这个目录 (目录的权限全开777)

2、使用普通用户在该目录下创建文件,发现该文件的所有组为该普通用户

 3、添加用户组的权限为粘制位

4、切换普通用户创建文件,发现该文件的用户所有组为root用户 

 针对二进制可执行文件的影响:

1、 切换普通用户执行可执行文件,发现进程的所有组为该普通用户

2、添加/bin/cat可执行文件的权限并查看

3、再次切换普通用户执行可执行文件,发现进程的所有组为root

suid             冒险位

冒险位的本质:程序以程序文件所有人的身份运行,与系统现时的用户身份无关。

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

程序由代码组成
进程代码运行的状况
chmod    4原属性    file
chmod    u+s    file

1、普通用户没有/etc/passwd文件的读的权限 

 

2、修改cat命令的所有人权限

 

查看cat命令对于所有用户来说都是以root身份执行的 

 3、使用普通用户发现可以cat查看到/etc/shadow文件内容

企业中使用sgid,suid对程序本身进行权力调整

acl权限列表

acl权限:Aiccess Control Lists        访问控制列表

功能:在列表中可以设定特殊用户对于特殊文件有特殊权限

acl列表权限读取 

getfacl    westosfile

 显示内容分析:

#   file : westosfile        #文件名称

#   owner : root        #文件拥有者

#   group : root        #文件拥有组

user : : rw-        #文件拥有者权限

user : lee : re-        #特殊指定用户权限

group : : r--        #文件拥有者权限

group : Donnie : ---        #特殊指定用户组的权限

mask : : rw-        #能够赋予特殊用户和特殊用户组的做大权限阈值

other : : r--        #其他人的权限

注意:当文件权限列表开启后,不要用 ls -l 命令来读取文件的权限

acl列表的控制

setfacl    -m    u:Jobbin:rw    file    #设定各个身份下的file文件的权限
setfacl    -m    g:Donnie:rw    file    
setfacl    -m    u:Jobbin:rw    file    
setfacl    -m    u::rwx         file    
setfacl    -x    u:Jobbin       file    #删除列表中的Jobbin
setfacl    -b    file    #关闭file的权限列表

acl        权限的优先级

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

1、打开westos用户对于/mnt/pub目录的权限列表,权限为0 

 

+代表权限列表已经打开 。文件的权限将由权限列表接管,不要再使用ls -l 对文件权限进行查看 

2、查看权限列表内容:

3、删除列表权限并查看修改后的权限列表

权限列表的优先级匹配: 

文件所有人>特殊指定用户>权限多的组>权限少的组>其他人

acl        列表的默认权限 (针对目录)

功能:在列表中可以设定特殊用户对于特殊文件有特殊权限

setfacl    -m    u:Jobbin:rwx    /mnt/westosdir    #只对/mnt/westosdir目录本身生效
setfacl    -Rm    u:Jobbin:rwx    /mnt/westosdir   
#对/mnt/westosdir目录和目录中已有的内容生效
setfacl    -m     d : u : Jobbin :rwx    /mnt/westosdir     
#针对/mnt/westosdir之后新建的文件生效

1、只对于目录本身生效

2、对已经存在的文件的权限列表生效

3、对之后新建的文件的权限列表生效 ​​​​​​​​​​​​​​

 

 acl        mask控制

mask是能够赋予指定用户权限最大阈值

当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力,mask会发生变化

setfacl    -m : m :权限    file  #设置文件的mask权限值

注意:在开启acl权力列表后,ls -l 查看的group的权限是mask的权限 

1、设置两个特殊用户的权限为满,mask权限也满 

 2、设置mask权限为r--,发现两个特殊用户的权限也被减少至r--。可知mask权限为特殊用户的权限阈值

attr权限

attr权限会限制所有用户,因此只有超级用户才能使用该命令

lsattr    #查看lsattr权限
chattr     + a / i  - a / i    file/dir    #添加或删除attr权限

a权限    #只能添加不能删除
i权限    #不能做任何更改,但可以查看

1、默认atrr权限没有打开,超级用户可以在目录下建立和删除文件 

 

 2、添加a权限,只能创建不能删除目录下的文件

 3、添加i权限,即不能创建也不能删除文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值