当前位置: 首页 > news >正文

Linux sudo命令相关知识总结

一、sudo 基础知识

1、简介

sudo(superuser do 的缩写)是一个在类 Unix 操作系统(如 Linux 和 macOS)中广泛使用的命令,它允许授权的用户以另一个用户(通常是超级用户或 root )的安全权限来运行命令,如halt,reboot,su 等。这样可以减少系统对 root 账户的依赖,使 root 不必经常在线,从而可以提高系统安全性。

2、工作原理

root 用户将普通用户的名字,可以执行的特定命令,按照哪种用户或用户组的身份执行等信息,登记在特殊文件中(通常是 /etc/sudoers),即完成对该用户的授权(此时此用户被称为 sudoer )。

在一般用户需要取得特殊权限时,其可在命令前加上 sudo,此时 sudo 会询问该用户自己的密码(以确定是当前用户在操作),回答后系统即会将该命令的进程以 root 用户的权限运行。

之后的一段时间内(默认 5 分钟(redhat 系列),可在 /etc/sudoers 中自定义),使用 sudo 不需要再次输入密码,由于不需要 root 用户密码,部份 unix 系统甚至利用 sudo 使一般用户取代 root 用户作为管理员账号,例如 Ubuntu, Mac OS X 等。

3、特性

sudo 能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员;

sudo 提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器;

sudo使用时间戳文件来执行类似的“检票”系统。当用户调用 sudo 并且输入它的密码时,用户获得了一张存活期为 5 分钟的票据;

sudo 的配置文件是 sudoers 文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在 /etc/sudoers,属性必须为 0440。

二、命令解析

1、工具命令

核心命令

sudoedit   #授权编辑规则文件的工具

sudo   #执行授权命令

一般命令

visudo   #安全编辑授权规则文件和语法检查工具

visudo -c   #语法检查

visudo -f /etc/sudoers.d/test   #语法检查

2、授权命令

命令格式

sudo [options...] [command]

sudo [options...] file...

常用选项

  • -u|--user=user   #指定要代表的用户,默认root

  • -S|--stdin   #远程登录执行sudo时候,从标准输入读取密码

  • -l|--list   #列出指定用户己配置的sudo规则,不指定用户则是查看当前登录用户

一般选项

  • -b|--background   #在后台执行

  • -B|--bell   #响铃

  • -E|--preserve-env   #继承当前环境变量

  • -e|--edit filename...   #编辑文件

  • -g|--group=group   #以指定组执行

  • -H|--set-home   #指定切换用户的家目录

  • -h|--host=host   #在指定主机上执行

  • -i|--login   #直接登录

  • -K|--remove-timestamp   #删除时间戳文件,则下次执行要重新输入密码

  • -k|--reset-timestamp   #清除时间戳,则下次执行要重新输入密码

  • -p|--prompt=prompt   #改变密码询问时的提示语句

  • -s|--shell   #以指定shell来执行

  • -U|--other-user=user   #配合-l使用,指定要查看的用户

  • -V|--version   #显示版本

  • -h|--help   #显示帮助

  • -v|--validate   #再延长密码有效期5分钟

三、相关文件

  • /etc/sudo.conf   #主配置文件

  • /etc/sudoers   #授权规则配置文件

  • /var/db/sudo   # Centos系统 审计文件

  • /var/log/sudo.log   # Centos系统 日志文件,默认没有开启

  • /var/log/auth.log   # Ubuntu系统中辅助的日志文件

  • /var/log/secure   # Centos系统中辅助的日志文件

四、规则解析(sudoers 文件)

授权规则格式

# 格式:授权对象  允许的主机=(可切换的目标用户)  可执行的命令列表
用户/组           主机列表=(运行身份)             命令列表
  • 授权对象:普通用户名(如 user1),或组名(加 %,如 %admin,表示授权该组所有用户);
  • 主机列表:指定该规则在哪些主机上生效(单机常用 ALL);
  • 运行身份:指定该用户可 “以谁的身份” 执行命令(如 root 表示以超级用户身份,ALL 表示所有身份);
  • 命令列表:允许执行的命令(需写绝对路径,用 , 分隔多个命令;填 ALL 表示允许所有命令)。

常见授权规则

user1 可通过 sudo 以任何用户的身份执行所有命令(每次需输 user1 密码)。

user1  ALL=(ALL)  ALL

wheel 组内所有用户可通过 sudo 以任何用户的身份执行所有命令(每次需输入当前用户密码)。

%wheel ALL=(ALL) ALL

user1 可通过 sudo 以任何身份执行 /usr/bin/apt-get 命令,且无需输入密码

user1 ALL=(ALL) NOPASSWD: /usr/bin/apt-get

user1 可通过 sudo 以 root 用户执行 /usr/sbin/ 下所有命令,除了 useradd 和 userdel 命令

user1 ALL=(root) /usr/sbin/,!/usr/sbin/useradd,!/usr/sbin/userdel

五、简单实践

visudo 语法检查,配置语法错误会有提示

添加配置,用户 lkl 可通过 sudo 以任何用户的身份执行所有命令(每次需输 lkl 密码)。

测试验证(普通用户 lkl 没有执行useradd 命令的权限,通过 sudo ,输入密码后,则成功执行)

查看当前用户的 sudo 权限

配置 sudo 规则,lkl 用户执行 sudo 命令无需输入密码

测试验证

配置 sudo 规则,lkl 用户不允许执行 userdel 命令

测试效果,lkl 用户通过 sudo 删除用户时报错不允许执行

查看 sudo 相关日志

http://www.dtcms.com/a/424960.html

相关文章:

  • 百度怎么发布网站做网站用什么cms
  • 兰州交通发展建设集团公司网站网站开发中网页之间的连接形式有
  • 比较权威的房产网站虎嗅wordpress模板
  • 网站建设规定临沂百度网站推广
  • HTML应用指南:利用GET请求获取懂车帝某车型口碑评论数据
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十)Nginx模块--Nginx黑白名单
  • 泰安网站优化推广视频网站建设服务
  • 做网站的抬头标语怎么做外链吧发布seo
  • 网站不备案会怎么样wordpress默认用户名密码
  • 可以查授权的网站怎么做如何维护自己公司的网站
  • 大模型-扩散模型(Diffusion Model)原理讲解(1)
  • 个人网站能放什么内容织梦响应式茶叶网站
  • 顺德销售型网站建设最大的房产网站排名
  • 网站前端代码有哪些问题wordpress上传错误
  • 购物网站图片的放大怎么做的wordpress d8
  • 课程网站建设 碧辉腾乐如何手机做网站
  • 四川省城乡和住房建设厅网站浙江杰立建设集团网站
  • 手机和电脑网站分开做网站的空间是
  • 飞腾芯驱动4K屏:OBOO鸥柏查询机如何定义国产化交互技术新标准?
  • 单位网站建设管理工作总结wordpress信用卡支付
  • 如何发布一个自己的网站如何做视频网站流程图
  • 网站开发的策划书wordpress如何本地安装插件
  • 个人建站易语言开发安卓app
  • 达州市住房与城乡建设厅网站企业网络营销推广平台
  • 推广网站建设产品介绍一二三四视频社区5在线高清
  • 北京怎么建立网站asp网站管理系统源码
  • 门户网站建设汇报房地产信息网查询
  • Rohm和英飞凌将合作开发SiC封装
  • 购买网站空间的注意事项成都网站建设 四川冠辰
  • C/C++---语义移动(Move Semantics)与右值引用(Rvalue Reference)