第三天-Linux启动级别-光盘启动破解密码-用户-用户组
一、系统启动级别
- 系统启动共有0~6共七个级别,启动级别的配置文件在/etc/inittab(本机设置成了5,即图形界面)。
0:关机
1:单用户模式,拥有root权限,禁止远程登录
2:多用户(无网络)
3.完全的多用户模式(网络)
4:系统保留
5:图形界面
6:重启
注意:不要设置成0和6,否则将无法开机
扫描二维码关注公众号,回复: 3026764 查看本文章
修改方式:
1. 永久修改:修改最后一行id:X:initdefault:中间的X(1,2,3,5)
2. 临时修改:直接在命令中输入init number
- 目录/etc/rc.d/下保存了各个级别启动时的配置文件
二、接上一篇忘记密码后修改密码
防:阻止在单用户模式下修改密码
上一篇博客中通过启动时进入高级菜单修改成单用户模式启动,通过passwd命令直接能修改root用户密码,此种方式简单粗暴,任何人都可以做到,接下来介绍如何防范此种方式进行修改密码。
配置文件在/boot/grub/grub.conf
此配置文件仅root用户有权限进行查看或修改,无需担心其他用户修改此文件
vi /boot/grub/grub.conf
设置读秒时间为0
timeout=0
作用:开机时不读秒,直接进入系统,这样就能阻止进入单用户模式
设置编辑启动菜单的保护措施
timeout下添加password=123456
作用:进入一级菜单后只能通过先按p输入设置的密码后才能使用e进入二级菜单
攻:通过光盘镜像启动直接删除密码
- 开机狂按F2进入BIOS界面。使用左右键切换到Boot页面,上下键切换到CD-ROM Drive,使用+号将此选项移动至顶部,按F10保存重启
- 重启后选择第三项
此页面选择Continue
此页面提示在此模式下系统镜像文件挂载到了/mnt/sysimage,所以在此模式下的shell想访问系统目录都需要在原目录前加上/mnt/sysimage
进入后一些选项点yes就行,最终进入此页面,选择第一项进入shell
- shell窗口显示在页面左下角
密码信息存储位置:/etc/passwd
挂载时需要写:vi /mnt/sysimage/etc/passwd
- 去掉root用户后的x字母(使用delete键)
- 重启进入BIOS将启动顺序还原
- 按F10保存后重启,本次重启比较慢,密码已被清除,操作完成
三、vi补充
命令模式下
- :set nu – 显示行号
- :set nonu – 隐藏行号
- :n – 定位到n行
- :/{String} – 向下(后)搜索(光标所在位置)
- :?{String} – 向上(前)搜索(光标所在位置)
一般模式下
- gg – 定位到首行
- G – 定位到末行
- u – 撤销上一次编辑 (Windows下的Ctrl + z)
- Ctrl + r – 回到撤销之前(Windows下的Ctrl + y)
- Shift + zz – 保存退出(等同于命令模式下:wq)
四、Linux用户和权限概述
创建用户 – 使用root用户操作
界面模式
命令行模式
useradd – 添加用户
- useradd bigdata
此命令的操作步骤:
- 分配用户id
- 新建相应的目录(家目录/mail目录)
2. **passwd bigdata**
输入两次密码即可,Linux中的密码不会使用*等符号占位,正常输入后回车即可
设置完密码后就可以使用用户名密码登录
用户创建成功后,可以进行登录使用,也可以在命令行模式下使用su {userName}进行切换用户
用户家目录
默认只有家目录所有者拥有所有的权限,其他的普通用户没有任何权限,root用户不受此限制
普通用户的家目录:/home/{userName}
root用户的家目录:/root
权限概述
- 不同的用户对于同一个文件有不同的权限(借用用户组,文件本身的权限属性)
- 普通用户对比超级用户的区别:对于某些系统级别的操作无权限(系统的重启/防火墙/核心的配置文件/某些命令被限制)
- 不同的用户间可以进行切换以获得相应的权限(su),切换时需要输入目标用户的密码
- 程序的运行都和用户相关,用户启动进程后,该进程会挂载到该用户下并且以该用户的权限进行执行
Tomcat端口号改成80(server.xml),root用户具有80端口的权限,所以要使用root用户进行启动Tomcat
mysql,使用root用户启动,其他用户也具有访问和使用的权限
- 为了避免过多的进程挂载到同一个用户下,对于某些软件需要创建相应的用户
用户家目录权限
d|rwx|—|—
文件类型|所有者对其的操作权限|所在组的其他用户对其的操作权限|组外其他用户对其的操作权限
对于文件
- – 无权限
r – 读,查看
w – 写,修改
x – 执行
对于文件夹
- – 无权限
r – 读,查看
w – 写,修改
x – 能否通过cd切换至该文件夹
五、Linux用户和权限操作
切换用户
su {userName}:如果只需要临时使用某些用户的权限,不需要加横杠’-‘
效果:当前所在的路径不会发生变化
exit退出
- su - {userName}:完全切换用户,相当于重新登录,路径会切换到目标用户的家目录,读取该用户的环境变量信息
在当前用户是root的情况下,使用su切换用户时,不需要输入该用户的密码
在非root用户情况下使用su切换用户时,需要输入目标用户的密码
可执行文件
概述
可执行文件通常以.sh(软件安装后的脚本文件)结尾,它是shell脚本(Linux命令)
执行方式
有执行权限(x权限)
- ./{fileName}
- {fileName}
无执行权限
- bash {fileName}
权限示例
打开两个Xshell会话,一个是root用户,一个是普通用户cry
在tmp目录下进行操作演示:
- 先清空tmp目录
cd /tmp/ – 切换至tmp目录
rm -rf * – 清空tmp目录
- root用户的操作:
mkdir rootDir – 创建root用户文件夹rootDir
touch rootFile – 创建root用户文件rootFile
- cry用户的操作:
mkdir cryDir – 创建cry用户文件夹cryDir
touch cryFile – 创建cry用户文件cryFile
对rootFile文件的操作
cry用户:
vi rootFile
使用i命令时提示只读文件无法编辑
2. root用户
1.vi rootFile可以正常进行编辑
2.在rootFIle中插入语句mkdir rootTest,保存退出
3.使用./rootFile执行文件,提示没有权限
4.无权限的执行文件可以通过bash命令进行执行,执行完成后文件夹创建成功,如下图:
5.使用touch命令创建文件testBash
6.使用更改权限命令chmod将权限改成744,即-rwxr–r–,此时testBash将变成可执行文件,在Xshell中
将会显示成绿色
7.使用vi testBash在其中添加rm -rf rootTest语句
8.由于testBash有执行权限,可以直接通过./testBash执行,执行完成后rootTest文件被删除
9.使用cry用户操作,进入rootDir,此时rootDir对于其他用户有x权限,所以cd rootDir/可以执行
10.在rootDir文件夹中,由于对于其他用户没有w权限,所以不能使用mkdir、touch等命令
11.使用root用户将rootDir将权限改为750,即对其他用户没有任何权限
12.此时使用ll查看命令、cd进入文件夹命令都没有权限,被拒绝访问
权限更改
对于rwx的权限说明,在上文已经说明
权限修改命令(两种方法):
chmod {权限变更} 作用的文件(夹)
字母加减运算:便于理解,可以增加或去掉某些权限
如果是相同的操作(+/-),可以进行合并
例如: chmod o-r,o-x nameDir == chmod o-rx nameDir
数字权限变更(赋权):数字取值范围为0-7,修改权限时必须对ugo(user/group/other)同时指定权限,主要用于修改权限时涉及到较多角色的情况
rwx- 4210(二进制)
0-7分别代表:
0:—
1:–x
2:-w-
3:-wx
4:r–
5:r-x
6:rw-
7:rwx
六、Linux用户组
- id命令,显示某个用户的id、主组、所在组列表,此命令非root用户也可以使用
用户分配用户组(通过root用户才能操作)
- 添加用户时useradd -g(指定用户组) -G(指定多个用户组),可以通过id和名称指定,必须是已存在的用户组
- 修改用户命令usermod -a -G cry bigdata (被修改的用户放在后面)
用户组权限操作实例
创建一个新用户test,所在组不在cry组中
useradd test
创建三个窗口,三个窗口的用户分别是test、bigdata、root,所有会话都进入到tmp文件夹中
修改cryDir和cryFile文件对其他用户权限为0
在test用户中访问cryFile,命令cat cryFile,提示没有权限
在test用户中cd cryDir,同样提示没有权限
而root用户可以随意对cryFile进行操作
由于bigdata与cry在同一属组(上文修改过属组),所以也能对cryFile、cryDir进行操作
修改文件(夹)属主、属组
所有者和所在组的权限变更,需要用root操作
chown:更改文件夹的所有者和所在组
chgrp:更改文件夹的所在组
chmod -R {权限变更} {dir}(将dir下的所有(-R)内容权限改为{权限变更}中的内容)
chown -R {user}[:{group}] {file/dir}
chgrp [-R] {group} {file/dir}
将文件cryFile属主改为bigdata:
chown bigdata cryFile
在bigdata用户中无法将cryFIle属主再改回cry,因为权限不允许
chown cry cryFile
修改rootDir目录下的所有文件(夹)属主、属组均为root
chown -R root:root rootDir/
七、补充知识点
- tab键补全小知识点
- cd后使用tab会补全目录
- tab键可以补全可用命令或脚本文件
- 如果遇到多会话同时操作一个文件的权限时,可能会出现权限没同步的情况,此时登出再登录即可
- 使用Xftp文件时要注意上传的用户,权限要一致,比如如果用root上传文件,在bigdata用户中可能会出现无法访问的问题