Featured image of post Linux基础(五):系统权限管理基础

Linux基础(五):系统权限管理基础

文件系统、用户、组管理

文件系统

文件系统filesystem是操作系统内核中负责组织管理磁盘的程序。 linux常见文件系统有xfs、ext4 和 btrfs 文件系统,它们都是日志文件系统(其特点是文件系统将没提交的数据变化保存到日志文件,以便在系统崩溃或者掉电时恢复数据) 每个硬盘分区都要有一个文件系统:

  • 硬盘分区—-》打隔断,分割出一个个小空间
  • 文件系统—-》对一个个小空间做装修,负责把空间的数据组织好 文件系统组织好了之后带来的方便之处
  • 使用者—–》 block 块(文件系统)—–》n 个扇区(硬盘的读写单位)

一个文件系统包含的三大类块: 文件有两部分数据构成:

  • 元数据:ls -l 的结果如权限、属主、数组——-》inode block 块
  • 内容数据:cat 看到的结果,真正的内容 ——-》data block

superblock 超级块:记录此 filesystem 的整体信息,包括 inode/block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等;

其中: superblock 一个文件系统整体就一个 对一个文件来说: inode block 就 1 个 data block 可能有多个

查看文件类型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
df -T # 查看文件系统类型

df -h # 空间使用量带单位

df -i # inode号的使用量

硬盘满了,分两种情况:
	假设硬盘空间10个G
	1、inode号耗尽:存1000 0000个空文件,耗尽inode号
		测试命令:for((i=1;i<=300000;i++)){ touch $i.txt; }
		
	2、磁盘空间耗尽:只存一个文件,但是这个文件有12G
		测试命令:dd if=/dev/zero of=目标路径/1.txt bs=10G count=3

补充:动态检测某个命令的结果
watch -n 1 "df -i |grep sda1"

查看一个文件内容底层流程

文件夹也是文件: 元数据:权限、属主、属组、、、——》inode block块 内容数据:存的该文件夹包含的——–》data block块 子文件名—–》inode块的编号 子文件夹名—–》inode块的编号

普通文件: 元数据:权限、属主、属组、、、——–》inode block块 内容数据:你写的文件中的数据——–》data block块

cat /etc/passwd

硬链接、软链接

硬链接:目标文件与源文件指向同一个 inode 号

ln /1. txt /2. txt 特点: 1、改动一个文件元数据或内容,另外一个也跟着变 2、删除源文件,仅仅只是解除了源文件名与 inode 号的关联关系 所以不会影响目标文件 3、硬链接无法跨分区 [ root@localhost ~]# ln /1. txt /boot/3. txt ln: 无法创建硬链接"/boot/3. txt" => “/1. txt”: 无效的跨设备连接 4、不能对目录做硬链接

软连接:目标文件指向的是源文件的文件名

ln -s /1. txt /4. txt 特点: 1、改动一个文件内容,另外一个也跟着变 改元数据的话,彼此之间不会互相影响 2、删除源文件/1.txt,目标文件不可用 3、软连接可以跨分区,因为是指向文件名 ln -s /1.txt /boot/5.txt 4、可以对目录做软链接

用户、组管理(⭐)

什么是用户 ?组?

如果把整个系统当成一个公司 用户 指的就是一个个员工 超级管理员 就是所有员工里的老板 组 指的就是部门

为何要有用户?组?

为了划分权限 具体来说分成三大类: u:文件归属的主人,简称属主 g:文件归属的组,简称属组 o:不是u也不是g里的成员,统称为其他人o

每个进程都是以某个用户 xxx 身份启动 ps aux # 第一列就是当前进程的用户身份 当该要操作某个文件时,进程会以xxx用户去依次匹配 1、xxx用户是否是目标文件的属主,若是,则直接对应属主的权限,否则继续往下对应 2、xxx用户是否是目标的文件的属组内的成员,若是,则直接对应属组的权限,否则继续往下对应 3、xxx用户归属其他人 敲命令也是在启动进程,该进程的什么是谁? 1、如果没做过任何配置,默认用户身份是你当前登录的用户 2、可以对程序进行配置,指定其以什么用户身份启动

如何管理用户?组?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
用户的增删除改查
	useradd egon
	groupadd group1
	
	usermod -a -G group1 egon
	
	id egon
		uid: 用户的身份证号(系统是uid号来识别用户)
			 0-》超级管理的uid,通常只有一个
			 1-999-》系统用户所使用的uid
			 >1000-> 后续创建的用户
			 
		gid:用户的主组gid号(创建用户会默认会创建一个与用户名同名的组,作为该用户的主组)	

		groups: 该用户所在所有的组=主组+附加组

与用户相关的一系列文件
			
				/etc/passwd : 存放的是用户详细信息
				
				/etc/shadow : 存放的是用户的密码(了解)
				
				/etc/group : 存放的是组信息
				/etc/gshadow: 存放组密码(了解)
		
		
				# 了解:
				/etc/skel # 家目录里的隐藏的源模板
				/home/egon: 家目录
				/var/spool/mail/egon # 邮箱文件
			
			查看用户(补充)
				who
				whoami
				pkill -KILL -u egon # 强制某个用户下线
				
				
			删除用户:
				userdel -r tom
		
		
			创建用户详细(了解)
				useradd lili -s /sbin/nologin -u 2000 -g it -G salve -d /abc
			
		
			修改用户
				usermod -g group1 lili
				usermod -a -G group2 lili # 在原有的基础上增加附加组
		
		组的增删改查
			groupadd group1
						
			groupmod -n sale salve
		
			groupdel -r group1
			
			组成员管理:
				groupadd it
				useradd user01
				useradd user02
				useradd user03

				gpasswd -a user01 it
				gpasswd -M user02,user03 it
							
				gpasswd -d user01 it # 从it组里删掉成员user01
使用 Hugo 构建
主题 StackJimmy 设计