输错密码?这个 sudo 会“嘲讽”你

本文介绍了一种让Linux系统中的sudo命令更具趣味性的方法——当输入错误的密码时,sudo会给出一些“嘲讽”提示。这种方法不仅能够为日常的Linux操作增添乐趣,还可以作为一种新颖的方式与朋友互动。
导读你在 Linux 终端中会有很多的乐趣。我今天要讲的不是在终端中跑火车。我今天要讲的技巧可以放松你的心情。你学习过如何在命令行中增加 sudo 命令的超时,今天的文章中,我会向你展示如何让 sudo 在输错密码的时候“嘲讽”你(或者其他人)。

sudo1
对我讲的感到疑惑?这里,让我们看下这张 gif 来了解下 sudo 是如何在你输错密码之后“嘲讽”你的。
sudo2
那么,为什么要这么做?毕竟,“嘲讽”不会让你的一天变得开心,不是么?
对我来说,一点小技巧都是有趣的,并且要比以前的“密码错误”的错误提示更有趣。另外,我可以向我的朋友展示来逗弄他们(这个例子中是通过自由开源软件)。我很肯定你有你自己的理由来使用这个技巧的。

在 sudo 中启用“嘲讽”

你可以在sudo配置中增加下面的行来启用“嘲讽”功能:

 
Defaults insults

让我们看看该如何做。打开终端并使用下面的命令:

 
sudo visudo

这会在 nano中打开配置文件。

是的,我知道传统的 ‘visudo’ 应该在 vi 中打开 /etc/sudoers 文件,但是 Ubuntu 及基于它的发行版会使用 nano 打开。由于我们在讨论vi,这里有一份 vi 速查表可以在你决定使用 vi 的时候使用。

回到编辑 sudeors 文件界面,你需要找出 Defaults 所在的行。简单的很,只需要在文件的开头加上Defaults insults,就像这样:
sudo3
如果你正在使用 nano,使用Ctrl+X来退出编辑器。在退出的时候,它会询问你是否保存更改。要保存更改,按下“Y”。
一旦你保存了 sudoers 文件之后,打开终端并使用 sudo 运行各种命令。故意输错密码并享受嘲讽吧:)
sudo 可能会生气的。看见没,他甚至在我再次输错之后威胁我。
sudo4


本文转载自:http://www.linuxprobe.com/sudo

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

<think>我们正在回答用户的问题:在使用sudo时需要入的密码是否为登录密码。 根据引用内容,我们可以得出以下结论: 1. 引用[1]提到当用户执行sudo命令时,如果该用户不在sudoers文件中,会报"xxx is not in the sudoers file"。 2. 引用[2][3][4]都提到了如何配置sudo命令不需要密码,方法是通过修改/etc/sudoers文件,添加NOPASSWD选项。 3. 引用[5]提到用户使用sudo -i时需要密码,是因为该用户所属的用户组(wheel)在sudoers文件中配置为需要密码。 但是,用户的问题是关于sudo命令要求入的密码是什么。 实际上,当用户执行sudo命令时,系统要求入的密码是当前用户的登录密码,而不是root密码。这是sudo命令的一个安全特性:它验证的是执行sudo命令的用户自己的密码,以确认是用户本人操作。 然而,请注意: - 如果用户被配置为无需密码即可使用sudo(通过NOPASSWD选项),则不会提示密码。 - 如果用户没有被配置为免密码,那么每次执行sudo命令时都需要入该用户的登录密码(注意:不是root密码)。 因此,回答用户的问题: 是的,sudo命令要求入的密码是当前用户的登录密码(即你登录系统时使用的密码),而不是root用户的密码。 但是,我们也可以从引用中看到,可以通过修改/etc/sudoers文件来免去密码的步骤,即添加类似以下配置: 用户名 ALL=(ALL) NOPASSWD:ALL # 针对特定用户 或 %组名 ALL=(ALL) NOPASSWD:ALL # 针对用户组 注意:修改/etc/sudoers文件需要root权限,且必须使用visudo命令编辑(因为visudo会检查语法,避免配置错误导致无法使用sudo)。 下面我们按照要求组织回答:</think>在 Linux 系统中,**`sudo` 命令要求入的密码确实是当前用户的登录密码**,而非 root 用户的密码。以下是详细说明和验证方法: --- ### 一、密码验证机制 1. **密码类型** - ✅ `sudo` 提示入的是**当前登录用户的密码**(即执行 `sudo` 命令的用户自身密码)[^1][^5] - ❌ 不是 root 用户的密码(除非你正在使用 root 账户执行 `sudo`,但 root 用户默认无需密码) 2. **验证逻辑** 当用户执行 `sudo` 时,系统会: ```mermaid graph TD A[用户执行 sudo 命令] --> B{系统检查} B -->|用户属于 sudoers 组| C[提示入当前用户密码] B -->|用户不在 sudoers 组| D[报 xxx is not in sudoers] C --> E{密码正确?} E -->|是| F[执行特权命令] E -->|否| G[拒绝并记录日志] ``` --- ### 二、关键验证方法 1. **测试场景**(假设用户名为 `user1`): ```bash # 步骤1:用 user1 登录系统 # 步骤2:执行需要特权的命令 sudo apt update # 系统提示: [sudo] password for user1: █ ``` **此时需入 `user1` 的登录密码**,而非 root 密码。 2. **配置例外情况** 管理员可通过修改 `/etc/sudoers` 实现免密操作(引用[2][3][4]): ```bash # 免密配置示例(谨慎使用!) user1 ALL=(ALL) NOPASSWD: ALL # 当前用户免密 %admin ALL=(ALL) NOPASSWD: ALL # 整个用户组免密 ``` --- ### 三、密码错误处理 若错误密码: 1. 系统提示 `Sorry, try again` 2. 连续 3 次错误会终止 sudo 操作 3. 错误日志记录在 `/var/log/auth.log`(Ubuntu)或 `/var/log/secure`(CentOS) --- ### 四、安全建议 1. **不要共享密码**:每个用户应有独立账户 2. **限制免密范围**:避免全局免密(如仅允许特定命令免密): ```bash # 仅允许 user1 免密执行 apt 命令 user1 ALL=(ALL) NOPASSWD: /usr/bin/apt ``` 3. **优先使用 `visudo`** 编辑配置文件(避免语法错误导致 sudo 不可用): ```bash sudo visudo # 自动检查语法 ``` > 💡 **特殊说明**:若用户通过 `su` 切换到 root 后执行 `sudo`,由于 root 默认拥有所有权限,此时不会要求密码[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值