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

相关推荐

  • Ubuntu升级后系统崩溃?如何避免

    Linux perf 是 Linux 内核内置的性能分析工具(全称 Performance Counters for Linux),它直接利用 CPU 的性能监控单元(PMU)和内核跟踪点,提供低开销、高精度的性能数据采集能力,无论是分析 CPU 瓶颈、内存访问、函数调用关系还是系统调用,perf 都是 Lin……

    2025年6月20日
    15400
  • Linux关机为何不能直接断电?

    规范关机对Linux系统稳定性和数据安全至关重要,避免直接断电导致文件损坏、数据丢失或硬件损伤,本文介绍多种经过验证的关机方法,适用于不同使用场景。

    2025年7月15日
    17900
  • Linux创建账户密码的具体操作步骤有哪些?

    在Linux系统中,创建和管理用户账户是系统管理的基础操作,正确创建账户并设置安全密码对系统安全至关重要,Linux系统提供了多种命令行工具来完成账户创建和密码管理,其中最常用的是useradd和adduser命令,以及passwd命令用于设置或修改密码,本文将详细介绍Linux系统中创建账户和密码的完整流程……

    2025年10月7日
    12700
  • Linux 如何查询进程的线程数?

    在Linux系统中,线程是进程内的执行单元,多个线程共享进程的资源(如内存空间、文件描述符等),查询线程数对于系统性能监控、问题排查(如线程泄漏)等场景至关重要,Linux下查询线程数的方法多样,可通过命令行工具、系统接口等实现,本文将详细介绍常用方法及其实际应用,使用ps命令查询线程数ps(Process S……

    2025年9月18日
    15500
  • Linux中lseek函数如何创建空洞文件?具体实现步骤是怎样的?

    在Linux文件系统中,空洞文件(Sparse File)是一种特殊文件,其逻辑上存在连续的数据区域,但部分区域并未实际存储数据(即“空洞”),这些空洞不占用磁盘空间,直到有数据写入时才会分配物理块,创建空洞文件的核心在于利用lseek函数调整文件读写偏移量,在未写入数据的情况下扩展文件大小,从而形成逻辑上的空……

    2025年8月31日
    16400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信