大白话【5】redhat 9 用户,用户组管理

devtools/2024/10/17 18:19:45/

  前言:    

      Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

      用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

1.用户管理

1.1.添加新的用户账号使用useradd命令

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

useradd 参数 用户名

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • [root@li ~]# useradd -d /home/sam -m sam等同于[root@li home]# useradd yamy
    • -g 用户组 指定用户所属的用户组。
    • -G 用户组,用户组 指定用户所属的附加组。
    • -s Shell文件 指定用户的登录Shell

           -s 指定用户的shell程序(应用场景:MySQL服务出现故障,维护一下。临时登录

       可以通过su – zhangsan -s /bin/bash 临时给用户指定一个shell进行登录

    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

Useradd 用户名

  • 细节说明
  • 当创建用户成功后,会自动的创建和用户同名的家目录
  • 也可以通过useradd-d 指定目录 新的用户名,给新创建的用户指定家目录(已存在家目录) 应用场景:新用户继承老用户的文件夹 

1.1.1用户存储的位置

/etc/passwd 的文件中,在该文件中记录了UID和用户名的映射关系  --引申UID

在Linux中每个用户都会被分配一个UID(类似人的身份证),将其称为用户的身份标识符。

根据用户与UID的分配关系,我们将用户分为两类

一类是系统用户:0-999

二类是普通用户:1000-60000

根据系统的使用用途来分,也将其分为两类:

一类是普通用户:通常指的是这一类用户由使用者来进行创建

二类是服务用户:通常由系统进行定义,或者服务来负责创建

1.1.2用户密码文件 /etc/shadow

1.2修改用户账户等信息使用usermod命令

 1.3删除用户使用userdel命令

引申出组概念

2.用户组管理

前言:类似于角色,系统可以对有共性/权限的多个用户进行统一的管理

cat /etc/groupgroupadd -g 1010 cloudgpasswd cloudnewgrp cloud

2.1用户和组相关文件

2.1.1/etc/group文件

组(group)的配置文件,记录Linux包含的组的信息

每行的含义:组名:口令:组标识号:组内用户列表

2.2创建组使用groupadd命令

goupadd -g 1010 cloud 在创建时一并指定组的GID

2.3修改组使用groupmod命令

groupmod -n rhce cloud 修改组的名称

groupmod -g 1020 rhce  修改组的GID

2.4删除组使用groupdel命令

删除组: groupdel

如果删除的组,是某个用户的私有组,则该组不能被删除

如果删除的组,是某个用户的附加组,则该组可以删除

2.5给组设置密码使用gpasswd命令

[root@li home]# gpasswd cloud
正在修改 cloud 组的密码

2.5.1通过newgrp切换到组(登录的组成为该用户的私有组)

[root@li home]# su - wangwu
[wangwu@li ~]$ newgrp cloud
密码:
[wangwu@li ~]$ id 
用户id=1238(wangwu) 组id=1010(cloud) 组=1010(cloud),1240(wangwu) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

2.6组还可以设置管理员(普通用户使用gpasswd命令;root用户使用groupmems命令)

           gpasswd -A 用户名 组名

[root@li home]# vim /etc/group
[root@li home]# id wangwu
用户id=1238(wangwu) 组id=1240(wangwu) 组=1240(wangwu),1010(cloud)
[root@li home]# gpasswd -A wangwu cloud

 

           如果一个用户是这个组的管理员用户,那么该用户可以不在组内,依然可以管理这个组---引申:如何查看组管理员 vim /etc/gshadow

          gpasswd -a 用户名 组名 向组内添加用户

[wangwu@li ~]$ gpasswd -a memeda cloud
正在将用户“memeda”加入到“cloud”组中

          gpasswd -d 用户名 组名 从组中移除用户

cloud:x:1010:wangwu,memeda
[root@li ~]# su - wangwu
[wangwu@li ~]$ gpasswd -d memeda cloud
正在将用户“memeda”从“cloud”组中删除
[wangwu@li ~]$ 
----------------------------------------------------------------------------------------------------

groupmems    root用户对组的管理工具

 groupmems -g 组名 -a用户名 向组内添加用户

groupmems  -g 组名 -d用户名 删除组内的用户

groupmems  -g 组名 -p 清空组内的所有用户,如果该组是某个用户的私有组,则该用户不会从组内移除

2.7.组密码文件 /etc/gshadow


http://www.ppmy.cn/devtools/100327.html

相关文章

在编程学习的道路上,面对Bug和复杂算法时,我们常常会感到挫折和困惑。以下是一些克服这些挑战的有效方法:

在编程学习的道路上,面对Bug和复杂算法时,我们常常会感到挫折和困惑。以下是一些克服这些挑战的有效方法: 系统化问题解决: 遇到Bug时,首先要从整体入手,系统地分析问题。例如,可以通过逐步调试…

Gazebo Harmonic 和 ROS2 jazzy 安装和测试

之前,提及使用CoppeliaSim_Edu_V4_7_0,那么备选Gazebo一定不能缺席! 使用大模型撰写移动机器人模拟器(CoppeliaSim、Gazebo、MORSE和Webots)的定量比较研究报告-CSDN博客 CoppeliaSim Gazebo ROS2 Jazzy 安装&#…

NET引用依赖、NuGet

我使用的VS是版本2022,如果低版本没有的话,需要自己找下。 1,普通程序集或者项目添加: 2,NuGet包模式的添加

Python知识点:如何使用Flask与AWS Lambda构建无服务器应用

使用Flask与AWS Lambda构建无服务器应用可以让你在无需管理服务器的情况下运行Python Web应用。AWS Lambda 是一个无服务器计算服务,它可以按需运行代码,而 AWS API Gateway 则可用于管理和路由 HTTP 请求到 Lambda 函数。为了将 Flask 应用部署到 AWS L…

一元四次方程求解-【附MATLAB代码】

目录 前言 求解方法 MATLAB验证 附:一元四次方程的故事 前言 最近在研究机器人的干涉(碰撞)检测,遇到了一个问题,就是在求椭圆到原点的最短距离时,构建的方程是一个一元四次方程。无论是高中的初等数学…

Delphi5实现主要——明细型数据库应用

文章目录 效果图主要——明细型数据库特点 数据库实现方式完整代码 效果图 主要——明细型数据库 在Delphi中,主要——明细型数据库是一种数据库应用程序的设计模式,它涉及到多个数据库表之间的关联操作,以实现对复杂数据结构的有效管理。这…

HarmonyOS NEXT 地图服务中‘我的位置’功能全解析

1 前言 “我的位置”功能在表象上或许给人以简单之感,但从专业角度深入剖析,其蕴含着极为可观的信息量与巨大潜力。此功能绝非仅仅局限于作为一个单纯显示用户当前所处地点的标识,而确切地说是连接用户与周边世界、实现个性化服务的关键纽带…

Python(Falsk) + React Golang(Gin) + Vue 全栈开发的最佳实践

前面分别讲了 Python(Falsk) 、 React 、 Golang(Gin) 、 Vue(Element),现在整体的给大家汇报一下,这个是简单搭建的demo,后面的添砖加瓦需要自己动手咯,有不明白的可以参考一下小编前面的文章,也许会给大家有答疑解惑…