Linux 每日一命令 - 临时提权命令(sudo)

使用场景:为其他非root用户提供一个临时提权。

概要

  • sudo 能够授权指定用户在指定主机上运行某些命令。 如果未授权用户尝试使用 sudo ,会提示联系管理员
  • sudo 可以提供日志,记录每个用户使用sudo操作
  • sudo 为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机
  • sudo 使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”

用法

sudo -i -u wang 切换身份
sudo [-u user] COMMAND
    -V:显示版本信息等配置信息 
    -u:指定用户,不指定默认为root 
    -l:列出用户在主机上可用的和被禁止的命令 
    -v:再延长密码有效期限5分钟,更新时间戳 
    -k:清除时间戳(1970-01-01),下次需要重新输密码 
    -K:与-k类似,还要删除时间戳文件 
    -b:在后台执行指令 
    -p:改变询问密码的提示符号

配置

通过 visudo 命令编辑 sudo 配置文件,具有语法检查功能。

visudo
    –c:语法检查

相关文件

  • 配置文件: /etc/sudoers
  • 时间戳文件:/var/db/sudo
  • 日志文件:/var/log/secure
配置文件支持使用通配符:
? :任意单一字符
* :匹配任意长度字符
[wxc]:匹配其中一个字符
[!wxc]:除了这三个字符的其它字符
\x : 转义
[[alpha]] :字母

示例: /bin/ls [[alpha]]*

配置文件规则有两类:

  • 别名定义:不是必须的
  • 授权规则:必须的

实例

环境创建:useradd kane && echo 123456 | passwd --stdin kane

# 授权 kane 用户使用 ls cat命令
kane ALL=(ALL) /bin/ls, /bin/cat
# 只能实时查看/var/log/secure
kane  ALL=(ALL) /usr/bin/tail -f /var/log/secure
# 授予/bin/下全部命令,排除rm su vi vim
kane ALL=(ALL) /bin/*, !/bin/rm, !/bin/su, !/bin/vi, !/bin/vim
# 授予用户全部命令并且不询问密码
kane ALL=(ALL) NOPASSWD: ALL

标签:none

评论已关闭