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

Linux中的系统管理和优化

一、用户和用户组存在的意义

一、用户存在的意义

        系统中的资源是有限的,如何合理分配资源,这需要3A机制来完成。


3A机制

        Linux中的3A机制包括身份认证(Authentication)、授权(Authorization)和审计(Accounting), 这些机制共同构成了系统中最底层的安全架构

身份认证(Authentication)

        身份认证是验证用户身份的过程,确保只有合法用户才能访问系统。常见的认证方式包括用户名/密码、 数字证书、生物识别等。

授权(Authorization)

        授权是在用户通过认证后,根据其身份和角色分配相应的权限,决定用户可以访问哪些资源或执行哪些操作。

审计(Accounting)

        审计记录并监控用户访问和操作系统的活动,以便在发生安全事件时进行追溯和分析。审计日志是安全 审计的重要依据。

二、用户组存在的意义

用户组是一个逻辑容器,并不能单独使用,其错在意义在于对用户进行归类和统一授权

在系统中有两种组的类型

初始组:用户建立后自动生成的组,是用户的主组

附加组:用户需要某些权限所加到的组,为了取得改组拥有的权力


三.用户及用户组在系统中存在的方式

在系统中用户和组都是用数字来表示,我们对这个数字成为ID

用户的ID范围0-65535
0root用户ID
1-999系统用户ID
999-65535操作用户ID
/etc/passwd,/etc/group文件

        系统中的用户都是以ID的形式存在,但是作为操作者对于数字是不敏感的,所以我们为用户设定了文字 别名并把这个别名填写到了/etc/passwd文件中,所以/etc/passwd就是用户信息文件,/etc/group就是 组信息文件

        如果用户ID在/etc/passwd文件中有记录,那么系统就认为这个用户是存在的,相反系统认为这个用户不存在


二、用户涉及到的系统配置文件

1./etc/passwd

用户存放用户信息,用:分割每一列,每行有7列

第一列

用户名称
第二列用户密码,目前弃用所以用X占位
第三列用户ID
第四列用户主组ID
第五列用户说明
第六列用户家目录
第七列用户默认使用的shell
e.g.root:x:0:0:root:/root:/bin/bash

 

2./etc/group

用户组信息文件,用:分割,每行4列

第一列

组名称
第二列组密码,通常用X占位
第三列组ID
第四列

组中的附加成员

                                  e.g.                                                root:x:0:

3./etc/shadow

用户存认证信息

第一列

用户名称
第二列用户密码的加密字符,如果存在通常用SHA512加密,如果密码开头有!表示用户被锁定
第三列密码最后一次被修改的时间,从1970年开始计算
第四列密码最短有效期
第五列密码最长有效期
第六列密码过期前警告期
第七列密码非活跃期
第八列密码到期日
第九列预留位,未使用
e.g.brandonvincent:$6$cJLqkCBDEiAwTfuz$WfIlEIed0xH5b4GP3S4Kd1ZoS.SeLAW0NKSka8XmLcnc7tw2GG9oK6xrOkrDnhoC.yk1Yxql6RlxIHQi8riKo.::0:99999:7:::


4./etc/skel/.*

用户的环境配置文件

.bash_profile环境变量配置文件
.bashrcshell配置文件
.bash_history历史记录
.bash_logout用户退出shell执行命令

5./home/username

用户的家目录集合

6./var/spool/mail/username

用户邮件存放文件

三、用户管理

1.用户信息查看

#查看当前用户
whomai      ##查看当前用户

-u查看用户的用户id
-g查看用户主组id
-G查看用户所有的组的id
-nu显示名称

2.切换用户

#切换用户
su        用户名称

#切换用户和用户环境变量
su   -    用户名称

如果是root用户切换为普通用户则不需要输入普通用户的密码

而普通用户切换普通用户则需要输入切换的用户的密码

普通用户切换root用户也需要root用户的密码

注意:不要在shell中连续用su切换用户,容易导致用户环境混乱!

         用完切换的用户身份后应及时用exit退出切换的用户!

3.用户和用户组的建立和删除

1.用户的建立

useradd username用户建立
-u id username指定用户建立时的id
-g id username指定用户建立是的主组id
-G id username指定用户建立是的附加组id
 -d dir username指定用户家目录
-M username建立用户时不建立家目录
-c word username指定用户说明
-s shell username指定用shell

2.用户的删除

userdel -r username

用户删除 -r 删除用户的系统配置文件

如果在删除用户的时候没有加-r参数,那么可以用rm手动删除残留资源

3.组的建立及删除

groupadd groupname组的建立
                -g id groupname指定组id
groupdel groupname组的删除

4.用户和组的信息管理

groupmod -g groupname更改组信息

usermod
-l更改用户名称
-u更改用户id
-g更改主组id
-G更改用户附加组的身份
-aG添加用户附加组的身份
                -c更改用户说明
                -d更改家目录指向
                -md更改家目录指向同时更改家目录名称
                -s更改默认shell
                -L冻结账号
                -U解锁账号

5.用户认证信息管理

查看密码状态

用户认证状态信息

passwd -S username                查看密码状态 

改用户密码 

passwd username                       

passwd                                       普通用户改密码

Changing password for user username.

Current password: 输入原始密码

New password: 输入新密码(8位以上无序数字+无序字母组合)

Retype new password: ##重复输入

passwd: all authentication tokens updated successfully.

冻结和解锁认证

passwd -l username                 ##冻结账号认证

passwd -u username                ##解锁账号认证

密码删除

passwd -d username

密码的使用天数和有效期及过期警告

#密码使用天数

从1970-1-1算到今天的时间

passwd -e user                     ##修改默认使用时间为0

chage -d 0 user                    ##账号必须改密码才能登陆系统

#密码最短有效期

passwd -n 1 user                  ##user在1天内不能改密码

chage -m 1 user                   

#密码最长有效期

passwd -x 40 user                ##40天内lee用户必须更新密码否则会被冻结

chage -M 30 user

#密码过期警告

passwd -w 2 user                 ##账号过期前警告时间

chage -w 1 user

#认证非活跃天数

passwd -i 2 user                   ##账号认证最大时间超过后还能用多久

chage -I 1 user

#账号认证到期时间

chage -E "2025-03-13"         ##到2025-3-13这天账号会被冻结

6.权力下放

      在系统中普通用户时无法执行系统管理命令的如果需要普通用户执行系统管理动作那么需要root用户来进行授权。

#普通用户授权方式 “sudo”

#作用: #可以使普通用户使用指定的用户身份运行命令

授权方法: visudo                 ##此命令作用是编辑/etc/sudoers并提供语法检测

在文件的100行左右               ##代码规范性

username hostname=(newusername) [NOPASSWD:] /command, /command1

#lee用户在Timinglee主机=(用超级用户身份) 执行useradd命令

username hostname=(root) /usr/sbin/useradd

#timinglee用户 在Timinglee主机中以超级用户免密执行useradd和userdel

username hostname= (root)       NOPASSWD: /usr/sbin/useradd, /usr/sbin/

没有给userdel的权限就admin这个普通用户不能进行用户的删除。

相关文章:

  • 人工智能在生物医药领域的应用地图:AIBC2025将于6月在上海召开!
  • AISEO (GEO )中的知识图谱
  • List中多个数据相同,保留最新日期数据
  • 设计模式 三、结构型设计模式
  • 【夜话系列】DelayQueue延迟队列(下):实战应用与面试精讲
  • 51. “闲转易”交易平台小程序(基于springbootvue)
  • 两个有序序列的合并-手摇算法
  • 【深度学习新浪潮】Grok过去两周的进展一览(2025.04.01)
  • [学成在线]09-课程预览
  • 论文阅读笔记:Denoising Diffusion Implicit Models (2)
  • Spring Boot 快速入手
  • node.js、npm相关知识
  • Redis 在 Linux 系统的安装指南
  • 【Docker项目实战】使用Docker部署NoteFlow笔记工具
  • 本地RAG知识库,如何进行数据结构化和清洗?
  • 在 Vue2 项目中配置自定义属性并在组件中使用,可按以下步骤进行:
  • 探秘 LPC 接收端重建:从理论根基到 Matlab 仿真实战
  • Android 应用程序包的 adb 命令
  • android studio 安装flutter插件
  • kubectl 命令
  • 上海营商环境的“分寸”感:底线之上不断拓宽自由,底线之下雷霆制止
  • 溢价率19.48%,民企番禺置业3.07亿元竞得广州番禺融媒体中心北侧地块
  • 今天全国铁路、公路进入返程高峰,这些路段时段通行压力大
  • 超越关税陷阱,不遗余力塑造产业的长期竞争力
  • 工程机械行业景气度持续回升,三大龙头一季度营收、净利双增
  • 人民日报头版:让青春之花绽放在祖国和人民最需要的地方