Linux如何创建新用户?

在Linux系统中,用户管理是系统运维的基础操作之一,创建新用户是确保系统安全、实现多用户协作的关键步骤,Linux通过用户(User)和用户组(Group)的概念实现权限隔离,每个用户拥有唯一的UID(用户标识符)和GID(组标识符),通过权限控制文件访问、命令执行等操作,本文将详细介绍Linux中创建新用户的方法、常用参数及相关管理操作,帮助用户全面掌握用户管理技能。

linux如何创建新用户

Linux用户管理基础

Linux用户分为三类:超级用户(root,UID为0)、系统用户(UID通常为1-999,用于运行系统服务)和普通用户(UID通常从1000开始,供日常使用),创建新用户时,系统会默认为其分配一个UID,并创建一个同名用户组作为主用户组(GID与UID相同),同时在家目录(/home/用户名)下生成用户配置文件(如.bashrc、.profile等),确保用户拥有独立的操作环境。

创建用户的核心命令主要有两个:useradd(低级命令,功能灵活但参数较多)和adduser(高级命令,交互式操作,适合新手),两者均可完成用户创建,但useradd更适合脚本自动化,而adduser更适合手动操作。

使用useradd创建新用户

useradd是Linux中最基础的创建用户命令,通过参数可以灵活控制用户属性(如UID、家目录、登录Shell等),其基本语法为:

useradd [选项] 用户名

常用参数说明

为方便理解,以下通过表格列举useradd的常用参数及作用:

参数 说明 示例
-u 指定用户的UID(需确保唯一) useradd -u 2000 testuser
-d 指定用户家目录(默认为/home/用户名) useradd -d /data/test testuser
-m 自动创建家目录(若未指定-d,则默认创建/home/用户名) useradd -m testuser
-s 指定登录Shell(默认为/bin/bash,可设置为/bin/nologin禁止登录) useradd -s /bin/sh testuser
-g 指定主用户组(需提前存在,或使用-G添加附加组) useradd -g developers testuser
-G 指定附加用户组(多个组用逗号分隔) useradd -G sudo,docker testuser
-c 添加用户注释信息(如用户全名) useradd -c "Test User" testuser
-r 创建系统用户(无家目录、Shell为/bin/false,UID在系统范围内) useradd -r systemd-network
-p 指定初始密码(不推荐,密码明文显示;建议创建后用passwd设置) useradd -p 123456 testuser

示例操作

  1. 创建普通用户(默认方式)
    执行useradd testuser,系统会自动创建名为testuser的用户,UID从1000开始递增,家目录为/home/testuser,Shell为/bin/bash,并创建同名主用户组testuser

  2. 创建带自定义属性的用户
    若需指定UID、家目录和附加组,可执行:

    useradd -u 1500 -d /opt/custom -m -G sudo,developers -c "Developer User" devuser

    该命令会创建用户devuser,UID为1500,家目录为/opt/custom(自动创建),附加组为sudodevelopers,注释为“Developer User”。

  3. 创建系统用户
    运行系统服务(如MySQL、Nginx)时,需创建无登录权限的系统用户:

    useradd -r -s /bin/false nginx

    此处-r表示系统用户,-s /bin/false禁止其通过Shell登录。

使用adduser创建新用户

adduseruseradd的封装工具,在Debian/Ubuntu等发行版中默认安装,采用交互式提示引导用户输入信息,无需记忆复杂参数,适合新手使用,其基本语法为:

adduser [选项] 用户名

示例操作

执行adduser newuser后,系统会依次提示:

linux如何创建新用户

  • 用户名(默认直接回车使用命令中的用户名)
  • 初始密码(需输入两次,不显示明文)
  • 用户全名(可选,直接回车跳过)
  • 房间号、电话等额外信息(均可选,回车跳过)
  • 确认信息(输入Y确认创建)
sudo adduser alice
# 输出:
# Adding user 'alice' ...
# Adding new group 'alice' (1001) ...
# Adding new user 'alice' (1001) with group 'alice' ...
# Create home '/home/alice'? [y/N] y  # 确认创建家目录
# Copying files from '/etc/skel' ...   # 从模板目录复制配置文件
# New password:                        # 输入密码
# Retype new password:                 # 确认密码
# passwd: password updated successfully
# Changing the user information for alice
# Enter the new value, or press ENTER for the default
#         Full Name []: Alice Wang      # 用户全名
#         Room Number []: 
#         Work Phone []: 
#         Home Phone []: 
#         Other []: 
# Is the information correct? [Y/n] Y   # 确认信息

创建完成后,用户alice即可使用设置的密码登录系统,家目录/home/alice会自动生成,并包含/etc/skel目录下的默认配置文件(如.bashrc.profile等)。

创建用户后的必要操作

设置/修改用户密码

无论使用useradd还是adduser,若未通过-p参数指定密码(或adduser未设置密码),用户无法登录,需使用passwd命令设置密码:

passwd username  # 普通用户可修改自己的密码,root可修改任意用户密码

passwd testuser,输入两次密码即可完成设置,若需强制用户下次登录时修改密码,可执行:

passwd --expire testuser  # 下次登录时需先设置新密码

修改用户属性

若需调整用户属性(如家目录、附加组、Shell等),可使用usermod命令(参数与useradd基本一致):

# 修改用户名
usermod -l newname oldname  
# 修改家目录(需确保目录存在或使用-m自动移动)
usermod -d /new/home -m testuser  
# 添加/移除附加组
usermod -aG docker testuser  # -a表示追加,避免覆盖原有附加组
usermod -G sudo testuser     # 直接设置附加组(覆盖原有组)
# 禁止/允许用户登录
usermod -s /bin/nologin testuser  # 禁止登录(仍可通过SSH密钥或其他服务登录)
usermod -s /bin/bash testuser     # 恢复登录权限

删除用户

若不再需要某用户,可使用userdel命令删除:

userdel username          # 仅删除用户,保留家目录
userdel -r username       # 删除用户及家目录、邮件文件(推荐)

userdel -r testuser会彻底删除用户testuser及其家目录下的所有文件。

用户权限管理(sudo配置)

默认情况下,普通用户无法执行需要管理员权限的操作(如安装软件、修改系统文件),若需让普通用户拥有部分管理员权限,可将其加入sudo组(或编辑/etc/sudoers文件)。

方法1:将用户加入sudo组

在Ubuntu/Debian中,sudo组已配置好sudo权限,直接将用户加入该组即可:

usermod -aG sudo username

在CentOS/RHEL中,对应组为wheel

usermod -aG wheel username

方法2:编辑sudoers文件(高级配置)

使用visudo命令编辑/etc/sudoers文件(语法检查,避免错误):

visudo

在文件末尾添加以下内容,允许用户username执行所有命令(需输入密码):

linux如何创建新用户

username ALL=(ALL:ALL) ALL

或仅允许执行特定命令(如aptsystemctl):

username ALL=(ALL:ALL) /usr/bin/apt, /bin/systemctl

相关问答FAQs

Q1:创建用户后无法登录,提示“Authentication failure”,如何解决?
A:可能原因及解决方法:

  1. 密码错误:确认输入的密码正确(注意大小写、空格等),可通过passwd username重置密码。
  2. Shell权限问题:检查用户登录Shell是否被禁用(执行grep username /etc/passwd,若显示/bin/nologin则无法登录),需用usermod -s /bin/bash username修改。
  3. 家目录权限错误:确保家目录所有者为用户(执行ls -ld /home/username,若所有者不是username:username,需用chown -R username:username /home/username修复)。
  4. SSH服务配置问题:若通过SSH远程登录,检查/etc/ssh/sshd_configPermitRootLoginPasswordAuthentication是否被禁用,需重启SSH服务(systemctl restart sshd)。

Q2:如何批量创建多个用户?
A:可通过以下两种方式批量创建用户:

  1. 使用newusers命令(需提前准备用户列表文件)
    创建一个文本文件(如users.txt),每行格式为用户名:密码:UID:GID:注释:家目录:Shell

    user1:123456:1001:1001:User1:/home/user1:/bin/bash
    user2:654321:1002:1002:User2:/home/user2:/bin/bash

    执行newusers users.txt导入用户,然后使用chpasswd批量设置密码(若未在文件中指定密码):

    echo -e "user1:password1nuser2:password2" | chpasswd
  2. 使用循环脚本(适用于动态生成用户)
    创建10个用户(user01-user10),密码为“Passwd@123”:

    for i in {01..10}; do
        useradd -m "user$i"
        echo "Passwd@123" | passwd --stdin "user$i"
    done

    此方法需确保系统已安装passwd--stdin选项(CentOS/RHEL默认支持,Ubuntu需安装whois包)。

批量创建用户后,建议检查/etc/passwd/etc/shadow文件确认用户信息正确,并清理临时文件。

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

(0)
酷番叔酷番叔
上一篇 2025年8月27日 22:00
下一篇 2025年8月27日 22:18

相关推荐

  • 如何用8种命令高效查看Linux文件?

    基础查看命令cat一次性输出)cat filename.txt特点:直接显示整个文件内容(适合小文件)致命缺陷:大文件会导致终端刷屏(可用Ctrl+C中断)高级技巧: cat -n filename.txt # 显示行号cat file1 file2 > combined.txt # 合并多个文件less……

    2025年7月19日
    6700
  • Linux如何创建数据库文件夹的链接?

    在Linux系统中,链接数据库文件夹是一项常见操作,主要用于数据迁移、存储空间优化、多环境配置统一等场景,通过符号链接(软链接)或硬链接,可以将数据库的数据目录、配置文件或日志目录指向其他路径,既保留原文件的可访问性,又能灵活管理存储资源,本文将详细说明链接数据库文件夹的操作方法、注意事项及不同数据库的实践差异……

    2025年9月21日
    4800
  • Linux挂载移动硬盘怎么操作?

    挂载前准备连接硬盘使用USB/SATA线连接硬盘,系统通常自动识别(部分旧硬盘需外接电源),终端输入 lsblk 或 sudo fdisk -l 查看硬盘设备标识(如 /dev/sdb1),创建挂载点sudo mkdir /mnt/mydrive # 在/mnt下创建目录作为挂载点手动挂载步骤确定文件系统类型运……

    2025年7月9日
    6900
  • Linux Shell如何注释多行?

    在Linux Shell脚本编程中,注释是提升代码可读性和维护性的重要手段,虽然Shell脚本没有像其他编程语言(如Python的或Java的)那样的专门多行注释语法,但通过组合现有命令和语法特性,可以实现多行注释的效果,本文将详细介绍几种常用的多行注释方法,分析其原理、适用场景及注意事项,并通过表格对比不同方……

    2025年9月19日
    4400
  • Linux系统如何重启备份服务器?操作步骤有哪些?

    在Linux系统中重启备份服务器需要谨慎操作,尤其是备份服务器通常存储着关键业务数据,不当的重启可能导致数据丢失或服务中断,以下是详细的操作步骤、注意事项及验证方法,确保重启过程安全可靠,重启前的准备工作重启前必须完成准备工作,最大限度降低风险:确认备份任务状态检查是否有正在运行的备份任务,避免重启导致备份中断……

    2025年9月9日
    4800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信