《云计算学习日记Day10》------ 从零开始的云计算之旅
今天是系统学习云计算的第十天,记录了关于我的云计算学习,后续将每日更新我的笔记。欢迎大家一起来学习,如果内容有遗漏和错误,还请大家多多指正和包涵,谢谢大家。
用户账号管理
账号控制总述
基于账号的访问控制
- 基于账户身份对资源访问进行控制
- 账户类别:用户账号、组账号
- 识别方式:UID、GID
- 用户账号:超级用户root、系统用户、普通用户
- 组账号:基本组(私有组)、附加组(从属组)
用户账号简介
- 作用
- 可以登录操作系统
- 不同的用户具备不同的权限
- 唯一标识UID
- 编号从0开始的编号,最大是60000
- 超级管理员的UID:永远都是0
- 普通用户的UID:默认从1000开始
组
- 作用:方便管理用户
- 唯一标识GID:编号从0开始的编号,默认最大是60000
- 原则:Linux一个用户必须至少属于一个组
- 分类:
- 基本组:一般情况与用户同名,一个用户必须有基本组,基本组只能有一个
- 附加组(从属组):一个用户可以有多个附加组,也可以没有附加组
账号的存放类别
- 账号数据的存放
- 存储在本机磁盘中------本地账户
- 本地账户的数据文件
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
解析用户账号文件
/etc/passwd
保存用户账号的基本信息,每个用户记录一行,以:分割为7个字段

root | : | x | : | 0 | : | 0 | : | root | : | /root | : | /bin/bash |
---|---|---|---|---|---|---|---|---|---|---|---|---|
用户名 | 密码占位符 | UID | GID | 用户描述信息 | 家目录 | 解释器 |
- 字段1:用户账号的名称
- 字段2:密码字串或占位符x
- 字段3:用户账号的UID号
- 字段4:所属基本组的GID号
- 字段5:用户全名
- 字段6:宿主目录
- 字段7:登录Shell程序的路径
添加用户账号
useradd添加用户
- 格式:useradd [选项].... 用户名
- 常用命令选项
- -u:指定UID标记号
- -d:指定宿主目录(家目录),缺省为/home/用户名
- -G:指定所属组的附加组
- -s:(shell:壳、解释器)指定用户的登陆解释器,用户→解释器→内核→硬件,(/sbin/nologin:禁止用户登录操作系统)
示例:
#用不同的选项创建五个用户,对比他们之间的不同
[root@bogon ~]# useradd user1 #普普通通的创建一个用户
[root@bogon ~]# useradd -u 1200 user2 #创建一个UID=1200的用户
[root@bogon ~]# useradd -d /opt/user3 user3 #创建一个家目录是/opt/user3的用户
[root@bogon ~]# groupadd test #创建一个组为test
[root@bogon ~]# useradd -G test user4 #创建一个附加组是test的用户
[root@bogon ~]# useradd -s /sbin/nologin user5 #创建一个登陆解释器是/sbin/nologin的用户
[root@bogon ~]# tail -5 /etc/passwd
user1:x:1002:1002::/home/user1:/bin/bash
user2:x:1200:1200::/home/user2:/bin/bash
user3:x:1201:1201::/opt/user3:/bin/bash
user4:x:1202:1203::/home/user4:/bin/bash
user5:x:1203:1204::/home/user5:/sbin/nologin
[root@bogon ~]# id user4 #查看user4用户基本信息,验证user4的附加组
用户id=1202(user4) 组id=1203(user4) 组=1203(user4),1202(test)

usermod修改账户
- 格式:usermod [选项]... 用户名
- 常用命令选项
-
-l:更改用户账号的登录名称
-
-u:更改用户id
-
-d:更改用户家目录
-
-s:更改登录解释器
-
-G:更改附加组//其实是重置附加组,如果有多个附加组,那组名之间用","隔开
#更改user5登录名称和UID
[root@bogon ~]# usermod -l user05 -u 1300 user5#更改用户家目录和登录解释器
[root@bogon ~]# usermod -d /opt/user5 -s /sbin/nologin user05#查看更改结果
[root@bogon ~]# grep user05 /etc/passwd
user05:x:1300:1204::/opt/user5:/sbin/nologin
[root@bogon ~]# id user05
用户id=1300(user05) 组id=1204(user5) 组=1204(user5)#更改,或者说是重置覆盖用户附加组
[root@bogon ~]# usermod -G test user05
[root@bogon ~]# id user05
用户id=1300(user05) 组id=1204(user5) 组=1204(user5),1202(test)
-

passwd设置口令
-
格式:passwd [选项].... 用户名
-
常用命令选项
*- -stdin:从标准输出(比如管道)取密码
#需要注意的是,使用超级管理员root改密码和用户本身改密码有所不同,用户自己改密码的时候,新密码
#的复杂度需要满足一定条件
[root@bogon ~]# passwd user1
更改用户 user1 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@bogon ~]# su - user1
[user1@localhost ~]$ passwd
更改用户 user1 的密码 。
当前的密码:
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。

解析用户密码文件
/etc/shadow:保存密码字串/有效期等信息
每个用户记录一行,以":"分割为9个字段

和/etc/passwd相近
- 字段1:用户账号的名称
- 字段2:加密后的密码字符串(不同的用户相同的密码加密后的字符串也不相同哦)
- 字段3:上次修改密码的时间(从1970年1月1日算起)
- 字段4:密码的最短有效天数,默认0
- 字段5:密码的最长有效天数,默认99999
- 字段6:密码过期前的警告天数,默认提前七天进行警告
- 字段7:密码过期后多少天禁用此账号
- 字段8:账号失效时间,默认值是空
- 字段9:保留字段(未使用)
非交互式设置密码
[root@bogon ~]# echo 123 | passwd --stdin user1
设置用户密码期限
/etc/login.defs:设置用户默认属性信息
每新建一个用户,都会遵守login.defs文件要求
[root@bogon ~]# vim /etc/login.defs
......
PASS_MAX_DAYS 99999 #密码最长使用的期限
......
#
UID_MIN 1000 #新建用户UID默认从1000开始
UID_MAX 60000 #用户UID默认最大值60000
......
用户初始配置文件
- 主要的初始配置文件
- ~/.bash_profile:每次登录系统时执行
- ~/.bashrc:每次开启新的命令行终端时执行
- 全局配置文件
- /etc/bashrc:全局配置文件,影响全体用户(开启新的终端)
- /etc/profile
用户的删与查
userdel删除用户
-
格式:userdel [-r] 用户名
-
选项:-r :连同家目录/用户邮件也一并删除
[root@bogon ~]# userdel -r zhangsan
[root@bogon ~]# ls /home
[root@bogon ~]# userdel lisi
[root@bogon ~]# ls /home #使用ls查看检验一下
使用id查询账号
- 命令:id
- 格式:id 用户名
组账号管理
组账号基本操作
解析组账号文件
/etc/group,保存组账号的基本信息
每个组记录一行,以":"分割为4个字段
-
字段1:组账号的名称
-
字段2:密码占位符x
-
字段3:组账号的GID号
-
字段4:本组的成员用户列表
[root@bogon ~]# tail -5 /etc/group
sshd:x:74:
dnsmasq:x:981:
tcpdump:x:72:
zhangsan:x:1000:
honey:x:1001:
honey | : | x | : | 1001 | : | |
---|---|---|---|---|---|---|
组账号名称 | 密码占位符 | 组账号GID | 本组成员用户列表 |
/etc/gshadow,保存组账号的管理信息
每个组记录一行,以":"分割为4个字段
-
字段1:组账号的名称
-
字段2:加密后的密码字符串
-
字段3:本组的管理员列表
-
字段4:本组的成员用户列表
[root@bogon ~]# tail -3 /etc/gshadow
tcpdump:!::
zhangsan:!::
honey:!::
honey | : | ! | : | : | ||
---|---|---|---|---|---|---|
组账号名称 | 加密密码字符串 | 管理员列表 | 成员列表 |
groupadd添加组账号
-
命令:groupadd
-
格式:groupadd [-g GID] 组名称
[root@bogon ~]# groupadd test01
[root@bogon ~]# tail -1 /etc/group #查看GID
test01:x:1002:
[root@bogon ~]# groupadd -g 1100 test02
[root@bogon ~]# tail -2 /etc/group #查看GID,对比一下
test01:x:1002:
test02:x:1100:

gpasswd管理组成员
- 命令:gpasswd
- 格式:gpasswd [选项]... 组名
- 常用选项:
-
-A:定义组管理员列表
-
-a:添加组成员每次只能添加一个
-
-d:删除组成员,每次只能删除一个
-
-M:定义组成员用户列表,可设置多个
#创建用户user[1-4]来为下面的实验做准备
[root@bogon ~]# useradd user01
[root@bogon ~]# useradd user02
[root@bogon ~]# useradd user03
[root@bogon ~]# useradd user04#为组test01设置组管理员user01
[root@bogon ~]# gpasswd -A user01 test01#查看组test01配置信息,检查组管理员是否设置成功
[root@bogon ~]# grep test01 /etc/gshadow
test01:!:user01:#使用选项-a将用户user02添加到组test01中
[root@bogon ~]# gpasswd -a user02 test01
正在将用户"user02"加入到"test01"组中#查看组test01配置信息,检查用户user02是否成功添加到组test01成员列表
[root@bogon ~]# grep test01 /etc/gshadow
test01:!:user01:user02#使用选项-A将用户user03和user04批量添加到组test01成员列表
[root@bogon ~]# gpasswd -M user03,user04 test01#再次查看组test01配置信息,检查操作是否成功
[root@bogon ~]# grep test01 /etc/gshadow
test01:!:user01:user03,user04
-

在这个地方我们可以看到,使用选项-A时时,原本是组test01的组成员的user02在用户列表中消失了,并且用户user03和user04添加成功了
也就是说,使用-A选项时,会对组成员列表进行重新配置,而不是继续添加
[root@bogon ~]# gpasswd -d user04 test01
正在将用户"user04"从"test01"组中删除
[root@bogon ~]# gpasswd -d user03 test01
正在将用户"user03"从"test01"组中删除
[root@bogon ~]# grep test01 /etc/gshadow
test01:!:user01:

[root@bogon ~]# grep test01 /etc/gshadow
test01:!:user01:
[root@bogon ~]# gpasswd -A 'user01,user02' test01
[root@bogon ~]# grep test01 /etc/gshadow
test01:!:user01,user02:
[root@bogon ~]# gpasswd -A '' test01
[root@bogon ~]# grep test01 /etc/gshadow
test01:!::

对于组管理员的管理如上面所示
组的删除
groupdel组的删除
- 命令:groupdel
- 格式:groupdel 组名
- 删除的目标组不可以是用户的基本组
关于组和用户的配置文件
- /etc/passwd:用户基本信息
- /etc/shadow:用户密码信息
- /etc/group:组的基本信息
- /etc/gshadow:组的管理信息
计划任务
周期性任务
cron任务概述
- 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
- 软件包:cronie、crontabs
- 系统服务:crond
- 日志文件:/var/log/cron
日志文件:

管理计划任务策划
- 命令:crontab [选项]
- 选项:
- crontab -e [-u 用户名]:编辑
- crontab -l [-u 用户名]:查看
- crontab -r [-u 用户名]:清除

如何编写crontab任务记录
配置格式可以参考/etc/crontabwenjian
: 分 时 日 月 周 任务命令行(绝对路径)
- *:匹配范围内任意时间
- ,:分隔多个不连续的时间点
- -:指定连续时间范围
- /n:指定时间频率,没n.....

