Linux 用户与组管理

在这里插入图片描述

一、用户和组的基本概念

1. 用户账号类型

  • 超级用户(root):默认拥有系统最高权限(UID=0),仅建议用于系统管理与维护,日常操作应使用普通用户。
  • 普通用户:由管理员创建,权限受限,通常仅在自身家目录拥有完整权限。
  • 程序用户(服务用户):为系统服务(如nginxmysql)创建的专用账号,一般不允许登录系统。

2. 组账号类型

  • 基本组:用户创建时默认所属的组,每个用户至少属于一个基本组。
  • 附加组:用户额外加入的组,用于获取该组的权限集合。

3. UID 与 GID

  • UID(用户 ID)

    :系统识别用户的唯一标识,范围:

    • 0:超级用户(root)
    • 1~999:系统预留(程序用户)
    • 1000~60000:普通用户
  • GID(组 ID):系统识别组的唯一标识,范围与 UID 对应,root 组 GID=0。

二、用户和组的核心配置文件

1. /etc/passwd(用户基本信息)

  • 作用:存储用户名称、UID、GID、家目录、登录 Shell 等信息,所有用户可读取,仅 root 可修改。
  • 格式:7 个字段用冒号分隔
    用户名:密码占位符(x):UID:GID:描述信息:家目录:登录Shell
    例:zhangsan:x:1001:1001:张三:/home/zhangsan:/bin/bash

2. /etc/shadow(用户密码信息)

  • 作用:存储用户密码(加密形式)及密码策略,仅 root 可读取。

  • 格式

    :9 个字段用冒号分隔

    用户名:加密密码:最近改密天数:密码不可改天数:密码有效期:警告天数:宽限天数:账号失效日期:保留
    
    • 加密密码:*!!表示账号锁定,空值表示无需密码登录。
    • 日期计算:以 1970 年 1 月 1 日为起始点(如1900表示 1970 年 1 月 1 日后第 1900 天)。

3. /etc/group(组基本信息)

  • 作用:存储组名称、GID、组成员等信息。
  • 格式:4 个字段用冒号分隔
    组名:组密码占位符:GID:组成员列表
    例:dev:x:1002:zhangsan,lisi

4. /etc/gshadow(组密码信息)

  • 作用:存储组密码及管理员信息,仅 root 可读取。

  • 格式

    :4 个字段用冒号分隔

    组名:组加密密码:组管理员:组成员
    
    • 组密码为空或!表示无密码,组管理员可管理组成员。

三、用户和组管理命令

1. 用户管理

(1)创建用户(useradd
# 创建普通用户,指定UID、家目录、基本组、附加组、登录Shell
useradd -u 1005 -d /home/wangwu -g dev -G admin -s /bin/bash wangwu
  • 选项说明:
    • -u:指定 UID
    • -d:指定家目录
    • -g:指定基本组(必须已存在)
    • -G:指定附加组(多个组用逗号分隔)
    • -s:指定登录 Shell(/sbin/nologin表示禁止登录)
(2)设置密码(passwd
# 为用户设置密码
passwd wangwu# 锁定/解锁用户
passwd -l wangwu  # 锁定
passwd -u wangwu  # 解锁# 清空用户密码(允许无密码登录)
passwd -d wangwu
(3)修改用户属性(usermod
# 修改用户家目录,移动原内容到新目录
usermod -d /home/new_wangwu -m wangwu# 更改用户基本组为admin,附加组为dev、test
usermod -g admin -G dev,test wangwu# 锁定/解锁用户
usermod -L wangwu  # 锁定
usermod -U wangwu  # 解锁
(4)删除用户(userdel
# 删除用户(保留家目录)
userdel wangwu# 彻底删除用户(含家目录和邮件文件)
userdel -r wangwu

2. 组管理

(1)创建组(groupadd
# 创建组,指定GID
groupadd -g 1006 testgroup
(2)删除组(groupdel
# 删除组(组必须无成员,否则需先移除成员)
groupdel testgroup
(3)管理组成员(gpasswd
# 添加用户到组(附加组)
gpasswd -a zhangsan testgroup# 从组中移除用户
gpasswd -d zhangsan testgroup# 设置组管理员(允许管理员管理组成员)
gpasswd -A lisi testgroup
(4)查看用户所属组(groups
# 查看指定用户所属组
groups zhangsan  # 输出:zhangsan : dev admin

3. 密码策略管理(chage

# 查看用户密码策略
chage -l wangwu# 设置密码有效期为90天,提前7天警告,过期后3天锁定
chage -M 90 -W 7 -I 3 wangwu# 设置账号2024-12-31过期
chage -E 2024-12-31 wangwu

四、权限委派(sudo

允许普通用户临时以 root 权限执行指定命令,配置文件为/etc/sudoers(需用visudo编辑)。

配置示例:

visudo  # 安全编辑sudoers文件# 添加以下内容:允许admin组用户执行useradd、usermod、userdel命令
Cmnd_Alias USERMGMT = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
%admin  ALL=(ALL)  USERMGMT

使用方法:

# 普通用户执行授权命令
sudo useradd tom  # 输入自身密码验证后执行

总结

用户与组管理通过/etc/passwd/etc/shadow等文件记录核心信息,借助useraddgroupadd等命令进行创建、修改和删除操作。合理配置用户权限与密码策略,结合sudo进行权限委派,可保障系统安全性与可管理性。

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

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

相关文章

开疆智能ModbusTCP转Profient网关连接ER机器人配置案例

本案例时西门子1200PLC通过ModbusTCP转Profinet网关连接埃斯顿机器人的配置案例,网关作为ModbusTCP的客户端连接机器人。配置过程:首先打开机器人通讯手册。查询机器人支持的功能码及默认IP和端口号打开网关配置软件“Gateway Configuration Studio”新建…

Docker换源加速(更换镜像源)详细教程(2025.3最新可用镜像,全网最详细)

文章目录前言可用镜像源汇总换源方法1-临时换源换源方法2-永久换源(推荐)常见问题及对应解决方案1.换源后,可以成功pull,但是search会出错补充1.如何测试镜像源是否可用2.Docker内的Linux换源教程换源速通版(可以直接无…

机器学习【三】SVM

本文系统介绍了支持向量机(SVM)的理论与实践。理论部分首先区分了线性可分与不可分问题,阐述了SVM通过寻找最优超平面实现分类的核心思想,包括支持向量、间隔最大化等关键概念。详细讲解了硬间隔与软间隔SVM的数学原理,以及核函数(线性核、多…

DevOps平台大比拼:Gitee、Jenkins与CircleCI如何选型?

DevOps平台大比拼:Gitee、Jenkins与CircleCI如何选型? 在数字化转型浪潮席卷全球的当下,DevOps已成为企业提升研发效能的关键引擎。面对市场上纷繁复杂的DevOps工具链,如何选择最适合自身业务需求的平台成为技术决策者的重要课题。…

开源医院信息管理系统:基于若依框架的智慧医疗解决方案

引言在数字化浪潮的推动下,医疗行业正加速向信息化、智能化转型。医院信息管理系统(HIS)作为医疗管理的核心工具,直接影响医院的运营效率和服务质量。近期,一款基于 若依框架 Vue 的开源医院管理系统(hosp…

我的世界进阶模组开发教程——附魔(2)

EnchantmentHelper 类详解 EnchantmentHelper 是 Minecraft 中处理物品附魔逻辑的核心工具类,提供附魔的存储、查询、计算和应用等功能。以下是对其字段和方法的逐行详细解释: 关键字段 private static final String TAG_ENCH_ID = "id"; // NBT标签键:附…

深度学习零基础入门(4)-卷积神经网络架构

许久不见~ 本节我们延续上一节的话题来看看卷积神经网络的架构,看看具体的卷积、池化等操作卷积神经网络详解:从基础操作到整体架构 一、卷积操作:特征提取的核心 卷积是卷积神经网络(CNN)的核心操作,灵感来…

C语言的控制语句

C的控制语句 控制语句是C语言中用于控制程序执行流程的结构。通过控制语句,可以根据条件执行不同的代码块,或者重复执行某些操作,从而实现复杂的逻辑和功能。掌握控制语句是编写有效和高效C程序的关键。 1 条件控制 条件控制语句用于根据某些条件来决定程序的执行路径。C语…

Mac电脑基本功能快捷键

1. 个性化桌面 将喜爱照片添加为桌面墙纸。前往“系统设置”,然后点按边栏中的“墙纸”。点按“添加照片”,然后从文件或“照片”App选取一张照片。 2. 截屏 按下键盘上的Shift  Command ⌘ 5,然后选取捕捉整个屏幕、App窗口或…

微算法科技(NASDAQ: MLGO)开发量子边缘检测算法,为实时图像处理与边缘智能设备提供了新的解决方案

图像边缘检测是计算机视觉的核心任务,传统算法(如 Sobel、Canny)依赖梯度计算与阈值分割,在处理高分辨率、复杂纹理图像时面临计算效率瓶颈。随着量子计算技术的发展,利用量子态叠加与并行处理特性,微算法科…

断点续传Demo实现

基于我们的DownloadManager.swift代码,让我详细解释断点续传需要实现的核心功能: 断点续传的核心实现要素 1. 后台会话配置 private func setupBackgroundSession() {let config URLSessionConfiguration.background(withIdentifier: "com.test.do…

《Leetcode》-面试题-hot100-子串

题目列表 560. 和为K的子数组 中等难度 leetcode链接 239 滑动窗口最大值 困难难度 leetcode链接 76 最小覆盖子串 困难难度 leetcode链接 题目 (1)和为K的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 …

点击弹框以外的区域关闭弹框

在 Vue 3 中&#xff0c;如果你想判断点击的目标是否在弹框内&#xff0c;可以通过以下步骤实现。这里我们将使用 ref 来引用弹框组件&#xff0c;并在点击事件中进行判断。 示例代码 1. 创建弹框子组件 首先&#xff0c;创建一个名为 Modal.vue 的子组件。 <!-- Modal.vue …

00.Vue基础入门【小白级别手把手!】

目录 一、Vue介绍 二、创建Vue项目 nodeJs nvm版本管理 创建Vue项目 VS Code编辑器 三、.Vue文件结构说明 数据渲染 四、Vue项目目录说明 main.ts文件说明 五、Vue官网文档学习 一、Vue介绍 基础介绍 Vue是一个前端Web框架&#xff0c;属于单页应用&#xff08;SPA&am…

将Varjo XR技术融入战斗机训练模拟器,有效提升模拟训练沉浸感与效率

本周在Varjo总部&#xff0c;收到了一份令人兴奋的礼物&#xff0c;一架由Dogfight Boss与varjo XR-4集成的训练模拟器。这是一个专业级模拟器&#xff0c;专为高保真训练和任务排练而设计&#xff0c;非常注重细节&#xff0c;提高了沉浸水平。为此Dogfight Boss的首席执行官L…

C# async await 实现机制详解

一、async/await 异步编程实现机制 1.1 核心概念 async/await 是 C# 5.0 引入的语法糖&#xff0c;它基于**状态机&#xff08;State Machine&#xff09;**模式实现&#xff0c;将异步方法转换为编译器生成的状态机类。 1.2 编译器转换过程 当编译器遇到 async 方法时&#xf…

Servlet 学习笔记

本文为记录Servlet学习时的一些笔记和代码 课程参考黑马程序员 对于Java Web 学习的一个复习一 概述server applet 运行在服务器端的小程序 本质就是一个接口 定义java类被浏览器访问到&#xff08;Tomcat识别&#xff09;的规则我们会自定义这样一个类来实现复写方法实现接口二…

【maven】仓库配置

目录 一、本地仓库 二、私有仓库 三、阿里云仓库 一、本地仓库 针对无外网、无maven私服&#xff0c;只有本地仓库&#xff0c;进行maven项目开发。在maven的settings.xml中设置三项&#xff1a; 1、本地仓库地址 默认在当前系统用户下创建目录&#xff1a;.m2/repository…

信息系统架构设计的系统性解析

一、信息系统架构设计​​概念定义​​&#xff1a;信息系统架构&#xff08;ISA&#xff09;是对系统组件、交互关系及环境约束的结构化抽象&#xff0c;确保业务目标与技术实现对齐。核心要素包括业务逻辑层、数据层、应用层和基础设施层。​​设计方法​​&#xff1a;​​T…

编译旧版本的electron内核

我们的软件产品使用的electron框架&#xff0c;electron框架是不断更新的&#xff0c;但是我们的软件太过庞大复杂&#xff0c;不敢轻易升级electron框架。Electron旧版本存在一些BUG和不合理的地方&#xff0c;需要去修复BUG或者不合理的地方。修复完BUG后&#xff0c;要对ele…