详解linux文件权限

1.文件权限存在的意义

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

2.文件权限的查看

ls -l file

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

3. 文件权限的读取

   -  |  rw-r--r-- | 1  |  root  |  root  | 32  | Oct 9 01:18  |   file
   [1]      [2]     [3]    [4]      [5]     [6]       [7]          [8]

[1] 文件类型

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

[2] 文件权限

| rw- | r-- | r-- | 三位为一组,分别代表的是user,group,other(简写u,g,o)

u: 文件拥有者对文件能做什么操作
g:文件所有组对为文件能做什么操作
o:其他人对文件能做什么操作

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

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

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

[3] 文件内容被系统记录的为次数: “1” (硬连接)
[4] 用户名: “root” (文件的所有人)
[5] 用户组名字:“root” (文件的所有组)
[6] 文件内容的大小:“32“
[7]文件最后一次被修改的时间 : “Oct 9 1:18”
[8]文件名字:“filename” (文件的名称)

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

使用命令chown或者chgrp

chown username file 或者 dir更改文件或者目录的拥有着
chown user:group file 或着 dir更改文件或者目录的用户和用户组
chown -R user:group dir递归更改目录及目录中子文件的用户和用户组
使用:watch  -n  1  ls  -lR /mnt/  监控实验效果

(1) chown 新用户名 文件或者目录
在这里插入图片描述
(2) chown 新用户名:新用户组 文件或者目录
在这里插入图片描述
(3)chown -R 新用户名:新用户组 目录
在这里插入图片描述

chgrp group file或者dir更改文件或者目录的拥有着
chgrp -R group dir递归更改文件目录的用户组

(4)chgrp group file或者dir ##更改文件或者目录的所有组
在这里插入图片描述chgrp -R group dir ##递归更改目录及目录中所有文件的所有组
在这里插入图片描述
5.如何改变文件权限

更改方式

格式:
chmod	<u|g|o><+|-|=><rwx>	file|dir
eg:
chmod	u+x		    /mnt/file1
chmod	g-r		    /mnt/file2
chmod	ug-r		/mnt/file3
chmod	u-r,g+x		/mnt/file4
chmod	-r		    /mnt/file5   #u,g,o权限都减r
chmod	a-r		    /mnt/file6   #同上,与 -r相同
chmod	o=rw-		/mnt/file7   #将o权限改为rw-

chmod u+x /mnt/file1
在这里插入图片描述chmod g-r /mnt/file2
在这里插入图片描述

6.数字方式更改文件权限

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

格式:chmod 修改后的权限值 file
eg:chmod 777 file
在这里插入图片描述

8.系统默认权限

• 从系统角度上讲,开放权力越小,系统安全性越高
• 当你创建一个新的文件或目录时 , 该文件或目录有默认权限

umask 的值指的是 该默认值需要减掉的权限

umask 默认值为022 ##系统建立文件时默认保留的权力
umask 077 ##临时设定系统预留权限为077

• 在默认权限的属性上 , 目录与文件是不一样的
• 文件的最大权限为 666, 目录的最大权限为 777

永久更改umask
步骤一:编辑/etc/profile 文件
vim /etc/profile ##系统配置文件,更改超级用户umask 077

59 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
60     umask 002		##普通用户的umask
61 else
62     umask 077		##超级用户的umask
63 fi

步骤二: 编辑/etc/bashrc 文件
vim /etc/bashrc ##shell配置文件,更改超级用户umask 077

70 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
71     umask 002		##普通用户的umask
72 else
73     umask 077		##超级用户的umask
74 fi

步骤三:激活修改文件
source /etc/profile ##让更改立即生效
source /etc/bashrc
步骤四:命令行输入 umask
显示如下:
在这里插入图片描述

9.特殊权限

1.sticky #粘滞位
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的拥有者删除

设定方式:
	chmod	o+t	dir
	chmod	1xxx	dir

在这里插入图片描述

2.sgid ##强制位
作用

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

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

设定方式
	chmod	g+s	file|dir
	chmod	g-s	file|dir		##撤销权限
	chmod	2xxx	file|dir

在这里插入图片描述
3.suid ##冒险位

只针对与二进制可执行文件,当文件上有suid时,任何用户执行这个文件中的程序产生的进程都属于文件的所有人

设定方式
	chmod	u+s	file
	chmod	u-s	file		##撤销权限
	chmod	4xxx	file

在这里插入图片描述

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

1.作用
让特定用户对特定文件拥有特定权限
2.acl列表查看

-rw-rwxr--+ 1 root root 0 Jul 21 15:55 file
		  ^ 其中加号表示acl开启

getacl file ##查看acl开启的文件的权限
#file:file ##文件名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有人的权限
user:student:rwx ##指定用户的权限
group::r-- ##文件拥有组的权限
group:student:rwx ##指定用户组的权限
mask::rwx ##能赋予用户的最大权力阀值
other::r-- ##其他人的权限

在这里插入图片描述
如何设定特定权限
|

setfacl -m u:用户名:权限 文件名设置用户名对文件拥有的权限
setfacl -m g:组名:权限 文件名设置组成员对文件拥有的权限
setfacl -x u:用户名 文件名删除指定用户
setfacl -b 文件名关闭文件的acl列表

setfacl -m u:用户名:权限 文件名
在这里插入图片描述
setfacl -m g:组名:权限 文件名
在这里插入图片描述
setfacl -x u:用户名 文件名 #删除指定用户
在这里插入图片描述 setfacl -b 文件名 #关闭文件的acl列表
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值