useradd
或adduser
命令,以root权限执行sudo useradd -m 用户名
创建用户并生成家目录,再通过sudo passwd 用户名
设置密码即可完成。在Linux系统中添加用户是系统管理的基础操作,无论是部署服务器、分配权限还是多用户环境管理,都需要掌握此技能,以下为详细操作指南,涵盖命令行工具、配置选项及安全建议,所有步骤均需root权限(使用sudo
前缀或切换至root账户执行)。
核心命令:useradd
与 adduser
useradd
(基础工具)
- 基本语法:
sudo useradd [选项] 用户名
- 常用选项:
-m
:创建用户家目录(默认位于/home/用户名
)。-s /bin/bash
:指定登录Shell(如/bin/zsh
)。-c "备注信息"
:添加用户描述(如全名)。-G 组名
:将用户添加到附加组(如sudo
组赋予管理员权限)。-e YYYY-MM-DD
:设置账户过期时间。
- 示例:
sudo useradd -m -s /bin/bash -c "开发人员" -G developers,ftp john
adduser
(交互式工具,推荐新手)
- 部分Linux发行版(如Debian/Ubuntu)提供更友好的交互式流程:
sudo adduser john
执行后按提示输入密码、全名等信息。
关键操作步骤
设置用户密码
使用passwd
命令为新建用户设置密码:
sudo passwd john
- 输入两次密码(密码不显示),需符合系统密码策略(长度、复杂度)。
自定义用户家目录
通过-d
选项指定自定义家目录路径:
sudo useradd -m -d /data/users/john john
用户组管理
- 添加用户到附加组(如
sudo
组):sudo usermod -aG sudo john # -aG表示追加(不覆盖原有组)
- 创建新用户组并加入:
sudo groupadd developers sudo usermod -aG developers john
修改用户属性
使用usermod
调整现有用户:
sudo usermod -s /bin/zsh john # 更改Shell sudo usermod -L john # 锁定账户(禁止登录) sudo usermod -U john # 解锁账户
配置文件解析
/etc/passwd
存储用户基本信息,每行格式为:
john:x:1001:1001:开发人员:/home/john:/bin/bash
- 含义:
用户名:密码占位符:UID:GID:描述:家目录:Shell
/etc/shadow
存储加密密码及策略(仅root可读):
john:$6$加密密码...:19157:0:99999:7:::
- 字段含义:密码最后修改日期、最小/最大密码有效期等。
/etc/skel/
- 模板目录,新建用户时自动复制此目录内容到家目录。
- 可预置
.bashrc
、.profile
等配置文件。
删除用户
完全删除用户及相关文件
sudo userdel -r john # -r同时删除家目录和邮件
保留用户文件
sudo userdel john # 仅删除用户,保留/home/john
安全与最佳实践
- 最小权限原则:
- 避免赋予普通用户
sudo
权限,必要时通过visudo
精细配置。
- 避免赋予普通用户
- 密码策略:
- 使用
chage
设置密码过期时间:sudo chage -M 90 -m 7 -W 14 john # 90天有效期,提前14天警告
- 使用
- 禁用Shell访问:
- 创建仅用于服务的用户(如运行数据库):
sudo useradd -m -s /usr/sbin/nologin dbuser
- 创建仅用于服务的用户(如运行数据库):
常见问题排查
- 用户无家目录:忘记加
-m
选项 → 用mkhomedir_helper john
手动创建。 - 权限拒绝:确保命令前加
sudo
或切换至root账户。 - 用户组未生效:用户需重新登录或执行
newgrp 组名
。
引用说明: 基于Linux标准文档(
man useradd
)、Filesystem Hierarchy Standard (FHS) 及开源社区最佳实践,具体命令行为可能因发行版(如CentOS与Ubuntu差异)略有不同,建议查阅官方手册:
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/26474.html