linux文件权限

查看文件属性

ls命令

-a, --all
  列出所有文件,包括以点号开头的文件
-A, --almost-all
  列出所有文件,但不包括 . 和 …
–block-size=SIZE
  以 SIZE 字节为单位显示文件大小
-B, --ignore-backups
  不列出以 ~ 结尾的条目
-d, --directory
  列出指定目录的条目而不是其内容
-h, --human-readable
  与 -l 选项配合使用,以人们可读的方式而不是字节数来显示文件大小(如,1K 234M 2G)
-i, --inode
  显示文件的索引号
-k
  相当于 --block-size=1K
-l
  以长格式显示结果
-n, --numeric-uid-gid
  类似 -l 选项,但是数字形式列出用户与组的 ID。
-o
  类似 -l 选项,但是不列出组信息。
-Q, --quote-name
  使用双引号将条目名称括起来。
-r, --reverse
  反序显示结果
-R, --recursive
  递归地列出目录及其子目录的内容
-S
  按文件大小排序
-t
  按修改时间排序
举例:

ls -l file    查看文件属性
ls -ld dir  查看目录属性
ls -lR dir 递归显示文件夹内的文件

在这里插入图片描述
我们可以看到查看文件属性后出现了一共8列属性:

- | rw-rw-r--. | 1 | hyj | hyj | 0 | APR 2  22:48 | file1
[1]    [2]      [3]  [4]   [5]  [6]      [7]          [8]

1:文件类型
2:9个字符说明文件权限的信息
3:包含链接数
4:文件所有者
5:文件所有者的所有组
6:显示文件大小
7:文件时间戳
8:文件名字
下面分别介绍各个属性

1.文件类型

常见的文件类型

-	表示空文件,普通文件
l	软链接
d	表示目录
c	字符设备(如shell在 /dev/pts/0)
s	socket 套接字符,与程序交互的“门”
b	block 块设备(如系统的第一块硬盘是 /dev/sda  插入u盘是  /dev/sdb)
p	管道文件

2.文件权限

#rw- rw- r--
 u   g   o    
 用户 组 其他人

对文件的权限:

r:是否可读
w:是否可写
x:是否可执行

对目录的权限:

r:是否可查看目录中的文件
w:是否可在目录在建立删除
x:是否可进入目录

修改权限方式

字符方式
chmod (u,g,o)+(r,w,x) 文件名 
相同的权限操作可合并 ug+r
同一用户修改多个权限 u=rwx  
不同的用户可用“,”隔开   ug+r,o+x

在这里插入图片描述
如图用 chmod ugo+rwx file 表示修改file文件权限为 rwxrwxrwx
在这里插入图片描述
修改不同用户权限可用“,”分开,如图则表示用户的权限修改为 w 用户组修改为 wx 其他修改为 rw

数字方式
r=4 w=2 x=1 则权限可用0~7的数字表示,最高权限为777
  rw-rw-r-- 则为 664
chmod 777 file     表示修改file文件权限为 rwxrwxrwx

在这里插入图片描述

##【3】对文件:硬链接个数(文件内容被系统记录的次数)

3. 包含连接数

添加软,硬链接
ln命令 在这里插入图片描述

4.文件所有人

#chown可修改文件和目录(不加-R之修改目录,不修改目录中的文件)的所有人,
#或所有人和所有组
chown root file 更改file的用户
同时更改用户和组用:或者,隔开
chown root.root file
chown root:root file
更改目录的时候不能更改目录内所有文件这时候可以用-R 命令递归更改
chown root:root test -R
如下图,使用watch命令可以看到test内的文件所有人都改变

在这里插入图片描述

5.文件所有组

#chgrp可修改文件和目录(-R)所有组

chgrp root file  -R

在这里插入图片描述
在使用chown 更改用户和组之后使用chgrp 命令可以看到组变成了hyj,并使用了-R 成功修改了目录内的所有文件

6.文件大小

对文件:文件大小
对目录:目录中子文件元数据大小(元数据matedate可以理解为文件的属性,

#也就是描述文件属性的那一串字符(【1】~【8】)的字节数)

7.最后修改时间

可以用touch修改时间

8.文件名

#mv修改

在这里插入图片描述
可以看到test1变成了test2

############修改默认预留权限############
##系统默认为022

##只修改当前shell中的预留权限(临时更改)
umask 000 #默认创建目录权限为777-000=777,文件再减111为600
可以看到下图的权限 目录变为了:rwxrwxrwx 文件变为了rw-rw-rw-

在这里插入图片描述

##修改系统的默认预留权限(永久更改)

vim /etc/profile   #系统配置文件

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
	umask 111               #普通用户的umask
else
   umask 111               #超级用户的umask
fi

vim /etc/bashrc    #shell配置文件 

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
   umask 111               #普通用户的umask
else
  umask 111               #超级用户的umask
fi

source /etc/profile    #重新读取文件,使更改生效
source /etc/bashrc			

在这里插入图片描述
可以看到,在修改了/etc/profile 和 /etc/bashrc之后,创建的新文件的权限也修改了,变为了rw-rw-rw
在实验过后记得将umask改回原值

特殊权限

1.sticky #粘滞位

#作用:

针对目录生效,当设置sticky权限后,这个目录中的文件只能被文件所有人删除
当对文件操作时,也会显示t,但是非文件所有人也可以删除

#设定方式:

chmod o+t dir     #只针对other,o位会出现t
chmod 1xxx dir

在这里插入图片描述

可以看到使用 chmod o+t dir和chmod 1xxx dir 都能更改

在这里插入图片描述

	增加粘滞位之后其他用户不能删除文件
2.sgid和suid 强制位 和 冒险位

作用:
针对目录:
当设置强制位后,任何人在该目录中建立的文件,都属于该目录的所有组
或所有人(g+s或u+s)

在这里插入图片描述
可以看到在root下创建文件依然属于test目录的用户组hyj

针对文件(只能针对可执行二进制文件):

不设置强制位时,谁执行这个文件,这个进程就是谁的。。设置后,无论
是谁执行此文件,进程都属于这个文件的所有人或组(u+s或g+s)
很多命令都是二进制的文件,可以修改他们来做很多事情
比如修改touch和vim来让所有用户创建的文件都属于某一用户

#设定方式:

chmod g+s dir	  #u位出现s即为成功
chmod g+s file
或
chmod 2xxx dir
chmod 2xxx file

chmod u+s dir     #u位出现s即为成功
chmod u+s file
 或
chmod 4xxx dir
chmod 4xxx file

chmod 6xxx dir	  #操作成功后u和g位都出现s
    chmod 6xxx file

###########acl权限列表#############
#作用:
#让特定用户对特定文件有特定的权限

#查看:
getfacl file

#管理:
#开启后(-m添加后)ls -l fle会在权限后显示+
#关闭后(-b后)ls -l fle会在权限后的+消失,使用原权限设定

setfacl -m u:username:0 file	   #使hyj用户对file没有任何权限
setfacl -m g:groupname:rwx file	   #使usertest组的用户对file拥有rwx权限

在这里插入图片描述

setfacl -x u:username file        #删除hyj用户的acl列表信息
setfacl -x g:groupname file	  	 #删除usertest组的acl列表信息

在这里插入图片描述

setfacl -b file			  		 #关闭file文件的acl列表功能(关闭后所有添加的acl列表信息都被删除)

mask值
默认是acl列表中授予权限的最大值
添加acl列表后,使用chmod将g权限修改小后会出现问题

在这里插入图片描述
先查看file的权限,发现file对hyj组的权限是rwx,然后我们切换到组hyj下的usertest用户对file进行删除操作,发现没有权限删除,所以在开启了acl之后,换言之查看权限发现后面有“+“之后,最好是用getfacl查看权限,否则会出错

可使用下面方式修改回来

setfacl -m m:rwx file        #让最大权限值还原
setfacl -k  file                  #关闭acl默认权限列表
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值