跟我学Linux用户管理
gudong366 2025-04-21 23:47 7 浏览
对于Linux系统而言,其是一个多用户的分时操作系统,为了能够让用户更加合理、安全地使用系统资源,从而产生了用户管理功能。
对于Linux的用户管理来说,主要分为两大块,分别是:用户管理和用户组管理。
一、用户管理
1.1 用户分类
对于Linux中的用户来说,大致可以分为三类用户,分别是:根用户、普通用户和系统用户。
- 根用户:根用户也被称为root用户或超级用户,其是权限最大的用户,可以修改和删除任意文件,可以执行任何命令。正因为任何操作都能做,因此每次操作的时候都需要十分小心谨慎,若操作不当,严重的可能会导致系统崩溃。
- 普通用户:普通用户是Linux系统中的真实用户,可以使用指定的用户名和密码来登录系统,并做有限的操作。对于普通而言,其能够操作的目录一般为Home目录、临时目录等有限的目录。
- 系统用户:系统用户是某个软件运行时使用的用户,并不能用于登录。
对于用户而言,会有唯一的标识与之对应,也就是所谓的UID。用户类型不同,所对应的UID的范围也不尽相同。其中,根用户的UID为0,普通用户的UID大于500,系统用户的UID在1~499之间。
需要说明一点的是,能够用于登录系统的用户只能为:根用户和普通用户。
如果想查看当前登录用户的信息,可以使用如下命令:
id
假定我使用根用户进行登录,使用该命令后结果如下所示:
从上面的结果可以看出,根用户的UID确实为0。
1.2 配置文件
对于用户管理来说,会涉及到两个配置文件,分别是:/etc/passwd 和 /etc/shadow。其中,/etc/passwd文件用于存储用户信息,/etc/shadow用于存储密码信息。
- /etc/passwd
我们可以使用cat命令来查看对应的内容,查看结果如下:
从上面可知,尽管每行内容各不同,但是大致可以被 " : " 号分隔为七列,以根用户信息为例来介绍一下每一列的含义:
root:x:0:0:root:/root:/bin/bash
- 第一列的root表示用户名,通常情况下,用户名的长度不能超过8个字符,且用户名中不能包含 " : " 号。为了进行兼容,用户名中最好不要包括“.”,应尽量避免使用“-”作为连字符以及以“+”号进行打头。
- 第二列的x表示密码,在某些系统中该列会用于存放密码。尽管该字段存储的密码不是明文,但是由于该文件对所有用户均可读,因此依然存在一定的风险。所以,很多Linux系统会在这里用x表示,而真正的密码将会被保存到/etc/shadow配置文件中。
- 第三列的0表示UID,也就是所谓的用户标识号。一般情况下,用户标识号会与用户一一对应。当然,多个用户名也可以对应一个用户标识号,只不过这些用户名不同的用户会被系统当做相同的用户。他们允许有不同的口令、不同的主目录以及不同的登录Shell等。通常情况下, 用户标识号的范围是0~65535。其中,0表示root用户,1~499为保留标识号,被用作系统管理,普通用户标识号从500开始。
- 第四列的0表示GID,对应/etc/group配置文件中的一条记录(用户组的唯一标识,后面会进行介绍)
- 第五列的root表示描述性信息
- 第六列的/root表示当前用户的主目录。对于root用户而言,其主目录就是/root;对于普通用户而言,其主目录就是/home/$username。
- 第七列为登录之后执行的shell程序。
- /etc/shadow
对于/etc/shadow配置文件来说,默认情况下只有根用户才有读取的权限。我们使用根用户登录系统后,执行如下命令来查看shadow配置文件的信息:
cat /etc/shadow
执行结果如下所示:
从执行结果来看,与passwd配置文件的形式类似,均被 " :" 分隔成了若干列。只不过shadow被分隔为9列。下面以根用户信息为例来介绍一下每列的含义:
root:$6$muIugGgRCvmiMW76$neuZuN0JIi4f5CnX9NFODxsC1uT2urtvGvgIWSjNggjF9e13KP.WASaHiVQ7loQLTDm.ueKbTqbOPl5tl7bml1::0:99999:7:::
- 第一列的root表示用户名,与/etc/passwd中的用户名相对应。
- 第二列的一长串字符表示用户对应的密码。如果该列为“!!”或“*”,表示未设置密码,此时该用户无法登录系统。
- 第三列的表示最近修改的天数,此处使用时间戳进行表示,也就是距时间原点(1970年1月1日)经过的天数,这里为空表示最近未进行过修改。如果为18978,则代表2021年12月17日。具体转换可使用“date -d '1970-01-01 18978 days'”命令。
- 第四列表示两次修改的时间间隔,此处为0表示随时可以进行修改。
- 第五列表示密码的有效天数,默认为99999,也就是273年,可认为是永久有效。
- 第六列表示失效前多少天进行告警。
- 第七列表示密码失效后能够宽限的天数,也就是在密码失效后,用户仍能在多少天内使用失效密码登录系统。如果值为0,表示立即失效;如果值为-1,则表示永远不会失效;如果为10,则表示过期后10天依然能够登录系统。
- 第八列表示账号失效的日期。当账号失效时,即使密码有效,也无法登录系统。
- 第九列为保留字段,暂未启用。
1.3 常用操作
对于用户的常用操作有:新增用户、设置密码和删除用户。
- 新增用户
新增用户使用到的命令为:useradd,比如添加一个名为user1的用户,使用到的命令如下所示:
useradd user1
对于该命令而言,大致会做四个操作:
(1)在/etc/passwd和/etc/shadow配置文件中新增一条对应的记录。执行命令后我们可以使用cat命令来查看这两个配置文件:
(2)为该用户创建对应的主目录,其路径为:/home/$username,比如在本例中就是/home/user1,如下所示:
(3)将/etc/skel下的文件拷贝一份到主目录下,在本例中就是/home/user1下。需要说明一下的是,查看文件内容时得用list -al命令:
(4)新建一个与该用户名同名的用户组。
- 设置密码
对于新增的用户必须进行密码设置,否则无法用于系统登录,此时/etc/shadow配置文件中的密码列为“!!”。设置密码的命令为passwd,以本例来说,其使用到的命令如下:
passwd user1
接着按照系统提示填写密码即可。
需要说明一点的是,在设置密码的过程中,如果你设置的密码很简单,就会有一句“无效的密码: 密码未通过字典检查 - 过于简单化/系统化”的提示。
设置密码后,可以再次使用cat命令来查看/etc/shadow文件:
上面可知,密码列已经有值,表明密码设置成功
- 删除用户
删除用户使用到的命令为:userdel,以本例来说,对应的命令为:
userdel user1
执行命令后会将/etc/passwd和/etc/shadow配置文件中该用户对应的记录进行删除,使用cat命令查看这两个配置文件的结果如下:
需要说明一下的是,默认情况下,该用户对应的主目录中的内容不会被删除,此时使用list -al命令来查看user1的主目录,如下:
当然,如果想删除该用户的主目录,则需要增加-r参数。
二、用户组管理
Linux之所以提供用户组,其目的在于更加灵活和安全地对用户的权限进行控制。
2.1 配置文件
对于用户组管理而言,其配置文件为:/etc/group。我们使用cat命令来查看/etc/group文件,如下所示:
从上面结果可知,/etc/group配置文件中的记录与/etc/passwd类似,都是使用 " : "分隔成了若干列。以root记录为例说一下这几列的含义。
root:x:0:
- 第一列表示用户组名,这里为root
- 第二列为密码,与/etc/passwd类似,这里以x进行占位。
- 第三列为用户组的唯一标识GID。
- 第四列表示组成元,这里为空。
2.2 常用操作
对于用户组的常用操作有两个,分别是:新增用户组和删除用户组。
- 新增用户组
在添加用户的时候系统默认会创建一个与用户名一样的用户组。其实也可以直接创建用户组,新增用户组的命令是groupadd,后接用户组名称作为其参数。在Linux中,使用/etc/group文件来记录用户组。假设增加group1用户组,对应的命令如下:
groupadd group1
命令执行之后查看/etc/group如下:
从上述结果可知,group1用户组已经被成功添加。
- 删除用户组
删除用户组使用到的命令为groupdel,以删除group1用户组为例,对应的命令为:
groupdel group1
执行之后,再次使用cat命令查看/etc/group配置文件,结果如下所示:
从上述结果可知,group1用户组已经成功删除。需要说明一点的是,如果该用户组内仍然存在用户时,则无法进行删除。比如上面提到,创建用户时会创建默认的用户组,此时我试图删除user1这个用户组,则会提示无法删除:
到此,用户管理的相关介绍就已经结束,希望对大家有所帮助。
相关推荐
- 一文讲清怎么利用Python实现Linux系统日志检索分析管理系统
-
摘要:在现代IT运营与开发中,日志分析早已成为不可或缺的核心环节。无论是排查系统故障、进行安全审计,还是优化服务性能,日志文件始终是最真实、最权威的信息来源。Linux系统作为主流的服务器操作系统,其...
- Linux 思维导图整理(建议收藏)(linux知识点总结思维导图)
-
今天整理了一下收集的Linux思维导图。Linux学习路径Linux桌面介绍FHS:文件系统目录标准Linux需要特别注意的目录Linux内核学习路线地址:https://www.jiansh...
- 什么是操作系统(什么叫做操作系统)
-
Linux也是众多操作系统之一,要想知道Linux是什么,首先得说一说什么是操作系统。计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频...
- Windows操作系统和Linux操作系统有什么不同?
-
每天一分钟,关注我学更多今天的内容是Windows操作系统和Linux操作系统在多个方面存在显著差异,主要体现在用户界面、开源性、稳定性和安全性等方面。用户界面:Windows操作系统提供直观高效的图...
- 每日学习“IT”是什么呢?(it学习网站)
-
IT是信息技术(InformationTechnology)的简称,它是一个广泛的领域,涉及到利用计算机、网络通信技术、软件等来存储、处理、传输和获取信息。计算机硬件硬件组成部分:包括中央处理器(...
- CAD是什么?如何选择最适合你的CAD软件?
-
CAD(计算机辅助设计)是建筑、机械、电子等行业的核心工具,通过数字化手段实现高精度设计与协作。传统CAD软件如AutoCAD功能强大,但操作复杂、成本高昂,而轻量化工具又难以满足专业需求。元图CAD...
- Linux是什么?(linux是什么意思)
-
在今天的时代,计算机系统已经成为了我们生活中不可或缺的一部分。而Linux则是目前世界上最为流行和免费的操作系统之一,它以其自由和开放源代码的特点,吸引了全球大量的程序员和开发者前来使用和修改。那么,...
- 牛人带你通透理解高可用网络基础架构的关键组件:负载均衡机制
-
上篇给大家介绍的内容是微服务网关:Zuul源码解析,相信大家已经领会并且贯通了;那么本文将给大家介绍的内容是负载均衡:负载均衡机制。负载均衡负载均衡(LoadBalance)是分布式网络环境中的重要...
- Linux运维网络篇(linux运维网站)
-
Linux运维过程中,我们会遇到各种形形色色的网络问题,今天我们就常见的检测手段以及处理办法给大家做一下统一分享。第一节:网络探测首先,我们需要通过各种命令来探测网络是否畅通,进而跟踪锁定到实际...
- Nginx正向代理、反向代理、负载均衡及性能优化
-
一、Nginx是什么Nginx是一款高性能的HTTP和反向代理服务器,由俄罗斯人IgorSysoev(伊戈尔·赛索耶夫)为俄罗斯网站Rambler.ru开发的,在Rambler.ru网站平稳的运...
- nginx负载均衡配置(nginx负载均衡配置教程)
-
Nginx是什么没有听过Nginx?那么一定听过它的“同行”Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(UniformResources...
- Springmvc使用Nginx负载均衡session共享
-
上一节,我们讲到nginx的结构组成,已经把模块、还有之前谈及负载均衡知识时候遗留的东西进行了讲解,那么今天我们继续把使用nginx做负载均衡的时候,如何处理session的方法做个解析,如何有需要对...
- Linux 系统卡顿问题的排查思路(linux系统突然非常卡)
-
#Linux系统卡顿问题排查思路当Linux系统出现卡顿问题时,可以按照以下系统性排查思路进行分析和解决:##1.快速检查系统整体状态###查看系统负载```bashuptimetophto...
- 一文搞懂LVS负载均衡工作原理 :NAT、DR、TUN模式
-
大家好,我是IT售前工程师Bernie。LVS(LinuxVirtualServer)是企业中常用的负载均衡方案,是一种基于Linux虚拟服务器,也是Linux标准内核的一部分。它能够实现高性...
- 从零构建高性能 LVS + Keepalived 四层负载均衡集群实战指南
-
一、前言在大型网站架构中,四层负载均衡是流量调度的第一道防线。相比七层(如Nginx、HAProxy),四层(基于IP/端口转发)在性能上更具优势。LVS(LinuxVirtualServer...
- 一周热门
- 最近发表
- 标签列表
-
- linux一键安装 (31)
- linux运行java (33)
- ln linux (27)
- linux 磁盘管理 (31)
- linux 内核升级 (30)
- linux 运行python (28)
- linux 备份文件 (30)
- linux 网络测试 (30)
- linux 网关配置 (31)
- linux jre (32)
- linux 杀毒软件 (32)
- linux语法 (33)
- linux博客 (33)
- linux 压缩目录 (37)
- linux 查看任务 (32)
- 制作linux启动u盘 (35)
- linux 查看存储 (29)
- linux乌班图 (31)
- linux挂载镜像 (31)
- linux 软件源 (28)
- linux题目 (30)
- linux 定时脚本 (30)
- linux 网站搭建 (28)
- linux 远程控制 (34)
- linux bind (31)