Sudo
概念
在Linux中有一部分命令是普通用户无权限使用的,但又需要其工作
root就可以使用sudo(switch user do)定义那些用户可以使用那些命令
sudo命令:给用户配置命令权限
指令格式:sudo 选项 命令
| 选项 | 含义 |
|---|---|
| -l | 列出用户所有特殊权限 |
| -b | 在后台执行该命令 |
| -k | 清空密码有效时间 (下次执行sudo,需输入用户密码确认身份) |
-24100614/10、Linux实战:Sudo-1700037491351.png)
//并不是所有Linux分支都有sudo命令
sudo配置文件:/etc/sudoers
1)该文件并不能通过vim进行更改,系统定义为仅读
-24100614/10、Linux实战:Sudo-1700037492568.png)
内容构成:用户名/用户组 允许登录的主机=(执行身份) 可执行命令
1)root:表示root用户(若是用户组,可写成:%组名)
2)ALL:表示允许所有主机的登录(地址白名单)
3)(ALL):表示以管理员的身份执行
4)ALL:表示可执行全部命令
//若有多个命令,可使用“,”进行分割,且命令字段必须使用绝对路径
which命令:根据命令名称查询命令的完整路径
指令格式:which 选项 命令名称
1)没有选项,则默认显示找到的第一个完整路径
| 选项 | 含义 |
|---|---|
| -a | 将所有由PATH目录中可找到的命令列出 |
| -v | 显示命令的版本信息 |
-24100614/10、Linux实战:Sudo-1700037493234.png)
Visudo
visudo命令:修改sudo命令的配置文件
指令格式:visudo
1)打开后其使用和操作方法同Vim一致(本质就是调用Vi打开/etc/sudoers)
配置用户权限:用户名 允许登录主机=(执行身份) 可执行命令
1)若无执行身份,则默认为管理员用户身份
2)可执行命令建议写命令的完整路径(而不是直接写命令)
-24100614/10、Linux实战:Sudo-1700037494119.png)
//mwl用户做为普通用户是没有添加用户的权限
1)先允许mwl用户添加和更改所有用户的密码
2)再拒绝mwl用户更改root用户的密码
//若想拒绝用户的某一命令权限,在命令路径前加入“!”即可
若想具体拒绝那一部分,可在命令后跟具体数值
通过别名配置/etc/sudoers:通过设置别名集合,一次性设置众多用户权限
| 别名设置 | 含义 |
|---|---|
| User_Alias | 用户别名集合 |
| Cmnd_Alias | 命令别名集合 |
| Host_Alias | 主机别名集合 |
-24100614/10、Linux实战:Sudo-1700037494482.png)
使用Sudo
添加命令权限后调用命令:sudo 执行命令
1)若使用sudo进行权限分配后,只需在原命令前添加sudo即可
2)实现调用sudo且不需输入密码:将设置后自动生成的注释行前的“#”去除
//visudo设置后,文件下方会自动生成一样的行且命令行为NOPASSWD
ulimit命令:限制用户使用系统资源
指令格式:ulimit 选项 选项值
| 选项 | 含义 |
|---|---|
| -f | shell可建立的最大文件容量(Kbytes) |
| -d | 程序可使用的最大段内存容量 |
| -l | 可用于锁定的内存量 |
| -t | 可使用的最大CPU时间(秒) |
| -u | 用户最多可创建进程数量 |
| -x | 进程最多持有文件锁数量 |
| -T | 进程最多可创建线程数量 |
| -n | 进程最多可持有文件句柄数量 |
| -a | 列出所有限制值 |
| -H | 严格设置 资源使用不能超过设置值 |
| -S | 警告设置 资源使用可超过设置值,但会接到系统警告 |