单用户模式破解 Linux 系统密码
紧接上一章
1、重启 Linux
shutdown -r 0 : 立即重启
reboot : 立即重启
重启后,在数秒时按键小 e ,进入菜单编辑模式
3、再次单击小 e 进入内层菜单
4、选择第二个惨淡再次单击 小 e 进行编辑模式
修改完成后,单击回车
5、返回上一级目录后,单击小 b 重启计算机
6、基本语法
passwd 用户名:重置密码
7、设置密码后,重启操作系统
8、以 root + 新密码登陆操作系统
怎么样惊不惊喜 , 刺不刺激 , 不过放心我们有解决办法,要解决这个问题就要进行装载口令设置
想要解决这个问题 首先打开 grub.conf 文件
文件位置
使用 ls -l 查看软件文件的真实路径
使用 vim 编辑器打开 /boot/grub/grub.conf文件(打开真实文件有语法着色)
打开后,效果如下图说是
显示为空,原因:grub.conf文件属于系统文件,必须使用超级管理员打开
打开后效果如下图所示
- 第10行:系统启动后,默认进入索引为 0 的第一个操作系统
- 第11行:系统默认秒数时间,默认为 5 秒
- 第12行:系统的背景图
- 第13行:隐藏操作系统菜单
- 第14~17行:第一个操作系统的相关信息
文件颜色普及 - 黑色文件:代表普通文件
- 深蓝色文件:代表文件夹
- 浅蓝色文件:软连接文件(相当与window中的快捷方式)
当我们安装Linux 操作系统时,一定要给 Linux 操作系统设置一个装载口令,放置普通用户破解Linux密码
设置明文密码
但是设置明文密码很容易泄密,所以建议使用 MD5+crypt 算法对明文密码进行加密
设置装载口令
再次使用单用户模式破解 Linux密码,效果如下
/*************************************** 我是分割线 *************************************** /
选择登陆页面
Linux 操作系统一共有两个界面,图形界面+字符界面,为什么一启动操作系统就会自动进入图形化界面呢?
文件位置: /etc/inittab
使用 vim 编辑器打开 /etc/inittab 文件
打开后效果如下
由以上图解可知,Linux 操作系统的运行级别一共由 7 种模式
- 运行级别 0 : 关机模式(不要把这种模式设置为默认模式)
- 运行级别 1 : 单用户模式(维护系统)
- 运行级别 2 : 多用户模式 ( 不带 NFS 网络共享服务)
- 运行级别 3 : 多用户模式 (带 NFS,字符模式)
- 运行界别 4 : 自定义模式
- 运行级别 5 : 图形化界面
- 运行级别 6 : 重启模式
设置默认模式如下图(运行级别 3 5 可设置其他不合适)
挂载文件系统
文件位置:/etc/fstab
普及挂载的小知识
使用VIM 编辑器打开 /etc/fstab文件,效果如下图所示
打开后如下图所示
- 第1列:UUID,设备编号或设备名称
- 第2列:挂载目录
- 第3列:挂载格式
- 第4列:挂载参数
- 第5列:是否备份
- 第6列:是否自检
用户与组
用户与组的关系
与组相关的文件
组文件 /etc/group
打开后如下图
第一列 : 组名称
第二列 : 一个 X 占位符,代表组密码,真实密码在 /etc/gshadow文件中
第三列 : 组 id , 说明: 0 代表 root 超级组,1~499 代表系统组
第四列 : 组内用户(附属组内的用户)
与用户相关的文件
-
/etc/passwd : 用户文件
使用 vim 编辑器打开 /etc/passwd , 如下图所示
打开后,如下图所示
第一列 : 用户名称
第二列 : 用户密码,使用一个 x 占位符,真实密码存储在/etc/shadow 文件中
第三列 : 用户的 id 编号
第四列 : 所属组 id 编号
第五列 : 用户备注
第六列 : 用户的家,普通用户在 home , 超级管理员在/root
第七列 : 用户的指令目录,如果此参数是 /sbin/nologin 代表此用户不能登录操作系统
/etc/shadow : 用户密码文件
使用 VIM 编辑器打开 /etc/shadow 文件,如下图所示
打开后效果
第一列:用户名称
第二列:用户密码
与组相关的 Shell 指令
- groupadd 组名 : 添加组
相关选项
-g : 添加组是 , 指定组 id
- groupmod 组名
相关选项 -n : 修改组名称
-g : 修改组 id
- groupdel 组名
VIM 使用小技巧:在行末模式下
使用 : 0 代表跳转到 第 1 行
使用 : $ 代表跳转到最后 1 行
tail指令 : 在不打开文件的前提下,查看文件内容
tail -n 显示最后几行(纯数字) 文件名称
与用户有关的 Shell 指令
- useradd 指令 : 添加用户
相关选项
-g group name : 代表添加用户时指定用户的所属组
- usermod 指令 : 修改用户信息
相关选项 -c comment : 修改用户的备注信息
-l login name : 修改用户的名称
-d home dir : 修改用户的家
- userdel 指令 : 删除用户
相关选项
-r : 删除用户同时删除用户的家
设置用户口令 ( 密码 )
基本语法 : passwd[选项] 用户
相关选项 :
-S : Status 缩写,查看用户口令状态
特别说明:如果一个用户 没有密码,也会显示密码被锁定
-l : lock 缩写,代表锁定用户,不能登录操作系统
-u : unlock 缩写,代表解锁用户
-d : del 说些,代表删除用户密码
进制普通用户(除 root ) 登录操作系统
- /etc/shadow :进制某个用户登录操作系统
在密码前添加两个 ! ! 代表进制此用户登录操作系统,以上文件属于系统文件,以保存是必须使用 : wq! 进行强制保存
- /etc/nologin : 进制所有普通用户登录操作系统
添加或删除成员(针对附属组)
- gpasswd [选项] 组名
相关选项 :
-a user name : 添加用户到附属组中
-d user name : 从附属组中删除用户
用户的相关指令
- su 指令:切换用户
特别说明 :
如果从普通用户切换到超级管理员,需要密码
如果从超级管理员切换到普通用户,不需要密码
newgrp : 切换所属组
创建文件 : touch 文件名称
- whoami : 我是谁 ?
查看用户信息
- id : 查看的内容比较多,查看用户信息
groups : 查看的内容比较少,只能查看用户的所属组
设置与查看那用户资料信息
- chfn[用户名称] : 更改用户的资料信息
- finger[用户名称] : 查看那用户的资料信息
安装 finger 需要依赖的软件
使用 finger 查看用户的资料信息
赋予普通用户特殊权限
普通用户 : /bin 目录下的指令
超级管理员 : 既可以执行 /bin 目录下的指令,还可以执行 /sbin 目录下的指令
有些时候,需要普通用户执行特殊的权限(管理员权限),这个时候不能直接把超级管理员的密码发给普通用户,只开放部门权限给普通用户。
文件位置:/etc/sudoers
使用vim编辑器,编辑/etc/sudoers文件,如下图所示:
给普通用户设置特殊权限,要用到的知识点:whereis指令
功能:查看系统指令的所在位置,如:
whereis useradd
示例代码:
给普通用户设置特殊权限:
因为以上文件为只读文件,所以必须强制保存并退出。
使用sudo -l指令查看普通用户具有的特殊权限:
运行结果:
执行以上指令:添加一个用户,小美
文件操作
文件权限
r :可读权限,值为4
w :可写权限,值为2
x :可执行权限,值为1
一个文件或文件夹其对应三个用户,第一位文件拥有者,第二位组内用户,第三位组外用户
文件夹权限为755
第一位:文件拥有者拥有最高权限为7 = (4+2+1) = rwx
第二位:组内用户权限,值为5=(4+1)=rx
第三位:组外用户权限,值为5=(4+1)=rx
使用ls指令查看文件权限
ls [选项] 文件路径
相关选项:
-l :以列表形式显示文件信息
-a :显示所有文件信息(包括隐藏文件)
示例代码:
由以上图解可知:
第1列:文件权限
一共有10位,第1位代表文件的类型(-代表普通文件,d代表文件夹,l代表软链接文件)
第234位代表文件拥有者的权限,r(4)w(2),所以最终权限为6
第567位代表组内用户的权限,r(4),所以最终权限为4
第8910位代表组外用户的权限,r(4),所以最终权限为4
综上所述,index.php的最终权限为644
第2列:文件数量
第3列:root,文件的拥有者
第4列:root,文件的所属组
第5列:文件大小
第6列:文件的创建时间
第7列:index.php,文件的名称
目录管理
- ① mkdir :创建目录
相关选项:
-p :递归创建
-m :创建目录时指定目录权限
- ② rmdir :删除目录
相关参数:
-p :递归删除
文件创建与删除
-
touch指令 :创建文件
问题:touch指令与vim指令创建文件有何区别呢?
vim指令打开文件,但是如果文件不存在,则自动创建该文件
touch指令只能创建文件而没有打开功能
rm指令删除文件
相关选项:
-r :递归删除(主要用于删除文件夹)
-f :关闭删除确认
复制与移动文件或文件夹
- cp [选项] <源文件路径> <目标文件路径>
相关选项:
-v : 显示进度条
-R : 递归复制
-p : 复制时保持文件的原有属性
-vRp :递归复制,保存文件的原有属性,显示进度条
示例代码:
复制文件时更改文件名称:
- mv指令 :剪切或移动
相关指令:
-v :移动时显示进度条
- mv指令 :文件或文件夹重命名
基本语法:
mv 旧文件名 新文件名
文件统计
基本语法:
wc [选项] <文件列表>
相关选项:
-c :统计文件的字节数
-l :lines缩写,统计文件的行数
-w :word缩写,统计文件的单词数
grep搜索匹配行
grep [选项] <字符串> <源文件>
相关选项:
-n :显示匹配的行号
-c :统计一共有多少行
-i :ignore缩写,代表匹配时忽略大小写
显示文件内容
- cat指令 :正序显示文件内容
- tac指令 :倒序显示文件内容
更改文件的权限
- 更改文件的权限
chmod -R(递归修改) 777
- 更改文件的拥有者
chown -R(递归修改) root
- 更改文件的所属组
chgrp -R(递归修改) itcast
创建链接文件
在Linux系统中,软链接文件就是相当于Windows中的快捷方式
软链接创建步骤:
ln [-s] <源文件或目录> <目标文件或目录>
特别说明:创建软链接时,要求使用的文件路径必须是绝对路径。
运行结果:
Windows中快捷方式与Linux中的软链接的区别:
- 打开软链接文件
对比以上两个文件,发现内容都是完全一样的。
- 修改软链接对真实文件的影响
有以上运行结果可知,修改软链接文件,真实文件也会受到影响。
- 删除软链接文件对真实文件的影响
由以上运行结果可知,删除软链接对真实文件没有任何影响。