Linux系统中的权限管理

本文详细介绍了Linux系统中的权限管理,包括权限查看、读取、普通权限类型及其作用,以及如何设定权限。通过chmod命令设置文件权限,如复制权限、字符和数字方式设定。讨论了系统默认权限设定和umask,以及文件用户和用户组管理。还探讨了特殊权限,如sticky位、sgid和suid,并解释了它们的作用。最后,提到了ACL权限列表和attr权限,提供了如何控制和设定这些高级权限的方法。
摘要由CSDN通过智能技术生成

Linux系统中的权限管理

一.权限查看及读取

(1)权限查看

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

[root@westoslinux ~]# ls -l file1
[root@westoslinux ~]# ls -ld westos
权限查看

(2)权限的读取

  • “文件的属性被叫做文件的元数据(meta data)”

  • “一种元数据用1个byte来记录内容”

  • 文件权限信息
    文件权限信息

  • 目录权限信息
    目录权限信息

  • 对于每一位的解释

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

[2] #用户权限
用户权限

[3] #系统的selinux开启

[4]
#对于文件:文件内容被系统记录的次数(硬链接个数)
#对于目录:目录中子目录的个数

[5] #文件拥有者

[6] #文件拥有组

[7]
#对于文件:文件内容大小
#对于目录:目录中子文件的元数据大小

[8] #文件内容被修改的时间

[9] #文件名称

二.普通权限的类型及作用

(1)用户对文件的身份

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

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

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

(2)权限位

权限位

(3)用户身份匹配

user>group>other

(4)权限类型

-
#权限未开启
r
#可读
#对于文件:可以读取文件内容
#对于目录:可以ls列出目录中的文件
w
#可写
#对于文件:可以更改文件内容
#对于目录:可以在目录中新建或者删除文件
x
#可执行
#对于文件:可以用文件名称调用文件内记录的程序
#对于目录:可以进入目录中

三.设定普通权限的方法

chmod #设定文件权限

chmod 复制权限

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

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

chmod 字符方式设定权限
chmod <a|u|g|o><+|-|=><r|w|x> file
字符方式设定权限

监控命令

[root@westoslinux ~]# watch -n 10 ls -l
监控命令

chmod 数字方式设定权限
权限波尔值表示方式:
rwx = 111
— = 000
三位二进制可以表示的最大范围为8进至数

  • rwx=111=7
  • rw-=110=6
  • r-x=101=5
  • r–=100=4=r
  • -wx=011=3
  • -w-=010=2=w
  • –x=001=1=x
  • —=000=0

示例:chmod 600 westos5 #rw-------

[root@westoslinux ~]# chmod 600 westos5
数字方式修改权限

四.系统默认权限设定

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

【1】如何保留权力

umask表示系统保留权力

umask
#查看保留权力
查看保留权力

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

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

  • 目录默认权限 = 777-umask

  • umask值越大系统安全性越高

  • umask临时更改
    umask 077
    临时更改

  • 永久更改

  • vim /etc/bashrc #shell系统配置文件
    74 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
    75 umask 002 #普通用户的umask
    76 else
    77 umask 022 – 077 #root用户的umask
    78 fi
    编辑配置文件

  • vim /etc/profile #系统环境配置文件
    59 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
    60 umask 002 #普通用户的umask
    61 else
    62 umask 022 – 077 #root用户的umask
    63 fi
    系统环境配置文件编辑

  • source /etc/bashrc

  • source /etc/profile
    #source作用是使我们更改的内容立即被系统识别
    永久修改

五.文件用户用户组管理

chown username file
#更改文件拥有者
chgrp groupname file
##更改文件拥有组
chown username:groupname file
#同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir
#更改目录本身及目录中内容的拥有者或者拥有组

[root@westoslinux ~]# chown westos file1 #更改file1文件拥有者
[root@westoslinux ~]# chgrp westos file1 #更改file1文件拥有组
[root@westoslinux ~]# chown westos:westos file2 #同时更改file2文件的拥有者拥有组
[root@westoslinux ~]# chown -R westos westos2 #更改目录本身及目录中的内容的拥有者
[root@westoslinux ~]# chgrp -R westos westos2 #更改目录本身及目录中内容的拥有组
文件用户用户组管理

六.特殊权限

【1】stickyid 粘制位

  • 针对目录:
    如果一个目录stickyid开启,那么这个目录中的文件
  • 只能被文件所有人删除
    chmod 1原始权限 dir
    chmod o+t dir

实验:
监控命令:watch -n 10 ls -lR /pub
mkdir /pub
chmod 777 /pub

su - westos ----> touch /pub/westosfile
exit
su - lxywestos --------> touch /pub/lxyfile
rm -fr /pub/lxyfile
#可以删除
rm -fr /pub/westosfile
#不属于自己的文件也可以删除

  • 如何解决此问题:
    chmod 1777 /pub
    chmod o+t /pub
    以上两条命令都可以开启pub目录的t权限

su - westos ----> touch /pub/westosfile
exit
su - lxywestos --------> touch /pub/llxyfile
创建文件

rm -fr /pub/lxyfile
#可以删除
rm -fr /pub/westosfile
#不属于自己的文件不能删除
rm: cannot remove ‘westosfile’: Operation not permitted
操作截图
结果显示

【2】sgid 强制位

  • 针对目录: 目录中新建的文件自动归属到目录的所属组中
    设定:
  • chmod 2源文件权限 dir
  • chmod g+s dir

实验
group westoste

mkdir /mnt/westosdir
chmod 777 /mnt/westosdir
watch -n 1 ls -lR /mnt

westos —> touch /mnt/westosdir/file
#是谁建立的文件组就是谁的chmod g+s /mnt/westosdir

westos —> touch /mnt/westosdir/file1
#file1自动复制了/mnt/westosdir目录组

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

实验:
su - westos
/bin/cat

监控命令:watch -n 1 “ps ax -o user,group,comm | grep cat”
显示:westos westos cat

用root用户身份
chmod g+s /bin/cat
su - westos
进程:/bin/cat

ps ax -o user,group,comm | grep cat
显示:westos root cat
在这里插入图片描述

【3】suid 冒险位

  • 只针对二进制的可执行文件(c程序)
  • 当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
  • chmod 4原属性 file
  • chmod u+s file

实验:
su - westos
/bin/cat

ps ax -o user,group,comm | grep cat
显示:westos westos cat
监控进程

用root用户身份
chmod u+s /bin/cat

su - westos
/bin/cat

ps ax -o user,group,comm | grep cat
显示:root westos cat
冒险位

七.acl权限列表

Aiccess Control Lists #访问控制列表

  • 功能:
  • 在列表中可以设定特殊用户对与特殊文件有特殊权限
  • acl列表开启标识
    -rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile

没有"+"代表acl列表未开启
-rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
+ :acl列表功能开启

acl列表权限读取

  • getfacl westosfile

  • 显示内容分析:

  • file: westosfile
    #文件名称

  • owner: root
    #文件拥有者

  • group: root
    #文件拥有组

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

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

  • group::r–
    #文件拥有组权限

  • group:westos:—
    #特殊指定的用户组的权限

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

  • other::r–
    #其他人的权限

  • “注意:”
    “当文件权限列表开启,不要用ls -l 的方式来读取文件的权限”

#acl列表的控制
setfacl -m u:lxywestos:rw westosfile #设定
setfacl -m g:westos:rw westosfile
setfacl -m u::rwx westosfile
setfacl -m g::0 westosfile
权限列表设定

setfacl -x u:lxywestos westosfile #删除列表中的lxywestos
setfacl -b westosfile #关闭
删除列表中的lxywestos
关闭权限列表

acl 权限优先级

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

acl mask 控制

  • mask是能够赋予指定用户权限的最大阀值
  • 当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力,mask会发生变化
  • 恢复:
    setfacl -m m:权限 文件

acl 列表的默认权限

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

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

  • 以上的命令之针对与存在的文件生效,新建文件是不会被设定的

  • setfacl -m d:u:lee:rwx /mnt/westosdir/

  • #针对与/mnt/westosdir目录中新建文件生效

八.attr权限

attr权限限制所有用户

i #不能作任何的更改
a #能添加不能删除

lsattr dir|file
#查看attr权限

chattr +i | +a |-i | -a dir | file
#设定attr权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值