权限设定

本文详细介绍了Linux系统中文件权限的重要性和查看方法,包括文件的类型、权限位的解读,以及如何通过`chown`、`chgrp`命令改变文件的所有者和组。此外,还讲解了如何通过字符和数字方式修改文件权限,系统默认权限的设定,以及文件访问控制(ACL)和特殊权限(如sticky位、sgid和suid)的概念和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第五章:权限设定(权限问题:系统稳定的基础 ,相当于规定法律)

1.文件权限存在的意义

文件权限的存在是系统最底层安全设定方法之一,保证文件可以被可用的用户做相应操作

2.文件权限的查看

ls -l file查看文件信息
ls -ld dir查看目录本身信息
ll file相当于ls –l file
ll -d dir相当于ls -ld dir
ls –LR dir递归显示子目录

ls -l file ##使用此命令查看文件的属性以及权限
在这里插入图片描述
ls -l -d dir=ls -ld dir ##使用此命令查看目录的属性以及权限
在这里插入图片描述

ll file ##查看文件的属性
在这里插入图片描述
ll -d dir ##查看目录的属性
在这里插入图片描述
alias ##利用该命令可以查询到此系统下的命令的别名
在这里插入图片描述
ls –LR dir##递归显示子目录
在这里插入图片描述
总结:ls –lR dir 可以递归查看目录下的所有目录、文件以及目录下的文件

3.文件属性的查看(读取权限)

 - | rw-r--r--|1|root|root| 32 |Apr 2 02:03 |filename
 1       2	   3   4    5    6       7            8     

(1)文件类型:

-空文件,或者文本
d目录
l软连接,相当于快捷方式
ssocket套接字(一个程序对外开放的门)
bblock块设备
c字符设备
p管道

-表示普通文件或空文本(没有系统级的功能)
在这里插入图片描述
d 表示目录
在这里插入图片描述
c 表示字符设备
在这里插入图片描述

s 表示套接字(socket)

是程序的一扇门 ,进入这扇门内部才能进入程序内部和程序交流
一般采用 mysql 设定一个程序可以进入大程序里面

p 表示管道
b 表示块设备(block)
l 表示链接(快捷方式 软链接)
在这里插入图片描述
(2)文件的权限:(文件权限共9位,分为3部分)
| rw- |rw- | r–| 三位为一位,分别代表的是user,group,other(简写为u,g,o)
u:文件拥有者对文件能做什么操作(所有人)
g:文件所有组对文件能做什么操作(所有组)
o:其他人对文件能做什么操作(其它人)

(3)文件内容被系统记录的次数:“1”(硬链接)

对文件文件内容被系统记录的次数(文件硬链接个数)
对目录目录中文件属性的字节数(目录中子目录的个数)

在这里插入图片描述
(4)用户名字:“root”(文件的所有人)
(5)用户组名字:“root”(文件的所有组)
(6)文件内容的大小:“32”

对文件:文件大小
对目录:目录中子文件元数据(matedata元数据可以理解为文件案的属性)大小,文件夹的时间戳不算

(7)文件最后一次被修改的时间:“Apr 2 02:03”

文件的内容被修改的时间

(8)文件名字:“filename”(文件的名称)

总结:
文件属性共占11位
属性大小要会数
对目录而言: 一个是子目录的个数 一个是元数据或者属性的大小

4.如何改变文件的所有组和所有人?

使用命令chown或者chgrp

思路:先建立文件和目录,再监控文件和目录所有人所有组改变的过程
监控命令 : watch  -n  1  ls  -lR   /mnt/

在这里插入图片描述
在这里插入图片描述

chown username file或者dir更改文件或者目录的拥有者
chown user-group file或者dir更改文件或者目录的用户和用户组
chown -R user-group dir递归更改目录的用户和用户组

(1)chown username file|dir ##更改文件或者目录的所有人
在这里插入图片描述
(2)chown username.groupname file|dir ##更改文件或者目录的所有人所有组
在这里插入图片描述
(3)chown -R username dir ##更改目录本身及里面所有内容的所有人
在这里插入图片描述

chgrp group file或者dir改变文件或者目录的用户组
chgrp -R group dir递归改变目录的用户组

(4)chgrp groupname file|dir ##更改文件或者目录的所有组
在这里插入图片描述
(5)chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组
在这里插入图片描述
总结

touch /mnt/file{1..3} 先建立文件
mkdir /mnt/westos 再建立子目录
touch /mnt/westos/westosfile{1..3} 再在子目录下建立文件
建立用户 useradd leo  linux
chown  改用户名字
chgrp   改用户组名字
chown  -R  改用户名字及其子目录下的所有文件用户名(一改到底)
chgrp  -R  改用户组名字及其子目录下的所有文件的用户组名字(一改到底)
要会算隐藏文件. 和 ..的大小
一共是6   (仅记录自己 用户类型) 用户和 用户组各  3个

5.文件普通权限:

r w - | r - - | r - -
  u       g       o
u文件所有人对文件可以读写
g文件组成员对文件可读
o其他人对文件可读

优先级:u优先匹配,g次优先,o当u,g不匹配时匹配

r:
对文件:可以查看文件中的字符
对目录:可以查看目录中文件的信息

w:
对文件:可以更改文件内字符
对目录:可以在目录中添加删除文件

x:
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录中

6.字符方式修改该文件权限(如何改变权限)

chmod +(增加权限)or -(去掉权限)来改变权限

(1)chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir 总的格式
在这里插入图片描述
(2)chmod u-x file1 file1拥有者去掉x权限
在这里插入图片描述
(3)chmod g+w file1 file1拥有组添加w权限
在这里插入图片描述
(4)chmod u+x,g-w file1 file1拥有者去掉x权,file1拥有组添加w权限
在这里插入图片描述
(5)chmod ugo-r file2 file2的用户、组、其他人去掉r权限
在这里插入图片描述
(6)chmod ug+x,o-r file3 file3用户和组添加x权限,其他人去掉r权限
在这里插入图片描述

7.数字方式修改该文件权限

在linux中,三种权限的权值为:r=4,w=2,x=1

文件权限数字表示方式如下:

u= r w - = 4+2+0=6
g= r - - = 4+0+0=4
o= r - - = 4+0+0=4
所以文件权限表示为644

格式

chmod 修改后权限值 file
chmod 777 file
文件权限数字表达的所有可能如下:
7=r w x;6=r w -;5=r - x;4=r - -;3=- w x;2=- w -;1=- - x;0=- - -

r 读        			用ls查看文件(看)
w 写   		 	    是否可以新建或者删除(搬走)
x 调用执行  		    是否可以进入此目录(进入)

8.系统默认权限的设定:

从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
权限设定方式如下:
umask ##查看系统保留权限默认为022
umask 077 ##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效

永久设定方式
vim /etc/bashrc ##设置shell中的权限
70 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
71 umask 002 ##普通用户的umask
72 else
73 umask 077 ##超级用户的umask
74 fi
vim /etc/profile ##设置系统的权限
59 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
60 umask 002 ##普通用户umask
61 else
62 umask 077 ##超级用户umask
63 fi

以上两个文件umask设定值必须保持一致
source /etc/bashrc
source /etc/profile
让设定立即生效

9.文件的访问控制(acl列表)

(1)acl定义: acl = access control list
指定特殊用户对特殊文件有特殊权限
命令格式:getfacl /mnt/westos/ 查看该目录的权限列表
在这里插入图片描述
file: westos/ ##文件名称
owner: root ##文件所有人
group: root ##文件所有组
user::rwx ##拥有者权限
user:student:rwx ##特殊用户权限
group::— ##组权限
mask::rwx ##权限掩码
other::— ##其他人权限

注意:当文件上有权限列表时,ls -l 能看到的权限是假的

(2)设定acl列表
命令格式:setfacl -m <u|g>:<username|groupname>:权限 文件|目录

-m表示设定acl列表
u表示用户
g表示用户组

删除列表中的用户或者组
命令格式:setfacl -x <u|g>:<username|groupname> 文件|目录

关闭列表
setfacl -b 文件|目录

注意
mask用来表示能够赋予用户最大权限
当用chmod改变文件普通权限时mask值可能会被破坏
修复采用:setfacl -m m:rwx 文件名称
acl 默认权限
当我们需要某个目录对于student可写,并且目录中新建的子目录对student也可写
就要设定默认默认权限
注意
默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,
对于目录本身也无效
setfacl -m d:u:student:rwx /westos

10.特殊权限

1.sticky 粘制位

只针对目录有效,当一个目录上有sticky权限时,这个目录中的文件只能被文件的所有者删除
设定方式
chmod o+t direcotry
chmod 1777 direcotry
chmod 1xxx direcotry

(1)先在超级用户下建立一个目录 mkdir /westos1
然后设置监控命令j监控改目录以及改目录下的文件:
watch -n 1 “ls -ld /westos1 ; ls -l /westos1”
并且在超级用户下设置满权限 chmod 777 /westos1
在这里插入图片描述
(2)在超级用户下建立两个普通用户linux1 linux2
分别切换到两个普通用户下建立文件file1 file2
在这里插入图片描述
(3)linux1用户可以删除linux2用户建立的文件file2,这样做很不安全
怎样解决这个问题?我们可以设置特殊权限t
在这里插入图片描述
(4)在超级用户模式下给westos1这个目录增加t权限
在这里插入图片描述
(5)给westos1目录加上t权限以后,linux2用户就不能删除linux1用户建立的file1文件了
在这里插入图片描述

2.sgid 强制位

设定方式:
chmod g+s file|dir
chmod 2xxx file|dir

对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

(1)首先在超级用户下建立一个目录
并且对这个目录进行监控
在这里插入图片描述
(2)查看这个目录的权限:
在这里插入图片描述
(3)在超级用户下建立一个新用户,并且将新建目录的用户组变为刚刚新建的用户
然后在改目录下建立新的文件,发现此文件的用户组仍然为超级用户,
并不是刚刚 新建的那个用户
在这里插入图片描述

(4) 为了使在目录中建立的文件都属于目录的用户组,需要在目录上加上s权限
在这里插入图片描述
由此可见,当给目录加上s权限时,目录的所有组权限会出现s,此时建立的文件的所有组为目录的所有组。

对文件:只针对二进制可执行文件,当文件上有s权限时任何人执行此文件产生的进程都属于文件的所有组

(1)先监控二进制文件的进程:
在这里插入图片描述

(2)查看该二进制文件的权限:
在这里插入图片描述
(3)以root身份启动一个进程,这个进程的所有人和所有组均为root
然后将改文件的所有组改为linux3,发现并没有改变,仍为toot
在这里插入图片描述
(4)给二进制文进加上s权限,重新开启一个新的进程
在这里插入图片描述
3.suid 冒险位

作用:只针对二进制可执行文件,当文件上有suid权限时任何人执行这个文件中程序产生的进程都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file

(1)监控二进制文件的进程:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值