📜  sudo 需要终端才能读取密码 (1)

📅  最后修改于: 2023-12-03 15:05:24.038000             🧑  作者: Mango

sudo 需要终端才能读取密码

介绍

在 Linux 系统中,sudo 是一个很常用的命令,用于以超级管理员的身份运行其他命令。在使用 sudo 命令时,有时会遇到一个提示:“sudo 需要终端才能读取密码”。这篇文章将介绍为什么会出现这个提示,以及如何解决它。

为什么会出现这个提示

当我们在终端中使用 sudo 命令时,通常会被要求输入密码。但是,有时会出现一个提示,指出 sudo 需要终端才能读取密码。这是因为 sudo 默认情况下只能从终端读取密码,以确保密码不会被泄漏。

解决方法
方式一:在终端中使用 sudo 命令

最简单的解决方法是在终端中使用 sudo 命令。这将确保 sudo 可以读取密码,并且不会出现 “sudo 需要终端才能读取密码” 的提示。

方式二:将密码储存在缓存中

如果您需要在脚本或其他非终端环境中使用 sudo 命令,可以使用以下命令将密码存储在缓存中:

sudo -v

此命令将提示输入密码,并将其存储在缓存中,以便在一段时间内无需重新输入密码即可多次使用 sudo 命令。

方式三:编辑 sudoers 文件

您还可以通过编辑 /etc/sudoers 文件来允许 sudo 在非终端环境中读取密码。请按照以下步骤进行操作:

  1. 使用以下命令打开 sudoers 文件:
sudo visudo
  1. 在文件中查找 Defaults requiretty

  2. requiretty 后面添加一个感叹号 !,以禁用该选项:

Defaults !requiretty
  1. 保存更改并关闭文件。

现在,sudo 将能够在非终端环境中读取密码。

结论

“sudo 需要终端才能读取密码” 的提示出现时,是因为 sudo 默认情况下只能从终端读取密码。解决这个问题的方法包括在终端中使用 sudo 命令、将密码储存在缓存中,以及编辑 sudoers 文件。选择适合您的方法,以便在不出现问题的情况下使用 sudo 命令。