Sudo
概念
在Linux中有一部分命令是普通用户无权限使用的,但又需要其工作
root就可以使用sudo(switch user do)定义那些用户可以使用那些命令
sudo命令:给用户配置命令权限
指令格式:sudo 选项 命令
选项 | 含义 |
---|---|
-l | 列出用户所有特殊权限 |
-b | 在后台执行该命令 |
-k | 清空密码有效时间 (下次执行sudo,需输入用户密码确认身份) |
//使用sudo指令需要输入当前用户密码确认身份(5分钟一次)
如:查询mwl用户具有那些特殊权限
//并不是所有Linux分支都有sudo命令
sudo配置文件:/etc/sudoers
1)该文件并不能通过vim进行更改,系统定义为仅读
如:查看/etc/sudoers文件
内容构成:用户名/用户组 允许登录的主机=(执行身份) 可执行命令
1)root:表示root用户(若是用户组,可写成:%组名)
2)ALL:表示允许所有主机的登录(地址白名单)
3)(ALL):表示以管理员的身份执行
4)ALL:表示可执行全部命令
//若有多个命令,可使用“,”进行分割,且命令字段必须使用绝对路径
which命令:根据命令名称查询命令的完整路径
指令格式:which 选项 命令名称
1)没有选项,则默认显示找到的第一个完整路径
选项 | 含义 |
---|---|
-a | 将所有由PATH目录中可找到的命令列出 |
-v | 显示命令的版本信息 |
//本质就是根据环境变量(PATH)所规范的路径,去查询文件名
如:查询ls命令的完整路径
Visudo
visudo命令:修改sudo命令的配置文件
指令格式:visudo
1)打开后其使用和操作方法同Vim一致(本质就是调用Vi打开/etc/sudoers)
配置用户权限:用户名 允许登录主机=(执行身份) 可执行命令
1)若无执行身份,则默认为管理员用户身份
2)可执行命令建议写命令的完整路径(而不是直接写命令)
如:给mwl用户添加用户的权限,且可以修改用户密码(但不能修改root用户)
//mwl用户做为普通用户是没有添加用户的权限
1)先允许mwl用户添加和更改所有用户的密码
2)再拒绝mwl用户更改root用户的密码
//若想拒绝用户的某一命令权限,在命令路径前加入“!”即可
若想具体拒绝那一部分,可在命令后跟具体数值
通过别名配置/etc/sudoers:通过设置别名集合,一次性设置众多用户权限
别名设置 | 含义 |
---|---|
User_Alias | 用户别名集合 |
Cmnd_Alias | 命令别名集合 |
Host_Alias | 主机别名集合 |
1)设置的别名必须都为大写
如:给test1、test2、test3、test4和test5都设置passwd和useradd权限
使用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 | 警告设置 资源使用可超过设置值,但会接到系统警告 |