news 2026/1/12 14:02:48

【Linux命令大全】004.系统管理之adduser命令(实操篇)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Linux命令大全】004.系统管理之adduser命令(实操篇)

【Linux命令大全】004.系统管理之adduser命令(实操篇)

✨ 本文为Linux系统管理命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。

(关注不迷路哈!!!)

文章目录

  • 【Linux命令大全】004.系统管理之adduser命令(实操篇)
    • 一、功能与作用
    • 二、基本用法
      • 1. 创建新用户
      • 2. 指定登录shell
      • 3. 创建无密码用户
      • 4. 查看默认配置
      • 5. 快速创建用户
      • 6. 创建系统用户
    • 三、高级用法
      • 1. 自定义用户信息
      • 2. 指定用户ID和组
      • 3. 不创建主目录
      • 4. 配置模板目录
      • 5. 批量创建用户
      • 6. 与其他命令结合使用
    • 四、实用技巧与常见问题
      • 实用技巧
      • 常见问题
    • 五、总结

一、功能与作用

adduser命令是Linux系统中的一个用户账户创建工具,它是useradd命令的高级封装,通常提供交互式界面,引导用户设置用户名、密码、主目录等信息。adduser命令在Debian/Ubuntu等系统中特别常用,它会自动创建用户主目录、设置默认shell、复制skel文件等,极大简化了用户创建过程,适合系统管理员日常使用。

参数详解

参数说明
-D显示默认配置
-h显示帮助信息
-s shell指定登录 shell
--disabled-password创建无密码用户
--gecos GECOS设置用户的GECOS字段
--no-create-home不创建主目录
--uid UID指定用户ID

二、基本用法

1. 创建新用户

使用adduser命令最基本的功能是创建新用户,系统会引导你完成一系列设置:

# 创建新用户,系统会引导设置密码等信息sudoadduser john# 执行过程示例# Enter new UNIX password: # 输入密码# Retype new UNIX password: # 确认密码# passwd: password updated successfully# Changing the user information for john# Enter the new value, or press ENTER for the default# Full Name []: John Doe# Room Number []: 101# Work Phone []: 123-4567# Home Phone []: 987-6543# Other []:# Is the information correct? [Y/n] y

2. 指定登录shell

使用-s参数可以指定用户的登录shell:

# 创建用户并指定bash作为登录shellsudoadduser -s /bin/bash alice# 创建用户并指定zsh作为登录shellsudoadduser -s /bin/zsh bob# 创建用户并指定dash作为登录shellsudoadduser -s /bin/dash charlie# 创建无法登录的系统用户(使用nologin)sudoadduser -s /sbin/nologin systemuser

3. 创建无密码用户

使用--disabled-password参数可以创建无密码用户,用户无法使用密码登录,但可以通过其他方式(如SSH密钥)登录:

# 创建无密码用户sudoadduser --disabled-password dave# 为无密码用户设置SSH密钥登录(需要手动配置)sudomkdir-p /home/dave/.sshsudochmod700/home/dave/.sshsudotouch/home/dave/.ssh/authorized_keyssudochmod600/home/dave/.ssh/authorized_keyssudochown-R dave:dave /home/dave/.ssh# 然后将公钥添加到authorized_keys文件中

4. 查看默认配置

使用-D参数可以查看adduser命令的默认配置:

# 查看adduser默认配置sudoadduser -D# 输出示例# GROUP=100# HOME=/home# INACTIVE=-1# EXPIRE=# SHELL=/bin/bash# SKEL=/etc/skel# CREATE_MAIL_SPOOL=no

5. 快速创建用户

如果你已经熟悉流程,可以使用非交互式方式快速创建用户:

# 非交互式创建用户(仅指定用户名)sudoadduser --gecos""--disabled-password eve# 完全自动化创建用户(在脚本中使用)sudoadduser --gecos"Test User"--disabled-password --quiet frank# 创建用户并自动设置密码(在脚本中使用)# 注意:这种方式密码会明文显示在命令历史中,仅在安全环境下使用echo"george:Password123"|sudochpasswdsudoadduser --gecos"George User"george

6. 创建系统用户

使用--system参数可以创建系统用户(通常用于运行服务):

# 创建系统用户sudoadduser --system --group --no-create-home mysql# 创建系统用户并指定shellsudoadduser --system --shell /bin/false nginx# 创建系统用户并指定UIDsudoadduser --system --uid999apache

三、高级用法

1. 自定义用户信息

使用--gecos参数可以自定义用户的GECOS字段(包含全名、办公室、电话等信息):

# 自定义用户信息sudoadduser --gecos"Alice Smith,IT Department,123-4567,987-6543"alice# 仅设置全名sudoadduser --gecos"Bob Johnson"bob# 清空所有GECOS字段sudoadduser --gecos""charlie

2. 指定用户ID和组

使用--uid参数可以指定用户ID,使用--gid参数可以指定用户的主组ID:

# 指定用户ID和主组IDsudoadduser --uid1001--gid1001david# 指定用户ID和主组名sudoadduser --uid1002--gid developers emily# 创建用户并添加到多个附加组sudoadduser franksudousermod-aG sudo,admins,developers frank

3. 不创建主目录

使用--no-create-home参数可以创建用户但不创建对应的主目录:

# 创建用户但不创建主目录sudoadduser --no-create-home guest# 创建系统用户且不创建主目录sudoadduser --system --no-create-home serviceuser# 创建用户不创建主目录但指定shellsudoadduser --no-create-home --shell /bin/rbash tempuser

4. 配置模板目录

adduser命令会从模板目录(默认为/etc/skel)复制默认配置文件到新用户的主目录。你可以自定义这个模板目录:

# 创建自定义模板目录mkdir-p /etc/custom-skelcp-r /etc/skel/.bashrc /etc/skel/.profile /etc/custom-skel/# 编辑自定义模板文件nano/etc/custom-skel/.bashrc# 使用自定义模板目录创建用户sudoadduser --skel /etc/custom-skel grace# 验证模板文件是否已复制ls-la /home/grace/

5. 批量创建用户

在系统管理中,有时需要批量创建多个用户。可以编写简单的脚本来实现:

# 创建批量用户脚本cat>create_users.sh<<'EOF' #!/bin/bash # 检查是否以root权限运行 if [ "$EUID" -ne 0 ] then echo "请以root权限运行此脚本" exit fi # 从文件读取用户名列表 if [ -f "$1" ] then # 读取文件中的每个用户名 while IFS= read -r username do # 跳过空行和注释行 if [[ -z "$username" || "$username" == \#* ]]; then continue fi echo "正在创建用户: $username" # 创建用户 adduser --gecos "" --disabled-password "$username" # 为用户设置默认密码 echo "$username:ChangeMe123" | chpasswd # 强制用户首次登录时修改密码 chage -d 0 "$username" echo "用户 $username 创建完成" done < "$1" else echo "用法: $0 <用户列表文件>" exit 1 fi EOF# 使脚本可执行chmod+x create_users.sh# 创建用户列表文件echo"user1\nuser2\nuser3">user_list.txt# 运行脚本批量创建用户sudo./create_users.sh user_list.txt

6. 与其他命令结合使用

adduser命令可以与其他命令结合使用,实现更复杂的用户管理任务:

# 创建用户并添加到sudo组sudoadduser john&&sudousermod-aGsudojohn# 创建用户并设置密码过期策略sudoadduser marysudochage -M90-W14mary# 创建用户并设置主目录权限sudoadduser petersudochmod700/home/peter# 创建用户并配置SSH密钥登录sudoadduser paulsudomkdir-p /home/paul/.sshsudochmod700/home/paul/.sshecho"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3..."|sudotee/home/paul/.ssh/authorized_keyssudochmod600/home/paul/.ssh/authorized_keyssudochown-R paul:paul /home/paul/.ssh

四、实用技巧与常见问题

实用技巧

  1. 查看用户列表:使用cut命令可以快速查看系统中的用户列表:

    # 查看系统中的用户列表cut-d: -f1 /etc/passwd# 查看最近创建的用户tail-n10/etc/passwd
  2. 检查用户是否存在:在创建用户前,可以先检查该用户是否已存在:

    # 检查用户是否存在ifid"john"&>/dev/null;thenecho"用户 john 已存在"elseecho"用户 john 不存在,正在创建..."sudoadduser johnfi
  3. 复制用户配置:如果你想创建一个与现有用户配置相似的新用户,可以复制其主目录和设置:

    # 创建新用户sudoadduser newuser# 复制现有用户的配置(假设现有用户为olduser)sudocp-r /home/olduser/.bashrc /home/olduser/.profile /home/olduser/.vimrc /home/newuser/sudochown-R newuser:newuser /home/newuser
  4. 设置用户资源限制:可以通过编辑/etc/security/limits.conf文件来设置用户的资源限制:

    # 编辑资源限制文件sudonano/etc/security/limits.conf# 添加以下行来设置用户john的资源限制# john soft nofile 4096# john hard nofile 8192# john soft nproc 1024# john hard nproc 2048
  5. 创建临时用户:对于临时使用的用户,可以设置过期时间:

    # 创建临时用户,有效期为7天sudoadduser tempusersudochage -E$(date-d"+7 days"+%Y-%m-%d)tempuser# 查看用户过期信息sudochage -l tempuser

常见问题

  1. 权限不足adduser命令需要管理员权限才能运行,确保使用sudo或以root用户身份执行。

    # 正确的使用方式sudoadduser username# 错误的使用方式(会提示权限不足)adduser username
  2. 用户已存在:如果尝试创建的用户名已经存在,adduser命令会提示错误。使用id命令检查用户是否存在:

    # 检查用户是否存在idusername# 如果用户存在,可以使用usermod命令修改用户属性,或使用其他用户名
  3. 主目录已存在:如果尝试创建的用户主目录已经存在,adduser命令会提示错误。可以选择使用其他用户名,或使用--no-create-home参数:

    # 使用其他用户名sudoadduser otherusername# 不创建主目录sudoadduser --no-create-home username
  4. 密码复杂度要求:现代Linux系统通常有密码复杂度要求,如果设置的密码过于简单,adduser命令会拒绝设置。确保密码包含大小写字母、数字和特殊字符:

    # 示例:设置符合复杂度要求的密码# Good: MySecur3P@ssw0rd# Bad: password123
  5. 与useradd命令的区别:在Debian/Ubuntu系统中,adduser是一个高级脚本,而useradd是一个底层命令。adduser提供交互式界面,而useradd需要手动指定所有选项。

    # adduser(交互式,自动创建主目录等)sudoadduser username# useradd(非交互式,需要手动指定选项)sudouseradd-m -s /bin/bash usernamesudopasswdusername

五、总结

adduser命令是Linux系统中一个功能强大的用户创建工具,它提供了交互式界面和丰富的选项,极大简化了用户创建过程。通过本文的详细介绍和实例,相信您已经掌握了adduser命令的基本用法和高级技巧,可以在日常系统管理工作中灵活运用这个工具来创建和管理用户账户。无论是创建普通用户、系统用户,还是批量创建用户,adduser命令都能满足您的需求。同时,我们也介绍了一些实用技巧和常见问题的解决方法,帮助您在使用adduser命令时更加得心应手。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/8 11:35:10

tunnelto完整指南:重新定义本地服务共享体验

tunnelto完整指南&#xff1a;重新定义本地服务共享体验 【免费下载链接】tunnelto Expose your local web server to the internet with a public URL. 项目地址: https://gitcode.com/GitHub_Trending/tu/tunnelto 你是否经历过这样的开发困境&#xff1f;精心调试的本…

作者头像 李华
网站建设 2026/1/8 11:33:43

RVC-WebUI完整教程:从零开始掌握AI语音克隆技术

RVC-WebUI完整教程&#xff1a;从零开始掌握AI语音克隆技术 【免费下载链接】rvc-webui liujing04/Retrieval-based-Voice-Conversion-WebUI reconstruction project 项目地址: https://gitcode.com/gh_mirrors/rv/rvc-webui 想要实现专业级的语音转换效果却不知从何入手…

作者头像 李华
网站建设 2026/1/8 11:31:44

DSPE-PEG-FITC-葡萄糖胺/唾液酸/胱氨酸/TAT,两亲性磷脂衍生物

DSPE-PEG-FITC-葡萄糖胺/唾液酸/胱氨酸/TAT&#xff0c;两亲性磷脂衍生物DSPE-PEG-FITC-葡萄糖胺&#xff08;二硬脂酰磷脂酰乙醇胺-聚乙二醇-荧光素-葡萄糖胺偶联物&#xff09;是一种高度功能化的两亲性磷脂衍生物&#xff0c;通过将疏水脂质骨架 DSPE 与亲水 PEG 链相连&…

作者头像 李华
网站建设 2026/1/8 11:31:34

基于MGeo的地址聚类分析实战教程

基于MGeo的地址聚类分析实战教程 在电商、物流、城市计算等场景中&#xff0c;地址数据的标准化与去重是构建高质量地理信息系统的前提。然而&#xff0c;中文地址存在大量表述差异——如“北京市朝阳区建国路”与“北京朝阳建国路”&#xff0c;语义一致但字面不同&#xff0c…

作者头像 李华
网站建设 2026/1/8 11:31:18

3秒搞定!Win11右键改传统的最快方法对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成一个对比测试工具&#xff0c;自动执行以下操作&#xff1a;1. 实现5种主流修改方法&#xff08;注册表、组策略、第三方工具等&#xff09;&#xff1b;2. 记录每种方法的执行…

作者头像 李华
网站建设 2026/1/8 11:30:49

乡村振兴数字底座:预装MGeo的农村地址智能库

乡村振兴数字底座&#xff1a;预装MGeo的农村地址智能库实战指南 为什么需要农村地址智能系统&#xff1f; 数字乡村建设面临自然村合并、村名变更等历史遗留问题&#xff0c;导致惠农政策难以精准落实。传统人工核对方式存在三大痛点&#xff1a; 数据混乱&#xff1a;同一自然…

作者头像 李华