Linux系统启动流程与目录结构

1.系统启动流程

Cent OS 6启动流程
1.开机
2.BIOS自检
3.MBR引导
4.GRUB菜单
5.加载内核
6.运行系统INIT进程
7.读取系统运行级别

读取/etc/inittab文件

7.系统初始化(rc.sysinit)

执行/etc/rc.sysinit文件

8.串行启动系统各项服务

执行 /etc/rc数字.d/目录下的脚本和服务
*数字代表系统运行级别ID*

9.加载mingetty文件,显示系统登陆界面


Cent OS 7启动流程
1.开机
2.BIOS自检
3.MBR引导
4.GRUB菜单
5.加载内核
6.运行系统Systemd进程
7.读取系统运行级别

读取/etc/systemd/system/default.target文件

8.系统初始化(sysinit.target)

执行/usr/lib/systemd/system/sysinit.target文件

9.并行启动系统各项服务

执行/etc/systemd/system/目录下和/usr/lib/systemd/system/目录下的脚本和服务

10.加载getty文件,显示系统登陆界面

执行/usr/lib/systemd/system/getty.target文件

2.系统目录结构

Linux目录结构特点

  • Linux系统下一切从根开始,是一个倒挂树状的结构的目录
  • Linux系统一切皆以文件的形式存在
  • Linux系统中所有设备必须经过挂载才能使用
  • Linux系统中不同的目录可以挂载到不同设备(磁盘)上

Linux系统根下目录结构

Cent OS 6

[root@aspen-han ~]# tree -L 1 /
/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── selinux
├── srv
├── sys
├── tmp
├── usr
└── var

20 directories, 0 files

Cent OS 7

[root@aspen ~]# tree -L 1 /
/
├── bin -> usr/bin      //软链接 
├── boot 
├── dev
├── etc
├── home
├── lib -> usr/lib      //软链接
├── lib64 -> usr/lib64  //软链接
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin    //软链接
├── srv
├── sys
├── tmp
├── usr
└── var

19 directories, 0 files

Linux系统根下主要目录说明

  • /boot 负责引导系统启动,存放引导程序和系统内核;
系统分区时,一般为/boot目录单独建立分区,分区大小256M即可
系统计划更新,可以为/boot目录分配1G存储空间

该分区数据增长速度较快

  • /bin 存放二进制命令目录
在Cent OS 7中 /bin->/usr/bin
  • /sbin 存放管理系统相关命令(root用户使用)
在Cent OS 7中 /sbin->/usr/sbin
  • /dev 存放系统设备文件;如光盘、U盘、硬盘分区等;
  • /etc 存放系统配置文件
  • /home 普通用户家目录(用户默认数据存放模式)
例如aspen这个用户的家目录就是/home/aspen
  • /root Linux系统超级管理员(root)用户的家目录
  • /proc 存放进程信息和内核信息(比如CPU、内存信息等)
/proc 目录是一个虚拟目录,它不是真正的文件系统
  • /usr/ 存放用户数据、系统软件及系统命令
  • /lib 存放系统和运行命令所需的共享库文件和内存模块
在Cent OS 7中 /lib -> /usr/lib
  • /lib64 存放64位系统和运行命令所需的共享库文件和内存模块
在Cent OS 7中 /lib64 -> /usr/lib64
  • /media 存放媒体文件
/media 以前专门用于挂载光盘,现在是一个空文件夹
  • /mnt 临时挂载存储设备的挂载点
挂载相当于给一个孤立存在的设备设置一个接口,所有用户都需要通过该接口访问设备,这个接口称为挂载点
  • /opt 存放第三方软件(是第三方软件的默认安装目录)
  • /tmp 存放系统临时文件,可以被当作回收站使用
/tmp/ 目录默认权限:1777(rwxrwxrwt)
  • /var 存放系统日志文件

3.常用配置文件

随机字符设备文件

  • 文件位置:/dev/urandom
  • 关键参数(无)
  • 文件说明 随机字符生成文件(常用于生成随机密码)
  • 文件内容
[root@aspen ~]# cat /dev/urandom 
+,𮗆¢¡
     ^ÿ
ŧ!Z򱠂hkǧ½"řeɗ$ 
X²_ IPv얯e°Gf򀶦¡ ӻ򽕴K㱛󥙹°ӽ򊰴´o 
                           󤇗f
#쒁إz   ХB򠍥?I;¸X^تh~񆓻©P£񐬾«
I1]ŋqF󕐖␮iª❝.4/󿣫HN §1ߚR¾{кWqh񧮵[²׽򦎆#bGPIbTÿ
           󬯔T7󶑰-ȑ˵͆p[񮂘o¦    'ea}_𰆿_߄ɰ£9 =3 µH«vՉl8v%§F۶

白洞字符设备文件

  • 文件位置:/dev/zero
  • 关键参数(无)
  • 文件说明 不断发出信息,但无法查看
  • 文件内容(所有文件内容是一行)
[root@aspen ~]# dd if=/dev/zero of=/tmp/zero-50M bs=1M count=50
50+0 records in
50+0 records out
52428800 bytes (52 MB) copied, 0.0281017 s, 1.9 GB/s
[root@aspen ~]# ll -ih /tmp/zero-50M 
16809471 -rw-r--r-- 1 root root 50M May 14 14:49 /tmp/zero-50M
[root@aspen ~]# cat -A /tmp/zero-50M 
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

黑洞字符设备文件

  • 文件位置:/dev/null
  • 关键参数(无)
  • 文件说明 不断接受信息并丢弃
  • 文件内容
[root@aspen ~]# cat -A  /dev/null
[root@aspen ~]# 

网卡配置文件

  • 文件位置:/etc/sysconfig/network-scripts/ifcfg-网卡名
  • 关键参数:
BOOTPROTO-获取IP地址方式(获取方式分为手动获取none和static,自 动获取dhcp,实际工作中建议设置为static)
ONBOOT-开机自启动(实际工作中,建议设为yes)
NAME-网卡名称
DEVICE-设备名称
IPADDR-网卡IP地址
PREFIX-网络前缀
GATEWAY-网卡网关
DNS1-DNS主服务器(DNS作用:把域名解析为IP地址)
  • 文件说明 重启网络服务后,修改过的配置文件生效
Cent OS 6: ifdown eth0 && ifup eth0 重启网卡
Cent OS 6: service network restart 重启系统网络服务
Cent OS 7: systemctl restart network 重启系统网络服务
  • 文件内容
[root@aspen-han ~]# cat -n /etc/sysconfig/network-scripts/ifcfg-eth0 
     1  DEVICE=eth0 //设备名称:eth0(系统第一块网卡)
     2  TYPE=Ethernet //网卡类型:以太网
     3  UUID=efcc34a4-29c3-4f2a-a789-66872008e0be //系统设备标识符
     4  ONBOOT=yes //开机自启动:是
     5  NM_CONTROLLED=no //接受网络管理器控制:否
     6  BOOTPROTO=static //获取IP地址方式:手动获取 
     7  HWADDR=00:0C:29:30:76:DD //网卡MAC地址(全球唯一地址)-Cent OS 6 独有参数
     8  IPADDR=10.0.0.202 //IP地址
     9  PREFIX=24 //网络前缀(与NETMASK=255.255.255.0含义相同)
    10  GATEWAY=10.0.0.254 //网关
    11  DNS1=223.5.5.5 //主DNS服务器
    12  DNS2=223.6.6.6 //备DNS服务器
    13  DEFROUTE=yes
    14  IPV4_FAILURE_FATAL=yes
    15  IPV6INIT=no //是否支持IPv6:否
    16  NAME="eth0" //网卡名称(一般与设备名称一致)

系统DNS客户端配置文件

  • 文件位置 /etc/resolv.conf
  • 关键参数(无)
  • 文件说明 配置实时生效,系统网络服务重启后,文件内容将被网卡配置文件DNS覆盖
  • 文件内容
[root@aspen ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 223.5.5.5 //该文件中DNS成为nameserver,注意与网卡配置文件DNS区分

系统主机名配置文件

  • 文件位置(Cent OS 6) /etc/sysconfig/networks
  • 文件位置(Cent OS 7) /etc/hostname
  • 关键参数(无)
  • 文件说明
系统主机名配置文件修改,系统重启后生效,修改内容长期有效
hostname命令修改主机名,重新登录系统后生效,重启系统后失效
Cent OS 7 hostnamectl set-hostname 主机名 重新登录系统后生效,并且长期有效
使用hostname命令可以查询当前系统主机名
  • 文件内容
[root@aspen-han sysconfig]# cat /etc/sysconfig/network //Cent OS 6
NETWORKING=yes
HOSTNAME=aspen-han
[root@aspen ~]# cat /etc/hostname //Cent OS 6
aspen

系统本地DNS解析配置文件

  • 文件位置:/etc/hosts
  • 关键参数(无)
  • 文件说明 文件修改保存后立即生效
改文件在实际工作中,一般用于搭建测试环境
  • 文件内容
[root@aspen-han sysconfig]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

系统环境变量及别名配置文件

  • 文件位置 /etc/profile
  • 关键参数(常见环境变量)
UID-当前用户的UID信息
PATH-存放的是当前用户可执行命令的位置/路径
PS1-控制命令行格式
  • 文件说明
/etc/profile 用于存放系统环境变量
~/.profile 用于存放用户环境变量 (Linux系统中以 . 开头的文件为隐藏文件)

环境变量:在Linux系统中环境变量名一般由大写字母组成可以通过envset命令显示系统环境变量;(env仅显示系统环境变量;set显示系统环境变量及函数)

修改环境变量:变量名="Value"(为变量赋值);此种修改方式,仅本次登录有效
查看环境变量:echo $环境变量名

/etc/profile文件修改后,需使用source /etc/profile指令,使新的文件内容生效
  • 文件内容
[root@aspen ~]# cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
......

系统命令别名配置文件

  • 文件位置 /etc/bashrc
  • 关键参数(无)
  • 文件说明
/etc/bashrc 用于存放系统命令别名
~/.bashrc 用于存放用户命令别名
  • 文件内容
[root@aspen ~]# cat /etc/bashrc 
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

# are we an interactive shell?
......

系统字符集变量配置文件

  • 文件位置:(Cent OS 6) /etc/sysconfig/i18n
  • 文件位置:(Cent OS 7) /etc/locale.conf
  • 关键参数:
LANG 系统使用的语言和字符集变量

en_US.UTF-8(英文)
zh_CN.UTF-8(中文)
  • 文件说明
Cent OS 7中可以使用localectl命令直接修改系统语言及字符集
通过文件(locale.conf)或命令修改系统字符集,重新登录生效
  • 文件内容
[root@aspen ~]# cat /etc/sysconfig/i18n   #Cent OS 6
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
[root@aspen ~]# cat /etc/locale.conf  #Cent OS 7 
LANG="en_US.UTF-8"

用户登录后执行的脚本和命令的存放目录

  • 文件位置 /etc/profile.d
  • 关键参数(无)
  • 文件说明(无)
  • 文件内容
[root@aspen ~]# ls /etc/profile.d/ 
256term.csh  bash_completion.sh  colorgrep.sh  colorls.sh  lang.csh  less.csh  sh.local  vim.sh      which2.sh
256term.sh   colorgrep.csh       colorls.csh   csh.local   lang.sh   less.sh   vim.csh   which2.csh

系统发行版本配置文件

  • 文件位置 /etc/redhat-release
  • 关键参数(无)
  • 文件说明(无)
  • 文件内容
[root@aspen-han sysconfig]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@aspen ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@aspen ~]# ll /etc/*-release
-rw-r--r--. 1 root root  38 Nov 23 21:16 /etc/centos-release
-rw-r--r--. 1 root root 393 Nov 23 21:16 /etc/os-release
lrwxrwxrwx. 1 root root  14 Mar 20 09:32 /etc/redhat-release -> centos-release
lrwxrwxrwx. 1 root root  14 Mar 20 09:32 /etc/system-release -> centos-release

系统运行级别配置文件

  • 文件位置(Cent OS 6) /etc/inittab
  • 文件位置(Cent OS 7) /usr/lib/systemd/system/runlevel*.target
  • 关键参数
Cent OS 6运行级别(runlevel)

0:关机模式
1:单用户模式(不提供网络功能),一般用于重置root密码
2:多用户模式(无法访问NFS系统)
3:完全多用户模式(文本模式)
4:保留
5:图形化界面模式(X11)
6:重启模式
修改系统默认运行级别:直接修改配置文件最后一行的运行级别 ID 参数id:系统运行级别ID:default

Cent OS 7运行级别(runlevel)

0:poweroff.target 关机模式
1:rescue.target 救援模式
2:multi-user.target 多用户模式
3:multi-user.target 多用户模式
4:multi-user.target 多用户模式
5:graphical.target 图形化界面模式
6:reboot.target 重启模式
修改/查看系统默认运行级别
systemctl set-default 运行级别 #设置系统默认运行级别
systemctl get-default #查看系统默认运行级别
  • 文件说明
  • 文件内容(/etc/inittab)
[root@aspen-han sysconfig]# cat -n  /etc/inittab //Cent OS 6
     1  # inittab is only used by upstart for the default runlevel.
     2  #
     3  # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
     4  #
     5  # System initialization is started by /etc/init/rcS.conf
     6  #
     7  # Individual runlevels are started by /etc/init/rc.conf
     8  #
     9  # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
    10  #
    11  # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
    12  # with configuration in /etc/sysconfig/init.
    13  #
    14  # For information on how to write upstart event handlers, or how
    15  # upstart works, see init(5), init(8), and initctl(8).
    16  #
    17  # Default runlevel. The runlevels used are:
    18  #   0 - halt (Do NOT set initdefault to this)
    19  #   1 - Single user mode
    20  #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
    21  #   3 - Full multiuser mode
    22  #   4 - unused
    23  #   5 - X11
    24  #   6 - reboot (Do NOT set initdefault to this)
    25  # 
    26  id:3:initdefault: //文件唯一生效参数 id:系统运行级别ID:default

[root@aspen ~]# cat -n /etc/inittab  //Cent OS 7
     1  # inittab is no longer used when using systemd.
     2  #
     3  # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
     4  #
     5  # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
     6  #
     7  # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
     8  #
     9  # multi-user.target: analogous to runlevel 3
    10  # graphical.target: analogous to runlevel 5
    11  #
    12  # To view current default target, run:
    13  # systemctl get-default
    14  #
    15  # To set a default target, run:
    16  # systemctl set-default TARGET.target
    17  #
  • 文件内容(/usr/lib/systemd/system/runlevel*.target)
[root@aspen ~]# ls -l /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Mar 20 09:32 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Mar 20 09:32 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Mar 20 09:32 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Mar 20 09:32 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Mar 20 09:32 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Mar 20 09:32 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Mar 20 09:32 /usr/lib/systemd/system/runlevel6.target -> reboot.target

系统开机自动挂载配置文件

  • 文件位置 /etc/fstab
  • 关键参数(无)
  • 文件说明(无)
  • 文件内容
[root@aspen ~]# blkid
/dev/sda1: UUID="ed50c0d5-412a-4c9d-9718-fc0c26e29cb1" TYPE="xfs" 
/dev/sda2: UUID="7cf733af-f4be-4eca-be4f-83cde65d7dfa" TYPE="swap" 
/dev/sda3: UUID="b1295302-6765-4999-8f5a-458e2928baeb" TYPE="xfs" 
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
[root@aspen ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Mar 20 09:32:15 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=b1295302-6765-4999-8f5a-458e2928baeb /                       xfs     defaults        0 0
UUID=ed50c0d5-412a-4c9d-9718-fc0c26e29cb1 /boot                   xfs     defaults        0 0
UUID=7cf733af-f4be-4eca-be4f-83cde65d7dfa swap                    swap    defaults        0 0

开机自启动命令或脚本

  • 文件位置 /etc/rc.local(完整路径/etc/rc.d/rc.local)
  • 关键参数(无)
  • 文件说明
Cent OS 7中首次使用rc.local文件,需要为文件添加执行权限
chmod +x /etc/rc.d/rc.local
  • 文件内容
[root@aspen ~]# ll /etc/rc.local 
lrwxrwxrwx. 1 root root 13 Mar 20 09:32 /etc/rc.local -> rc.d/rc.local
[root@aspen ~]# cat /etc/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

存放系统服务管理脚本/命令目录

  • 文件位置(Cent OS 6) /etc/init.d/
  • 文件位置(Cent OS 7)/usr/lib/systemd/system/
  • 关键参数(无)
  • 文件说明
Cent OS 7
在Cent OS 7中/etc/init.d/目录下仅存放了系统网络服务
在Cent OS 7中使用systemctl命令来管理系统服务
  • 文件内容(/etc/init.d/)
[root@aspen-han ~]# ls /etc/init.d/ //Cent OS 6
abrt-ccpp  auditd            haldaemon   kdump         messagebus  ntpd       rdisc        sandbox    svnserve
abrtd      blk-availability  halt        killall       netconsole  ntpdate    rdma         saslauthd  sysstat
abrt-oops  cpuspeed          ip6tables   lvm2-lvmetad  netfs       postfix    restorecond  single     udev-post
acpid      crond             iptables    lvm2-monitor  network     psacct     rngd         smartd
atd        functions         irqbalance  mdmonitor     nfs-rdma    quota_nld  rsyslog      sshd
[root@aspen ~]# ls /etc/init.d/ //Cent OS 7
functions  netconsole  network  README
  • 文件内容(/usr/lib/systemd/system)
abrt-ccpp.service                       rhel-configure.service
abrtd.service                           rhel-dmesg.service
abrt-oops.service                       rhel-domainname.service
abrt-pstoreoops.service                 rhel-import-state.service
abrt-vmcore.service                     rhel-loadmodules.service
abrt-xorg.service                       rhel-readonly.service
......
rhel-autorelabel-mark.service           wpa_supplicant.service
rhel-autorelabel.service

用户登录系统后显示信息配置文件

  • 文件位置 /etc/motd
  • 关键参数 (无)
  • 文件说明 系统默认文件内容为空
  • 文件内容
[root@aspen-han ~]# cat /etc/motd 

用户登录系统前显示信息配置文件

  • 文件位置 /etc/issue和/etc/issue.net
  • 关键参数 (无)
  • 文件说明 在实际工作中清空文件内容
  • 文件内容
[root@aspen-han ~]# cat /etc/issue  //Cent OS 6
CentOS release 6.9 (Final)
Kernel \r on an \m
[root@aspen-han ~]# cat /etc/issue.net 
CentOS release 6.9 (Final)
Kernel \r on an \m
[root@aspen ~]# cat /etc/issue /etc/issue.net  //Cent OS 7  
\S
Kernel \r on an \m

\S
Kernel \r on an \m

系统用户信息配置文件

  • 文件位置:/etc/passwd
  • 关键参数(无)
  • 文件说明
第1列:用户名
第2列:密码(占位符)
第3列:UID
第4列:GID
第5列:用户说明信息(默认为空)
第6列:用户家目录
第7列:用户所使用的命令解释器

/bin/sh
/bin/bash 可登录系统用户使用(系统默认)
/sbin/nologin 虚拟用户/傀儡用户使用(负责运行Linux下面的进程或者服务,而不需要登录系统的用户)

  • 文件内容
[root@aspen ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

系统用户登录密码(密文)配置文件

  • 文件位置:/etc/shadow
  • 关键参数(无)
  • 文件说明
存放用户加密密码的文件
  • 文件内容
[root@aspen ~]# head -5 /etc/shadow
root:$6$nw1Vz5LS$G2cB6ZJkpx5Rz6UE849VdjaNvjRB9PXttepjC6mZegNoNuBq1mCF22GP9bhuucXBwucNMabiiMYV0e0fg9.gO.:18029:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::

系统用户组信息配置文件

  • 文件位置:/etc/group
  • 关键参数(无)
  • 文件说明(无)
  • 文件内容
[root@aspen ~]# head -5 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:

系统用户组登录密码(密文)配置文件

  • 文件位置:/etc/gshadow
  • 关键参数(无)
  • 文件说明(无)
  • 文件内容
[root@aspen ~]# head -5 /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::

sudo命令配置文件

  • 文件位置:/etc/sudoers
  • 关键参数
aspen ALL=(ALL) /sbin/*
用户名 可以在哪台机器上使用=(可以切换为哪个用户) 命令;

可以在哪台机器上使用,一般用的标识位该主机的主机名;
  • 文件说明
一般用visudo命令编辑该文件;
不要在该文件中针对同一个用户进行多次授权
  • 文件内容
[root@aspen ~]# cat -n /etc/sudoers |awk 'NR==98,NR==104'
    98  ##
    99  ## Allow root to run any commands anywhere 
   100  root    ALL=(ALL)   ALL
   101  aspen   ALL=(ALL)       NOPASSWD:ALL    ##授权aspen用户执行系统所有命令时可以使用root身份,并且在使用sudo命令时不需要输入密码;
   102  stu01   ALL=(ALL)       /sbin/* !/sbin/rm !/sbin/vim !/sbin/su  ##授权stu01用户执行/sbin/以下,rm/vim/su以外的所有命令可以使用root身份
   103  
   104  ## Allows members of the 'sys' group to run networking, software, 

创建普通用户的家目录模板目录

  • 文件位置:/etc/skel/
  • 关键参数(无)
  • 文件说明
创建普通用户时,当用户创建成功时,系统会为用户创建家目录;然后将/etc/skel/目录下的所有内容复制到该用户家目录中;
当普通用户家目录某一文件被删除导致用户或系统提示符不正常时,可以到该目录下复制指定文件到家目录下,以便修复故障
  • 文件内容
[root@aspen ~]# ll -a /etc/skel/
total 24
drwxr-xr-x.  2 root root   62 Apr 11  2018 .
drwxr-xr-x. 80 root root 8192 May 14 10:45 ..
-rw-r--r--.  1 root root   18 Oct 31  2018 .bash_logout
-rw-r--r--.  1 root root  193 Oct 31  2018 .bash_profile
-rw-r--r--.  1 root root  231 Oct 31  2018 .bashrc

编译软件默认安装目录

  • 文件位置 /usr/local
  • 关键参数 (无)
  • 文件说明 (无)
  • 文件内容
[root@aspen ~]# ls  -l /usr/local/
total 0
drwxr-xr-x. 2 root root  6 Apr 11  2018 bin
drwxr-xr-x. 2 root root  6 Apr 11  2018 etc
drwxr-xr-x. 2 root root  6 Apr 11  2018 games
drwxr-xr-x. 2 root root  6 Apr 11  2018 include
drwxr-xr-x. 2 root root  6 Apr 11  2018 lib
drwxr-xr-x. 2 root root  6 Apr 11  2018 lib64
drwxr-xr-x. 2 root root  6 Apr 11  2018 libexec
drwxr-xr-x. 2 root root  6 Apr 11  2018 sbin
drwxr-xr-x. 5 root root 49 Mar 20 09:32 share
drwxr-xr-x. 2 root root  6 Apr 11  2018 src

存放源码文件的安装目录

  • 文件位置 /usr/src
  • 关键参数 (无)
  • 文件说明 (无)
  • 文件内容
[root@aspen ~]# ls -l /usr/src/
total 0
drwxr-xr-x. 2 root root  6 Apr 11  2018 debug
drwxr-xr-x. 3 root root 35 Mar 20 09:32 kernels

系统CPU信息文件

  • 文件位置 /proc/cpuinfo
  • 关键参数
processor-CPU核心ID(从0开始,0带代表第1个CPU核心)
physical id-物理CPU ID(从0开始,0代表第一颗CPU)
  • 文件说明
查看系统主机CPU的概要信息,可以使用lscpu指令
  • 文件内容
[root@aspen ~]# cat /proc/cpuinfo 
processor   : 0 //系统CPU第一个核心
vendor_id   : GenuineIntel
cpu family  : 6
model       : 158
model name  : Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz //CPU型号
stepping    : 10
microcode   : 0x84
cpu MHz     : 2208.000 //CPU核心主频
cache size  : 9216 KB 
physical id : 0
siblings    : 1
core id     : 0 //系统主机CPU ID
cpu cores   : 1
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 22
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat spec_ctrl intel_stibp arch_capabilities
bogomips    : 4416.00
clflush size    : 64
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:

系统内存信息文件

  • 文件位置 /proc/meminfo
  • 关键参数
MemTotal-系统内存总空间
MemFree-系统空闲内存空间
MemAvailable-系统内存可用空间
  • 文件说明
查看系统内存的概要信息,可以使用free -h指令
  • 文件内容
[root@aspen ~]# cat /proc/meminfo 
MemTotal:         995896 kB //系统内存总空间
MemFree:          701492 kB //系统空闲内存空间
MemAvailable:     685964 kB //系统内存可用空间
Buffers:            4136 kB //系统缓冲池空间
Cached:            94040 kB //系统缓冲区空间
SwapCached:            0 kB
Active:           100820 kB
Inactive:          71036 kB
Active(anon):      74088 kB
......

系统负载信息文件

  • 文件位置 /proc/loadavg
  • 关键参数 (无)
  • 文件说明
查看系统负载信息可使用wuptime指令
系统三个数值分别表示近1分钟、5分钟、15分钟的系统繁忙程度;数值与CPU总核心数量值越接近表示系统越繁忙
系统负载繁忙程度主要参考CPU和磁盘的指标
  • 文件内容
[root@aspen ~]# cat /proc/loadavg 
0.00 0.01 0.05 2/112 9115

系统挂载信息文件

  • 文件位置 /proc/mounts
  • 关键参数 (无)
  • 文件说明 (无)
  • 文件内容
[root@aspen ~]# head -6 /proc/mounts 
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=487048k,nr_inodes=121762,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0

系统服务和系统信息日志文件

  • 文件位置 /var/log/message
  • 关键参数 (无)
  • 文件说明
日志内容由rsyslog服务(系统日志服务)提供
  • 文件内容
[root@aspen ~]# tail -7 /var/log/messages
Apr 12 09:31:56 aspen nm-dispatcher: req:1 'up' [eth0]: start running ordered scripts...
Apr 12 09:31:56 aspen nm-dispatcher: req:2 'connectivity-change': new request (2 scripts)
Apr 12 09:31:56 aspen nm-dispatcher: req:2 'connectivity-change': start running ordered scripts...
Apr 12 09:31:56 aspen systemd: Started LSB: Bring up/down networking.
Apr 12 09:32:39 aspen systemd: Started Session 10 of user root.
Apr 12 09:32:39 aspen systemd-logind: New session 10 of user root.
Apr 12 10:01:01 aspen systemd: Started Session 11 of user root.

系统用户登录日志文件

  • 文件位置 /var/log/secure
  • 关键参数 (无)
  • 文件说明
日志内容由rsyslog服务(系统日志服务)提供
平时工作中主要关注失败信息,尤其是Fail Password
  • 文件内容
[root@aspen ~]# tail -f /var/log/secure
Apr 11 20:06:27 aspen sshd[7739]: Accepted password for root from 10.0.0.1 port 60132 ssh2
Apr 11 20:06:27 aspen sshd[7739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 11 20:21:23 aspen sshd[7739]: pam_unix(sshd:session): session closed for user root
Apr 11 21:51:55 aspen sshd[8208]: Accepted password for root from 10.0.0.1 port 50385 ssh2
Apr 11 21:51:55 aspen sshd[8208]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 11 22:57:34 aspen sshd[8208]: pam_unix(sshd:session): session closed for user root
Apr 11 22:57:36 aspen sshd[8333]: Accepted password for root from 10.0.0.1 port 50727 ssh2
Apr 11 22:57:36 aspen sshd[8333]: pam_unix(sshd:session): session opened for user root by (uid=0)
Apr 12 09:32:39 aspen sshd[9053]: Accepted password for root from 10.0.0.1 port 50866 ssh2
Apr 12 09:32:39 aspen sshd[9053]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@aspen ~]# tail -f /var/log/secure | grep -i failed
Apr 12 10:08:28 aspen unix_chkpwd[9215]: password check failed for user (root)
Apr 12 10:08:30 aspen login: FAILED LOGIN 1 FROM tty1 FOR root, Authentication failure
Apr 12 10:08:36 aspen login: FAILED LOGIN 2 FROM tty1 FOR (unknown), User not known to the underlying authentication module

硬件信息加载情况日志文件

  • 文件位置 /var/log/dmesg
  • 关键参数 (无)
  • 文件说明 (无)
  • 文件内容
[root@aspen ~]# tail -5 /var/log/dmesg
[   11.034243] XFS (sda1): Ending clean mount
[   11.439735] floppy0: no floppy controllers found
[   11.439763] work still pending
[   11.511992] type=1305 audit(1554983382.001:4): audit_pid=6309 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
[   12.147024] NET: Registered protocol family 40

记录定时任务的执行日志

  • 文件位置:var/log/cron
  • 关键参数(无)
  • 文件说明
只记录定时任务是否执行,不会记录错误
查看日志文件可帮助我们排查定时任务是否执行成功
  • 文件内容
[root@aspen ~]# tail -4 /var/log/cron
May 14 11:17:02 aspen run-parts(/etc/cron.daily)[32612]: finished man-db.cron
May 14 11:17:02 aspen anacron[31432]: Job `cron.daily' terminated
May 14 11:17:02 aspen anacron[31432]: Normal exit (1 job run)
May 14 11:22:24 aspen crontab[32887]: (root) LIST (root)

系统定时任务存放目录

  • 文件位置:/var/spool/cron/
  • 关键参数

  • 文件说明
定时任务:定时的运行命令或者脚本,一般用于数据备份;每个用户创建的定时定时任务,将会在该目录下创建一个以该用户用户名命名的文件;
定时任务名称:crontab(命令)、cronie(软件包名称)

crontab -l == cat /var/spool/cron/
crontab -e == vim /var/spool/cron/
定时任务书写流程
1、书写定时任务要写注释
2、测试命令是否可执行
3、书写脚本,测试脚本
4、书写定时任务(脚本注意使用绝对路径)
5、增加定时任务执行频率(每分钟执行一次)
6、测试正常后,再将时间设为指定时间

定时任务书写注意事项

如果定时任务没有定向到/dev/null,系统会发送大量的邮件;
如果该服务器邮件服务关闭,它将会把未发送成功的邮件存放在临时目录(/var/spool/postfix/maildrop),导致系统积累大量邮件文件,占用系统inode号;
定时任务最短执行间隔时间为1分钟;

  • 文件内容
[root@aspen ~]# ll -A /var/spool/cron/
total 4
-rw-------. 1 root root 99 May 10 21:48 root
[root@aspen ~]# cat /var/spool/cron/root 
#backup-etc-cron@2019-05-10 00:00 by aspen
00 00 * * * sh /scripts/bak-etc-cron.sh >/dev/null 2>&1
[root@aspen ~]# crontab -l
#backup-etc-cron@2019-05-10 00:00 by aspen
00 00 * * * sh /scripts/bak-etc-cron.sh >/dev/null 2>&1

附:思维导图

未完待续...

发表评论

您的电子邮箱地址不会被公开。