Linux最小安装后如何正确创建新用户?

在Linux最小安装环境中,系统默认仅包含必要的核心组件,通常不预装图形界面,所有操作均通过命令行完成,新建用户是系统管理的基础操作,既能避免直接使用root用户带来的安全风险,又能实现权限精细化管控,本文将详细讲解Linux最小安装环境下新建用户的完整流程,包括用户/组概念、常用命令、权限配置及安全设置等内容。

linux最小安装如何新建用户

理解Linux用户与组的基本概念

在Linux系统中,用户是系统资源的访问主体,组则是用户的集合,用于简化权限管理,Linux通过用户ID(UID)组ID(GID)标识用户和组,其中UID为0的特殊用户是root(超级用户),拥有系统最高权限,最小安装环境下,默认仅存在root用户,新建普通用户需遵循以下原则:

  • 普通用户:日常操作使用,权限受限,需通过sudo提权执行管理命令。
  • 系统用户:用于运行特定服务(如www、mail),UID通常小于1000,无登录权限。
  • 用户组:每个用户至少属于一个主组(primary group),可加入多个附加组(supplementary groups),便于批量授权。

检查当前用户状态

新建用户前,需确认系统当前用户及组信息,通过以下命令查看:

# 查看所有用户(仅显示用户名)
cut -d: -f1 /etc/passwd  
# 查看所有用户组(仅显示组名)
cut -d: -f1 /etc/group  
# 查看当前登录用户
whoami  

/etc/passwd是用户信息配置文件,每行记录一个用户,格式为:用户名:密码占位符:UID:GID:描述信息:家目录:登录Shell
/etc/group是组信息配置文件,格式为:组名:组密码占位符:GID:组成员列表

使用useradd命令新建用户

useradd是Linux新建用户的核心命令,最小安装环境中需确保该命令已安装(通常默认包含),其常用参数如下表所示:

参数 作用 示例
-m 自动创建用户家目录(默认不创建) useradd -m testuser
-s 指定用户登录Shell(如/bin/bash/sbin/nologin useradd -s /bin/bash testuser
-g 指定用户主组(需组已存在) useradd -g developers testuser
-G 指定用户附加组(多个组用逗号分隔) useradd -G sudo,docker testuser
-u 指定UID(需唯一,普通用户UID≥1000) useradd -u 1001 testuser
-c 添加用户描述信息 useradd -c "Test User" testuser

示例1:新建普通用户(推荐方式)

# 创建用户testuser,家目录为/home/testuser,Shell为/bin/bash,附加组为sudo
sudo useradd -m -s /bin/bash -G sudo testuser  

执行后,系统会自动创建:

  • 家目录:/home/testuser(权限为700,仅用户本人可访问)
  • 配置文件:/etc/passwd(用户记录)、/etc/shadow(密码哈希)、/etc/group(组记录)

示例2:新建系统用户(无登录权限)

# 创建系统用户nginx,UID为999,Shell为/sbin/nologin(禁止登录)
sudo useradd -r -s /sbin/nologin -u 999 nginx  

参数-r表示创建系统用户,不会自动创建家目录,UID默认从系统预留范围(<1000)分配。

设置用户密码

新建用户后,需手动设置密码,否则无法登录,使用passwd命令完成:

# 为testuser用户设置密码(需输入两次密码)
sudo passwd testuser  

密码要求:

  • 长度至少8位,建议包含大小写字母、数字及特殊字符。
  • 避免使用弱密码(如123456password)。

密码信息存储在/etc/shadow文件中,格式为:用户名:密码哈希:最后修改时间:最小密码有效期:最大密码有效期:密码过期警告期:账号非活跃期:账号过期时间,其中密码哈希使用SHA-512算法(默认)。

配置用户权限(sudo授权)

普通用户需通过sudo执行管理命令,避免直接使用root,默认情况下,Ubuntu/Debian系统将用户加入sudo组即可获得权限,而CentOS/RHEL系统需手动配置。

linux最小安装如何新建用户

方法1:将用户加入sudo组(推荐)

# 将testuser加入sudo组(Ubuntu/Debian系统)
sudo usermod -aG sudo testuser  
# 将testuser加入wheel组(CentOS/RHEL系统)
sudo usermod -aG wheel testuser  

参数-aG表示“追加附加组”,避免覆盖原有组。

方法2:编辑sudoers文件(精确控制权限)

若需限制用户执行的命令,可通过visudo命令编辑/etc/sudoers文件(需root权限):

sudo visudo  

在文件末尾添加以下内容(示例):

# 允许testuser执行所有命令,需输入密码
testuser ALL=(ALL:ALL) ALL  
# 允许testuser仅执行重启和关机命令,无需密码
testuser ALL=/sbin/reboot,/sbin/shutdown  

保存后(Ctrl+OEnterCtrl+X),用户即可通过sudo 命令执行管理操作。

验证用户创建

切换用户测试

# 切换到testuser用户(需输入密码)
su - testuser  
# 验证当前用户
whoami  

若切换成功,提示符会变为testuser@hostname:~$

检查用户信息

# 查看testuser的UID、GID、家目录等
id testuser  
# 查看testuser所属组
groups testuser  

输出示例:

uid=1001(testuser) gid=1001(testuser) groups=1001(testuser),27(sudo)  

测试sudo权限

# 尝试查看系统内存(普通用户无权限)
free -h  
# 使用sudo提权查看
sudo free -h  

若提示输入密码,且成功显示内存信息,则sudo配置正确。

安全配置建议

最小安装环境下,安全尤为重要,建议完成以下配置:

禁用root远程登录

编辑SSH配置文件/etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config  

找到PermitRootLogin yes,改为PermitRootLogin no,保存后重启SSH服务:

linux最小安装如何新建用户

sudo systemctl restart sshd  

设置密码策略

使用chage命令管理密码策略(示例:设置testuser密码每90天过期,提前7天警告):

sudo chage -M 90 -W 7 testuser  

查看密码策略:

sudo chage -l testuser  

锁定闲置用户

若某用户长期未使用,可锁定其账户(禁止登录):

sudo usermod -L testuser  

解锁:

sudo usermod -U testuser  

相关问答FAQs

Q1:忘记root密码怎么办?
A:在最小安装环境下,可通过单用户模式重置root密码:

  1. 重启系统,在GRUB引导界面按e进入编辑模式;
  2. 找到以linuxlinux16开头的行,在行尾添加rd.break
  3. Ctrl+X进入紧急模式,执行以下命令:
    mount -o remount,rw /sysroot  
    chroot /sysroot  
    passwd root  # 设置新密码  
    touch /.autorelabel  # 修复SELinux上下文(若启用)  
    exit  
    reboot  
  4. 系统重启后,新密码生效。

Q2:如何删除已创建的用户?
A:使用userdel命令删除用户,推荐参数-r(同时删除家目录和邮件文件):

# 删除testuser及其家目录
sudo userdel -r testuser  
# 仅删除用户,保留家目录(适用于重要数据)
sudo userdel testuser  

若用户正在运行进程,需先终止进程(pkill -u testuser),或强制删除(userdel -f testuser)。

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

(0)
酷番叔酷番叔
上一篇 2025年9月28日 16:57
下一篇 2025年9月28日 17:11

相关推荐

  • 如何用光盘安装Linux并下载视频教程?

    为什么选择光盘安装Linux?光盘安装是最稳定可靠的Linux安装方式之一,尤其适合:无U盘或网络环境差的用户需要反复安装/修复系统的场景确保安装文件无篡改(通过校验ISO完整性)📌 专业提示:根据Linux基金会2023年报告,光盘安装的成功率比U盘高15%,且能避免U盘兼容性问题,准备工作清单工具要求注意事……

    2025年7月18日
    4600
  • 如何查看所有普通用户名

    在Linux系统中,查看用户数量是系统管理的基础操作,以下是几种可靠的方法,适用于大多数Linux发行版(如Ubuntu、CentOS、Debian等),并区分了所有用户和可登录的普通用户的统计方式:统计所有用户数量(含系统用户)系统用户(UID<1000)用于运行服务,普通用户(UID≥1000)用于日……

    2025年8月6日
    3700
  • Win10如何引导Linux系统?

    在Windows 10系统中引导Linux系统,通常通过双系统实现,核心在于合理规划分区、正确配置引导加载程序,并确保硬件兼容性,以下是详细步骤和注意事项,帮助顺利完成安装,准备工作备份重要数据分区操作有数据丢失风险,需提前备份Windows 10中的文件、系统镜像等关键数据至移动硬盘或云端,下载Linux发行……

    2025年9月25日
    2300
  • Linux如何高效查看日历?命令行与图形界面技巧

    命令行工具(高效快捷)cal 命令(基础日历)基本使用:终端输入 cal 直接显示当前月日历:$ cal 七月 2024日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 31扩展……

    2025年6月16日
    4900
  • Linux下DB2用户权限怎么设才安全?

    权限类型说明实例级权限SYSADM:超级管理员(通过dbm cfg配置)SYSCTRL:实例控制(启停/备份)SYSMAINT:维护权限(备份/恢复)配置命令: db2 update dbm cfg using SYSADM_GROUP db2admgrp # 将组赋予SYSADM数据库级权限DBADM:数据库……

    2025年7月29日
    4200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信