开机启动运行过程

第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,xcentos7.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

用户

 

第一类

管理员

  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

 

 

posted @ 2020-09-15 10:41  上善若水~小辉  阅读(644)  评论(0编辑  收藏  举报