浅谈Linux中文件的权限

1.文件权限存在的意义
系统最底层安全设定方法之一
保证文件可以被可用的用户做相应操作
2.文件权限的查看
我们现在来创建一个文件和一个目录,来看看它们的权限
例:ls -l file1 (这是对文件权限的查看)
在这里插入图片描述
ls -ld hehe ( 这是对目录权限的查看)
在这里插入图片描述
ll file1
ll -d hehe
这两个命令跟上面两个命令一样 ,我们可以利用alias命令看到各命令的别名
在这里插入图片描述
3.文件权限的读取
我们随便打开一个目录或文件来看看它的权限,这里我打开一个目录来演示
在这里插入图片描述
可以看到一个显示了8列内容,它们都代表什么含义呢?
例:- rw-r–r--. 1 root root 29 Dec 18 18:47 foundation-config-post.log
[1] [2] [3] [4] [5] [6] [7] [8]
[1]文件的类型,常见有以下类型
1)- 表示空文件,或者文本
2)d 表示该文件为目录
3)l 表示软链接
4)s 表示该文件为套接字文件(socket)
5) b 表示block块设备
[2]
[3]对于文件来说,表示硬链接的个数,即文件内容被记录的次数,对于目录来说表示目录中子目录的个数
[4]表示该文件的所有者
[5]表示文件的所有组
[6]对文件来说表示文件的大小,对于目录来说目录中子文件原数据大小
[7]文件内容被修改的时间,依次为月份,日期及时间
[8]表示文件名称
4.如何改变文件的所有人和所有组
chown 用户名 文件名 此命令可以用来更改文件的所有者
chgrp 用户名 文件名 此命令可以改变文件的所属组
chown 用户名1:用户名2 文件名 此命令可以改变文件所有者和所属组,这样就可以把两个一起更改,方便快捷。
【-R】 可以第归显示
为了能直观的看到上述命令的效果我们来做以下实验
首先采用监视命令
在这里插入图片描述
然后我们在/mnt 下创建实验文件和目录,可以看到它们的所有人和所属组都是root
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里我们采用上述命令可以直观的看到各个命令的效果
5.如何更改文件的权限
1)对权限的理解
r 对文件:是否可以查看文件中的内容 -----cat file
对目录:是否可以查看中有什么子文件或者子目录 ---- ls dir
w 对文件:是否可以改变文件里面记录的文字
对目录:是否可以对目录中子目录或子文件的原数据进行更改
x 对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
2)更改方式
<u|g|o><+|-|=><r|w|x> file|dir
命令chmod用来改变用户对文件/目录的读写执行权限
通常情况下我们可以直接对文件的所有人(u),所有组(g),非本群组用户(o)添加r(读)w(写)x(可执行)权限
例:在这里插入图片描述
在这里插入图片描述
当然除了这种方式,在linux中为了方便更改文件权限,使用数字代替rwx,具体规则为:r等于4,w等于2,x等于1,-等于0。例如,rwxrwx—用数字表示就是770,具体算法为:rwx =4+2+1=7,rwx=4+2+1=7,—=0+0+0=0
在这里插入图片描述
在这里插入图片描述
6.命令umask
umask 系统建立文件时默认保留的权力
在这里插入图片描述
这里我们可以看到umask值为0022
umask 077 #临时设定系统预留权限为077
上面的方法只能临时改变系统预留权限,如何永久更改umask,那么就用到了下面的方法
vim /etc/profile ##系统配置文件
在这里插入图片描述
如图所示,只要更改umask的值然后保存退出就可以永久更改了
if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
umask 002 ##普通用户的umask
else
umask 077 ##超级用户的umask
fi

vim /etc/bashrc ##shell配置文件
if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
umask 002
else
umask 077
fi

source /etc/profile #让更改立即生效
source /etc/bashrc
7.特殊权限
1.sticky ##粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
下面我们对目录进行操作
在这里插入图片描述
2.sgid ##强制位
作用:
对文件:只针对于二进制可执行文件,当文件有sgid时任何人执行此文件产生的进程都属于文件的组
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s file/dir
chmod 2xxx file/dir
下面我们通过一个简单的实验来理解
在这里插入图片描述
3.suid ##冒险位
只针对于2进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
设定方式
chmod u+s file
chmod 4xxx file
同样利用一个实验来理解这个问题
在这里插入图片描述
可以看到当我们设置了suid后任何人执行这个文件中记的程序产生的进程都属于文件的所有人bobo
8.acl权限列表
1) 作用:让特定的用户对特定的文件拥有特定权限
2)acl列表查看

getfacl file ##查看acl开启的文件的权限
#file:file ##文件名称
#owner:root ##文件的所有者
#group:root ##文件拥有组
user::rw- ##文件拥有人权限
user: bai:rwx ##指定用户的权限
group ::r-- ##文件拥有组的权力
mask::rwx ##能赋予用户的最大权利阈值
other::r-- ##其他人的权限
3.acl列表的管理

getfacl file
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有的rwx权限
setfacl -x u:username file ##从acl列表中删除username
setfacl -b file ##关闭file上的acl列表
4.mask值
当权限列表中mask表示能生效的权力值
当用chmod减小开启acl的文件权限时mask值会发生改变
chmod g-w bobo
如果要恢复mask值
setfacl -m m:rw bobo
5.acl的默认权限设定
acl默认权限只针对目录设定(只对目录本身生效)
setfacl -m d:u:student:rwx /mnt/test
setfacl -k /mnt/test
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值