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

【RH124 问答题】第 6 章 管理本地用户和组

目录

  • Linux 对用户和组的管理涉及三个重要的系统文件,请给出各自的名称并简述其条目结构。
  • 为什么要有组的概念?用户的主要组和补充组(辅助组)有什么区别?
  • 在 shell 切换用户时, su user 和 su - user 这两个命令有什么区别?
  • sudo 命令有什么作用?
  • 普通用户要使用 sudo 命令需要满足什么条件?
  • 说明 su、sudo 和 sudo -i 的区别。
  • 从命令行使用 userdel 删除用户时加-r 选项和不加-r 选项有什么区别?
  • 如何添加组成员?
  • 能否删除主组,为什么?
  • 配置密码期限有几种方法,分别说明。
  • nologin shell 在什么时候会用到?


Linux 对用户和组的管理涉及三个重要的系统文件,请给出各自的名称并简述其条目结构。

  1. /etc/passwd 用于存储用户的基本信息
    每一行表示一个用户账号,字段用冒号 : 分隔,格式如下:
    用户名:密码占位符:用户ID(uid):主组ID(gid):用户描述:主目录:默认shell
    如:
    alice:x:1001:1001:Alice:/home/alice:/bin/bash

  2. /etc/shadow 保存用户的加密密码以及密码策略(如过期时间、修改时间等)
    每一行对应一个用户,字段用 : 分隔,格式如下:
    用户名:加密密码:最近修改日期:最小间隔:最大间隔:警告期:禁用期:账号过期:保留
    如:
    alice:$6$abc...xyz:19345:0:99999:7:::

  3. /etc/group存储组信息,用于定义系统中的各个用户组
    每一行代表一个组:
    组名:密码占位符:GID:组内用户列表
    如:
    developers:x:1002:alice,bob


为什么要有组的概念?用户的主要组和补充组(辅助组)有什么区别?

组提供一种逻辑分组机制,便于管理员集中管理用户权限,实现资源共享和访问控制,避免逐个设置权限,提高效率和灵活性。

主要组:用户登录和创建文件时默认所属的组,定义在 /etc/passwd 中,每个用户只能属于一个主组。
补充组:用户附加所属的组,定义在 /etc/group 中,一个用户可以属于多个补充组,使用户能够访问不属于其主要组的资源。


在 shell 切换用户时, su user 和 su - user 这两个命令有什么区别?

在 shell 中,su usersu - user 的主要区别在于是否加载目标用户的登录环境

  • su user:切换到目标用户,但不加载其登录环境(非登录式 shell)。当前环境变量、路径设置等仍保留原用户的设置。

  • su - user:切换到目标用户,并加载其完整登录环境(登录式 shell),相当于重新登录该用户。会切换工作目录为目标用户的主目录,并加载其配置文件(如 .bash_profile)。


sudo 命令有什么作用?

sudo命令用于普通用户临时提升权限


普通用户要使用 sudo 命令需要满足什么条件?

方法一:将用户添加到 wheel 组

  1. 执行命令:usermod -aG wheel username

  2. 确认 /etc/sudoers 文件中 %wheel ALL=(ALL) ALL 这一行没有被注释(使用 visudo 编辑)

  3. 用户重新登录后即可使用 sudo。

方法二:直接在 sudoers 文件中授权用户

  1. 使用 visudo 编辑 sudoers 文件

  2. 添加一行:username ALL=(ALL) ALL

  3. 保存退出后,用户重新登录即可使用 sudo。


说明 su、sudo 和 sudo -i 的区别。

su用来切换用户,需要输入输入目标用户密码su -会加载目标用户的完整登录环境,相当于登录。
sudo以 root 权限执行单条命令,输入当前用户密码,不切换用户环境。
sudo -i 是使用sudo提升权限,使用当前用户的密码,并以root用户身份进入新的shell会话,提供完整的 root 登录 shell。


从命令行使用 userdel 删除用户时加-r 选项和不加-r 选项有什么区别?

不加 -r 选项时,只从 /etc/passwd 等文件中删除用户信息保留用户主目录和文件
加上 -r 选项时,除了删除用户信息,还会删除用户的主目录及其所有相关文件


如何添加组成员?

usermod -aG 组名 用户名 添加组成员。
这样可以把指定的用户添加到某个组中,同时保留用户已有的其他组,不会覆盖之前的组信息。


能否删除主组,为什么?

不能删除主组。删除组前必须确保没有文件或目录属于该组,且没有用户的主组是该组。如果有一个用户账户属于该组的话就无法删除该组。


配置密码期限有几种方法,分别说明。

配置密码期限的方法有三种:

  1. 使用 chage 命令设置密码期限:
  • -d设置上次修改密码的时间
  • -m 设置密码的最短使用期限
  • -M 设置密码的最长期限
  • -W 设置密码过期前的警告周期
  • -I 设置密码过期后的失效期限

如:
chage -M 90 username 设置密码最长使用期限为90天。

  1. 修改 /etc/login.defs 文件,设置系统默认密码策略,例如:
  • PASS_MAX_DAYS(最大期限)
  • PASS_MIN_DAYS(最小期限)
  • PASS_WARN_AGE(警告天数)
  1. 使用 passwd 命令设置当前用户密码策略:
  • passwd -x 设置最大使用天数
  • passwd -n 设置最小使用天数
  • passwd -w 设置警告天数

nologin shell 在什么时候会用到?

需要创建不能登录系统的用户时会用到 nologin shell,例如系统服务账号或限制某些用户登录的场景。设置为 nologin 可防止用户通过终端或 SSH 登录系统。


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

相关文章:

  • ⭐CVPR2025 MatAnyone:稳定且精细的视频抠图新框架
  • LLM开发——语言模型会根据你的提问方式来改变答案
  • Android与Flutter混合开发:页面跳转与通信完整指南
  • 深入剖析 RAG 检索系统中的召回方式:BM25、向量召回、混合策略全解析
  • Go语言 string
  • stm32项目(21)——基于STM32和MPU6050的体感机械臂开发
  • 跨尺度目标漏检率↓82.4%!陌讯多尺度融合算法在占道经营识别的实战优化
  • 结构化开发方法详解:软件工程的奠基性范式
  • 机器学习——贝叶斯
  • Android 之 Kotlin中的协程(Dispatchers.IO)
  • Android UI 组件系列(十一):RecyclerView 多类型布局与数据刷新实战
  • ara::log::LogStream::WithTag的概念和使用案例
  • 鸿蒙开发--web组件
  • Java技术栈/面试题合集(5)-SpringBoot篇
  • SpringBoot3.x入门到精通系列:4.1 整合 MongoDB 详解
  • 《四种姿势用Java玩转AI大模型:从原生HTTP到LangChain4j》
  • Ubuntu24.04环境下非DOCKER方式安装Mysql5.7
  • 今日行情明日机会——20250805
  • 呼叫中心系统录音管理功能的应用
  • 初学docker
  • 深度拆解Dify:开源LLM开发平台的架构密码与技术突围
  • QUdpSocket发送组播和接受组播数据
  • 【类与对象(上)】C++封装之美:类与this指针解析
  • Nginx 单一端点上高效部署多个 LLM 模型
  • ES 模块动态导入
  • 海上电磁波传播:两径模型 vs 抛物方程模型传播损耗对比
  • 37.字典树
  • Redis集群模式下确保Key在同一Slot的实现方法
  • 按位运算 - C++
  • Velero 简介和部署