zoukankan      html  css  js  c++  java
  • 开机启动运行过程

    第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#EFSAI:SG!%Q

    扩展: 使用命令快速生成随机密码

    2.12  常见面试题  :批量创建用户并设置密码

    批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环) awk sed

    sed 进行拼接

    [root@oldboyedu-lnb ~]# seq 10|sed -r 's#(.*)#useradd stu1#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 stu1#g'|bash
    

    删除用户

    [root@oldboyedu-lnb ~]# seq -w 10|sed -r 's#(.*)#userdel -r stu1#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

  • 相关阅读:
    PHP 之ZIP压缩与解压缩文件
    xmind8 破解激活教程
    MIT 6.824 RPC 和多线程
    [AGC019E]Shuffle and Swap
    [CF1060F] Shrinking Tree
    【算法与数据结构】前序中序后序线索化二叉树及遍历
    绘画参考 多角度透视手的动作姿态线稿
    数学概率期望总结
    C#中方法、类等的默认访问修饰符~
    mysql 设置连接超时
  • 原文地址:https://www.cnblogs.com/strugger-0316/p/13671783.html
Copyright © 2011-2022 走看看