十、用户管理与进程管理
- 了解Linux系统中用户管理常见命令
- 查看与用户和组相关的文件内容
- 了解Linux系统中进程管理常见命令
- 可以通过命令实现对用户、组及进程的管理
1.用户管理与组管理
配置文件 | 内容 |
---|---|
/etc/passwd | 用户名 密码位 用户编号 归属组编号 姓名 $HOME $Shell |
/etc/shadow | 用户名 已加密密码 密码改动信息 密码策略 |
/etc/group | 群组名 密码位 群组编号 组内用户 |
/etc/gshadow | 群组名 已加密密码 群组管理员 组内用户 |
1.1 etc/passwd
1.2 etc/shadow
TestUser2 | 6 6 6F…xne | 19177 | 0 | 999999 | 7 | null | null | null |
---|---|---|---|---|---|---|---|---|
用户名 | 密码 | 修改密码日 | 密码不可修改日 | 密码需要重置日 | 密码编程期限前警告日 | 密码过期宽限日 | 账号失效日 | 保留位 |
1.3 etc/group
sudo | x | 27 | linuxstudy,fanyuyao |
---|---|---|---|
组名 | 密码 | gid | 组内用户 |
1.4 etc/gshadow
sudo | * | null | linuxstudy,fanyuyao |
---|---|---|---|
组名 | 密码(*或!为不存在或不可用) | 组管理员 | 组内用户 |
2.用户管理的命令
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
su | 切换用户 | sudo | 临时切换为root用户 |
passwd | 设定、修改用户密码 | gpasswd | 设定、修改群组密码 |
chsh | 修改用户默认shell | usermod | 修改用户账号 |
useradd | 新建用户 | userdel | 删除用户 |
id | 显示用户信息 |
2.1 su:切换用户
-
重新登陆:- / -l
-
不更改环境变量:-m / -p
-
切换后执行命令并退出:-c comand
2.2 sudo:临时切换为root用户
- 切换为root shell,不初始化:-s
- 切换到root shell,并初始化:-i
- 执行命令的身份:-u username / uid
- 显示自己的权限:-l
2.3 passwd:设定、修改用户密码
-
清除密码:-d
-
锁定账户:-l
-
使密码过期:-e
-
显示密码认证信息:-S
-
密码过期后最大使用天数:-x days
-
密码过期后最大宽限日期:-i days
-
密码冻结后最小使用时间:-n days
-
更改登录shell:-s
-
更改用户信息:-f
2.4 gpasswd:设定、修改组群密码
- 将用户加入群组:-a username
- 将用户从群组中删除:-d username
- 删除密码:-r
- 将用户设置为群组管理员:-A username
- 设置群组成员:-M username1,username2,…
2.5 chsh:修改默认shell
- chsh -s SHELLPATH
2.6 useradd:新建用户
- 指定$HOME:-d dir
- 自动建立$HOME:-m
- 不自动建立$HOME:-M
- 设置用户登录shell:-s shell
- 设置用户编号:-u uid
- 设定用户归属群组:-g groupname
- 设置用户归属附加群组:-G groupname
- 不建立以用户名称为群组名称的群组:-n
- 设置账号过期时间:-e days
- 缓冲时间,days天后关闭账号:-f days
- 设置用户备注:-c string
- /etc/login.defs 新建用户规则
- /etc/skel/ 新建用户默认文件
2.7 userdel :删除用户
- 删除用户相关文件和目录:userdel -r
2.8 usermod:修改用户账号
- 修改备注信息:-c string
- 修改$HOME:-d dir
- 密码期限:-e days
- 密码过期后宽限的日期:-f days
- 修改用户所属群组:-g groupname
- 修改用户所属附加群组:-G groupname
- 修改用户账号名称:-l username
- 锁定用户密码,使密码无效:-L
- 修改用户登陆后所使用的shell:-s shell
- 修改用户ID:-u uid
- 解除密码锁定:-U
2.9 id:显示用户信息
- 显示用户ID-uid:-u
- 默认所属组ID-gid:-g
- 显示附加组ID-groups:-G
- 显示用户,所属组,或附加群组的名称(不能单独使用):-n
2.10 练习
- 新建一个用户Admin
- 密码100天后过期,提前7天提醒,过期10天后不修改密码将关闭账号
- 定义SHELL,有HOME
- 登录打印自定义欢迎信息:Welcom Admin(此处取变量) !Today is 日期(取当前日期)
- 并且打印最近一次登录的详细信息和近期登录总次数
- 可执行sudo命令
3.进程管理
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
free | 打印系统情况和内存情况 | top | 显示当前系统进程情况,内存,CPU等信息 |
dstat | 实时监控磁盘、CPU、网络等 | ps | 报告当前进程状态 |
pstree | 以树状显示进程派生关系 | pgrep | 查找进程ID |
kill | 删除执行中的程序和工作 | pkill | 批量按照进程名杀死进程 |
3.1 free:打印系统情况和内存情况
-
以字节,KB,M,G显示:-b(k/m/g)
-
忽略缓冲区调节列:-o
-
每个seconds执行一次:-s seconds
-
以可读形式显示:-h
3.2 dstat:实时监控磁盘、CPU、网络等
- dstat
- dstat 时间【dstat 2】
- dstat 时间 次数【dstat 2 10】
- dstat --list
- dstat --output ~/data.csv 2 10
3.3 top:显示当前系统进程情况,内存,CPU等信息
3.4 ps:报告当前进程状态
- ps -fe
- ps -aux
3.5 pstree:以树状显示进程派生关系
- 显示每个程序的完整指令:-a
- 使用PID排序:-n
- 显示PID:-p
- 显示用户名:显示用户名
- 使用长列格式显示树状:使用长列格式显示树状
3.6 pgrep:查找进程ID
- 获得起始进程号:-o
- 获得结束进程号:-n
- 显示进程名称:-l
- 指定父进程:-P pid
- 指定进程组:-g gid
- 指定开启的进程终端:-t tty
- 指定uid:-u uid
3.7 kill:删除执行中的程序和工作
- 处理当前进程时,不限制命令名和进程号的对应关系:-a
- 不加信号ID,则列出全部信号:-l 信号ID
- 给pid的进程只打印相关进程号,而不发送任何信号:-p pid
- 指定要发出的信号:-s 信号ID | 信号name
- 指定用户:-u
- kill -9 pid
3.8 pkill:批量按照进程名杀死进程
- 起始pid:-o
- 结束pid:-n
- 指定父进程号发送信号:-p pid
- 指定进程组:-g
- 指定终端:-t tty