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

深入理解 Linux 用户管理:从基础到实践

在 Linux 操作系统中,用户管理是确保系统安全、合理分配资源的核心环节。无论是个人开发者搭建本地开发环境,还是运维人员管理企业级服务器集群,熟练掌握 Linux 用户管理都是一项必备技能。本文将从用户管理的基础概念出发,结合实际操作命令,带大家深入了解 Linux 用户管理的方方面面。

一、Linux 用户管理基础概念

在 Linux 系统中,用户可以分为三类:系统用户普通用户超级用户(root)。系统用户主要用于运行系统服务,例如apache用户用于运行 Apache Web 服务器,mysql用户用于运行 MySQL 数据库服务等,这类用户通常不允许登录系统,其存在主要是为了保证服务运行的安全性和隔离性。普通用户则是为实际使用系统的人创建的,每个普通用户都有自己独立的家目录,用于存放个人数据和配置文件。超级用户root拥有系统的最高权限,可以对系统进行任何操作,包括创建和删除用户、修改系统配置文件等,但也正因如此,使用root用户时需要格外谨慎,一旦操作失误可能会导致系统崩溃。

此外,Linux 还引入了群组的概念。一个用户可以属于一个或多个群组,群组的存在方便了对用户权限的集中管理。例如,将所有开发人员加入到developers群组,然后对项目目录设置developers群组的读写权限,这样该群组内的所有用户都能访问和操作项目目录,大大提高了权限管理的效率。

二、用户管理常用命令

1. 创建用户

在 Linux 中,可以使用useradd命令来创建新用户。例如,要创建一个名为testuser的用户,可以执行以下命令:

sudo useradd testuser

执行该命令后,系统会自动为testuser创建一个家目录(默认为/home/testuser),并设置默认的用户配置。如果希望在创建用户时指定家目录,可以使用-d选项,如:


sudo useradd -d /home/newuser testuser

此外,还可以使用-m选项在创建用户时同时创建家目录(即使默认目录不存在),以及使用-s选项指定用户的默认 Shell,例如:


sudo useradd -m -s /bin/bash testuser

这将创建一个名为testuser的用户,同时创建其家目录,并将默认 Shell 设置为bash。

2. 设置用户密码

创建用户后,需要为其设置密码,否则用户无法登录系统。可以使用passwd命令来设置或修改用户密码。如果是普通用户执行passwd命令,只能修改自己的密码;而root用户执行该命令时,可以修改任何用户的密码。例如,要为testuser用户设置密码,root用户可以执行以下命令:


sudo passwd testuser

执行命令后,系统会提示输入新密码,并要求再次确认密码。

3. 删除用户

当不再需要某个用户时,可以使用userdel命令将其删除。例如,要删除testuser用户,可以执行:


sudo userdel testuser

默认情况下,userdel命令只会删除用户账号,不会删除用户的家目录。如果希望在删除用户时同时删除其家目录,可以使用-r选项:


sudo userdel -r testuser

4. 用户权限管理

Linux 系统通过文件和目录的权限设置来控制用户对资源的访问。每个文件和目录都有所有者(owner)、所属群组(group)和其他用户(others)三种身份,每种身份又分别有读(r)、写(w)、执行(x)三种权限。可以使用chown命令来更改文件或目录的所有者,使用chgrp命令来更改所属群组,使用chmod命令来修改权限。

例如,要将文件test.txt的所有者更改为testuser,可以执行:


sudo chown testuser test.txt

要将文件test.txt的所属群组更改为developers,可以执行:


sudo chgrp developers test.txt

要为testuser用户赋予文件test.txt的读写权限,可以执行:


sudo chmod u+rw test.txt

这里u表示所有者(user),+rw表示添加读和写权限。如果要为所属群组和其他用户赋予执行权限,可以使用g+x和o+x,如:


sudo chmod g+x,o+x test.txt

5. 群组管理

创建群组可以使用groupadd命令,例如创建一个名为newgroup的群组:


sudo groupadd newgroup

删除群组使用groupdel命令:


sudo groupdel newgroup

将用户添加到群组可以使用usermod命令的-aG选项,其中-a表示追加(不覆盖原有群组),G表示指定附加群组。例如,将testuser用户添加到newgroup群组:


sudo usermod -aG newgroup testuser

三、用户管理的实践应用场景

1. 多用户协作开发

在团队开发项目中,经常需要多个开发人员共同访问和修改项目文件。通过创建一个开发群组,将所有开发人员加入该群组,并设置项目目录对该群组的读写权限,可以实现安全高效的协作开发。例如,创建developers群组,将user1和user2用户加入该群组,然后设置项目目录/project的群组权限为读写:


sudo groupadd developerssudo usermod -aG developers user1sudo usermod -aG developers user2sudo chgrp developers /projectsudo chmod g+rw /project

2. 服务器安全管理

为了提高服务器的安全性,应尽量避免直接使用root用户登录。可以创建一个具有sudo权限的普通用户,通过该用户登录服务器后,再使用sudo命令执行需要管理员权限的操作。首先创建一个用户,例如adminuser,并为其设置密码:


sudo useradd -m -s /bin/bash adminusersudo passwd adminuser

然后将adminuser用户添加到sudo群组(在 Debian 和 Ubuntu 系统中为sudo群组,在 CentOS 系统中为wheel群组):


sudo usermod -aG sudo adminuser

这样,adminuser用户就可以通过sudo命令执行管理员操作,同时降低了因误操作root权限带来的风险。

四、总结

Linux 用户管理是一项复杂但又至关重要的工作,通过合理地创建、管理用户和群组,以及细致地设置权限,可以有效保障系统的安全和稳定,提高多用户环境下的协作效率。无论是初学者还是有经验的系统管理员,都应该熟练掌握这些用户管理的基本命令和方法,并在实际工作中不断积累经验,根据不同的应用场景灵活运用,从而更好地发挥 Linux 系统的强大功能。希望本文能帮助大家对 Linux 用户管理有更深入的理解和掌握。

相关文章:

  • 基于STM32、HAL库的HX711模数转换器ADC驱动程序设计
  • MIME 类型是个什么东西?
  • setup和hold互卡问题剖析
  • CDA Edit 的设计
  • vscode本地化显示远程图形化界面
  • 生成式人工智能认证(GAI认证)有什么用?
  • 谷歌提示词工程白皮书 第一部分
  • 从零构建云原生秒杀系统——后端架构与实战
  • disruptor-spring-boot-start版本优化升级
  • 【前端】jQuery 对数据进行正序排列
  • 仿微信上传头像,实现拍摄、相册选择、手动缩放、裁剪、蒙版、撤回、还原、上传微信本地文件功能
  • 使用Open Compass进行模型评估,完成AI模型选择
  • DeepSeek接入企业知识库,如何识别手写文档与扫描件?
  • pikachu靶场-敏感信息泄露
  • mac 设置飞书默认浏览器(解决系统设置默认浏览器无效)
  • 土壤有机质含量
  • 使用 Doxygen 生成类似官网的专业文档
  • ESP32-S3 入门学习笔记(四):LED实验
  • 数据库查询艺术:从单表操作到多表联查的全面指南
  • C语言(3)—分支和循环
  • 春暖花开,为何皮肤却闹起了小情绪?
  • 柴德赓、纪庸与叫歇碑
  • 上海市委常委会传达学习总书记重要讲话精神,研究张江科学城建设等事项
  • 党旗下的青春|83岁仍在“下生活”,他说生活是创作的源泉
  • 公交公司须关注新出行需求:“单车巴士”能否常态化
  • VR数字沉浸体验又添新节目,泰坦尼克号驶进文旅元宇宙