当前位置: 首页 > news >正文

云计算学习笔记——用户和组的管理、周期性任务篇

《云计算学习日记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个字段

rootx00root/root/bin/bash
用户名密码占位符UIDGID用户描述信息家目录解释器
  • 字段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:
honeyx1001
组账号名称密码占位符组账号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…..

http://www.dtcms.com/a/342058.html

相关文章:

  • ECCV 2020 | 动态图像在3D MRI图像阿尔茨海默病分类中的应用
  • Wireshark USRP联合波形捕获
  • 软件测试体系建设要怎么做
  • 手写MyBatis第28弹:告别代理,直击本质:手写MyBatis SqlSession的增删改查奥秘
  • 深入解析HashMap的存储机制:扰动函数、哈希计算与索引定位
  • Halcon那些事:Halcon非常核心的1个概念reduce_domain算子的理解和1个详细的使用示例
  • Nginx缓存配置指南:使用proxy_cache为动态网站提速10倍
  • WPF中UI线程频繁操作造成卡顿的处理
  • Ingress控制器深度解析:Nginx与Traefik实战指南
  • 【DICOM HL7】DICOM hl7协议的哪个字段对应操作者,操作者ID?
  • C++析构函数
  • Linux下Docker版本升级保姆攻略
  • 结合 Flutter 和 Rust 的跨平台开发方案
  • 微软Auzre云的技术支持运营模式是什么
  • Flutter - UI布局
  • Android APP防止应用被动态调试
  • 大数据毕业设计选题推荐-基于大数据的北京气象站数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
  • 浏览器【详解】页面加载过程(含页面加载时序图,页面加载性能优化方案)
  • 搭建我的世界mc服务器全流程——阿里云游戏攻略
  • 09_测试与性能优化
  • 新型犯罪浪潮下的法律迷局:网络、AI与跨境犯罪解析
  • 惯性导航中的IMU传感器是什么?
  • 第5.2节:awk变量的使用
  • 适配器模式 java demo
  • 电能质量监测装置 分布式光伏安全并网“准入证”
  • AI工作负载“加速跑”,高性能网络如何“护航”?
  • EfficientVMamba代码略讲
  • 档案宝系统功能:权限分级,保障档案安全
  • KingbaseES数据库增删改查操作分享
  • 项目集成 Chrono 时间轴