入坑运维(第五节)

系统开机的流程

centos6的启动流程
入坑运维(第五节)_第1张图片

  1. 加电自检
    检查服务器硬件是否正常
    02. MBR引导
    读取磁盘的MBR存储记录信息,引导系统启动
    1. grup菜单
      选择启动的内核/进行单用户模式重置密码

    2. 加载系统内核信息
      可以更好的使用内核控制硬件

    3. 系统的第一个进程运行起来 init (串行)
      init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd

    4. 加载系统运行级别文件/etc/inittab

    5. 初始化脚本运行
      初始化系统主机名称 和 网卡信息

    6. 运行系统特殊的脚本
      服务运行的脚本

    7. 运行mingetty进程
      显示开机登录信息界面

centos7的启动流程

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

用户管理

用户概念介绍:
管理员用户 root 0 权利至高无上
虚拟用户 nobody 1-999 管理进程 没家目录 不能登录系统
普通用户 oldboy 1000+ 权利有限

r read
w write
x execute

文件信息:
r  可以读文件的内容
w  可以编辑文件的内容
x  执行这个文件(脚本文件)

touch oldboy_root.txt -- 属主是root
touch oldboy.txt --      属主是oldboy
                         其他用户oldgirl
环境准备:
[root@oldboyedu ~]# touch oldboy_root.txt
[root@oldboyedu ~]# ll oldboy_root.txt 
-rw-r--r--. 1 root root 0 Apr 23 10:02 oldboy_root.txt
[root@oldboyedu ~]# touch oldboy.txt
[root@oldboyedu ~]# ll oldboy.txt 
-rw-r--r--. 1 root root 51 Apr 23 10:02 oldboy.txt
[root@oldboyedu ~]# chown oldboy oldboy.txt
[root@oldboyedu ~]# ll oldboy.txt 
-rw-r--r--. 1 oldboy root 51 Apr 23 10:02 oldboy.txt
[root@oldboyedu ~]# chmod 000 oldboy_root.txt 
[root@oldboyedu ~]# chmod 000 oldboy.txt 
[root@oldboyedu ~]# ll oldboy_root.txt 
----------. 1 root root 0 Apr 23 10:02 oldboy_root.txt
[root@oldboyedu ~]# ll oldboy.txt 
----------. 1 oldboy root 51 Apr 23 10:02 oldboy.txt

入坑运维(第五节)_第2张图片
由上图可知,我将root创建的文件的权限全设为0,这时我可以对此文件进行读和写,但不能执行;然后oldboy创建的文件的权限我也全设置为0,然后oldboy只能对自己的文件进行勉强的写;其他用户oldgirl也只能对oldboy的这个文件勉强的写。

文件权限配置的结论:
01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
03. 如果想对文件进行操作,必须对文件赋予读的权限

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

当目录赋予读的权限
[oldboy@oldboyedu ~]$ ll /home/oldboy/oldboy_dir/文件 
ls: cannot access oldboy_dir/oldboy.txt: Permission denied
total 0
-????????? ? ? ? ?            ? oldboy.txt

/           inode (5 r_x) -- block (home)
home        inode (5 r_x) -- block (oldboy)
oldboy   	inode (7 rwx) -- block (oldboy_dir)
oldboy_dir  inode (4 r--) -- block (目录中文件名称)
无法进入目录
oldboy.txt  inode 目录中的文件inode信息无法获取,会显示文件属性信息为??? 

两个权限问题:
/oldboy/oldboy.txt 
01. oldboy.txt   权限 rwx--xr--  属主如何操作文件  其他用户可以如何操作这个文件

【注意】一个文件的读写权限跟自己有关,同时可能也跟自己的父目录有关,如果父目录没有可执行权限,那啥也干不了。

目录权限配置的结论:
01. root用户对目录信息有绝对权限
02. 对于目录来说,写的权限和读的权限,都需要有执行权限配合
03. 如果想对目录进行操作,必须对目录赋予执行的权限

一个普通文件默认权限: 644  保证属主用户对文件可以编辑  保证其他用户可以读取文件内容
一个目录文件默认权限: 755  保证属主用户对目录进行编辑  保证其他用户可以读取目录中的信息,可以进入到目录中

文件目录数据设置权限的方法:
1) 根据用户信息进行设定 (属主 属组 其他用户)
   属主-user       u  
   属组-group      g 
   其他用户-other  o 
   chmod u+r/w/x u-r/w/x u=rw
   chmod g+r/w/x u-r/w/x u=rw
   chmod o+r/w/x u-r/w/x u=rw
2) 根据用户进行批量设定
   数值设定:
   [root@oldboyedu ~]# chmod 761 oldboy.txt
   [root@oldboyedu ~]# ll oldboy.txt
   -rwxrw---x. 1 root root 0 Apr 23 11:42 oldboy.txt

   字符设定:
   [root@oldboyedu ~]# chmod a=x oldboy.txt
   [root@oldboyedu ~]# ll oldboy.txt
   ---x--x--x. 1 root root 0 Apr 23 11:42 oldboy.txt


问题一: 为什么创建的文件,目录权限一致
目录权限都是 755
文件权限都是 644 

[root@oldboyedu ~]# umask 
0022

默认文件权限: 666 - 022 = 644
umask数值是奇数  666 - 033 = 633 + 11 = 644
umask数值是偶数  666 - 022 = 644

默认目录权限: 777 - 022 = 755	
umask数值是奇数  777 - 033 = 744
umask数值是偶数  777 - 022 = 755	

问题二: 如何永久修改umask信息
vim /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
  umask 002
else
  umask 022  --- 可以永久修改umask数值
fi

系统中的一个特殊的目录: /etc/skel  样板房 
[root@oldboyedu ~]# ll /etc/skel/ -a
total 24
drwxr-xr-x.  2 root root   62 Apr 11  2018 .
drwxr-xr-x. 81 root root 8192 Apr 23 12:11 ..
-rw-r--r--.  1 root root   18 Apr 11  2018 .bash_logout   当系统退出登录状态会执行的命令
-rw-r--r--.  1 root root  193 Apr 11  2018 .bash_profile  别名和环境变量(只针对某个用户)  家规
-rw-r--r--.  1 root root  231 Apr 11  2018 .bashrc        别名和环境变量(只针对某个用户) 国法

useradd oldgirl --> /home/oldgirl/ --> 目录中的数据内容会参考/etc/skel目录中的信息

/etc/skel目录作用:
01. 目录中可以存储运维操作规范说明文件
02. 调整命令提示符信息
    出现问题: 命令提示符: -bash-4.2$ 
-bash-4.2$ ll /etc/hosts
-rw-r--r--. 2 root root 192 Apr 15 12:19 /etc/hosts
-bash-4.2$ cp /etc/skel/.b* /home/new01/
-bash-4.2$ exit
logout
[root@oldboyedu ~]# 
[root@oldboyedu ~]# su - new01
Last login: Tue Apr 23 12:23:36 CST 2019 on pts/2

文件的默认权限是如何设置

   文件是: 644  666-umask(奇数+1)
   目录是: 755  777-umask
   umask(内置命令): 可以影响系统数据默认权限
   umask如何永久设置
   if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]
          条件一             
   then
       umask 002
   else
       umask 022
   fi
     
   $UID: 显示当前登录系统用户id数值
   判断比较符号
   -gt greater than  >
   -lt less than     <
   -eq equal         ==
   -ge greater && equal >=
   -le less && equal    <=
   -ne not equal     <>
   /usr/bin/id -gn  -- 显示当前用户的组名
   /usr/bin/id -un  -- 显示当前用户名称

特殊的目录: /etc/skel 样板房

   用户家目录都参照样板房设计
   用户家目录中特殊文件:
   -rw-------.  1 oldboy oldgirl 1454 Apr 24 09:12 .bash_history   --- 历史命令记录文件
   曾经输入的历史命令保存位置:
   01. 保存在内存中      histroy
       history -c
   02. 保存在磁盘文件中: .bash_history 
   
   -rw-------.  1 oldboy oldgirl  651 Apr 23 10:16 .viminfo        --- vim样式设置
   自动加载文件样式信息
   #!/bin/bash
   # 编写人: oldboy
   # 编写时间: 2019
   # 脚本作用: 

系统中和用户相关的文件

/etc/passwd*****  --- 记录系统用户信息文件 
[root@oldboyedu oldboy]# head /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
01      02  03  04  05          06                  07

第一列: 用户名
第二列: 用户密码信息
第三列: 用户的uid信息
第四列: 用户的gid信息
第五列: 用户的注释信息 
        mysql(manager database user)
		www  (manager web server)
第六列: 用户家目录信息
第七列: 用户登录系统方式
        /bin/bash       --- 通用的解释器
		/usr/bin/sh     --- 等价于/bin/bash
		/usr/bin/bash
        /sbin/nologin       --- 无法登录系统
        /usr/sbin/nologin
/etc/shadow*      --- 系统用户密码文件
/etc/group*       --- 组用户记录文件
/etc/gshadow*     --- 组用户密码信息

系统用户相关命令

a 创建用户命令
  useradd oldboy   普通用户被创建出来
  useradd oldboy01 -M -s /sbin/nologin 虚拟用户被创建出来
  -M 不创建家目录
  -s 指定使用的shell方式
  [root@oldboyedu oldboy]# useradd Alex01 -M -s /sbin/nologin
  [root@oldboyedu oldboy]# id Alex01
  uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
  [root@oldboyedu oldboy]# grep Alex01 /etc/passwd
  Alex01:x:1067:1067::/home/Alex01:/sbin/nologin
  [root@oldboyedu oldboy]# ll /home/Alex01 -d
  ls: cannot access /home/Alex01: No such file or directory
  
  useradd Alex03 -u 2000
  -u 指定用户uid数值信息
  [root@oldboyedu oldboy]# id Alex03
  uid=2000(Alex03) gid=2000(Alex03) groups=2000(Alex03)
  
  useradd Alex04 -u 2001 -g Alex02
  -g 指定用户所属的主要组信息
  [root@oldboyedu oldboy]# id Alex04
  uid=2001(Alex04) gid=1068(Alex02) groups=1068(Alex02)
  [root@oldboyedu oldboy]# useradd Alex05 -u 2002 -g 1068
  [root@oldboyedu oldboy]# id Alex05
  uid=2002(Alex05) gid=1068(Alex02) groups=1068(Alex02)

  [root@oldboyedu oldboy]# useradd Alex07 -u 2004 -g Alex02 -G Alex03
  -G 指定用户所属的附属组信息
  [root@oldboyedu oldboy]# id Alex07
  uid=2004(Alex07) gid=1068(Alex02) groups=1068(Alex02),2000(Alex03)

  useradd mysql -s /sbin/nologin -M -c "manager database"
  -c 添加指定用户注释说明信息
  [root@oldboyedu oldboy]# grep mysql /etc/passwd
  mysql:x:2005:2005:manager database:/home/mysql:/sbin/nologin

b 修改用户信息
  usermod
  -s    修改用户的登录方式
  -g    修改用户的主要的组信息
  -G    修改用户的附属组信息
  -c    修改用户的注释信息
  
  修改用户shell信息
  [root@oldboyedu oldboy]# usermod Alex02 -s /sbin/nologin
  [root@oldboyedu oldboy]# grep Alex02 /etc/passwd
  Alex02:x:1068:1068::/home/Alex02:/sbin/nologin

  修改用户uid信息
  [root@oldboyedu oldboy]# usermod Alex02 -u 3000
  [root@oldboyedu oldboy]# id Alex02
  uid=3000(Alex02) gid=1068(Alex02) groups=1068(Alex02)

c 删除用户信息
  userdel
  userdel -r Alex04
  -r 彻底删除用户以及用户的家目录
  [root@oldboyedu oldboy]# ll /home/Alex04 -d
  ls: cannot access /home/Alex04: No such file or directory
  [root@oldboyedu oldboy]# useradd Alex04
  
d 用户密码设置方法
  交互式设置密码
  passwd oldboy 
  非交互设置密码
  echo 123456|passwd --stdin oldboy
  
  企业中设置密码和管理密码的方式
  1. 密码要复杂12位以上字母数字及特殊符号
  2. 保存好密码信息
      keepass
	  密码保险柜,本地存储密码
      lastpass
	  密码保险柜,在线存储密码
  3. 大企业用户和密码统一管理(相当于活动目录AD)
      openldap域
	  用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
  4. 动态密码:动态口令,第三方提供自己开发也很简单。

如下图keepass的使用,就跟数据库差不多,只不过是管理密码的。
入坑运维(第五节)_第3张图片
入坑运维(第五节)_第4张图片

用户组相关命令

# groupadd 创建用户组
[root@oldboyedu oldboy]# groupadd python
[root@oldboyedu oldboy]# useradd python -g python
[root@oldboyedu oldboy]# id python
uid=3003(python) gid=3003(python) groups=3003(python)   

# groupmod 修改用户组信息
# groupdel 删除用户组信息

用户属主属组设置命令

chown  修改属主和属组信息
[root@oldboyedu oldboy]# ll /etc/hosts
-rw-r--r--. 2 root root 192 Apr 15 12:19 /etc/hosts
[root@oldboyedu oldboy]# chown oldboy.root /etc/hosts
[root@oldboyedu oldboy]# ll /etc/hosts
-rw-r--r--. 2 oldboy root 192 Apr 15 12:19 /etc/hosts

chown -R  递归修改目录属主和属组信息
[root@oldboyedu oldboy]# ll oldboy_dir -d
dr-xr-xr-x. 2 oldboy oldgirl 24 Apr 23 10:36 oldboy_dir
[root@oldboyedu oldboy]# touch oldboy_dir/root.txt
[root@oldboyedu oldboy]# ll oldboy_dir/root.txt
-rw-r--r--. 1 root root 0 Apr 24 11:29 oldboy_dir/root.txt
[root@oldboyedu oldboy]# id Alex01
uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
[root@oldboyedu oldboy]# chown Alex01.Alex01 oldboy_dir
[root@oldboyedu oldboy]# ll oldboy_dir -d
dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
[root@oldboyedu oldboy]# ll oldboy_dir/
total 0
-rw-r--r--. 1 root root 0 Apr 23 10:36 oldboy.txt
-rw-r--r--. 1 root root 0 Apr 24 11:29 root.txt
[root@oldboyedu oldboy]# chown -R Alex01.Alex01 oldboy_dir
[root@oldboyedu oldboy]# ll oldboy_dir -d
dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
[root@oldboyedu oldboy]# ll oldboy_dir/
total 0
-rw-r--r--. 1 Alex01 Alex01 0 Apr 23 10:36 oldboy.txt
-rw-r--r--. 1 Alex01 Alex01 0 Apr 24 11:29 root.txt

用户信息查看命令

a id  显示用户信息命令 (uid gid)
b w   显示正在登陆系统的用户信息
  [root@oldboyedu oldboy]# w
  11:33:31 up  6:33,  1 user,  load average: 0.00, 0.01, 0.05
  USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
  root     pts/0    10.0.0.1         08:55    3.00s  0.20s  0.00s w
  01       02       03               04       05         06       07
  
  1. 什么用户登录到了系统中
  2. 登录的方式  
      pts/x 远程登录系统
	  tty1  本地登录
	  [root@oldboyedu oldboy]# echo "请不要修改恢复hosts文件配置" >/dev/pts/1 
  3. 从哪连接的服务器 
  4. 登录时间
  5. IDLE 空闲时间
  6. 用户操作系统 消耗的CPU资源时间
  7. 用户在干什么

用户权限说明:

普通用户如何像root用户一些操作管理系统:
01. 直接切换到root账户下管理系统   篡权夺位
02. 直接修改要做的数据文件权限	
03. root用户赋予了普通用户权利     大宝剑--sudo
    sudo root用户授权一个能力给普通用户
	a 怎么进行授权:
	  visudo
	  93 oldboy  ALL=(ALL)       /usr/sbin/useradd, /usr/bin/rm
	  
    b 如何验证oldboy已经获取了root用户能力
	  [oldboy@oldboyedu ~]$ sudo -l 
      We trust you have received the usual lecture from the local System
      Administrator. It usually boils down to these three things:
      
          #1) Respect the privacy of others.
          #2) Think before you type.
          #3) With great power comes great responsibility.
      [sudo] password for oldboy: 
      User oldboy may run the following commands on oldboyedu:
          (ALL) /usr/sbin/useradd, /usr/bin/rm
		  
    c 执行root用户可以执行的命令
	  [oldboy@oldboyedu ~]$ sudo useradd Alex06
      useradd: user 'Alex06' already exists
      [oldboy@oldboyedu ~]$ sudo useradd Alex07
      useradd: user 'Alex07' already exists
      [oldboy@oldboyedu ~]$ sudo useradd Alex08
      [oldboy@oldboyedu ~]$ sudo rm -f /etc/hosts

你可能感兴趣的:(运维,Linux,运维)