【Linux学习】十五、Linux/CentOS 7 用户和组管理

Linux下组和用户的管理都必须是root用户下进行:

一、组的管理

1.组的创建

格式:

groupadd 组名

参数:

-g:指定用户组的组ID(GID),如果不提供则由系统自动分配。

【案例】创建一个名为 oldgroup 的新组

groupadd newgroup

系统将自动分配一个唯一的组ID(GID)给这个用户组。

2.组的删除

格式:

groupdel 组名

参数:

-f:强制删除用户组,即使用户组还有关联的用户。
【案例】 删除名为 oldgroup 的组

groupdel oldgroup

3.组的属性修改

格式:

groupmod [选项] 组名

参数:

-n:更改组名
-g:修改用户组的组ID(GID)。
-o:允许使用非唯一的组ID(GID)。
groupmod命令还有其他一些选项和参数,可以使用man groupmod命令在终端中查看groupmod的完整文档和使用说明。
【案例一】将名为"oldgroup"的用户组的组名更改为"newgroup",可以执行以下命令:

groupadd oldgroup
groupmod -n newgroup oldgroup

【案例二】修改名为 “newgroup” 的用户组的组ID(GID)为 1234,可以执行以下命令

groupmod -g 1234 newgroup

4.查看组的信息

①cat /etc/group 命令

在这里插入图片描述

②getent group 命令

在这里插入图片描述
与 cat /etc/group 不同的是,getent group 命令可以从不仅限于 /etc/group 文件中,还包括其他用户组数据库(如 NIS、LDAP 等)中获取用户组信息。

③仅显示系统中所有组名

cut -d: -f1 /etc/group

二、用户的管理

①超级用户(Superuser):

超级用户,也称为root用户,是系统中最高权限的用户。
root用户拥有对整个系统的完全控制权,可以执行任何操作,包括修改系统配置、安装软件、管理其他用户等。
超级用户(root)的UID为0。

②普通用户(Regular User):

普通用户是指一般使用计算机的用户。
普通用户只能访问和修改自己的文件及部分系统资源,无法对整个系统做出重要的变更。
普通用户可以通过sudo命令获取临时超级用户权限,执行需要特权的操作。
普通用户的UID从500开始递增。这些用户是系统中的一般用户,具有交互式登录权限,并且可以根据需要创建、管理和使用文件。

③服务用户(Service User):

服务用户是专门用于运行系统服务和守护进程的用户。
服务用户通常没有登录权限,它们的作用是限制服务进程的权限,以增加系统的安全性。
每个服务用户都与一个或多个特定的服务相关联,这些服务可以在后台运行并提供特定的功能。

④系统用户(System User):

系统用户是用于执行系统任务和特定应用程序的用户。
系统用户通常没有登录权限,它们被用来运行需要特定环境的任务和脚本。
与服务用户类似,系统用户的目的是限制其操作范围,提高系统的安全性和稳定性。
系统用户的UID范围为1到499。这些用户账户用于运行系统服务和进程,通常没有交互式登录权限。

⑤匿名用户(Anonymous User):

匿名用户是不需要身份验证即可访问某些服务或资源的用户。
常见的例子是FTP服务器上的匿名用户,允许用户通过匿名方式下载或上传文件。

1. 创建用户

格式:

useradd  选项   用户名

参数说明:

  • -d 目录 指定用户目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
  • -g 用户组 指定用户所属的用户组
  • -G 用户组 指定用户所属的附加组
  • -s Shell文件 指定用户的登录Shell
  • -u 用户号 指定用户的用户号,如果同时有 -o选项,则可以重复使用其他用户的标识号
  • -c:为用户添加注释,通常是用户的全名或描述。
    【案例一】创建一个名为"username"的用户,可以执行以下命令:
useradd username

【案例二】创建一个名为johndoe的用户,添加了一个注释为"John Doe",指定了/home/johndoe为家目录,并将默认shell设置为/bin/bash,可以执行以下命令:

useradd -c "John Doe" -d /home/johndoe -s /bin/bash johndoe

【案例三】分别创建三个新用户账号:aa、bb 和 cc,并将它们的用户ID(UID)设置为 555、556 和 557,这些用户将/a 作为家目录, 可以执行以下命令:

useradd -u 555 aa -d /a
useradd -u 556 bb -d /a
useradd -u 557 cc -d /a

注意

①执行useradd命令需要root或具有管理员权限的用户。
②使用 useradd 命令只会创建用户账户,但不会设置密码。通常需要使用 passwd 命令为新用户设置密码。

2.删除用户

格式:

userdel 选项 用户名

参数说明:

  • -r:删除用户的HOME主目录及其内容。不指定-r,删除用户时,HOME目录保留
  • -f:强制删除用户账户,即使用户正在登录或有其他进程。
    【案例一】要删除"username"用户及其主目录,可以执行以下命令:
userdel -r usrname

【案例二】分别删除用户账户 aa、bb 和 cc,并且同时删除与这些账户关联的家目录,可以执行以下命令:

userdel -r aa
userdel -r bb
userdel -r cc

3.查看用户

①id命令

显示当前用户的身份信息,包括用户ID(UID)、组ID(GID)以及所属的组。

格式:

id 用户名

②whoami 命令

查看当前登录用户的用户名:

whoami

在这里插入图片描述

③cat /etc/passwd 命令

查看系统中所有用户的详细信息 :
在这里插入图片描述
该命令会读取并显示 /etc/passwd 文件的内容,其中包含了用户账户的相关信息。每行的格式为:

username:password:UID:GID:gecos:directory:shell

注释:

  • username: 用户名
  • password: 加密后的密码(通常是 “x” 或 “*” 表示已在 /etc/shadow 文件中存储)
  • UID: 用户ID(唯一标识符)
  • GID: 主要组ID(与 /etc/group 中的组ID对应)
  • gecos: 用户的全名或注释字段
  • directory: 用户的主目录路径
  • shell: 用户默认的登录Shell
    通过运行 cat /etc/passwd 命令,可以查看和分析系统中所有用户的信息。

④getent passwd 命令

列出系统中所有用户的信息:

getent passwd

在这里插入图片描述

  • getent passwd 命令用于从系统的用户数据库中获取所有用户的信息。它会返回与 /etc/passwd 文件相同格式的输出,包含了系统中所有用户的详细信息。

  • 与 cat /etc/passwd 不同的是,getent passwd 命令可以从不仅限于 /etc/passwd 文件中,还包括其他用户数据库(如 NIS、LDAP 等)中获取用户信息。

⑤仅显示系统中所有用户名

cut -d: -f1 /etc/passwd

在这里插入图片描述

⑥ w命令:

显示当前登录系统的用户信息,包括用户名、终端、登录时间、运行的命令等。
在这里插入图片描述

4.修改用户属性

格式:

usermod [选项] 用户名

选项:

- -c, --comment:修改用户的注释。

  • -d, --home:修改用户的家目录路径。
  • -g, --gid:修改用户的主组ID。
  • -G, --groups:修改用户所属的附加组ID列表。
  • -s, --shell:修改用户的默认shell。
  • -L, --lock:锁定用户账号,禁止用户登录。
  • -U, --unlock:解锁用户账号,允许用户登录。
  • -e, --expiredate:修改用户的过期日期。
    【案例一】要将"username"用户所属的主组更改为"newgroup",可以执行以下命令:
usermod -g newgroup username

【案例二】将修改名为johndoe的用户的注释为"John Smith",家目录为/home/johnsmith,并将默认shell更改为/bin/bash。 可以执行以下命令:

usermod -c "John Smith" -d /home/johnsmith -s /bin/bash johndoe

【案例三】分别修改账号 aa、bb 和 cc 的家目录路径和登录shell:

对于账号 aa,将家目录路径修改为 /newhome1,登录shell修改为 /bin/bash。
对于账号 bb,将家目录路径修改为 /newhome2,登录shell修改为 /bin/sh。
对于账号 cc,将家目录路径修改为 /newhome3,登录shell修改为 /usr/bin/zsh。

usermod -d /newhome1 -s /bin/bash aa
usermod -d /newhome2 -s /bin/sh bb
usermod -d /newhome3 -s /usr/bin/zsh cc

【案例四】分别修改用户 aa 的家目录路径为 /newhome,修改用户 bb 的登录shell为 /bin/bash,以及修改用户 cc 的登录名为 newname ,可以执行以下命令:

usermod -d /newhome aa
usermod -s /bin/bash bb
usermod -l newname cc

5.切换用户

格式:

su [选项] [用户名]

选项:

  • -c, --command:执行指定的命令,而不是打开新的shell。
  • -l, --login:模拟登录为目标用户,加载用户的环境变量和配置文件。
  • -s, --shell:使用指定的shell,而不是目标用户的默认shell。
  • 【案例一】要切换到"username"用户,可以执行以下命令:
  su username

【案例二】切换到超级用户(root)身份,可以执行以下命令:

su

【案例三】切换到johndoe用户,并执行ls -l命令,可以执行以下命令:

su -c "ls -l" -l johndoe

6.设置用户密码:

使用passwd命令为用户设置密码。passwd命令是在Linux系统中用于更改用户密码的命令。它允许用户修改自己的密码或管理员修改其他用户的密码。

格式:

passwd [选项] [用户名]

选项

  • -l, --lock:锁定用户账户,禁止用户使用该账户登录。
  • -u, --unlock:解锁被锁定的用户账户。
  • -d, --delete:删除用户密码,使用户无法通过密码登录,但仍可使用其他身份验证方法登录。
  • -e, --expire:将用户的密码设置为过期状态,在下次登录时需要强制更改密码。
  • -x, --maxdays:设置用户密码的最大有效天数。
  • -n, --mindays:设置用户必须保持密码不变的最短天数。
  • -w, --warndays:在密码过期之前提前多少天向用户发出警告。
    ①更改当前用户密码
passwd

②更改特定用户的密码:

passwd 用户名

③锁定用户账户:

passwd -l 用户名

7.将用户添加到用户组:

使用usermod命令可以将用户添加到一个或多个用户组
【案例一】要将名为"username"的用户添加到"mygroup"用户组,可以执行以下命令:

usermod -aG mygroup username

8.从用户组中移除用户:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490460.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity类银河战士恶魔城学习总结(P179 Enemy Archer 弓箭手)

教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了敌人弓箭手的制作 Enemy_Archer.cs 核心功能 状态机管理敌人的行为 定义了多个状态对象(如 idleState、moveState、attackState 等),通过状态机管理敌人的…

Pikachu靶场——XXE漏洞

XXE(XML External Entity)漏洞 XXE(XML External Entity)漏洞是一种常见的安全漏洞,发生在处理 XML 数据的应用程序中。当应用程序解析 XML 输入时,如果没有正确配置或过滤外部实体的加载,就可能…

使用 ESP-IDF 进行esp32-c3开发第四步:VSCode里安装ESP-IDF插件

很多小伙伴还是习惯在VSCode里写代码,所以今天进行了--使用 ESP-IDF 进行esp32-c3开发第四步:VSCode里安装ESP-IDF插件 安装和配置 首先到VSCode的插件页面,搜索esp,排名第一的就是ESP-IDF插件,点击安装即可。 在命令…

SSM 垃圾分类系统——高效分类的科技保障

第五章 系统功能实现 5.1管理员登录 管理员登录,通过填写用户名、密码、角色等信息,输入完成后选择登录即可进入垃圾分类系统,如图5-1所示。 图5-1管理员登录界面图 5.2管理员功能实现 5.2.1 用户管理 管理员对用户管理进行填写账号、姓名、…

部署GitLab服务器

文章目录 环境准备GitLab部署GitLab服务器GitLab中主要的概念客户端上传代码到gitlab服务器CI-CD概述软件程序上线流程安装Jenkins服务器 配置jenkins软件版本管理配置jenkins访问gitlab远程仓库下载到子目录部署代码到web服务器自动化部署流程 配置共享服务器配置jenkins把git…

泷羽sec学习打卡-brupsuite8伪造IP和爬虫审计

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-FaskIP 伪造IP配置环境brupsuite导入配置1、扩展中先配置python环境2、安…

如何在 Ubuntu 22.04 上使用 Fail2Ban 保护 SSH

前言 SSH,这玩意儿,简直是连接云服务器的标配。它不仅好用,还很灵活。新的加密技术出来,它也能跟着升级,保证核心协议的安全。但是,再牛的协议和软件,也都有可能被攻破。SSH 在网上用得这么广&…

智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能

前言: 在当今社会的高速运转之下,夜幕低垂之时,许多辛勤工作的父母尚未归家。对于肩负家庭责任的他们而言,确保孩童按时用餐与居家安全成为心头大事。此时,家居留言录音提示功能应运而生,恰似家中的一位无形…

EasyGBS国标GB28181-2016标准解读:基于TCP协议的视音频媒体传输

在探讨EasyGBS平台基于GB28181-2016标准的TCP协议视音频媒体传输时,我们首先需要了解GB28181标准的基本背景。GB28181,即GB/T28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》,是公安部提出的公共安全行业标准&#xff…

[C++]C++工具之对异常情况的处理(throw、catch、try)以及用命名空间避免同名冲突

一、C 异常处理😊 1.1 定义 C 中的异常处理用于应对程序运行中的异常情况(如除零、数组越界等),通过 try-catch 机制捕获和处理错误,防止程序崩溃。 异常是程序运行时意外发生的事件,可以通过抛出&#xf…

博客MDX渲染方案

MDX渲染方案 Link 本文不由AI生成,原创,转载请注明 当个人博客网站或是独立网站有博客页时,通过渲染mdx文件是一种效率比较高的方式生成博客文章的一种方式 MDX渲染方案 我之前是通过typora直接导出html文件,这种纯静态页面 缺点:太繁琐优点:可以自己选不同的主题,成本…

VScode MAC按任意键关闭终端 想要访问桌面文件

说明 最近配置MAC上CPP的运行环境,在安装必要的CPP插件后,配置launch和task等json文件后,点击运行三角形,每次都会跳出main想要访问桌面上的文件。并且输出也是在调试控制台,非常逆天。 尝试 尝试1:尽管我尝试将ta…

注意力机制+时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测

注意力机制时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测 目录 注意力机制时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测效果一览基本介绍程序设计参考资料 效果一览 基…

29.在Vue 3中使用OpenLayers读取WKB数据并显示图形

在Web开发中,地理信息系统(GIS)应用越来越重要,尤其是在地图展示和空间数据分析的场景中。OpenLayers作为一个强大的开源JavaScript库,为开发者提供了丰富的地图展示和空间数据处理能力。在本篇文章中,我将…

qt 设置系统缩放为150%,导致的文字和界面的问题

1 当我们设置好布局后,在100%的设置里面都是正常的,但是当我们修改缩放为150%后,字体图标,界面大小就出现问题了,这就需要我们设置一些参数。 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QCoreAppl…

3个关于协程的题目

题目1: 题目1:启动2个协程,1个管道,每隔1秒交替输出1次1-10和a-j。 预期效果: 实现方式: package mainimport ("fmt""sync""time" )var ch make(chan struct{}, 1) var wg…

基于ESP32的桌面小屏幕实战[4]:硬件设计之PCB Layout

1. PCB Layout 步骤 生成PCB 确定PCB layout规范 绘制板框尺寸 布局 布局规范: 按电气性能合理分区,一般分为:数字电路区(即怕干扰、又产生干扰)、模拟电路区(怕干扰)、功率驱动区(干扰源)&a…

(六)科研技能-论文写作中的常用单词和句式

针对论文写作过程,会用到很多单词及短语。为了文章书写的规范,需要总结一些常用的单词、短语以及一些句式,因此进行了简单的总结以及梳理。后续会根据情况适时更新对应的内容。 一、常用单词、短语 关于:with respect to 更具体地…

无限次使用 cursor pro

github地址 cursor-vip 使用方式 在 MacOS/Linux 中,请打开终端; 在 Windows 中,请打开 Git Bash。 然后执行以下命令来安装: 部分电脑可能会误报毒,需要关闭杀毒软件/电脑管家/安全防护再进行 方式1:通过…

【Email】基于SpringBoot3.4.x集成发送邮件功能

【Email】基于SpringBoot3.4.x集成发送邮件功能 摘要本地开发环境说明pom.xml启动类application.yaml写一个邮件模板定义模板引擎工具类定义一个邮件发送对象封装一个邮件发送器单元测试邮件模板单元测试发送邮件单元测试 邮件效果参考资料 摘要 在业务系统开发过程中&#xf…