linux中用户命令
linux中用户命令详细介绍
在 Linux 系统中,用户管理是系统管理的重要组成部分。以下是常用的用户相关命令,按功能分类整理:
一、用户账户管理(需管理员权限,使用 sudo 或切换至 root)
1.
创建用户
useradd(或adduser,部分发行版如 Debian/Ubuntu 更常用adduser交互创建)- 语法:bash
选项 用户名/bin/bash username
- 常用选项:
-m:创建用户家目录-s:指定默认 shell(如/bin/bash、/bin/nologin)-g:指定主用户组-G:添加附加用户组(多个组用逗号分隔)-u:指定用户 UID
- 语法:bash
2.
修改用户信息
usermod- 语法:bash
选项 用户名 - 常用操作:
- 修改用户名:
usermod -l 新用户名 旧用户名 - 添加附加组:
usermod -G 组名 用户名(追加组,不覆盖主组) - 修改家目录:
usermod -d /新路径/用户名 用户名 - 修改默认 shell:
usermod -s /bin/zsh 用户名
- 修改用户名:
- 语法:bash
3.
删除用户
userdel- 语法:bash
选项 用户名 - 常用选项:
-r:删除用户同时删除家目录和邮件池(谨慎使用)
- 语法:bash
二、密码管理
1.
设置 / 修改密码
passwd- 普通用户修改自己的密码:bash
- 管理员修改其他用户密码:bash
用户名 - 批量设置无交互密码(脚本中使用,需谨慎):bash
用户名
- 普通用户修改自己的密码:bash
2.
密码策略相关
chage:修改密码过期信息(如有效期、警告期限)bashchage 用户名
三、用户组管理
1.
创建 / 删除用户组
groupadd/groupdelbash组名组名
2.
修改组信息
groupmodbash新组名 旧组名
3.
管理用户所属组
gpasswd:添加 / 删除组内用户(管理员或组管理员可用)bashgpasswd 用户名 组名gpasswd 用户名 组名
四、查看用户信息
1.
基本信息
id:查看用户 UID、GID 及所属组bash用户名cat /etc/passwd:存储用户账户基本信息(明文,所有用户可读)- 格式:
用户名:密码占位符:UID:GID:注释:家目录:默认shell
- 格式:
2.
当前登录用户
who/w/users:查看当前登录用户及状态bashw
3.
密码相关信息
cat /etc/shadow:存储用户密码哈希值(仅 root 可读)lastlog:查看所有用户最后一次登录时间bashlastlog 用户名
4.
家目录与环境
echo $HOME:查看当前用户家目录路径su - 用户名:切换用户并加载其环境变量(完整切换)
五、用户权限与切换
1.
切换用户身份
su:切换用户(默认切换至 root,加用户名切换至指定用户)bash- 用户名sudo:以其他用户权限执行命令(通常为 root)bash命令用户名 命令
2.
提权与权限管理
visudo:编辑 sudo 权限配置文件(推荐,避免语法错误)chown/chgrp:修改文件所有者 / 所属组(需管理员权限)
六、用户登录与日志
last:查看用户登录历史(包括成功和失败记录)bashlast 用户名faillog:查看登录失败记录bashfaillog 用户名
七、重要文件
| 文件路径 | 作用 |
|---|---|
/etc/passwd |
用户账户基本信息(明文) |
/etc/shadow |
用户密码哈希及过期信息(加密) |
/etc/group |
用户组信息 |
/etc/gshadow |
组密码及管理员信息(很少用) |
/home/用户名/ |
用户家目录 |
/var/log/wtmp |
登录历史记录(last 命令读取此文件) |
使用示例
- 创建普通用户
user01并设置密码:bash/bin/bash user01user01
- 将用户加入
sudo组以获取管理员权限(Debian/Ubuntu):bashuser01 - 删除用户
user01及其家目录:bashuser01
注意事项
- 涉及用户管理的命令通常需要管理员权限(使用
sudo或切换至 root)。 - 密码管理需遵循安全规范,避免弱密码。
- 修改系统文件(如
/etc/passwd)前建议备份,防止配置错误。
如需更详细的用法,可通过 man 命令 查看帮助(如 man useradd)。