《Linux 简易速速上手小册》第5章: 用户与群组管理(2024 最新版)

2024-02-13 09:20

本文主要是介绍《Linux 简易速速上手小册》第5章: 用户与群组管理(2024 最新版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

  • 5.1 管理用户账户
    • 5.1.1 重点基础知识
    • 5.1.2 重点案例:创建一个新的开发者账户
    • 5.1.3 拓展案例 1:禁用用户登录
    • 5.1.4 拓展案例 2:设置账户到期
  • 5.2 群组概念与管理
    • 5.2.1 重点基础知识
    • 5.2.2 重点案例:为项目团队设置群组
    • 5.2.3 拓展案例 1:限制群组成员对文件的写权限
    • 5.2.4 拓展案例 2:创建管理账户的群组
  • 5.3 高级用户管理技巧
    • 5.3.1 重点基础知识
    • 5.3.2 重点案例:迁移用户数据到新服务器
    • 5.3.3 拓展案例 1:批量添加用户
    • 5.3.4 拓展案例 2:设置账户到期日期

5.1 管理用户账户

在 Linux 的大家庭中,用户账户是让每个人拥有自己空间和权限的方式。像是家里的房间,每个人都有自己的一间,可以装饰和使用。让我们来看看如何高效管理这些“房间”和它们的“钥匙”。

5.1.1 重点基础知识

  • useradd: 创建新用户的命令。使用 -m 选项同时创建用户的家目录,-s 选项指定用户的默认 shell。
  • passwd: 设置或更改用户密码的命令。一个强密码是保护用户账户安全的第一步。
  • usermod: 修改用户账户属性的命令,例如更改用户名或者用户所属的群组。
  • userdel: 删除用户账户的命令。使用 -r 选项同时删除用户的家目录和邮件目录。

5.1.2 重点案例:创建一个新的开发者账户

假设你需要为一个新加入的开发者 Bob 创建一个账户,并设置必要的环境。

  1. 创建用户:

    sudo useradd -m -s /bin/bash bob
    

    这条命令创建了一个新用户 Bob,为他创建了家目录,并设置默认 shell 为 bash。

  2. 设置密码:

    sudo passwd bob
    

    接下来,你会被提示输入和确认 Bob 的密码。

  3. 添加到 sudo 群组 (在 Debian 基系统):

    sudo usermod -aG sudo bob
    

    这样 Bob 就能执行需要管理员权限的命令了。

5.1.3 拓展案例 1:禁用用户登录

如果 Bob 暂时不需要访问系统,你可以禁用他的登录,而不是删除他的账户。

sudo usermod -L bob

这个命令会锁定 Bob 的账户,使其不能登录。当需要恢复账户时,使用 -U 参数解锁。

5.1.4 拓展案例 2:设置账户到期

对于只在一段时间内需要访问系统的临时用户,你可以设置一个账户到期日期。

sudo usermod -e 2024-12-31 bob

这条命令设置 Bob 的账户在 2024 年 12 月 31 日后过期。

通过这些案例,你可以看到 Linux 提供了丰富的工具来管理用户账户,无论是创建新用户,还是调整现有用户的设置。作为系统管理员,掌握这些命令将帮助你保持系统的秩序和安全,确保每个用户都有适合自己的“房间”和“钥匙”。

在这里插入图片描述


5.2 群组概念与管理

在 Linux 的世界里,群组扮演着管理用户权限和简化系统管理任务的关键角色。想象一下,群组就像是一个社交俱乐部,每个俱乐部都有自己的活动和规则,成员可以享受俱乐部提供的特定资源。

5.2.1 重点基础知识

  • 群组的类型: Linux 中主要有两种类型的群组:主群组(Primary Group)和附加群组(Supplementary Group)。用户的文件默认继承主群组,而附加群组用于特定的访问权限管理。
  • groupadd: 创建新群组的命令。例如,sudo groupadd developers 创建一个名为 “developers” 的新群组。
  • usermod: 将用户添加到群组的命令。使用 -aG 选项将用户添加到一个或多个附加群组。
  • groups: 查看用户所属群组的命令。只需输入 groups 用户名 即可查看。
  • gpasswd: 管理群组成员的工具。可以用来添加或删除群组成员。

5.2.2 重点案例:为项目团队设置群组

假设你正在管理一个项目团队,需要创建一个群组 “project_team”,以便团队成员可以共享文件和资源。

  1. 创建群组:

    sudo groupadd project_team
    
  2. 添加用户到群组:
    假设你需要将 Alice 和 Bob 添加到 “project_team” 群组。

    sudo usermod -aG project_team alice
    sudo usermod -aG project_team bob
    
  3. 设置文件共享权限:
    创建一个共享目录,并设置适当的群组和权限,以便团队成员可以读写。

    mkdir /home/shared_project
    sudo chgrp project_team /home/shared_project
    sudo chmod 2775 /home/shared_project
    

    这里,chmod 2775 设置了目录的 SGID(Set Group ID),确保在此目录下创建的文件继承父目录的群组。

5.2.3 拓展案例 1:限制群组成员对文件的写权限

如果你想让团队成员能够读取但不修改某些文件,你可以只设置读权限。

sudo chown :project_team important_file
sudo chmod 2750 important_file

这样,只有群组成员可以读取 “important_file”,但不能修改它。

5.2.4 拓展案例 2:创建管理账户的群组

对于需要管理服务器的管理员,你可以创建一个 “admins” 群组,并为其配置 sudo 权限。

sudo groupadd admins
sudo usermod -aG admins alice

然后,在 /etc/sudoers 文件中配置 “admins” 群组的 sudo 权限。

通过这些案例,我们可以看到群组在 Linux 系统中的重要性以及如何利用群组来有效管理用户权限和资源共享。无论是促进团队协作,还是维护系统安全,合理地设置和管理群组都是至关重要的。

在这里插入图片描述


5.3 高级用户管理技巧

在 Linux 的复杂世界里,简单的用户添加和删除只是冰山一角。要成为真正的 Linux 管理员,你需要掌握一些高级技巧,让你能够更灵活地管理用户和群组,以适应不同的需求和场景。

5.3.1 重点基础知识

  • 修改用户信息usermod 命令不仅能够添加用户到群组,还能修改用户的登录名、家目录、登录Shell等信息。例如,usermod -l 新用户名 旧用户名 可以更改用户的登录名。
  • 更改家目录:使用 -d 选项配合 usermod 命令可以更改用户的家目录。例如,usermod -d /新/家目录 用户名
  • 更改登录 Shell:如果用户希望使用不同的 Shell,你可以用 -s 选项来更改。例如,usermod -s /bin/zsh 用户名
  • 锁定和解锁用户账户passwd 命令的 -l 选项可以锁定用户账户,防止其登录。相反,-u 选项用于解锁账户。

5.3.2 重点案例:迁移用户数据到新服务器

假设你需要将用户 Alice 的账户从一台旧服务器迁移到一台新服务器,同时保持所有的用户数据和配置不变。

  1. 在新服务器上创建相同用户:

    sudo useradd -m -s /bin/bash alice
    
  2. 迁移家目录数据:
    使用 rsyncscp 将旧服务器上 Alice 的家目录数据复制到新服务器。确保在新服务器上使用相同的路径。

    rsync -avz /旧/家目录/alice 新服务器IP:/新/家目录/alice
    
  3. 保持 UID 和 GID 一致:
    为了避免权限问题,确保在新服务器上 Alice 的 UID 和 GID 与旧服务器上的一致。

    sudo usermod -u UID alice
    sudo groupmod -g GID alice
    

5.3.3 拓展案例 1:批量添加用户

如果你需要为一个新项目团队批量创建用户账户,你可以编写一个脚本来自动化这个过程。

for name in user1 user2 user3; dosudo useradd -m $nameecho "123456" | sudo passwd --stdin $name
done

5.3.4 拓展案例 2:设置账户到期日期

对于临时访问的合作伙伴,你可能希望他们的账户在一段时间后自动过期。

sudo usermod -e 2024-12-31 alice

这会设置 Alice 的账户在 2024 年 12 月 31 日后自动过期,届时她将无法登录系统。

通过这些案例,我们可以看到高级用户管理技巧在日常系统管理中的应用非常广泛,无论是迁移用户数据,批量创建用户,还是设置账户的到期日期,都是为了提高管理效率,同时保证系统的安全性和用户的便利性。

掌握这些高级技巧可以帮助你更好地管理 Linux 系统中的用户和群组,无论是在大型企业环境还是小型团队中。通过灵活使用这些工具和命令,你将能够应对各种用户管理场景,确保每个用户都能在需要的时候获得适当的资源和权限,同时保护系统免受未授权访问的威胁。

这篇关于《Linux 简易速速上手小册》第5章: 用户与群组管理(2024 最新版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/705128

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的