热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

nopasswd:allsudo_IT圈的幽默:老婆对老公使用了sudo提权

今天朋友圈又被一张图刷屏了,搞技术的看完会心一笑,圈外人看了估计一脸懵逼。图中老婆对老公说想买锅,老公抱怨家里又不开伙,买锅

今天朋友圈又被一张图刷屏了,搞技术的看完会心一笑,圈外人看了估计一脸懵逼。图中老婆对老公说想买锅,老公抱怨家里又不开伙,买锅作甚。神奇的一幕来了,老婆对老公使用了sudo命令,老公像变了个人,立马答应买。

62c167ac953af6f834410d5f20d4b7f3.png

首先可以确定的事情是图中对话的两夫妻都是技术人员,而且非常默契,老婆抛出的梗,老公马上就能接住。整个对话关键就在于“sudo 买”。“买”是一个命令,老婆此时化身成为了用户,把老公当成了linux系统,在之前对话中老婆权限不够,“买”的命令没有成功执行,使用sudo后,命令立马执行。

99d3b35579219897f2b2ad5a95fd2e15.png

我们把“买”这个命令换成cat /etc/shadow,就能完全转换成linux理解的命令,看我操作。注意一个细节我们这里输入的密码是本账号的密码,后面还会说到。

d16bd62a6245fbbafdadb085b2edaffa.png

如果你自己账号无法sudo提权,系统会显示:Username is not in the sudoers file. This incident will be reported。Username是你当前账号。

e4328dab25801f0a98211fab54be5c76.png

我们先来了解一下sudo命令在linux中的作用。linux最高权限是root,该命令允许特定用户像root用户一样使用各种各样的命令,而不需要root用户的密码,配置文件在/etc/sudoers中,只有root可操作。我们刚才的设置其实就是以root身份在这个文件里面加上了一句话linuxvp ALL=(ALL) /usr/bin/cat。当然想要执行任意命令就是linuxvp ALL=(ALL) ALL。

91420ec5f8ff228bd03fbc2bc01d9c81.png

很多初学者常常弄混了sudo和su,不考虑参数,sudo后面加的是命令,su后面加的是用户名。考虑参数,就会出现两个比较像的命令,都能切换到root用户。

  • sudo -iu root
  • su - root

一个关键不同点,sudo输入的密码是当前用户的密码,su输入的密码是新用户的密码。su切换到root其实可以直接简化成su,这样就好理解下面这个图为什么要输入当前用户的密码了。

441e741dfac594c3b35a5349fd771987.png

sudo还可以设置免密执行命令,一个简单的写法,将之前的写入/etc/sudoers中的最后一个ALL改成NOPASSWD:ALL

  • your_user_name ALL=(ALL) ALL
  • your_user_name ALL=(ALL) NOPASSWD: ALL
dca4b8fe9e0b25a276310e4fd4a67b60.png

经过上面的解释,就能很好理解我们开头这个对话的评论了:

程序员A:难道老婆不是默认工作在root权限下的么?

程序员B:最后一句老公应该说“Password:”

程序员C:那么老婆应该说“******回车”

程序员D:不需要密码,因为wife ALL=(ALL) NOPASSWD: ALL

程序员E:老公要硬气一点,直接发送You are not in the sudoers file. This incident will be reported.

程序员F:敢不买就“rm -rf 老公”了

程序员G:其实老婆用“买 -f”就够了



推荐阅读
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
author-avatar
手机用户2602928177
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有