尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Linux命令-useradd(创建新用户)

Linux命令-useradd(创建新用户) Linux命令-useradd创建新用户语法常用选项基础用法1. 创建普通用户2. 设置密码3. 创建带附加组的用户4. 自定义主目录和 UID5. 使用骨架目录定制新用户环境6. 查看和修改默认值7. 批量创建用户8. 安全最佳实践useradd用于在 Linux 系统中创建新用户账号。它是最基本的用户管理命令会更新 /etc/passwd、/etc/shadow、/etc/group 等系统文件。⚠️需要 root 权限普通用户无法创建新用户。在生产环境中请遵循最小权限原则——只为用户分配必要的组和权限。语法useradd [选项] 用户名常用选项选项含义-m创建用户主目录/home/用户名-d指定主目录路径-s指定登录 Shell-g指定主组-G指定附加组逗号分隔-u指定 UID-c添加注释/全名-e账号过期日期 (YYYY-MM-DD)-f密码过期后的宽限天数-r创建系统账号UID 1000-M不创建主目录-k指定骨架目录默认 /etc/skel基础用法1. 创建普通用户# 最简方式创建用户注意: 需要 rootsudouseraddalice# 验证用户已创建grepalice /etc/passwd# alice:x:1001:1001::/home/alice:/bin/sh# 查看用户信息idalice# uid1001(alice) gid1001(alice) groups1001(alice)# 推荐方式: 创建用户 主目录 指定 Shellsudouseradd-m-s/bin/bash alice# 创建用户并添加注释sudouseradd-m-cAlice Wang, Developeralice# 查看完整信息grepalice /etc/passwd# alice:x:1001:1001:Alice Wang, Developer:/home/alice:/bin/bash2. 设置密码# useradd 不会自动设置密码需要单独设置sudopasswdalice# New password:# Retype new password:# 或创建用户时强制下次登录修改密码sudouseradd-malice2sudopasswd-ealice2# 密码立即过期# 用户首次登录时会提示: You are required to change your password immediately3. 创建带附加组的用户# 将用户添加到 sudo 组Debian/Ubuntusudouseradd-m-s/bin/bash-Gsudoalice# 将用户添加到 wheel 组CentOS/RHELsudouseradd-m-s/bin/bash-Gwheel bob# 添加到多个附加组sudouseradd-m-Gdocker,www-data,developers charlie# 验证groupscharlie# charlie : charlie docker www-data developers# 指定主组和附加组sudouseradd-m-gdevelopers-Gdocker,adm daveiddave# uid1005(dave) gid1000(developers) groups1000(developers),999(docker),4(adm)4. 自定义主目录和 UID# 指定主目录路径sudouseradd-m-d/opt/data/alice-s/bin/bash alice# 指定 UID通常用于保持多台服务器 UID 一致sudouseradd-m-u1500-s/bin/bash alice# 设置账号过期日期sudouseradd-m-e2026-12-31 tempuser# 检查过期信息sudochage-ltempuser5. 使用骨架目录定制新用户环境# /etc/skel 中的文件会自动复制到新用户的主目录ls-la/etc/skel/# .bashrc .profile .bash_logout# 自定义骨架: 为新用户添加默认配置sudomkdir-p/etc/skel/.sshsudomkdir-p/etc/skel/projectsechoalias llls -alF|sudotee-a/etc/skel/.bashrc# 创建新用户时会自动获得这些默认文件sudouseradd-mnewuserls-la/home/newuser/# 可以看到 .bashrc, .profile, .ssh/, projects/ 等# 创建系统账号不创建主目录UID 1000sudouseradd-r-s/usr/sbin/nologin service_useridservice_user# uid999(service_user) gid999(service_user)6. 查看和修改默认值# 查看 useradd 的默认配置useradd-D# GROUP100# HOME/home# INACTIVE-1# EXPIRE# SHELL/bin/sh# SKEL/etc/skel# CREATE_MAIL_SPOOLno# 修改默认 Shellsudouseradd-D-s/bin/bash# 修改默认主目录前缀sudouseradd-D-b/opt/users# 默认配置保存在 /etc/default/useraddcat/etc/default/useradd7. 批量创建用户#!/bin/bash# 从 CSV 文件批量创建用户# 格式: 用户名,全名,密码,附加组CSV_FILEusers.csvcat$CSV_FILEEOF alice,Alice Wang,pass123,sudo,docker bob,Bob Li,pass456,developers charlie,Charlie Zhang,pass789,www-data,developers EOFwhileIFS,read-rusername fullname password groups_str;do# 跳过空行和注释[[-z$username||$username~^# ]] continueecho创建用户:$username# 检查用户是否已存在ifid$username/dev/null;thenecho[跳过]$username已存在continuefi# 构建 useradd 参数args-m -c\$fullname\# 处理附加组if[-n$groups_str];thenIFS,read-ragroups$groups_strargs$args-G$(IFS,;echo${groups[*]})fi# 创建用户sudouseradd$args$username# 设置密码echo$username:$password|sudochpasswd# 强制首次登录改密码sudopasswd-e$username2/dev/nullecho[完成]$usernamedone$CSV_FILE# 验证echoecho已创建用户列表tail-5/etc/passwdrm$CSV_FILE8. 安全最佳实践# 1. 为服务账号设置 nologin防止登录sudouseradd-r-s/usr/sbin/nologin-Mnginx# 2. 检查是否有空密码的用户sudoawk-F:($2 || $2 !) {print $1 has no password}/etc/shadow# 3. 检查 UID 0 的用户不应存在除 root 外的sudoawk-F:($3 0) {print $1}/etc/passwd# 4. 密码策略配置: /etc/login.defsgrep-E^PASS_|^UID_|^CREATE_HOME/etc/login.defs# 5. 回滚: 删除误创建的用户sudouserdel-ralice# -r 同时删除主目录和邮件
返回列表