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位,建议包含大小写字母、数字及特殊字符。
  • 避免使用弱密码(如123456、password)。

密码信息存储在/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+O,Enter,Ctrl+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. 找到以linux或linux16开头的行,在行尾添加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系统中,修改文件后无法保存是常见问题,可能涉及权限、磁盘空间、文件占用、系统状态等多种因素,以下从常见原因出发,逐步排查并提供解决方法,帮助快速定位并解决问题,常见原因及解决方法文件权限不足症状:保存时提示“Permission denied”(权限拒绝),通常发生在普通用户修改root权限文件或非……

    2025年9月20日
    33400
  • Linux启动参数如何掌握?

    Linux启动选项是内核参数,用于控制系统初始化行为,如调整硬件检测、选择运行模式或进入救援状态等。

    2025年7月30日
    39400
  • Linux恢复模式无法启动如何还原系统?

    当Linux恢复模式无法启动时,可通过Live CD/USB引导系统,挂载原系统分区,备份关键数据并执行修复操作(如重装引导、修复损坏包或还原系统快照)。

    2025年7月31日
    26200
  • Linux系统中,如何查看当前的主机名?有哪些方法?

    Linux主机名是网络中标识设备的唯一名称,用于区分不同服务器、终端或虚拟机,在系统管理、网络通信、日志记录等场景中至关重要,掌握查看主机名的方法是Linux运维的基础技能,本文将详细介绍多种查看方式,涵盖命令行工具、配置文件及图形界面,并分析不同方法的适用场景和输出差异,使用hostname命令查看主机名ho……

    2025年9月29日
    29700
  • Linux中bool命令的具体使用方法是什么?

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

    2025年9月13日
    21300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信