文件的权限管理(查看及修改)

  • Post author:
  • Post category:其他



文件权限相当于系统的法律法规,保证系统的稳定性和安全



一、文件权限的查看

ls -l 更详细的信息显示目录里面的内容
ls -l file 文件的属性
ls -d dir 目录本身
ls -a dir 包含隐藏文件
ls -S dir 查看目录里面的内容并按照内容大小排序
ls -l file 查看文件信息
ls -ld dir 查看目录本身的信息
ll file 等同于ls -l file
ll -d dir 相当于ls -ld dir
ls -LR dir 递归显示子目录

如下:

(1)

ls -l file

查看文件信息

在这里插入图片描述

(2)

ls -ld dir

查看目录本身的信息

在这里插入图片描述

(3)

ll file

等同于

ls -l file


在这里插入图片描述

(4)

ll -d dir

相当于

ls -ld dir


在这里插入图片描述

(5)

ls -LR dir

递归显示子目录

在这里插入图片描述


二、文件属性的查看(读取权限)


文件类型

空文件,或文本(没有系统级的功能)
d 目录
l 软连接(快捷方式)
s socket套接字 (一个程序对外开放的大门)
b block块设备
c 字符设备
p 管道

如下:

1、- 空文件,或文本(没有系统级的功能)

在这里插入图片描述

2.d 目录

在这里插入图片描述

3.l 软连接(快捷方式)

在这里插入图片描述

在这里插入图片描述

4.c 字符设备

在这里插入图片描述


三、文件的权限



总共9位,分为3部分

3位为一位,分别代表

user(u),文件拥有者对文件能做什么操作(所有人)

group(g),文件所有组对文件能做什么操作(所有组)

other(o),其他人对文件能做什么操作



ls -ld test

/

如下:

在这里插入图片描述

包含信息: 用户名字 用户组名字 文件内容大小 (对文件:文件大小 对目录:目录中子文件元数据) 文件最后一次被修改的时间 文件名字


四、改变文件的所有组和所有人


使用命令chown chgrp

思路:先建立文件和目录,再监控文件和目录所有人所有组改变的过程

监控命令 :

watch -n 1 ls -lR /mnt/

(1)

chown username file|dir

##更改文件或者目录的所有人

在这里插入图片描述

在这里插入图片描述

2)

chown username.groupname file|dir

##更改文件或者目录的所有人所有组

在这里插入图片描述

在这里插入图片描述

3)

chown -R username dir

##更改目录本身及里面所有内容的所有人

在这里插入图片描述

在这里插入图片描述

(4)

chgrp groupname file|dir

##更改文件或者目录的所有组

在这里插入图片描述

(5)

chgrp -R groupname dir

##更改目录本身及里面所有内容的所有组

在这里插入图片描述

在这里插入图片描述


五|、文件普通权限

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

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

r:

对文件:可以查看文件中的字符

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

w:

对文件:可以更改文件内字符

对目录:可以在目录中添加删除文件

x:

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

对目录:可以进入目录


六、.字符命令修改文件权限

chmod+/- 权限  

(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 /mnt/ file1

file1拥有者加上x权,file1拥有组减去w权限

在这里插入图片描述

5)

chmod ugo-r file2

file2的用户、组、其他人去掉r权限

在这里插入图片描述

(6)

chmod ug+x,o-r file3

file3用户和组添加x权限,其他人去掉r权限

在这里插入图片描述


七、.数字方式修改文件权限


在linux中,三种权限的权值为:r=4,w=2,x=1(相当于二进制)

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 调用执行 是否可以进入此目录(进入)


八.系统默认权限的设定


权限设定方式如下:

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

在这里插入图片描述

在这里插入图片描述

以上两个文件umask设定值必须保持一致

source /etc/bashrc
source /etc/profile

让设定立即生效


九、.文件的访问控制(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::— ##其他人权限

含义如上

2)设定acl列表

命令格式:

setfacl -m <u|g>:<username|groupname>:

权限 文件|目录

-m 表示设定acl列表

u 表示用户

g 表示用户组

1.删除列表中的用户或者组

命令格式:

setfacl -x <u|g>:<username|groupname> 文件|目录


2.关闭列表

setfacl -b 文件|目录

在这里插入图片描述

acl 默认权限

当我们需要某个目录对于student可写,并且目录中新建的子目录对student也可写

就要设定默认默认权限

注意:

默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,

对于目录本身也无效

setfacl -m d:u:student:rwx /westos

在这里插入图片描述


十、.特殊权限



1.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,建立的文件的所有组为目录的所有组


3.suid ##冒险位


只针对与2进制可执行文件

当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人

设定方式

chmod u+s  file
	chmod 4xxx file



版权声明:本文为qq_45425035原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。