目录与文件权限的设定

本文详细介绍了Linux系统中的文件权限,包括查看、改变文件拥有者和所属组的方法,以及如何设置和管理文件和目录的读写执行权限。还讨论了系统默认权限的设定,如umask,以及访问控制列表(acl)的使用,包括特殊权限位如suid、sgid和sticky位的含义和应用。

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

一、文件权限

1.目录与文件属性的查看
ls -l -d dir =ll -d dir
ls -l file =ll file
-rw-r–r--. 1 root root 0 Dec 31 09:55 file

1.“-” :文件类型
-:##普通文件
l:##软链接
d:##目录
c:##字符设备
s:##套接文件
p:##管道
b:##块设备

2.“rw-r–r--.”:目录或文件读写权限
<1> rw- <2> r-- <3> r–
<1> :文件拥有者拥有的权利
<2> :文件所属组拥有的权利
<3>:其他人拥有的权利
r:可读 w:可写 x:可执行

3.“1”
对文件:文件内容被系统记录的次数
对目录:二级子目录的个数(目录中可能有隐藏目录)

4.“root” 文件的拥有者

5.“root” 文件的所属组

6.“0” 文件的内容大小

7.“Dec 31 09:55” 文件最后一次被修改的时间

8.“file” 文件的名字

二、文件拥有者和所属组的改变

chown username file|dir
chgrp groupname file|dir
chown username.groupname file|dir
chown -R username file|dir (递归)
chgrp -R groupname file|dir (递归)

在这里插入图片描述

三、文件和目录普通权限

u :表示文件或目录拥有者
g :表示文件或目录的所属组
o :表示文件或目录的其他人

r
对文件:可以查看文件的字符(内容)
对目录:可以查看目录中文件/目录的信息

w
对文件:可以更改文件内的字符
对目录:在目录中增删改查

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

四、文件拥有者,所属组,其他人的权限的管理

chmod ug+r file :表示给file的拥有者和所属组添加可读的权限
chmod u+rw, o-r file :表示给file的拥有者添加可读可写的权限,其他人取消可读的权限
chmod 744 file :表示将file的拥有者,所属组,其他人的权限分别改为可读可写可执行(7=4+2+1),可读(4),可读(4
在这里插入图片描述

     (注:## r=4, w=2 ,x=1)

五、系统默认权限的设定

系统设定新建文件或目录会去掉一些权限
临时设定
umask(普通用户和超级用户) # 查看系统减掉的权限
umask xxx #修改该系统默认权限减掉xxx,此设定是临时设定,只在当前shell生效
umask 421=(umask u=r,g=w,o=x)
在这里插入图片描述

永久设定
vim /etc/bashrc
{ 70 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
71 umask 002 #普通用户的umask
72 else
73 umask 022 #超级用户的umask
74 fi}

vim /etc/profile
{59 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
60 umask 077
61 else
62 umask 022
63 fi}

(注:以上两个文件的umask值必须保持一致)

source /etc/bashrc
source /etc/profile

    让系统重新加载配置文件,让设定立即生效

六、文件的访问控制(acl列表)

1.acl的定义
acl=access control
指定特殊的用户对特殊的文件有特殊的权限

ls -dl /home/kiosk/
drwx–x—+ 44 kiosk kiosk 4096 Dec 31 08:59 /home/kiosk/

“+”表示标示开启了acl访问控制列表
##注意:当文件/目录有权限列表时,ls-l能看到的权限是假的(不完整的)

acl列表权限的查看
getfacl /home/kiosk
在这里插入图片描述
#file: home/kiosk ##目录/文件的名称
#owner: kiosk ##目录/文件 的拥有者
#group: kiosk ##目录/文件 的所属组
user::rwx ##拥有者的权限
user:qemu:–x ##acl列表中(特殊用户)的权限
group::— ##特殊组的权限
mask::–x ##权限掩码
other::— ##其他人的权限

2.设定acl列表
setfacl -m u:student:rwx file :表示给acl列表中对file文件添加用户student权限为rwx
-m :设定
u :用户
g :组
在这里插入图片描述

3.删除列表中的用户或组
setfacl -x u:student file
u:表示用户
g:表示所属组
在这里插入图片描述

4.关闭列表
setfacl -b file

在这里插入图片描述

5.acl mask的意义
mask用来标示实际能够赋予用户最大权限
setfacl -m m:rw- file :表示把文件file的acl mask更改为rw-
在这里插入图片描述

(注:可能:当你用chmod改变文件普通权限的时候可能会破坏acl mask)

6.acl的默认权限
当我们需要普通用户对属于root的某个目录拥有写的权限时,目录中新建的子目录对普通用户生效,就要设定acl默认权限

(注:默认权限只对目录中新建的目录或文件生效,对已经建立的目录和文件无效,对目录本身也无效)

setfacl -m d:u:student:rwx /westos/ :表示给予student用户对/westos/目录中新建目录有rwx的权限
在这里插入图片描述
在这里插入图片描述

七、特殊权限位
1.suid ##冒险位
只针对二进制可执行文件
文件内记录的程序产生进程的拥有者为文件的拥有者
和进程的发起人没关系
chmod u+s /usr/bin/touch == chmod 4755 /usr/bin/touch
-rwsr-xr-x. 1 root root 62432 Jan 25 2014 /usr/bin/touch
在这里插入图片描述
在这里插入图片描述
2.sgid ##强制位
对文件:只针对二进制可执行文件,
任何人运行二进制文件程序时程序产生的进程的所属组都是文件的所有组
和程序发起人组的身份无关
chmod g+s /usr/bin/touch ==chmod 2755 /usr/bin/touch
在这里插入图片描述

对目录:当目录有sgid权限后,目录中新建的所有文件的所有组
都自动归属到目录的所有组之中,和文件建立者所在的组无关

设定方式
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
-rwxr-sr-x. 1 root root 62432 Jan 25 2014 /usr/bin/touch

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

设定方式:
chmod o+t direcotry
t=1
chmod 1777 direcotry
drwxrwxrwt. 2 root root 6 Dec 31 17:04 /pub/
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值