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如何以daemon方式运行程序?

    在Linux系统中,守护进程(Daemon)是一种在后台运行、独立于终端的进程,通常用于提供系统服务或周期性执行任务,如Web服务器、数据库服务、日志轮转等,守护进程的创建和管理需要遵循特定规范,以确保其稳定运行且与系统环境兼容,以下是Linux中以daemon方式运行进程的详细方法,涵盖手动创建和system……

    2025年8月25日
    5600
  • LinuxONE如何让企业Linux更强大?

    LinuxONE 是 IBM 专为企业关键业务设计的 Linux 服务器平台,提供卓越的安全性、可靠性和极致扩展能力,是支撑核心业务高效运行的强大基石。

    2025年7月31日
    7100
  • 如何远程登录Linux桌面?方法、工具及步骤详解?

    远程登录Linux桌面是许多运维人员和开发者的日常需求,无论是管理服务器还是远程办公,掌握正确的远程登录方法能显著提升工作效率,Linux系统支持多种远程桌面协议,每种协议都有其特点和适用场景,下面将详细介绍几种主流的远程登录Linux桌面的方法,包括具体操作步骤和注意事项,需要明确远程登录Linux桌面的核心……

    2025年9月25日
    4400
  • linux 如何监控cpu使用率

    Linux中,可以使用top、htop或vmstat等命令来

    2025年8月17日
    6500
  • Linux如何快速显示文本行号?

    基础命令:cat + -n / -b作用:快速显示文件内容并添加行号语法:cat -n 文件名 # 显示所有行号(包括空行)cat -b 文件名 # 仅显示非空行的行号(空行跳过)示例:cat -n log.txt输出效果: 1 第一行内容 2 第二行内容 3 4 第四行内容专业行号工具:nl作用:专为行号设计……

    2025年8月7日
    5900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信