【笔记】用户管理 & 如何让系统更安全 & 系统开机启动流程

用户管理

创建用户的执行过程:

  • 第一步: 创建用户 useradd ahui 会自动创建家目录/home/ahui
  • 第二步: 系统会把 /etc/skel/下的所有隐藏的文件复制到/home/ahui目录
  • 第三步: 复制到家目录后 会自动的修改属主属组为普通用户ahui

系统用户分类

系统通过UID的方式来识别不同的用户
UID: user id 身份证号码
三类系统用户:

		     系统用户             UID            权限作用  			      企业中拥有者
第一类用户:   root                 0			  最高统治者 管理员  	           运维人员
第二类用户:  虚拟用户、傀儡用户     1-999       用来允许进程(不登陆系统)    运维人员可以根据需求创建
第三类用户:  zhangsan、lisi       1000+       登陆系统管理自身的文件         运维 开发 测试...

系统用户相关文件/etc/passwd

作用: 登陆操作系统验证passwd中的用户名密码信息
root:x :0:0:root:/root:/bin/bash

以冒号分隔:
第一列: root 用户名称 系统中的用户名称都会在第一列进行显示(如果用户前面加注释 则用户无法登陆)
第二列: x 用户密码 所有用户的密码都是x表示 如果没有x 使用root用户无法远程登陆系统 普通用户可以直接su - root 免秘切换到root用户
第三列: 0 用户的UID编号 系统默认的UID 可以自己修改(可以创建一个1-999之间的普通用户)
第四列: 0 用户的组ID 属于几组
第五列: root 用户的描述信息 可有可无(自己创建的普通用户没有描述信息)
第六列: /root 用户的家目录 默认登陆系统用户所在的路径 root默认的家目录/root 普通用户/home/用户名命名的目录
第七列: /bin/bash 命令解释器 解释用户输入的命令 管理和普通用户都是/bin/bash运行登陆可执行命令
虚拟用户显示/sbin/nologin 不允许登陆操作系统

案例:统计用户的类型

普通用户多少个
虚拟用户多少个
管理员多少个

普通用户:
grep

[root@ahui ~]#grep '/bin/bash' /etc/passwd
root::0:0:root:/root:/bin/bash
www:x:1000:1000::/home/www:/bin/bash
test:x:1001:1001::/home/test:/bin/bash

sed 模糊过滤 sed -n ‘//p’ 替换 sed ‘s###g’

[root@ahui ~]#sed -n '/\/bin\/bash/p' /etc/passwd
root::0:0:root:/root:/bin/bash
www:x:1000:1000::/home/www:/bin/bash
test:x:1001:1001::/home/test:/bin/bash

awk

[root@ahui ~]#awk '/\/bin\/bash/' /etc/passwd
root::0:0:root:/root:/bin/bash
www:x:1000:1000::/home/www:/bin/bash
test:x:1001:1001::/home/test:/bin/bash

通过 awk取最后一列 进行排序去重统计

[root@ahui ~]#awk -F: '{print $NF}' /etc/passwd|sort|uniq -c
  3 /bin/bash
  1 /bin/sync
  1 /sbin/halt
 23 /sbin/nologin
  1 /sbin/shutdown

去重统计后进行第一列数字的逆序排序

[root@ahui ~]#awk -F: '{print $NF}' /etc/passwd|sort|uniq -c|sort -rn
 23 /sbin/nologin
  3 /bin/bash
  1 /sbin/shutdown
  1 /sbin/halt
  1 /bin/sync

通过UID进行统计

[root@ahui ~]#awk -F: '$3==0' /etc/passwd	#查看管理员
root::0:0:root:/root:/bin/bash

[root@ahui ~]#awk -F: '$3>0 && $3<1000' /etc/passwd #查看虚拟用户

[root@ahui ~]#awk -F: '$3>1000' /etc/passwd #查看普通用户
test:x:1001:1001::/home/test:/bin/bash

用户相关的目录/etc/skel

作用: 所有用户家的模板目录

[root@ahui ~]#ll -a /etc/skel
total 24
drwxr-xr-x.  2 root root   62 Apr 27 11:14 .
drwxr-xr-x. 80 root root 8192 May 18 16:16 ..
-rw-r--r--.  1 root root   18 Apr  1  2020 .bash_logout
-rw-r--r--.  1 root root  193 Apr  1  2020 .bash_profile
-rw-r--r--.  1 root root  231 Apr  1  2020 .bashrc

案例: 登陆操作系统后发现只显示bash的版本号信息 没有命令提示符(误删当前用户家目录下隐藏文件导致)

第一步: 在/etc/profile 中将PS1变量注释 (没有错误也要制造错误)
第二步: 使用普通用户test远程登陆
或者通过root用户 su - test 切换到test用户
第三步: 执行删除的动作 rm -rf /*
删除后查看

[test@ahui ~]$ ll -a
total 0
drwx------  2 test test  6 May 18 10:43 .
drwxr-xr-x. 4 root root 29 May 17 12:23 ..

第四步: 退出当前用户重新登陆 (出现错误)

[test@ahui ~]$ exit	
logout
[root@ahui ~]# su - test
Last login: Wed May 18 10:43:20 CST 2022 on pts/1
-bash-4.2$ 			# 显示bash的版本号
-bash-4.2$ 
-bash-4.2$

第五步: 解决方法 复制/etc/skel/下的隐藏文件到当前家目录

-bash-4.2$ cp /etc/skel/.* .		# 将/etc/skel/隐藏文件拷贝到当前家目录
cp: omitting directory ‘/etc/skel/.’	# 忽略目录
cp: omitting directory ‘/etc/skel/..# 忽略目录
-bash-4.2$ ll -a
total 16
drwx------  2 test test  96 May 18 10:46 .
drwxr-xr-x. 4 root root  29 May 17 12:23 ..
-rw-rw-r--  1 test test   0 May 18 10:44 1.txt
-rw-------  1 test test  21 May 18 10:44 .bash_history
-rw-r--r--  1 test test  18 May 18 10:46 .bash_logout
-rw-r--r--  1 test test 193 May 18 10:46 .bash_profile
-rw-r--r--  1 test test 231 May 18 10:46 .bashrc

第六步: 退出重新登陆 或者 使用source .bash_profile 解决

-bash-4.2$ source .bash_profile 
[test@ahui ~]$ 
[test@ahui ~]$

useradd 创建用户

语法格式:

  • useradd [参数选项] 用户名 # 一条命令只能创建一个用户
    useradd ahui1 ahui2 # 错误的创建方式
    useradd ahui1 # 正确
    useradd ahui2 # 正确

参数选项:

  • -u 指定UID UID在系统中是惟一的 身份证 一个号码对应一个用户
  • -s 指定登陆的解释器 普通用户 /bin/bash表示可以登陆系统 虚拟用户/sbin/nologin 不允许登陆系统
  • -M 不创建家目录 创建用户默认是自动创建家目录
  • -g 指定属组 了解 张三属于 test组
  • -G 指定附属组 了解 张三还属于 root 组 ahui组

案例: 创建虚拟用户ahui 指定UID为666(确保666没有被其他用户使用) 禁止用户登陆系统 不创建家目录

判断文件中是否有666

[root@ahui ~]#grep '666' /etc/passwd
[root@ahui ~]#
[root@ahui ~]#

[root@ahui ~]#useradd -u666 -s /sbin/nologin -M ahui

查看用户: id

[root@ahui ~]#id ahui
uid=666(ahui) gid=1002(ahui) groups=1002(ahui)

测试是否能登陆:

[root@ahui ~]#su - ahui
su: warning: cannot change directory to /home/ahui: No such file or directory
This account is currently not available.

查看是否有家目录: 密码文件中显示 实际不存在

[root@ahui ~]#grep ahui /etc/passwd
ahui:x:666:1002::/home/ahui:/sbin/nologin
[root@ahui ~]#
[root@ahui ~]#ll /home/
total 0
drwx------ 3 test test 52 May 18 10:54 test
drwx------ 3 www  www  74 Dec  1 21:22 www

案例: 创建一个普通用户ahui1 uid 888 允许登陆 并且创建家目录

[root@ahui ~]#useradd -u 888 -s /bin/bash ahui1
[root@ahui ~]#id ahui1
uid=888(ahui1) gid=1003(ahui1) groups=1003(ahui1)
[root@ahui ~]#grep ahui1 /etc/passwd
ahui1:x:888:1003::/home/ahui1:/bin/bash
[root@ahui ~]#
[root@ahui ~]#ll /home/
total 0
drwx------ 2 ahui1 ahui1 62 May 18 11:11 ahui1

userdel 删除用户

语法结构:
userdel -r 用户名称
-r 删除用户所有相关的信息 包括家目录 邮箱等信息 类似株连九族

[root@ahui ~]#userdel -r ahui2

usermod 修改用户 对已存在的用户进行修改 # 了解

语法格式:
usermod [参数选项] 用户名称
参数:
-u 修改uid
-g 修改gid
-s 修改登录方式 /sbin/nologin /bin/bash

案例:修改uid

[root@ahui ~]#grep ahui /etc/passwd
ahui:x:666:1002::/home/ahui:/sbin/nologin
#ahui1:x:888:1003::/home/ahui1:/bin/bash
[root@ahui ~]#usermod -u 777 ahui
[root@ahui ~]#grep ahui /etc/passwd
ahui:x:777:1002::/home/ahui:/sbin/nologin

案例:修改登录方式:

[root@ahui ~]#grep ahui /etc/passwd
ahui:x:777:1002::/home/ahui:/sbin/nologin
#ahui1:x:888:1003::/home/ahui1:/bin/bash
[root@ahui ~]#
[root@ahui ~]#usermod -s /bin/bash ahui
[root@ahui ~]#grep ahui /etc/passwd
ahui:x:777:1002::/home/ahui:/bin/bash

passwd 修改密码

语法格式:
交互式

  • passwd 直接回车 # 修改的是当前登陆系统用户的密码
    passwd 用户名 # 修改用户的密码

非交互式修改密码

  • echo 1|passwd --stdin 用户名 #

案例:修改密码

[root@ahui ~]#passwd
Changing password for user root.
New password: 				   # 系统提示  然后用户输入 交互
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

[root@ahui ~]#echo 1|passwd --stdin ahui   # 系统不提示 直接成功 非交互式
Changing password for user ahui.
passwd: all authentication tokens updated successfully.

企业服务器:
密码复杂度要求:
字母数字特殊符号组合12位以上
I-am,Lizhenya%Iam&18*!~<>
root 1
aEí’I?+¨[?~k?Wò2Qaùü

案例:批量用户操作

1.批量创建10个用户 stu1 stu2… stu10
2.并且给每个用户设置123456密码
3.将123456更换成随机密码

将屏幕上输出的内容交给bash bash会把它当做命令来执行
创建多个用户: 每一行只能创建一个用户
要以下列的方式显示到屏幕上然后交给bash去执行即可:
useradd stu1
useradd stu2
useradd stu3
useradd stu4

useradd stu10

[root@ahui ~]#echo -e "useradd stu"{1..10}"\n"|bash	#批量创建10个用户 stu1 stu2.. stu10 
[root@ahui ~]#echo -e "id stu"{1..10}"\n"|bash
uid=1002(stu1) gid=1002(stu1) groups=1002(stu1)
uid=1003(stu2) gid=1003(stu2) groups=1003(stu2)
uid=1004(stu3) gid=1004(stu3) groups=1004(stu3)
uid=1005(stu4) gid=1005(stu4) groups=1005(stu4)
uid=1006(stu5) gid=1006(stu5) groups=1006(stu5)
uid=1007(stu6) gid=1007(stu6) groups=1007(stu6)
uid=1008(stu7) gid=1008(stu7) groups=1008(stu7)
uid=1009(stu8) gid=1009(stu8) groups=1009(stu8)
uid=1010(stu9) gid=1010(stu9) groups=1010(stu9)
uid=1011(stu10) gid=1011(stu10) groups=1011(stu10)
[root@ahui ~]#echo -e "echo 123456|passwd --stdin stu"{1..10}"\n"|bash#并且给每个用户设置123456密码
Changing password for user stu1.
passwd: all authentication tokens updated successfully.
Changing password for user stu2.
passwd: all authentication tokens updated successfully.
Changing password for user stu3.
passwd: all authentication tokens updated successfully.
Changing password for user stu4.
passwd: all authentication tokens updated successfully.
Changing password for user stu5.
passwd: all authentication tokens updated successfully.
Changing password for user stu6.
passwd: all authentication tokens updated successfully.
Changing password for user stu7.
passwd: all authentication tokens updated successfully.
Changing password for user stu8.
passwd: all authentication tokens updated successfully.
Changing password for user stu9.
passwd: all authentication tokens updated successfully.
Changing password for user stu10.
passwd: all authentication tokens updated successfully.
[root@ahui ~]#echo -e "echo $RANDOM|passwd --stdin stu"{1..10}"\n"|bash	#$RANDOM取随机数
Changing password for user stu1.
passwd: all authentication tokens updated successfully.
Changing password for user stu2.
passwd: all authentication tokens updated successfully.
Changing password for user stu3.
passwd: all authentication tokens updated successfully.
Changing password for user stu4.
passwd: all authentication tokens updated successfully.
Changing password for user stu5.
passwd: all authentication tokens updated successfully.
Changing password for user stu6.
passwd: all authentication tokens updated successfully.
Changing password for user stu7.
passwd: all authentication tokens updated successfully.
Changing password for user stu8.
passwd: all authentication tokens updated successfully.
Changing password for user stu9.
passwd: all authentication tokens updated successfully.
Changing password for user stu10.
passwd: all authentication tokens updated successfully.
[root@ahui ~]#echo stu{1..10}@"`mkpasswd -l 8`"|sed "s# #\n#g"|awk -F"@" '{print "echo ""\""$2"\"""|passwd --stdin  "$1}'|bash
Changing password for user stu1.
passwd: all authentication tokens updated successfully.
Changing password for user stu2.
passwd: all authentication tokens updated successfully.
Changing password for user stu3.
passwd: all authentication tokens updated successfully.
Changing password for user stu4.
passwd: all authentication tokens updated successfully.
Changing password for user stu5.
passwd: all authentication tokens updated successfully.
Changing password for user stu6.
passwd: all authentication tokens updated successfully.
Changing password for user stu7.
passwd: all authentication tokens updated successfully.
Changing password for user stu8.
passwd: all authentication tokens updated successfully.
Changing password for user stu9.
passwd: all authentication tokens updated successfully.
Changing password for user stu10.
passwd: all authentication tokens updated successfully.

如何让系统更安全:

(1).最小化安装操作系统 按照服务软件越少 漏洞越少

(2).保护好root 禁止使用root登陆 创建普通用户 通过普通用户su - root进行管理

(3).修改SSH远程登陆的默认端口 22 修改大于1万 不能超过1-65535

	[root@ahui ~]#vim /etc/ssh/sshd_config 
	[root@ahui ~]#grep 2222 /etc/ssh/sshd_config
	Port 2222

重启让配置文件生效

  	[root@ahui ~]#systemctl restart sshd

然后在xshell界面修改22端口为2222 测试连接
完成后修改回22端口
(4).监控/var/log/secure 记录登陆和退出的历史记录

(5).给重要的文件加特殊权限
i 无敌的 不能删除 不能修改
a 只能追加 不能删除

(6). 给重要的文件做一个指纹校验(如果指纹发生变化 说明文件内容发生了变化) MD5校验
在修改文件前 给当前的文件生成一个校验值
当前文件被修改 校验值也会发生变化
文件没有被修改 校验值不变

[root@ahui ~]#md5sum 1.txt 
e4439267203fb5277d347e6cd6e440b5  1.txt
[root@ahui ~]#md5sum 1.txt 
e4439267203fb5277d347e6cd6e440b5  1.txt
[root@ahui ~]#md5sum 1.txt  > md5.txt
[root@ahui ~]#ll
total 8
-rw-r--r-- 1 root root  5 May 18 12:09 1.txt
-rw-r--r-- 1 root root 40 May 18 12:10 md5.txt
[root@ahui ~]#cat md5.txt 
e4439267203fb5277d347e6cd6e440b5  1.txt
[root@ahui ~]#md5sum 1.txt 
e4439267203fb5277d347e6cd6e440b5  1.txt
[root@ahui ~]#
[root@ahui ~]#echo hs.com >> 1.txt
[root@ahui ~]#md5sum 1.txt
45ded8e0a4b0b503d96e95688a55118b  1.txt
[root@ahui ~]#cat md5.txt 
e4439267203fb5277d347e6cd6e440b5  1.txt

系统开机启动流程

linux系统从开机到登陆界面的启动过程(简答)

  1. 开机BIOS自检
  2. MBR引导
  3. grub引导菜单
  4. 加载内核kernel
  5. 启动init进程
  6. 读取inittab文件,执行rc.sysinit,rc等脚本
  7. 启动mingetty,进入系统登陆界面

开机启动流程:

  1. 按电源(服务器有远程控制卡 可以通过远程控制卡进行远程启动服务器 启动 关机 重装系统)
  2. 开机BIOS自检 检查硬件是否存在问题
    经常出问题的硬件:
    1. 内存 不会坏 启动不兼容的情况(重新插拔内容)
      拔一根测试一下是否能正常启动
      全拔下来 一根一根插是否能正常启动
    2. 磁盘出现问题
      在系统中查看磁盘: df -h
      a. 咨询领导 咨询同事服务器或者磁盘是否在保质期
      如果在质保期
      联系厂家 还是我们自己购买的磁盘
      如果是厂家 是领导联系呢 还是把联系方式给我们 我们自己去联系呢
      如果不在质保期
      自己购买或者继续和磁盘供应商对接
      如果自己购买钱怎么算 自己垫付报销 还是直接申请设备款
      b. 拿到联系方式联系对方 告诉坏了几块磁盘 什么时间 去机房更换磁盘
      去之前和机房联系
    3. 主板出现问题 找工程上去维修 咨询领导
    4. bios电池
  3. MBR引导 通过磁盘 光驱 U盘进行启动
  4. GRUP菜单 可以选择内核版本
    在GRUP菜单位置可以进入单用户模式 忘记root密码的时候 进入单用户修改密码
  5. 加载内核kernel /boot引导
  6. 运行系统的第一个进程 init初始化进程
  7. 加载/etc/inittab文件 默认以哪个级别运行的配置文件
  8. 读取/etc/rc.sysinit初始化 设置主机名称 开机自动挂载 设置IP地址
  9. 运行加载/etc/rc3.d运行级别下所有的服务
    服务都是串行启动
  10. 加载mingetty登陆界面 输入用户名和密码

centos6.x和centos7.x的启动区别:

1)运行第一个进程不同
centos6.x init
centos7.x systemd
2)运行服务
centos6.x 串行启动 核酸(一个坑) 所有人一起去
centos7.x 并行启动 核酸(多个坑) 所有人一起

小结:

  1. 创建用户的过程
  2. 用户分类:
  • 管理员
  • 虚拟用户
  • 普通用户
  1. passwd文件每列的含义:
    用户名称:用户密码:UID:GID:用户的描述信息:用户的家目录:命令解释器
  2. 用户相关的目录
    • /etc/skel 家目录模板
    • /root 管理员家目录
    • /home/xxxx 普通用户家目录
    • /var/mail/xxxx 用户邮箱目录
  3. 用户相关的命令
    • useradd
      -u 指定UID
      -s 指定登陆的解释器
      -M 不创建家目录
    • usermode
      -u 指定UID
      -s 指定登陆的解释器
      -g 指定属组
      -G指定附属组
    • userdel 删除用户
      -r 删除用户所有相关的信息 包括家目录 邮箱等信息
    • id 查看用户
    • passwd 修改密码
      echo 1|passwd --stdin ahui
  4. 如何让系统更安全
  5. 系统开机启动流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值