服务器测评网
我们一直在努力

Linux系统里具体有哪些用户类型?

在Linux系统中,用户是系统资源管理和权限控制的核心单元,每个用户都拥有独立的身份标识、权限范围和配置环境,理解Linux用户的类型、管理方式及相关配置文件,是系统管理员进行安全运维和权限划分的基础,本文将从用户的基本概念、分类、管理命令及配置文件等方面,系统介绍Linux用户的构成与管理逻辑。

Linux系统里具体有哪些用户类型?

Linux用户的基本概念与分类

Linux用户从身份和权限角度可分为三类:超级用户、系统用户和普通用户,每类用户在系统中扮演不同角色,拥有不同的操作权限。

超级用户(root)

超级用户是Linux系统中权限最高的用户,其用户标识(UID)固定为0,root用户拥有对系统的完全控制权,可以执行任何操作,包括安装软件、修改系统文件、管理其他用户等,在命令行中,root用户的提示符通常为“#”,而普通用户为“$”,由于权限过高,root用户一般只在系统维护和紧急操作时使用,日常操作建议切换至普通用户,避免误操作导致系统崩溃。

系统用户(System Users)

系统用户是Linux系统运行过程中,为满足特定服务需求而创建的用户,这类用户通常不用于登录系统,而是作为进程的运行主体,确保服务以最小权限原则运行,系统用户的UID一般小于1000(不同发行版可能略有差异,如CentOS 7之前默认为500,Ubuntu默认为1000),且其登录 shell 通常被设置为 /sbin/nologin/bin/false,禁止其通过终端或SSH登录。www用户用于运行Web服务,mysql用户用于管理数据库,daemonbin等则是系统自带的保留用户。

普通用户(Normal Users)

普通用户是由系统管理员或root用户创建的、用于日常操作和业务运行的用户,这类用户的UID默认从1000(或自定义起始值)开始递增,拥有独立的家目录(home directory)和配置文件,可以通过终端、SSH等方式登录系统,普通用户的权限仅限于自身资源和授权范围内的系统资源,无法直接影响核心系统文件,既保证了安全性,又满足了日常使用需求,开发人员、运维人员等都会被创建为普通用户,并根据职责分配不同权限。

用户标识:UID与GID

Linux通过用户标识(UID)和组标识(GID)来唯一标识用户和用户组,其中UID是用户的核心身份标识,GID则用于管理用户所属的组。

用户标识(UID)

每个Linux用户都有一个唯一的UID,root用户固定为0,系统用户UID通常为1-999(或1-999),普通用户UID从1000(或自定义值)开始,UID的分配由系统自动完成,管理员也可手动指定,通过 useradd -u 1500 username 可创建UID为1500的用户,UID的重复会导致身份混乱,因此系统中不允许两个用户拥有相同的UID。

组标识(GID)

用户组(Group)是用户的集合,用于简化权限管理,每个用户至少属于一个主组(Primary Group),其GID与用户UID的默认值相同(创建用户时自动生成),用户还可加入多个附加组(Supplementary Groups),以获得其他组的权限,将用户加入docker组后,即可无需sudo执行docker命令,GID的分配规则与UID类似,系统组GID通常较小,普通用户组GID从1000开始。

用户管理核心命令

Linux提供了丰富的命令用于用户管理,包括创建、修改、删除用户及密码管理等操作,这些命令通常需要root权限执行。

Linux系统里具体有哪些用户类型?

用户创建:useradd

useradd是基本的用户创建命令,常用选项包括:

  • -u:指定UID,如 useradd -u 1500 testuser
  • -g:指定主组GID,如 useradd -g 1000 testuser
  • -d:指定家目录,如 useradd -d /home/custom testuser
  • -s:指定登录shell,如 useradd -s /bin/bash testuser(系统用户通常用 /sbin/nologin);
  • -m:自动创建家目录(默认情况下,若未指定家目录,则不创建)。

创建一个普通用户dev,UID为2000,主组为developers(GID为2000),家目录为/home/dev,登录shell为/bin/bash,可执行:

groupadd -g 2000 developers
useradd -u 2000 -g 2000 -d /home/dev -s /bin/bash -m dev

用户修改:usermod

usermod用于修改已存在用户的属性,常用选项与useradd类似:

  • -l:修改用户名,如 usermod -l newname oldname
  • -G:修改附加组,如 usermod -G docker,nginx dev(会覆盖原有附加组,需保留原组可加-a选项);
  • -L:锁定用户,禁止登录,如 usermod -L dev
  • -U:解锁用户,如 usermod -U dev

用户删除:userdel

userdel用于删除用户,默认仅删除用户账户,不删除家目录,若需同时删除家目录和邮件文件,需使用-r选项,如 userdel -r dev,删除用户时,其所属的附加组关系会自动解除,但主组不会被删除(需手动处理)。

密码管理:passwd

passwd用于修改用户密码,普通用户只能修改自己的密码,root用户可修改所有用户密码,常用选项:

  • -l:锁定用户密码,如 passwd -l dev
  • -u:解锁用户密码,如 passwd -u dev
  • -d:清空用户密码,如 passwd -d dev(用户无需密码即可登录,安全性低,慎用);
  • -e:强制用户下次登录时修改密码,如 passwd -e dev

用户配置文件

Linux用户的配置信息主要存储在/etc目录下的几个关键文件中,理解这些文件的结构和作用,有助于手动管理用户或排查用户相关问题。

/etc/passwd文件

/etc/passwd是用户的核心配置文件,记录了每个用户的基本信息,每行代表一个用户,由7个字段组成,用冒号()分隔:

  • 用户名:登录时使用的名称;
  • 密码占位符:早期直接存储密码,现改为x,实际密码存储在/etc/shadow文件中;
  • UID:用户标识;
  • GID:主组标识;
  • 用户描述:可选字段,通常为用户全名或备注信息;
  • 家目录:用户登录后的默认工作目录;
  • 登录shell:用户使用的命令解释器,如/bin/bash/sbin/nologin

/etc/passwd中的一行内容:

Linux系统里具体有哪些用户类型?

dev:x:2000:2000:Developer:/home/dev:/bin/bash

表示用户dev的UID为2000,主组GID为2000,描述为“Developer”,家目录为/home/dev,登录shell为/bin/bash

/etc/shadow文件

/etc/shadow用于存储用户的密码信息,只有root用户可读写,每行对应一个用户,由9个字段组成,用冒号分隔:

  • 用户名:与/etc/passwd中的用户名对应;
  • 加密密码:使用SHA-512等算法加密的密码字符串,若为或,表示密码被锁定或禁用;
  • 最后一次修改密码的时间:自1970年1月1日以来的天数,若为0,表示用户需首次登录修改密码;
  • 密码最小有效期:0表示可随时修改,大于0则需间隔指定天数;
  • 密码最大有效期:超过此天数未修改密码,账户将被锁定;
  • 密码过期警告期:密码过期前多少天开始警告用户;
  • 密码过期后宽限天数:密码过期后多少天内仍可登录;
  • 账户失效时间:自1970年1月1日以来的天数,到期后账户将被锁定;
  • 保留字段:供系统使用,通常为空。

/etc/group文件

/etc/group是用户组的配置文件,记录了系统中的所有组信息,每行代表一个组,由4个字段组成:

  • 组名:组的名称;
  • 组密码占位符:通常为x,组密码存储在/etc/gshadow中;
  • GID:组标识;
  • 组成员:附加组成员列表,用逗号分隔。

/etc/gshadow文件

/etc/gshadow存储组的密码信息和管理员信息,每行对应一个组,包含4个字段:

  • 组名
  • 加密密码:组管理员密码,用于非管理员用户管理组成员;
  • 组管理员:可管理组成员的用户列表,用逗号分隔;
  • 组成员:所有成员(包括主组成员),用逗号分隔。

用户权限与安全实践

Linux用户管理的核心原则是“最小权限原则”,即仅授予用户完成工作所必需的最小权限,以下为常见的安全实践:

  1. 禁用root远程登录:通过修改SSH配置文件/etc/ssh/sshd_config,设置PermitRootLogin no,禁止root用户通过SSH直接登录,降低安全风险。
  2. 使用sudo授权:为普通用户配置sudo权限,允许其执行特定命令(如aptsystemctl等),而非直接赋予root权限,配置文件为/etc/sudoers,建议使用visudo命令编辑。
  3. 定期审计用户:通过last命令查看用户登录历史,/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)记录用户认证日志,及时发现异常登录行为。
  4. 锁定闲置用户:对于长期不使用的账户,使用passwd -l锁定,或通过chage -E 0 username设置账户过期时间。

Linux用户是系统权限管理的基础,通过超级用户、系统用户和普通用户的分类,实现了权限的精细化控制,UID、GID作为核心标识,结合/etc/passwd/etc/shadow等配置文件,构建了完整的用户管理体系,管理员需熟练掌握useraddusermoduserdel等命令,并遵循最小权限原则,通过sudo、定期审计等手段,确保系统安全稳定运行,理解用户管理的底层逻辑,不仅能提升运维效率,更是Linux系统安全防护的重要环节。

赞(0)
未经允许不得转载:好主机测评网 » Linux系统里具体有哪些用户类型?