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如何注释代码?常用方法与操作步骤解析

    在Linux系统中,注释是提升代码、配置文件可读性和可维护性的重要手段,通过标记说明代码逻辑、配置用途或注意事项,帮助开发者快速理解内容,不同场景下的注释方法存在差异,需根据文件类型和语法规范选择合适的注释方式,以下从Shell脚本、配置文件、编程语言及文档注释等场景展开详细说明,并附注意事项和常见问题解答,S……

    2025年8月30日
    2600
  • Linux进文件夹难吗?秒懂两种方法!

    命令行方式(终端操作)命令行是Linux的核心操作方式,使用cd(Change Directory)命令进入文件夹,基本语法:cd [文件夹路径]常见场景与示例进入当前目录下的子文件夹cd Documents # 进入当前目录下的Documents文件夹使用绝对路径进入任意位置cd /home/user/Dow……

    2025年7月6日
    5500
  • Linux系统如何更改文件权限并设置用户密码?

    在Linux系统中,权限管理和密码设置是系统安全的核心操作,合理配置权限和密码能有效防止未授权访问和数据泄露,本文将详细讲解Linux中文件/目录权限的更改方法以及用户密码的设置与修改,帮助用户掌握基础且实用的系统管理技能,Linux权限更改:chmod命令详解Linux文件权限分为读(r)、写(w)、执行(x……

    2025年9月19日
    2100
  • linux中如何切换用胡

    Linux中切换用户,可用su 用户名(切换到指定用户)

    2025年8月19日
    3200
  • 如何用vm安装linux系统

    VM中安装Linux系统,需先创建新虚拟机,配置硬件资源与网络,加载Linux

    2025年8月19日
    3500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信