Linux网课学习笔记8——Linux文件系统(中)

文件和目录权限管理

以下三种用户需要设置文件和目录的权限:

  • 文件所有者(owner):建立文件、目录的用户。(也就是文件创建者)
  • 同组用户(group):属于同一组群的用户对属于该组群的文件有相同的访问权限。
  • 其他用户(other):除了文件所有者、同组用户的其他用户。(既非以上两种用户,也非用户root)

文件所有者(u)、和文件所有者同组的用户(g)和其他用户(o)

对于每一类用户,又可以设置读(r)、写(w)和执行(x)3种权限。

权限介绍

文件、目录访问权限:

1)文件

读(r):允许读文件的内容

写(w):允许向文件中写入数据

执行(x):允许将文件作为程序执行

2)目录

读®:允许查看目录中有哪些文件和目录

写(w):允许在目录下创建(或删除)文件、目录,修改文件名字或者目录名字

执行(x):允许访问目录(用 cd 命令进入该目录,并查看目录中可读文件的内容) 文件、目录访问权限的表示方法:

(1)字母表示法

在这里插入图片描述

(2)数字表示法

在这里插入图片描述
其中r=4、w=2、x=1、-=0

rwx 这组权限就是4+2+1=7,,表示用户拥有读、写、执行的权限

r-x 这组权限就是5,表示用户具有读和执行的权限,没有修改的权限

- - - 表示用户读、写、执行的权限都没有

【例】/home的权限就可以用755表示

执行ls –l命令可以查看到文件的权限信息。

在这里插入图片描述
说明:
该文件的创建者是hellod;
hellod对该文件有读、写、创建的权限;days文件的所有组是test,test组的所有用户对days文件有读、执行的权限,没有修改的权限;
其他用户对该文件有读、写、执行的权限

修改权限

改变文件所有权

:使用 chownchgrp

chown命令

功能:更改属主和组。(改变文件的所有权,可以改变文件的所有者和文件所在的组)

格式:chown [-R] <用户[:组]> <文件或目录>

选项:-R:对目录及其子目录进行递归设置。

例如:

chown   sjh:sjh   result.txt

操作示例:
在这里插入图片描述
新建一个组,然后查看:
在这里插入图片描述
在这里插入图片描述
把days文件的所有者改为fff,所在的组改为test:
在这里插入图片描述
只改文件的所在组,不改所有者:
在这里插入图片描述
以下看看对目录的操作:

先查看现在的文件情况:
在这里插入图片描述
更改文件夹A的所属者和所属组:
在这里插入图片描述
注:因为A文件夹里有文件,要进行更改的话,就要递归地进行,所以要加上-R,

chgrp命令

格式:chgrp: [选项] [组名] [文件名]

其中group:组名或组代号

功能: 改变文件或目录组群

操作示例:

更改文件的所属组(chgrp命令也只能更改所属组):
在这里插入图片描述
更改文件夹的所属组:
在这里插入图片描述

修改文件的权限

:使用chmod命令

数字修改法

数字修改权限的格式:

chmod n1n2n3  <文件|目录>

其中n1代表所有者的权限,n2代表同组用户的权限,n3代表其他用户的权限。

功能:为指定文件或目录修改给定的数值访问权限。(把指定文件或目录修改为数值)

选项:n1n2n3三位数字表示的文件访问权限。

操作示例:
设置days文件的所有者拥有全部权限,其他人拥有执行权限:
在这里插入图片描述

字母修改法

格式:

chmod [ugoa][+-=][rwxugo] <文件名或目录名〉

功能:修改文件或目录的访问权限。(通过给用户或组加、减权限的方式来增加、删除相应的权限)

选项:

(1)用户标识
所有者(u)
同组(g)
其他人(o)
所有的人员(a)

(2)设定方法
+ 增加权限
- 删除权限
= 分配权限,同时删除旧的权限

(3)权限字符
r(读)
w(写)
x(执行)
u(和所有者的权限相同)
g(和所同组用户的权限相同)
o(和其他用户的权限相同)

操作示例:

修改所有者的权限:
在这里插入图片描述
修改所有组的权限:
在这里插入图片描述
修改其他人的权限:
在这里插入图片描述
修改所有人的权限:
在这里插入图片描述
让一个的权限等于另一个的:
在这里插入图片描述
两个的权限可以一起设定:
在这里插入图片描述

另:桌面环境下修改文件权限

桌面环境下选中需要修改文件权限的文件、文件夹(目录),右击弹出快捷菜单,选中文件“属性”对话框。在“基本”选项卡中修改文件名,并可修改文件图标。在“权限”选项卡,可以修改文件的权限。

在这里插入图片描述
在这里插入图片描述

默认权限、隐藏属性、特殊权限

1.默认权限

umask命令

格式:umask [mask]

功能:设置文件或目录的默认权限

当用户创建文件或目录后,系统将设置一个默认权限,可通过命令umask查看或设置系统默认的权限。umask用一个3位2进制数来指定,由命令的mask可看出这是要屏蔽部分权限。当创建文件时,文件的权限就设置为创建程序请求的任何权限去掉umask屏蔽的权限。

由于系统默认屏蔽的权限为022,因此新创建的目录权限就为777-022=755,即新创建的目录的权限为755(用字符表示就是rwxr-xr-x),表示所有者具有所有权限,同组用户和其他用户具有读和执行权限,没有写的权限。新创建的普通文件权限为666-022=644,即rw–r--r–。
(注:r=4、w=2、x=1、-=0)

2.文件隐藏属性

1)查看文件隐藏属性:lsattr

2)修改文件隐藏属性:chattr

chattr  [+-=]   [ ai]   文件或目录名称
  • a: 当设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,必须要为root才能设置这个属性。
  • i:不能删除,不能修改,不能改名。必须要为root才能设置这个属性。

举例:

touch  attrtest

查看查看文件隐藏属性(此时,文件attrtest能改名,能删除,能修改):

 lsattr   attrtest

在这里插入图片描述
修改文件隐藏属性为a(此时,文件attrtest不能改名,不能删除,不能修改,只能在文件尾追加内容):

 chattr  +a  attrtest

在这里插入图片描述
在文件尾追加内容,按Ctrl+c结束输入:

cat >>attrtest

在这里插入图片描述
修改文件隐藏属性为i(此时不能删除,不能修改,不能改名,也不能追加数据)

chattr   +i     attrtest
cat  >>attrtest  

在这里插入图片描述

3.文件特殊权限

文件特殊权限有以下三种:

SUIDSGIDSBIT

1)SUID:Set UID

s这个标志出现在文件所有者的x权限上时,则就被称为Set UID

作用:

1、SUID权限仅对二进制程序(binary program)有效;
2、执行者对于该程序需要具有x的可执行权限;
3、本权限仅在执行该程序的过程中有效(run-time);
4、执行者将具有该程序拥有者(owner)的权限。

目的:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

例如:

ls -l /usr/bin/passwd

ps:没太懂这行代码是要干嘛……
在这里插入图片描述
系统中的用户密码是保存在/etc/shadow中的,而这个文件的权限如上图,是----------。当用户执行passwd命令的时候,需要修改/etc/shadow文件。除了root用户能修改密码外,用户自己同样也能修改密码,为什么没有写入权限,还能修改密码,就是因为这个SUID功能。

passwd这个命令的执行过程:

1、因为/usr/bin/passwd的权限对任何的用户都是可以执行的,所以系统中每个用户都可以执行此命令。
2、而/usr/bin/passwd这个文件的权限是属于root的。
3、当某个用户执行/usr/bin/passwd命令的时候,就拥有了root的权限了。
4、于是某个用户就可以借助root用户的权力,来修改了/etc/shadow文件了。 5、最后,把密码修改成功。

注意:SUID只能运行在二进制程序(系统中的一些命令),对shell script(脚本)无效
因为脚本还是把很多的程序集合到一起来执行,而不是脚本自身在执行。
同样,这个SUID也不能放到目录上,放上也是无效的。

2)SGID:Set GID

s放到文件的所属用户组x位置上时,就是SGID。

功能:获得该程序所属用户组的权限

注意:

1、SGID对二进制程序有用;
2、程序执行者对于该程序来说,需具备x的权限;
3、SGID主要用在目录上;

如果用户在此目录下具有w权限的话,若使用者在此目录下建立新文件,则新文件的群组与此目录的群组相同。

例如:

ls -l  /usr/bin/locate

在这里插入图片描述

注意:当用户执行locate命令的时候,需要读取/var/lib/mlocate/mlocate.db文件。

ps:没太懂这个例子是啥意思……

3)SBIT:Sticky Bit

针对others来设置的

SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。

例如:

ls -dl /tmp

在这里插入图片描述
任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。

/tmp 的permission是rwxrwxrwt

chmod 0777 /abc rwxrwxrwx

chmod 777 /abc rwxrwxrwx

chmod 1777 /abc rwxrwxrwt

The “t” character in your permission indicates that only the user (and the root) that has created the file inside of /tmp folder can
delete/modify that specific file.

suppose chmod 1777 /tmp here is 2 part

1 and 777

1 mean : this file only be deleted by root, its called sticky bit ( i guess) need to check again

rwx rwx rw t
owner group other only deleted by root

so this file is user has full access

group has full access

other has read and write

but this file only be deleted by root

数字表示:
4 为 SUID = u+s
2 为 SGID = g+s
1 为 SBIT = o+t

猜你喜欢

转载自blog.csdn.net/weixin_45550460/article/details/105136522