一、用户创建
1. 基本创建命令
sudo useradd [选项] 用户名
常用选项:
- `-m`:创建用户的家目录(通常位于 `/home/用户名`)
- `-s`:指定用户的默认shell,例如 `/bin/bash`
- `-G`:指定用户的附加组(用户可以有多个组)
- `-d`:指定用户家目录的路径
# 创建用户(不创建家目录)
sudo useradd username
# 创建用户并创建家目录
sudo useradd -m username
# 创建用户并指定家目录
sudo useradd -m -d /path/to/home username
# 创建用户并指定UID
sudo useradd -u 1005 username
# 创建用户, 创建家目录, 并指定默认shell(推荐)
sudo useradd -m -s /bin/bash username
# 完整示例
sudo useradd -m -s /bin/bash -c "User Description" username
2. adduser命令(交互式,推荐)
# Ubuntu/Debian等系统
sudo adduser username
# 会提示设置密码、用户信息等
3. 创建用户时指定附加组
# 创建用户并添加到多个组
sudo useradd -m -G group1,group2 username
二、设置/修改密码
1. 为用户设置密码
# 设置密码(会提示输入两次)
sudo passwd username
# 当前用户修改自己的密码
passwd
2. 密码策略设置
# 查看密码状态
sudo passwd -S username
# 锁定用户密码(禁止登录)
sudo passwd -l username
# 解锁用户密码
sudo passwd -u username
# 强制用户下次登录修改密码
sudo passwd -e username
三、用户登录
1. 切换用户
# 切换到其他用户(需要密码)
su - username
# 切换到其他用户但不切换环境变量
su username
# 切换到root用户
sudo su -
2. SSH远程登录
# 客户端连接
ssh username@server_ip
ssh -p port username@server_ip
# 密钥登录(无密码登录)
# 1. 生成密钥对
ssh-keygen
# 2. 将公钥复制到服务器
ssh-copy-id username@server_ip
3. 登录相关配置
# 查看当前登录用户
whoami
who
w
# 查看用户最后登录时间
last username
四、用户删除
1. 删除用户
# 删除用户但保留家目录
sudo userdel username
# 删除用户同时删除家目录
sudo userdel -r username
# 强制删除(即使用户已登录)
sudo userdel -f username
# 删除用户及其家目录、邮件目录
sudo userdel -r -f username
2. 删除前的检查
# 查看用户进程
ps -u username
# 查看用户文件
find / -user username 2>/dev/null
# 杀死用户所有进程
sudo pkill -u username
sudo killall -u username
五、用户修改
1. 修改用户属性
# 修改用户名
sudo usermod -l newname oldname
# 修改用户UID
sudo usermod -u 1006 username
# 修改用户家目录
sudo usermod -d /new/home/dir -m username
# 修改用户默认shell
sudo usermod -s /bin/zsh username
# 修改用户注释/描述
sudo usermod -c "New Description" username
# 修改用户主组
sudo usermod -g groupname username
# 添加用户到附加组
sudo usermod -aG groupname username
六、用户组管理
1. 组操作
# 创建组
sudo groupadd groupname
# 删除组
sudo groupdel groupname
# 修改组名
sudo groupmod -n newgroup oldgroup
# 查看用户所属组
groups username
id username
2. 组权限管理
# 将文件所有者改为用户和组
sudo chown username:groupname filename
# 修改目录下所有文件
sudo chown -R username:groupname directory/
七、用户配置文件
1. 重要配置文件
# 用户信息文件
/etc/passwd
# 格式:username:x:UID:GID:描述:家目录:默认shell
# 密码文件(加密)
/etc/shadow
# 组信息文件
/etc/group
# 用户默认配置
/etc/default/useradd
/etc/login.defs
# 用户家目录模板
/etc/skel/
2. 用户环境文件
~/.bashrc # bash配置
~/.bash_profile # bash环境
~/.profile # 用户环境
~/.ssh/ # SSH密钥
八、用户权限管理
1. sudo权限配置
# 将用户添加到sudo组
sudo usermod -aG sudo username # Ubuntu/Debian
sudo usermod -aG wheel username # CentOS/RHEL
# 编辑sudoers文件
sudo visudo
# 或
sudo nano /etc/sudoers
# 添加权限示例
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD:ALL # 免密码sudo
2. 文件权限
# 设置用户对文件的权限
chmod u+rwx filename # 给用户添加读写执行权限
chmod go-rwx filename # 移除组和其他用户的权限
九、实用命令和技巧
1. 用户信息查询
# 查看所有用户
cat /etc/passwd
cut -d: -f1 /etc/passwd
# 查看用户详细信息
id username
finger username # 可能需要安装
# 查看登录用户
users
who
last
# 查看用户创建的进程
pgrep -u username
ps -u username
2. 批量用户管理
# 批量创建用户
for user in user1 user2 user3; do
sudo useradd -m $user
echo "$user:password123" | sudo chpasswd
done
# 批量修改密码
sudo chpasswd < users.txt
# users.txt内容:username:password
3. 账户锁定与解锁
# 锁定账户(禁止登录)
sudo usermod -L username
sudo passwd -l username
# 解锁账户
sudo usermod -U username
sudo passwd -u username
# 设置账户过期时间
sudo usermod -e 2024-12-31 username
sudo chage -E "2024-12-31" username
十、安全最佳实践
- 强密码策略:使用复杂密码,定期更换
- 最小权限原则:只授予必要的权限
- 定期审计:检查用户活动和不必要的账户
- 使用密钥认证:SSH登录使用密钥而非密码
- 禁用root远程登录:修改
/etc/ssh/sshd_config - 设置登录超时:配置自动注销
- 监控登录尝试:检查
/var/log/auth.log或/var/log/secure
十一、故障排查
# 用户无法登录
1. 检查密码是否锁定:sudo passwd -S username
2. 检查shell是否正确:cat /etc/passwd | grep username
3. 检查家目录权限:ls -ld /home/username
4. 检查账户是否过期:sudo chage -l username
# 用户权限问题
1. 检查用户所属组:groups username
2. 检查sudo配置:sudo -l -U username
3. 检查文件权限:ls -l filename
通过上述命令和操作,您可以全面管理Linux系统中的普通用户账户。记得在生产环境中操作前做好备份,并遵循最小权限原则以确保系统安全。