云计算基础 第二章 文件和用户管理

文件管理

1.Linux目录结构

		WINDOWS/LINUX目录对比
			Windows: 以多根的方式组织文件 C:\ D:\ E:\
			Linux: 以单根的方式组织文件 /
		简介
					/目录结构: FSH (Filesystem Hierarchy Standard)
					[root@qianfeng ~]# ls /
					bin dev lib media net root srv usr
					boot etc lib64 misc opt sbin sys var
					cgroup home lost+found mnt proc selinux tmp
		目录功能(了解)
			bin 普通用户使用的命令 /bin/ls, /bin/date
			sbin 管理员使用的命令 /sbin/service 
			dev 设备文件 /dev/sda,/dev/sda1
			root root用户的HOME
			home 存储普通用户家目录 

			tmp 临时文件(全局可写:进程产生的临时文件) 
			var 存放的是一些变化文件,比如数据库,日志,邮件....
			
			==设备(主要指存储设备)挂载目录==
			media 移动设备默认的挂载点
			mnt 手工挂载设备的挂载点
			
			etc 配置文件(系统相关如网络/etc/sysconfig/network
			proc 虚拟的文件系统,反映出来的是内核,进程信息或实时状态 ,硬件的状态
			
			usr 系统文件,相当于C:\Windows
			/usr/local 软件安装的目录,相当于C:\Program
			
			boot 存放的系统启动相关的文件,例如kernel,grub(引导装载程序)
			
			lib 库文件Glibc
			lib64 库文件Glibc
			
			lost+found fsck修复时,存储没有链接的文件或目录

2.文件管理

		1.文件类型(理解)
			类型
				常见类型
					- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
					d 目录文件(蓝色)
				非常见类型
					b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
					c 设备文件(字符设备)打印机,终端 /dev/tty1
					l 链接文件(淡蓝色)
					s 套接字文件
					p 管道文件
			示例
				查看不同的文件类型。你能找出几种呢?
				[root@qianfeng ~]# ll -d   /bin/ls    /dec/sda    /home
				-rwxr-xr-x. 1 root root 117616 Nov 20 2018 /bin/ls
				brw-rw---- 1 root disk 8, 0 Mar 14 09:03 /dev/sda
				drwxr-xr-x. 10 root root 4096 Mar 14 11:00 /home
			注意
				通过颜色判断文件的类型是不一定正确的!!!
				Linux系统中文件是没有扩展名!!!
		2.文件管理命令
			1.改变目录
				
		cd    绝对路径
								文件路径(有难度)
									需求
										你创建的文件去哪里了?
									目录树形结构图
							
						思考题
							/home/alice/file1 
						和 /home/bob/file1 是不是同一个文件?
							/abc/file5 和 abc/file5 是同一个文件吗?
						原理
							绝对路径: 从/开始的路径 /home/alice/file1
							相对路径: 相对于当前目录开始,方便我们的。 a.txt   ./a.txt
												ls   列出目录当中的内容
							举例说明
							ls   /
											2.创建文件
												touch    路径和名字
												# touch /file1.txt
				示例
					# touch file3 file4
					# touch /home/file10.txt
					# touch /home/file5 file6   //问题来了。这两个文件创建在了什么位置?
			3.创建目录
				mkdir      路径和目录名
				mkdir  -p   父系,当创建目录没有上一级时,自动创建
				示例
					
				目录 mkdir    -v 详细 -p 递归
				------------------------------
				# mkdir dir1
				# mkdir /home/dir2 /home/dir3
				# mkdir /home/{dir4,dir5}
				# mkdir -v /home/{dir6,dir7}		//显示详细信息,遍历
				# mkdir -v /home/dir8/111/22	    //错误示范
				# mkdir -pv /home/dir8/111/222 //包括其父母的创建,不会有任何消息输出
				# mkdir -pv /home/{qianfeng/{dir1,111},nizhan}
			4.复制
				cp   源文件路径     目标文件夹
				cp  -r    源目录    目标目录
				示例
					==复制 cp -r 目录 -v 详细 -f 强制   -n  静默
				----------------------------------
				Usage: cp [OPTION]... [-T] SOURCE DEST
				# cd
				# mkdir /home/dir{1,2}
				# cp -v install.log /home/dir1	  //-v 显示详细信息
				# cp -v install.log /home/dir1/qianfeng.txt
				# cp -rv /etc /home/dir1    //-r 拷贝文件夹


				#cp  -rv  源文件1 源文件2 源文件N  目标文件 //将多个文件拷贝到同一个目录
				# cp -rv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub2.conf /etc/hosts .
				
				# cp -r /etc /tmp
				# cp -rfn /etc /tmp    //-f, --force 强制

						cp到底是何方神圣?
							
						[root@qianfeng ~]# type -a cp
						cp is aliased to `cp -i'
						cp is /bin/cp
													实战案例
														路径太长,怎么办?
						[root@qianfeng ~]# cp -rv /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-eth0.bak}
						在原来的名字后面增加文字?
						[root@qianfeng ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-eth0{,-org}
						更改名字。
						[root@qianfeng ~]# cp -rv /etc/sysconfig/network-scripts/{ifcfg-eth0,xu-eth0}
			5.移动
				语法
					mv    源文件路径   目标文件路径
				目标
					掌握移动和重命名文件的方法
				示例
					1.创建一个新文件file1
					#touch  /root/file1
					2.把file1文件移动到/tmp目录中。
					# mv    /root/file1    /tmp 
					# ls    /tmp/file1
					3.把file1文件更名为file2
					# mv    /tmp/file1     /tmp/file2
					4.观察file1文件已经更名为file2
					# ls  /tmp/file1    /tmp/file2
				  6.删除
						语法
							rm -rf    文件或目录的路径
						示例
							语法:  rm -r 递归 -f force强制 -v 详细过程     *通配符    文件名
							--------------------------------------------
							[root@qianfeng ~]# mkdir /home/dir10
							[root@qianfeng ~]# touch /home/dir10/{file2,file3,.file4}
							[root@qianfeng ~]# rm -rf /home/dir10/* //不包括隐藏文件
							[root@qianfeng ~]# ls /home/dir10/ -a
							. .. .file4

							--------------------------------------------
							如果快速删除如下文件,“file1.txt和file2.txt”
							[root@qianfeng ~]# rm -rf file*
			7.查看文件内容
				推荐查看的文件
					1.系统域名记录文件         /etc/hosts
					2.系统的账户信息文件      /etc/passwd
					3.系统的日志文件/var     /log/messages
										cat全部
											cat  文件路径
					-n 显示行号
					-A 包括控制字符(换行符/制表符)
										more翻页
											more
										head头部
											[root@qianfeng ~]# head /etc/passwd
					[root@qianfeng ~]# head -2 /etc/passwd
										tail尾部
											[root@qianfeng ~]# tail /etc/passwd
					[root@qianfeng ~]# tail -1 /etc/passwd
					[root@qianfeng ~]# tail -f /var/log/secure
					注释:tail  -f 动态查看文件的尾部
										grep过滤关键字
											针对文件内容进行过滤
											语法:grep 关键字   文件名
											# grep 'root' /etc/passwd
			8.修改文件内容
				1 重定向
					[root@qianfeng ~]# ls -a > list.txt
				2.文件编辑器1
					图形文件编辑器 gedit
				3.文件编辑器2
					 vi, vim
					VI 的三个模式
						
							可视模式,按V进入,小v光标自己选取,大V直接选取一行,YYp复制粘贴即可。
					ctrl+V,上下选择,然后可以ctrl+>   进行整体缩进。
											命令模式
												光标定位(了解)
													光标定位 
					hjkL              //上下左右
					0 $               //行首行尾
					gg G 			//页首页尾
					3G 进入第三行  
					/string (n N 可以循环的)     //查找字符,按n键选下一个(重要)
												文本编辑
													文本编辑
					y 复制
					d 删除
					p 粘贴
					u undo撤销
												进入其它模式
													进入其它模式
					a 进入插入模式
					i 进入插入模式
					o 进入插入模式
					A 进入插入模式
					
					: 进入末行模式(扩展命令模式)
					v 进入可视模式
					ESC 返回命令模式
											扩展命令模式
												保存退出
					
					:w 保存 
					:q 退出 
					:wq 保存并退出 
												查找替换

					:范围 s/原内容/新内容/全局 
					:1,5 s/root/qianfeng/g          从1-5行的root 替换为qianfeng 
												 读入文件/写文件(另存为)
					
					:w /tmp/aaa.txt 另存为/tmp/aaa.txt 
												设置环境 
					
					:set nu 设置行号 
					:set list 显示控制字符
					:set nonu 取消设置行号 

用户管理

1.用户/组基本概念

		概念
			Users and groups:
			. Every process (running program) on the system runs as a particular user.
			. Every file is owned by a particular user. 
			. Access to files and directories are restricted by user. 
			. The user associated with a running process determines the files and directories accessible to that process.
			用户的作用
				查看当前登录的用户信息:
					[root@qianfeng ~]# id
					uid=0(root) gid=0(root) groups=0(root)
				查看文件的owner:
					[root@qianfeng ~]# ll /home/ 
					drwx------. 4 alice alice 4096 Jun 2 15:59 alice
					drwx------. 2 root root 16384 Jun 1 23:09 lost+found
					drwxr-xr-x 2 root root 4096 Jun 2 15:33 qianfeng
				查看运行进程的username:
					[root@qianfeng ~]# ps aux 
					USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
					root 1 0.0 0.0 19360 1536 ? Ss 13:29 0:00 /sbin/init
					root 2 0.0 0.0 0 0 ? S 13:29 0:00 [kthreadd]
					root 3 0.0 0.0 0 0 ? S 13:29 0:00 [migration/0]
					root 4 0.0 0.0 0 0 ? S 13:29 0:00 [ksoftirqd/0]
		用户组信息存储的文件:
			1.用户基本信息文件
				/etc/passwd(冒号分割为7列字段)
				 root:x:0:0:root:/root:/bin/bash
				用户名:x:uid:gid:描述:HOME:shell
										root:用户名:登录系统的名字
										X:密码占位符:,具体内容不在这里
										0:UID: 用户的身份证号
											系统约定: RHEL7
						uid: 0 特权用户
						uid: 1~499 系统用户
						uid: 1000+ 普通用户
														The root user
						
						. uid is 0
						. all power
						. This user has the power to override normal privileges on the file system
						. installing or removing software and to manage system files and directorie
						. Most devices can only be controlled by root
												0:GID:GROUP 组号
												root:描述:比如经理 manager
												/root:家目录:登录系统时,所在目录
												/bin/bash:登录shell:命令解释器
			2.用户密码信息文件
				/etc/shadow(8列)
				 root:$1$MYG2N:15636:0:99999:7:   :   :
										了解即可
											加密算法$id$salt$encrypted
				$1: MD5
				$5: SHA-256
				$6: SHA-512
											 root:$1$MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:: :

			--------------------------
			1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
			2)“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;   
			星号代表帐号被锁定;
			双叹号表示这个密码已经过期了。
			$6$开头的,表明是用SHA-512加密的,
			$1$ 表明是用MD5加密的
			$2$ 是用Blowfish加密的
			$5$ 是用 SHA-256加密的。 
			
			3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
			4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
			5)“最大时间间隔”指的是口令保持有效的最大天数。
			6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
			7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。(软限制。到期后多少天就不能用账号了。)
			8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。(硬限制。)
			9) 保留
			3.组信息文件
				/etc/group 
				root:x:0:
				组名:组密码:组ID:组成员
										组成员默认为空

2.用户/组管理

用户:

			==创建用户 未指定选项==
				[root@qianfeng ~]# useradd user01 
				[root@localhost ~]# id     user01
				uid=1001(user01) gid=1001(user01) 组=1001(user01)
				
				[root@qianfeng ~]# ls /var/spool/mail/user01 
				/var/spool/mail/user01

		**小结:**
		如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group.
						==创建用户    指定选项==
							[root@qianfeng ~]# useradd user02 -u 1503          //创建用户usr02,指定uid
		[root@qianfeng ~]# useradd user03 -d /user03     //创建用户user03 指定家目录
						==删除用户========
							[root@qianfeng ~]# userdel -r user02
						==用户密码========
		方法一:root修改其他用户(alice)密码
		[root@qianfeng ~]# passwd alice
		方法二:用户(zhuzhu)登录,自己修改密码。
		[zhuzhu@qianfeng ~]$ passwd
						==组成员管理========
							注意:usermode     -G  组名  用户名
		[root@qianfeng ~]# usermod -G hr niuniu2 
						==其它选项管理=======
							[root@qianfeng ~]# usermod -s /sbin/nologin niuniu2
		修改登录SHELL

用户组:

						[root@qianfeng ~]# groupadd hr
		
		[root@qianfeng ~]# groupadd net01 -g 2000 
		//添加组net01,并指定gid 2000
		
		[root@qianfeng ~]# grep 'net01' /etc/group 
		//查看/etc/group中组net01信息
		
		[root@qianfeng ~]# groupdel net01 
		//删除组net01
			分类
				基本组/主组
					随用户创建,自动创建的同名组
					用户的基本组,显示在/etc/passwd
				附加组
					用户加入的其他组。
				案例
					1 useradd是创建用户的命令。
					2 usermod是修改用户的命令。
					3 groupadd是创建组的命令。
					4 -u 制定用户的UID。
					5 -g 制定用户的基本组。
					6 -G 制定用户的附加组。
					7 /etc/passwd 可以查看的是用户的基本组。
					8 /etc/group 可以查看用户的附加组。



					一、创建用户AAA,同时生成基本组AAA
					[root@QF ~]# useradd AAA
					[root@QF ~]# grep AAA /etc/passwd
					AAA:x:6001:6001::/home/AAA:/bin/bash
					
					二、创建用户BBB,同时生成基本组BBB
					[root@QF ~]# useradd BBB
					[root@QF ~]# grep BBB /etc/passwd
					BBB:x:6002:6002::/home/BBB:/bin/bash
					
					三、创建组CCC
					[root@qf ~]# groupadd CCC
					[root@qf ~]# grep CCC /etc/group
					CCC:x:7001:
					
					四、修改用户AAA的基本组为CCC.
					五、查看passwd中,用户AAA的基本组是CCC。
					[root@qf ~]# usermod  AAA   -g CCC
					[root@qf ~]# grep AAA /etc/passwd
					AAA:x:6001:7001::/home/AAA:/bin/bash
					
					六、修改用户BBB的附加组为CCC.
					七、查看group中,用户BBB的附加组是CCC。 
					[root@qf ~]# usermod  BBB   -G CCC
					[root@qf ~]# grep CCC /etc/group
					CCC:x:7001:BBB

3.提权(了解)

		永久提权Switching users with su
			[user01@localhost ~]$ id user01
			uid=1003(user01) gid=1003(user01) 组=1003(user01)
			[user01@localhost ~]$ whoami
			user01
			[alice@qianfeng ~]$ useradd u1
			-bash: /usr/sbin/useradd: 权限不够
			[alice@qianfeng ~]$ su - root
			password:
			[root@qianfeng ~]# useradd u1
			成功
		临时提权Running commands as root with sudo
			sudo简介
				将当前用户切换到超级用户下
				然后以超级用户身份执行命令,执行完成后,直接退回到当前用户。
				具体工作过程如下:
				当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
				-->确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
				-->若密码输入成功,则开始执行sudo后续的命令
			sudo配置文件语法
				##语法
				##      user    MACHINE=COMMANDS
				##  用户 登录的主机=(可以变换的身份) 可以执行的命令 
			目标
				创建普通用户xulei,使其具有sudo特权
			示例1
				以root身份授权普通用户xulei
				[root@qianfeng ~]# vim /etc/sudoers
				%wheel ALL=(ALL) NOPASSWD: ALL
				第99行:允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
				
				[root@qianfeng ~]# useradd xulei -G wheel
				[root@qianfeng ~]# id xulei
				uid=504(xulei) gid=504(xulei) 组=504(xulei),10(wheel)

				# passwd xulei
				切换用户xulei登陆
				
				[xulei@qianfeng ~]$ useradd gougou10
				-bash: /usr/sbin/useradd: 权限不够
				[xulei@qianfeng ~]$ sudo useradd gougou10
				[xulei@qianfeng ~]$ id gougou10
				uid=505(gougou10) gid=505(gougou10) 组=505(gougou10)

作业

	1.熟悉10个根目录下的一级目录的名称和功能。
		例如:/home  主目录
	2.熟悉至少3中文件类型
		例如:看到如下信息,“drwxr-xr-x. 10 root root 4096 Mar 14 11:00 /home  ”
,知道/home是一个目录类型的文件。
	3.掌握改变目录的命令。
	4.理解绝对路径和相对路径
	5.掌握创建文件文件和目录的命令。
	6.掌握两种查看文件的命令。
	7.掌握vim文本编辑器的使用。
	8.理解账户和组的配置文件中字段含义
		重点熟悉/etc/passwd文件中,7列信息的含义
		了解/etc/shadow的功能
		了解/etc/group的功能 
	9.掌握创建和删除用户的命令。
	10.理解su和sudo命令的区别。
		掌握sudo的配置思路
	作业要求
		关于命令的的问题,答案中要给出示例。
		关于对比的问题,要讲出双方的相同和不同点。

你可能感兴趣的:(云计算基础 第二章 文件和用户管理)