Linux如何添加用户及用户组?

在Linux系统中,用户和用户组是管理文件权限、系统资源访问和安全性的核心机制,合理添加和管理用户及用户组,既能保障系统安全,又能实现多用户协同工作,本文将详细介绍Linux环境下添加用户和用户组的操作方法、常用参数及注意事项。

linux如何添加用户和用户组

用户组管理基础

用户组(Group)是用户的集合,通过将用户划分到不同组,可以简化权限管理,将开发人员加入devops组,统一授予目录读写权限,而无需为每个用户单独设置,Linux用户组分为两类:主要组(Primary Group)附加组(Supplementary Group),每个用户有且仅有一个主要组,通常与用户名同名,可同时属于多个附加组。

添加用户组

使用groupadd命令可创建新用户组,基本语法为:

groupadd [选项] 组名

常用参数如下:

参数 说明 示例
-g, --gid GID 指定组ID(GID),需唯一,默认系统分配 groupadd -g 1001 devops
-r, --system 创建系统组,GID小于999(系统保留范围) groupadd -r systemd-coredump
-f, --force 组已存在时提示而非报错 groupadd -f testgroup

示例
创建普通用户组developers

groupadd developers

创建系统组syslog(GID自动分配为系统保留值):

groupadd -r syslog

修改与删除用户组

  • 修改组信息:使用groupmod命令,可重命名组或修改GID:
    # 修改组名
    groupmod -n newgroup oldgroup
    # 修改GID
    groupmod -g 1002 developers
  • 删除用户组:使用groupdel命令,若组内仍有用户,需先移除用户或强制删除(可能导致用户无有效组):
    groupdel developers

用户管理操作

用户(User)是系统的操作主体,每个用户拥有唯一的UID(用户ID)和主要组,添加用户时,系统会默认创建与用户名同名的家目录(/home/用户名),并设置基本配置文件。

linux如何添加用户和用户组

添加用户

使用useradd命令(或adduser,后者为交互式脚本),基本语法为:

useradd [选项] 用户名

常用参数如下:

参数 说明 示例
-u, --uid UID 指定UID,需唯一(普通用户UID≥1000,系统用户<1000) useradd -u 1001 zhangsan
-g, --gid 组名 指定主要组,若组不存在需先创建 useradd -g developers zhangsan
-G, --groups 组名 指定附加组,多个组用逗号分隔 useradd -G sudo,devops zhangsan
-d, --home-dir 目录 指定家目录路径,默认/home/用户名 useradd -d /data/projects zhangsan
-m, --create-home 自动创建家目录(默认行为,-d未指定时生效) useradd -m lisi
-s, --shell Shell 指定登录Shell,如/bin/bash(默认)、/bin/false(禁止登录) useradd -s /bin/bash zhangsan
-c, --comment 注释 添加用户注释信息(如真实姓名) useradd -c "Zhang San" zhangsan
-r, --system 创建系统用户,无家目录、Shell,UID<1000 useradd -r nginx

示例
创建普通用户zhangsan,指定主要组developers,附加组sudo,家目录/home/zhangsan,Shell为/bin/bash

useradd -m -s /bin/bash -g developers -G sudo zhangsan

创建系统用户mysql,无登录权限,UID为998:

useradd -r -u 998 -s /bin/false mysql

设置用户密码

新建用户默认无密码或密码为空,需通过passwd命令设置:

# 为当前用户或指定用户设置密码
passwd zhangsan
# 强制用户下次登录修改密码
passwd --expire zhangsan

输入密码时不会显示字符,需连续输入两次并确认。

linux如何添加用户和用户组

修改用户信息

使用usermod命令可修改用户属性(需root权限):

# 修改用户名
usermod -l newname oldname
# 修改主要组
usermod -g newgroup zhangsan
# 添加/修改附加组(覆盖原附加组)
usermod -G docker,webdev zhangsan
# 追加附加组(保留原附加组)
usermod -aG docker zhangsan
# 锁定/解锁用户账户
usermod -L zhangsan  # 锁定(无法登录)
usermod -U zhangsan  # 解锁

删除用户

使用userdel命令,可选择性删除家目录和邮件文件:

# 仅删除用户,保留家目录
userdel zhangsan
# 删除用户及家目录、邮件文件
userdel -r zhangsan

注意事项

  1. UID与GID冲突:手动指定UID/GID时,需确保系统中唯一,可通过cat /etc/passwd | cut -d: -f3查看已用UID。
  2. 系统用户与普通用户:系统用户(如nginxmysql)用于服务进程,禁止登录;普通用户用于日常操作,需分配有效Shell。
  3. 家目录权限:默认家目录权限为700(仅用户可访问),若需共享目录,可通过chmod或设置SGID位实现组内共享。

相关问答FAQs

Q1:如何查看系统中所有用户和用户组?
A:可通过以下命令查看:

  • 查看所有用户:cat /etc/passwd | cut -d: -f1(显示用户名)或getent passwd | cut -d: -f1(包含系统用户);
  • 查看所有用户组:cat /etc/group | cut -d: -f1getent group | cut -d: -f1
  • 查看用户所属组:groups 用户名id -Gn 用户名

Q2:添加用户时如何禁止其登录系统?
A:可通过指定无效Shell实现,例如使用/bin/false/sbin/nologin

useradd -s /sbin/nologin backupuser

该用户可执行命令(如通过sudo或服务调用),但无法通过SSH、控制台等直接登录。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/30906.html

(0)
酷番叔酷番叔
上一篇 2025年9月26日 19:38
下一篇 2025年9月26日 20:14

相关推荐

  • linux如何追踪软连接

    使用ls -l命令查看软连接指向的目标,或用readlink直接显示

    2025年8月9日
    10000
  • Linux Ubuntu如何给用户分配管理员权限?

    在Linux Ubuntu系统中,管理员权限通常指的是能够执行系统级操作(如安装软件、修改系统配置、管理用户等)的权限,Ubuntu默认禁用root账户登录,推荐使用sudo命令来临时提升权限,这种设计既保证了系统安全,又方便日常管理,本文将详细介绍如何在Ubuntu中为用户配置管理员权限,包括通过sudo组授……

    2025年8月28日
    11400
  • Linux如何安装JavaScript运行环境?

    在Linux系统中安装JavaScript并非直接安装语言本身,而是为其搭建运行环境,JavaScript作为一种脚本语言,需要在特定的运行时环境中执行,而目前最主流的JavaScript运行时是Node.js,Linux下“安装JavaScript”通常指安装Node.js及其包管理器npm(Node Pac……

    2025年8月28日
    10400
  • Linux中bool命令的具体使用方法是什么?

    在Linux系统中,并没有名为“bool”的独立命令,但“bool”通常指代布尔逻辑(Boolean Logic)的测试与判断,这一功能主要通过内置的test命令及其别名[、[[实现,test命令是Shell脚本中进行条件判断的核心工具,通过测试表达式返回真(0)或假(非0),配合if、while等控制结构实现……

    2025年9月13日
    8900
  • 如何用U盘制作Linux DVD启动盘?

    制作Linux DVD启动U盘是许多用户在没有光驱的电脑上安装Linux系统的常用方法,尤其适用于需要完整安装包(包含大量软件包)的Linux发行版,以下是详细的制作步骤和注意事项,帮助用户顺利完成操作,准备工作在开始制作前,需确保以下物品和条件准备就绪:Linux ISO镜像文件:从目标Linux发行版官网下……

    2025年8月25日
    10500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信