grup菜单
选择启动的内核/进行单用户模式重置密码
加载系统内核信息
可以更好的使用内核控制硬件
系统的第一个进程运行起来 init (串行)
init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd
加载系统运行级别文件/etc/inittab
初始化脚本运行
初始化系统主机名称 和 网卡信息
运行系统特殊的脚本
服务运行的脚本
运行mingetty进程
显示开机登录信息界面
centos7的启动流程
用户概念介绍:
管理员用户 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
由上图可知,我将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 -- 显示当前用户名称
用户家目录都参照样板房设计
用户家目录中特殊文件:
-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的使用,就跟数据库差不多,只不过是管理密码的。
# 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