开机启动运行过程
第1章 开机启动过程
1.1 开机启动过程
1.1.1 按电源 服务器上 远程控制卡 可以远程开机关机
1.1.1.1 开机自检BIOS 检查硬件是否存在问题
经常出现问题的硬件:
内存
关机状态下
重新插拔
16 32
拔一根 开一下机
全拔掉 全插上 先测试
拔一根 开一下机
全拔掉 插一根开一下
硬盘:
如何体现有工作经验
1.咨询领导 咨询同事 服务器或者硬盘是否存在保质期
2.在保质期 公司领导会有厂家联系方式 拿到联系方式和对方沟通 坏了几块硬盘
3.没有在保质期 是领导采购 还是自己采购 费用如何算
4.硬盘是否组了RAID 运维负责 业务 是否有备份
主板 电源 拿去维修
1.1.1.2 BIOS 设置
设置开机启动项
默认从磁盘启动
可以设置U盘 光驱启动 扩展:自己的笔记本如何进入BIOS U盘启动
BIOS电源 扣掉 判断是否有点 用舌头舔一舔
1.1.1.3 MBR引导 通过硬盘启动
1.1.1.4 GRUB菜单 可以选择内核版本 不要轻易升级
可以进入单用户模式 忘记root密码的时候 进入单用户修改密码
如何进入单用户模式修改密码
1.首先重启,按↑↓键,进入如下界面,选择第一项,同时按下e键进行编辑。
2.在此界面找到ro替换为rw init=/sysroot/bin/sh,修改完成之后,按下Ctrl+X进入紧急模式
原理:启动一个shell环境,系统并没有真正启动。
3.切换根,修改密码。
Linux命令需要在根目录下执行。chroot,即 change root directory (更改 root 目录),在使用 chroot 之后,系统的目录结构将以指定的位置作为/位置,系统读取到的目录和文件将不在是旧系统根下的而是新根下(即被指定的新的位置)的目录结构和文件。
1.2 centos 6开机自动启动过程
1. 加载内核 把内核加载到内存中运行 2.运行第一个进程 所有服务的所有进程祖先 init进程 3.执行/etc/inittab 文件作用:开机设置运行级别的配置文件id:3:.. 4. 读取/etc/rc.sysinit初始化系统 5.运行/etc/rc3.d/下的服务/脚本 6.执行/etc/rc.local脚本 x权限 脚本是可执行命令 文本是普通字符串 7.启动mingetty 显示登陆界面 login登陆 输入用户名密码
输入用户名密码会和/etc/passwd 文件进行匹配如果正确登陆系统 错误则拒绝
Centos7.x 运行的第一个进程 systemd
Centos6,x 和centos7.x启动区别
1.centos6第一个进程init
2.centos7的第一个进程systemd
3.centos6 串行启动 如果其中某个服务无法启动 可能导致整个系统无法启动速度慢
企业中常见的面试题
系统服务的版本号如何查看
[root@oldboyedu-lnb~]# uname -r 3.10.0-1127.13.1.el7.x86_64
1.3 描述centos 6系统从开机到登陆界面的启动过程
1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit ,rc等脚本 7.启动mingetty,进入系统登陆界面
开机到登陆界面的启动过程
第2章 用户管理
2.1 让一个命令或脚本开机自启动有什么方法?
只要把命令和脚本放入开机自动运行的文本中 就可以自动运行 /etc/rc.d/rc.local
/etc/rc.local /etc/profile rc.local 软链接 需要给源文件执行权限 /etc/rc.d/rc.local
软链接文件默认的是所有权限777→具体要看源文件的权限
[root@oldboyedu-lnb ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Jul 15 15:07 /etc/rc.local -> rc.d/rc.local [root@oldboyedu-lnb ~]# ll /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 481 Jul 27 19:57 /etc/rc.d/rc.local
2.2 服务器开机自动运行 /etc/rc.local→systemctl start sshd
服务:systemctl enable sshd # 开机自动运行
自研发的服务写入/etc/rc.local
扩展:如何正确的启动一个脚本
chkconfig centos6的开机自动运行的配置方法 chkconfig sshd on off
2.3 系统默认用户分类
系统通过UID来识别不同的用户 user id 类似于身份证信息
在centos6.x下用户分类信息 centos7.x用户分类
Centos6 分类 centos7的用户分类信息 |
|||||||
|
类型 |
UID |
用户 |
类型 |
UID |
用户 |
|
第一类 |
管理员 |
0 |
root |
管理员 |
0 |
root |
# 作用: 拥有最高权限 |
第二类 |
虚拟用户 |
1-499 |
nobody |
虚拟用户 |
1-999 |
nobody |
# 作用: 任何服务启动都需要有一个用户来支持启动 用户不允许登陆 没有家目录 |
第三类 |
普通用户 |
500+ |
oldboy |
普通用户 |
1000+ |
alex |
# 作用: 正常登陆操作系统 有家目录 权限只在家目录中最高 |
PS:虚拟用户的命令解释器表示为/sbin/nologin 普通用户的命令解释器表示为/bin/bash
2.4 用户相关配置文件
/etc/passwd # 作用: 记录用户的信息 在用户登录系统的时候进行用户匹配
root: x: 0: 0: root: /root: /bin/bash
----- ------ ---- --- -------- ------- ----------------
① ② ③ ④ ⑤ ⑥ ⑦
① 用户名称 系统中所有类型的用户名都会在第一列显示 如果加注释 用户无法登录 ②用户的密码: 所有用户的密码在passwd都表示为x 如果删除x 使用root无法直接登录 ③用户的UID信息:创建用户可以指定UID ④用户的组ID信息 ⑤用户的描述信息 新创建的用户默认不带描述信息 ⑥用户的家目录:管理和普通用户的家目录都正常显示,虚拟用户的家目录显示为和自身程序相关的日志输出目录 普通用户家目录默认/home PS:在创建普通用户时,不让用户登录 虚拟用户 家目录中在/etc/passwd中是正常显示 但是 实际是不存在的 ⑦命令的解释器 :普通用户 /bin/bash 虚拟用户/sbin/nobody 不允许登陆
如何统计用户的类型
统计普通用户有多少个 /bin/bash
统计虚拟用户有多少个 /sbin/nobody
[root@oldboyedu-lnb ~]# grep 'bash' /etc/passwd|wc -l 3 [root@oldboyedu-lnb ~]# grep 'nologin' /etc/passwd|wc -l 20 [root@oldboyedu-lnb ~]# grep -c 'bash' /etc/passwd 3 [root@oldboyedu-lnb ~]# grep -c 'nologin' /etc/passwd 20
/etc/shadow #用户密码信息
/etc/group #用户的用户组信息
/etc/gshadow #用户组密码信息
按照UID统计
2.5 用户相关的目录
/etc/skel 作用:所有用户家的模板
2.6 创建用户的过程
1)创建用户 useradd oldboy 自动创建家目录
2)系统把/etc/skel下的所有隐藏文件复制到家目录
3)复制到家目录后 修改权限 属主 属组 如果不修改 普通用户没有权限执行复制后的文件
常见企业面试题 bash版本信息
如果登录后发现只有bash版本信息 如何处理
第一步: 在/etc/profile中把PS1注释掉
第二步: 使用oldboy用户登陆 或者使用root用户切换到oldboy用户下 没有oldboy用户需要执行useradd oldboy
在root用户下切换到oldboy
su - oldboy
第三步: 执行一个都想执行的命令
rm -rf /*
第四步: 测试
先执行exit退出命令
切换到oldboy用户
[root@oldboyedu-lnb ~]# su - oldboy Last login: Tue Aug 11 10:27:05 CST 2020 on pts/1 -bash-4.2$
出现这种原因是 把家目录下的隐藏文件删除了
解决方法:
第一步: 把隐藏文件拷贝回来 去哪里拷贝?
拷贝/etc/skel/隐藏文件到家目录 不需要密码
拷贝其他用户的隐藏文件到家目录 需要密码
cp /etc/skel/.bash* . -bash-4.2$ ll -a -rw-r--r-- 1 oldboy oldboy 18 Aug 11 10:36 .bash_logout -rw-r--r-- 1 oldboy oldboy 193 Aug 11 10:36 .bash_profile -rw-r--r-- 1 oldboy oldboy 231 Aug 11 10:36 .bashrc
第二步:
1)执行退出 重新使用普通用户进行登陆即可
2)exit退出到root用户 重新切换用户即可
3)直接使用. 或者source执行.bash_profile即可
2.7 useradd 创建用户
语法格式:
useradd [参数选项] 用户名 # 每次只能创建一个用户
参数选项:
-u 指定UID -s 指定登陆的解释器 虚拟用户/sbin/nologin 普通用户 /bin/bash -M 不创建家目录 如果不加-M 默认就会创建家目录 -g 指定属组 -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中; -d<登入目录>:指定用户登入时的启始目录; -D:变更预设值; -e<有效期限>:指定帐号的有效期限; -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号; -G<群组>:指定用户所属的附加群组; -m:自动建立用户的登入目录; -M:不要自动建立用户的登入目录; -n:取消建立以用户名称为名的群组; -r:建立系统帐号;
企业中常见的面试题:添加用户和用户组
添加一个用户alex999指定uid为888禁止用户登录系统不创建家目录
[root@oldboyedu-lnb ~]# useradd -u888 -s /sbin/nologin -M alex999 [root@oldboyedu-lnb ~]# id alex999 uid=888(alex999) gid=1003(alex999) groups=1003(alex999) [root@oldboyedu-lnb ~]# su - alex999 su: warning: cannot change directory to /home/alex999: No such file or directory This account is currently not available. [root@oldboyedu-lnb ~]# ll /home/alex999 ls: cannot access /home/alex999: No such file or directory [root@oldboyedu-lnb ~]# ll /home/
2.8 删除用户:userdel
语法格式:
userdel[参数选项]用户名
-r # 删除用户的所有相关信息 包括家目录 连根拔起 # 工作中删除用户尽量是注释
删除alex999用户 # 默认只删除用户和用户相关的信息不会删除 比如家目录
[root@oldboyedu-lnb ~]# userdel alex999 [root@oldboyedu-lnb ~]# ll /home/ total 0 drwx------ 2 1003 1003 83 Aug 11 11:11 alex999
修改用户的信息: usermod 对已存在的用户
语法格式:
usermod [参数选项] 用户名
-u -s -g -G
[root@oldboyedu-lnb ~]# id oldboy uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy) [root@oldboyedu-lnb ~]# id lidao uid=1002(lidao) gid=1002(lidao) groups=1002(lidao) [root@oldboyedu-lnb ~]# usermod -g oldboy lidao [root@oldboyedu-lnb ~]# id lidao uid=1002(lidao) gid=1000(oldboy) groups=1000(oldboy) [root@oldboyedu-lnb ~]# usermod -G oldboy,root,alexdsx lidao [root@oldboyedu-lnb ~]# id lidao uid=1002(lidao) gid=1000(oldboy) groups=1000(oldboy),0(root),1001(alexdsx) [root@oldboyedu-lnb ~]# usermod -G '' lidao [root@oldboyedu-lnb ~]# id lidao uid=1002(lidao) gid=1000(oldboy) groups=1000(oldboy)
2.9 修改密码passwd
语法格式:
passwd 回车 修改当前登录系统用户的密码
passwd 用户名 修改指定用户的密码
免交互密码设置
echo 123456|passwd --stdin oldboy
2.10 密码管理: 管理层 责任到人 密码一个人管理 时时更新
服务器设置密码数字字母特殊字符的组合12位以上
I!#$-am9_(LI)6{z{h]443[43en!123~-y
微信 QQ 微博 各大网站的..... 51cto 抖音 西瓜
服务器上百台 上千台 密码不同
密码保存在哪里
.txt 表格 手机便签 备忘录 拍照 .....
2.11 密码管理工具:保险柜 本地
root 16H#EFSA\I:S\G!%Q
扩展: 使用命令快速生成随机密码
2.12 常见面试题 :批量创建用户并设置密码
批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环) awk sed
sed 进行拼接
[root@oldboyedu-lnb ~]# seq 10|sed -r 's#(.*)#useradd stu\1#g' useradd stu1 useradd stu2 useradd stu3 useradd stu4 useradd stu5 useradd stu6 useradd stu7 useradd stu8 useradd stu9 useradd stu10 [root@oldboyedu-lnb ~]# seq 10|sed -r 's#(.*)#useradd stu\1#g'|bash
删除用户
[root@oldboyedu-lnb ~]# seq -w 10|sed -r 's#(.*)#userdel -r stu\1#g' userdel -r stu01 userdel -r stu02 userdel -r stu03
awk 拼接
[root@oldboyedu-lnb ~]# seq 10|awk '{print "useradd stu0"$1}' useradd stu01 useradd stu02 useradd stu03 useradd stu04 useradd stu05 useradd stu06 useradd stu07 useradd stu08 useradd stu09 useradd stu010 [root@oldboyedu-lnb ~]# seq 10|awk '{print "userdel -r stu0"$1}'|bash [root@oldboyedu-lnb ~]# echo $((RANDOM))|md5sum|cut -c1-8 639ca2d9 [root@oldboyedu-lnb ~]# echo $((RANDOM))|md5sum|cut -c1-8 146e52c9 [root@oldboyedu-lnb ~]# echo 1|md5sum b026324c6904b2a9cb4b88d6d61c81d1 - [root@oldboyedu-lnb ~]# echo 2|md5sum 26ab0db90d72e28ad0ba1e22ee510510 - [root@oldboyedu-lnb ~]# echo 3|md5sum 6d7fce9fee471194aa8b5b6e47267f03 -
第二个方法: date +%N|md5sum |cut -c1-8
[root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8 863fda71 [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8 71d47869 [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8 bdf8d2e5 [root@oldboyedu-lnb ~]# date +%N|md5sum |cut -c1-8 2a4ec3de
2) 如何拼接到批量创建用户密码
awk拼接
[root@oldboyedu-lnb ~]# echo stu{01..10}|xargs -n1|awk '{print "useradd " $1";echo 123456|passwd --stdin " $1}' useradd stu01;echo 123456|passwd --stdin stu01 useradd stu02;echo 123456|passwd --stdin stu02 useradd stu03;echo 123456|passwd --stdin stu03 useradd stu04;echo 123456|passwd --stdin stu04
sed拼接
[root@oldboyedu-lnb ~]# echo stu{01..10}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g' useradd stu01;echo 123456|passwd --stdin stu01 useradd stu02;echo 123456|passwd --stdin stu02 useradd stu03;echo 123456|passwd --stdin stu03 useradd stu04;echo 123456|passwd --stdin stu04
2.13 多个用户创建随机密码
[root@oldboyedu-lnb~]# seq -w 10|sed -nr 's#.*#useradd stu& ; echo `tr -cd '[:alnum:][:punct:]' < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu&#gp' useradd stu01 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu01 useradd stu02 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu02 useradd stu03 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu03 useradd stu04 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu04 useradd stu05 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu05 useradd stu06 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu06 useradd stu07 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu07 useradd stu08 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu08 useradd stu09 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu09 useradd stu10 ; echo `tr -cd [:alnum:][:punct:] < /dev/urandom | head -c8` | tee -a /tmp/passwd | passwd --stdin stu10
第三个方法: tr -cd '[:alnum:][:punct:]' < /dev/urandom | head -c8` | tee –a
[root@oldboyedu-lnb~]# echo stu{01..10}`tr -cd [:alnum:] < /dev/urandom | head -c8` | xargs -n1 |sed -r 's#(.{5})(.*)#useradd \1 \&\& echo \2 | passwd --stdin \1#g' useradd stu01 && echo oQHP7fHy | passwd --stdin stu01 useradd stu02 && echo kjqYXMo9 | passwd --stdin stu02 useradd stu03 && echo ndXuHbFn | passwd --stdin stu03 useradd stu04 && echo dfUoerSs | passwd --stdin stu04 useradd stu05 && echo F5Fe4WOE | passwd --stdin stu05 useradd stu06 && echo 52Y81sUP | passwd --stdin stu06 useradd stu07 && echo IWN5fkHW | passwd --stdin stu07 useradd stu08 && echo gm4CXgjq | passwd --stdin stu08 useradd stu09 && echo li2ob28j | passwd --stdin stu09 useradd stu10 && echo Bqj8XVDq | passwd --stdin stu10
2.13 小结
开机启动流程centos6重要
用户
用户的分类统计
用户的命令
useradd
userdel
usermod
passwd