Linux文件权限

1.文件属性的查看

(1)文件权限存在的意义
文件权限是系统最底层的安全机制组成之一
权限设定的作用是保证文件可以被可用的用户做相应的操作

(2)文件权限的查看

ls -l file      ##查看文件的属性
ls -ld dir      ##查看目录的属性

在这里插入图片描述

-|rw-r--r--.|1|root|root|0|Jan 29 12:00|filename
1>   <2>    <3> <4> <5> <6>    <7>         <8>

<1>"_":文件类型

文件类型
_普通文件
d目录
c字符设备
p管道
b块设备
l链接
s套接字

<2>“rw-r–r--”:文件读写权限

rw-|r--|r--
 *   #   $
 *所有人权限
 #所有组权限
 $其他人权限

<3>“1”:
对文件:文件日内容被系统记录的次数
对目录:目录中文件属性的字节数
<4>“root”:文件所有人
<5>“root”:文件所有组
<6>“0”:文件内容的大小
<7>“Jan 29 12:00“:文件最后一次被修改的时间
<8>“file”:文件名字

2.文件所有人所有组的管理

命令功能
chown username file/dir更改文件的所有人
chown username.groupname file/dir更改所有人的所有组
chown -R username dir更改目录本身及里面所有内容的所有人
chgrp -R groupname dir更改目录本身及里面所有内容的所有组
watch -n 1 ls -lR /mnt/ 监视

在这里插入图片描述
目录test使用命令chown redhat test 发现只能改变目录本身,不改变里面内容
使用递归-R,改变本身包括内容:
在这里插入图片描述
同时改变多个文件,用空格隔开:
在这里插入图片描述

3.文件普通权限

注意:所有的权限限制对超级用户都没有用

rw-|r--|r--
 u   g   o

u:文件所有人对文件可以读写
g:文件组成员对文件只可读
o:其他人对文件只可读
u优先匹配,g次优先,o当u,g不匹配时匹配
读权限 r:
对文件:可以查看文件中的字符,cat file可以查看
对目录:可以查看目录中文件或子目录的信息,ls dir可以查看
写权限 w:
对文件:可以更改文件内字符
对目录:可以在目录中添加删除文件
这个目录的所有者对目录有读写和执行的权利,所以可以对文件和目录进行移动(文件或目录的移动是一个重命名的过程)
执行权限 x:
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录中

命令功能
chmod u+x file1file1拥有者加上x权限
chmod g+w file2file2拥有组添加w权限
chmod u+x,g+w file3file3拥有者去x,拥有组加w权限
chmod ugo-r file4file4用户、组、其他人均去掉r权限
chmod ug+x,o-r file5file3用户和组加x权限,其他人去r权限

在这里插入图片描述
<1>在root下修改权限,切换到普通用户,当对没有写权限的file1进行编辑保存时因权限不够而无法保存,即使!wq强制保存也不行。在这里插入图片描述
在这里插入图片描述
<2>若一个文件要可写,则必须有读权限

在这里插入图片描述
<3>若没有w写权限,则文件不能移动
在这里插入图片描述

<4>若没有读权限r,则不能对文件进行查看
file5的其他用户o没有读权限时:
在这里插入图片描述

对file5赋予r权限时:
在这里插入图片描述
<5>若没有执行权限x,则不能进入目录
如给test目录的组赋予x权限,其他人没有x权限,则非redhat组用户ld无法进入test目录。在这里插入图片描述
<6>从上面可以看出修改权限的格式还有两种

1.chmod ugo=rwx filename    ##新的权限直接覆盖旧权限
2.chmod 756 filename        ##按位计算2^2+2^1+2^0=7
                                     2^2+0+2^0=5
                                     2^2+2^1+0=6
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---

注意:
1.目录有写的权限,读和执行是必须赋予的
2.没有明确说明的权力就表示回收
3.默认权力为了安全
4. 一个目录的默认权力是755
5.文件的默认权限是644 没有执行权限 ,日志文件系统会默认把文件的执行权力回收,这是软件本身决定的
6.windows系统没有linux系统稳定,前者系统下文件默认有执行权限
7.不同的文件系统预留的权限是不同的
在这里插入图片描述

4.系统默认权限的设定
从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
设定方式:

umask		##查看系统保留权限默认为022
umask 077	##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效

(1)临时设定方式
注意:文件权限=777-umask值
文件默认权限644,修改umask值为077,则权限变600
在这里插入图片描述
但umask为临时设定,重新打开shell权限恢复
在这里插入图片描述

(2)永久设定

vim /etc/bashrc    ##设备欲留权限

在这里插入图片描述

<1> -gt表示大于
<2> id -gn 表示用户所有组
<3>id -un 表示用户的名字
<4>if条件语句的意思是:如果用户的UID大于199,并且该用户的组和用户的名字相同, 那该用户的umask值就为002,否则其umask值为022
<5> 普通用户的UID大于1000,所以默认umask值为002 超级用户的UID是0,小于199,所以其默认umask是022

更改umask值
在这里插入图片描述
使用source /etc/bashrc使其设定立即生效
在这里插入图片描述

vim etc/profile      ##系统欲留权限

在这里插入图片描述
使用source /etc/profile使其生效
在这里插入图片描述
注意:操作完实验记得修改回原来权限,以免影响以后操作

5.特殊权限
(1)冒险位suid
作用:只针对二进制可执行文件
文件内记录的程序产生的进程的所有人为文件所有人
和进程发起人身份无关
设定方式:

chmod u+s file
suid=4
chmod 4xxx file

对文件:/bin/watch所属的用户是root,用户redhat在执行/bin/watch时,产生进程的用户属于给/bin/watch加一个冒险位,用户redhat再执行/bin/watch时,产生的进程的用户属于root
并且查看/bin/watch的属性,u上变成了rws
打开一个shell,切换到普通用户执行
在这里插入图片描述
打开另一个shell超级用户查看进程,watch产生进程用户是redhat
在这里插入图片描述
添加强制位,再在普通用户执行watch -n 1 date 命令
超级用户再查看进程,用户变为root
在这里插入图片描述

(2)强制位 sgid
作用:
对文件:只针对二进制可执行文件,任何人运行二进制文件程序时程序产生的进程的所有组都是文件的所有组,和程序发起人组的身份无关
对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关

设定方式:

chmod g+s file|dir
sgid=2
chmod 2xxx file|dir

接着上面的操作继续继续执行

在这里插入图片描述
再在普通用户执行watch -n 1 date 命令,超级用户下查看,用户组也变成root
在这里插入图片描述

(3)粘制位sticky
t 权限:
只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
设定方式:

chmod o+t direcotry
t=1
chmod	1777 direcotry

添加两个用户,创建新的目录,给新目录赋予所有权限
在这里插入图片描述
用其中一个用户在新目录里创建文件,切换到另一个用户去删除file1,发现可以被删除
在这里插入图片描述
回到超级用户给/pub/目录赋予粘滞位t,可见将其他人的目录权限x改为t
在这里插入图片描述
这时切换到非文件所有者去删除这个目录下的文件file2,发现操作被拒绝
在这里插入图片描述
切换到文件所有者,可以删除

在这里插入图片描述
6.文件访问的控制(acl表)

普通用户不能访问超级用户的桌面,做实验是需要在/mnt/下

(1)acl定义:
acl = access control
指定特殊用户对特殊文件有特殊权限

drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/
	      ^
  +号 表示/westos目录权限列表开启

打开file列表权限:getfacl file
在这里插入图片描述

# file: westos/		   ##文件名称
# owner: root		   ##文件所有人
# group: root		   ##文件所有组
user::rwx		       ##拥有者权限
user:student:rwx	   ##特殊用户权限
group::---		       ##组权限
mask::rwx		       ##权限掩码
other::---		       ##其他人权限

设置文件权限列表,给用户和组redhat赋予qwx权限
在这里插入图片描述
删除acl列表删除redhat
在这里插入图片描述
关闭列表,+号消失
在这里插入图片描述
注意:当文件上有权限列表时,ls -l能看到的权限是假的

7.mask值

在权限列表中mask表示能生效的权限值
当用chmod减小开启acl的文件权限时mask值会发生改变

chmod g-w file

注意,这个g不是代表组,而是更改mask的值,对ugo都有影响

在这里插入图片描述
显示有效权限r和x
如果要恢复mask值

setfacl -m m:rwx file

在这里插入图片描述
8.acl默认权限
acl默认权限只针对目录设定
“acl权限只针对设定完成之后新建立的文件或目录生效,
而已经存在的文件是不会继承默认权限”

设定方式:setfacl -m d:u:student:rwx /mnt/westo
setfacl -k /mnt/dzh			##移除默认访问控制列表

普通用户没有在该目录下创建文件的权力
在这里插入图片描述

给redhat用户默认权限rwx,仍然无法创建文件
在这里插入图片描述
回到超级用户,在该目录下创建新的目录,再到redhat用户去新的目录创建文件,成功在这里插入图片描述
可见只对新建的目录或文件生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值