系统的启动流程(面试题)

  • Centos6

6.png

  1. 加电自检 检查服务器硬件是否正常
  2. MBR引导 读取磁盘的MBR存储记录信息,引导系统启动
  3. grup菜单 选择启动的内核/进行单用户模式重置密码
  4. 加载系统内核信息 可以更好的使用内核控制硬件
  5. 系统的第一个进程运行起来init(串行) init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd
  6. 加载系统运行级别文件/etc/inittab 识别系统的运行级别
  7. 初始化/etc/rc.d/rc.sysinit脚本运行 初始化系统主机名称 和 网卡信息
  8. 运行/etc/rc.d/rc脚本 服务运行的脚本
  9. 运行mingetty进程 显示开机登录信息界面
  • Centos7

7.png

  1. 加电自检 检查服务器硬件是否正常
  2. MBR引导 读取磁盘的MBR存储记录信息,引导系统启动
  3. grup菜单 选择启动的内核/进行单用户模式重置密码
  4. 加载系统内核信息 可以更好的使用内核控制硬件
  5. 系统的第一个进程运行起来systemd(并行) 服务启动的时候,同时一起启动
  6. 读取系统运行级别文件 /etc/systemd/system/default.target
  7. 读取系统初始化文件 /usr/lib/systemd/system/sysinit.target
  8. 使服务可以开机自启动 /etc/systemd/system加载此目录中的信息,实现服务开机自动启动
  9. 运行mingetty进程 显示开机登录信息界面

让命令或服务可以开机自动运行

Centos6

  • 将命令信息放入到/etc/rc.local
  • 利用chkconfig可以控制服务是否开机运行 根据运行级别进行进行控制

Centos7

  • 将命令信息放入到/etc/rc.local
  • Centos7默认rc.local文件没有执行权限,让命令生效需要添加执行权限
  • 利用systemctl enable/disable 服务名称

文件权限

  • r : 读权限,可以读文件的内容
  • w : 写权限,可以编辑文件的内容
  • x : 执行权限,执行这个文件(脚本文件)

root用户可以不受文件权限的影响可以直接操作文件

对于文件来说,写的权限和执行的权限,都需要有读权限配合

如何想对文件进行操作,必须对文件赋予读的权限

文件默认权限为644

目录权限

  • r : 读权限,读目录中的文件属性信息
  • w : 写权限,可以在目录中添加或删除文件数据信息
  • x : 执行权限,是否可以进入到目录中

root用户可以不受目录权限的影响可以直接操作目录

ll查看目录中文件属性需要目录的读,执行权限

删除和创建文件或目录需要当前目录的读,写,执行权限

目录默认权限为755


  • 当前用户访问目录只有读权限,所以无法进入目录,也无法读取inode信息,但是获取了文件名,这也解释文件名信息不存储在inode中
[1997sty@1997sty data]$ ll -d test
drwxr--r-- 4 root root 4096 11月 22 15:32 test
[1997sty@1997sty data]$ ll test
ls: 无法访问test/123: 权限不够
ls: 无法访问test/456: 权限不够
ls: 无法访问test/dir456: 权限不够
ls: 无法访问test/dir123: 权限不够
总用量 0
-????????? ? ? ? ?            ? 123
-????????? ? ? ? ?            ? 456
d????????? ? ? ? ?            ? dir123
d????????? ? ? ? ?            ? dir456

系统的操作命令

chmod命令

只能文件属主或特权用户才能使用该功能来改变文件存取模式

  • chmod 777 1997sty : 对当前目录下的1997sty文件赋予777权限
  • chmod a=rwx 1997sty : 对当前目录下的1997sty文件赋予777权限
  • chmod u-w 1997sty : 对当前目录下的1997sty文件的属主减去写权限
  • chmod g-w 1997sty : 对当前目录下的1997sty文件的属组减去写权限
  • chmod a-w 1997sty : 对当前目录下的1997sty文件的属主属组其他用户减去写权限
  • chmod a=rwx,o= 1997sty : 对当前目录下的1997sty文件的属主属组其他用户赋予777权限,其他用户没有权限
  • chmod -R 777 1997sty : 对当前目录下的1997sty目录,子目录,文件递归修改为777权限

执行参数

  • -R : 对当前目录下所有文件和目录递归修改权限

权限参数

  • a : 所有用户
  • u : 所属用户
  • g : 所属组
  • o : 其他用户
  • = : 等于权限
  • + : 增加权限
  • - : 减去权限
  • r : 读权限(4)
  • w : 写权限(2)
  • x : 执行权限(1)

umask命令

权限掩码,umask值表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值

  • umask : 查看umask值(root用户默认为0022 普通用户为0002)
  • umask 000 : 临时设置umask值为000

如果要永久设置umask值,需要/etc/profile中以下内容并修改后重新加载文件

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

文件目录初始权限计算

  • 并不是666-033=633 而是掩去umask值的权限位 剩下没有掩去的权限位就是文件目录的初始权限
  • 文件默认最大权限为666 umask值为022 结果为644(-rw-rw-rw-)–(-----w--w-)=(-rw-r--r--)
  • 文件默认最大权限为666 umask值为033 结果为644(-rw-rw-rw-)–(-----wx-wx)=(-rw-r--r--)
  • 目录默认最大权限为777 umask值为022 结果为755(-rwxrwxrwx)–(-----w--w-)=(-rwxr-xr-x)
  • 目录默认最大权限为777 umask值为033 结果为744(-rwxrwxrwx)–(-----wx-wx)=(-rwxr--r--)

/etc目录下配置文件说明

/etc/skel新用户配置文件

当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下

[root@1997sty ~]# ll -a /etc/skel/
总用量 20
drwxr-xr-x.  2 root root 4096 6月  11 2017 .
drwxr-xr-x. 87 root root 4096 11月 22 16:42 ..
-rw-r--r--   1 root root   18 12月  7 2016 .bash_logout
-rw-r--r--   1 root root  193 12月  7 2016 .bash_profile
-rw-r--r--   1 root root  231 12月  7 2016 .bashrc