Machine: sudo:不存在 tty 且未指定 askpass 程序

创建于 2016-06-29  ·  5评论  ·  资料来源: docker/machine

我使用 MacOSX Captain 作为主机操作系统
我已经从 Ubuntu 图像创建了一个容器
容器 bash 默认以 root 用户运行

我已经通过 apt-get 安装了 sudo
然后我创建了名为 test-user 的非特权用户

我用 test-user 运行 bash
docker exec -i -t -u test-user 容器 ID bash

当我尝试使用 sudo apt-get install
我收到此错误 sudo: no tty present and no askpass program specified

我正在尝试这样做,因为我读到我不应该使用 root 或 admin 用户来运行任何程序,因为这将是一个安全问题。

最有用的评论

我也有同样的问题。 对于某些人去 /etc/sudoers(sudoers 是一个文件)并添加用户名 ALL=(ALL) NOPASSWD: ALL(使它不需要密码)有效,所以也许你可以尝试一下,但是它对我不起作用。 其他人有更好的建议吗?

所有5条评论

我也有同样的问题。 对于某些人去 /etc/sudoers(sudoers 是一个文件)并添加用户名 ALL=(ALL) NOPASSWD: ALL(使它不需要密码)有效,所以也许你可以尝试一下,但是它对我不起作用。 其他人有更好的建议吗?

是的,它对我有用,
尝试使用 visudo 命令编辑文件并确保您输入的用户名正确无误,但我不确定此解决方案是否安全,如果您忘记关闭终端,任何使用笔记本电脑的人都会使用 sudo 命令而无需密码注入任何程序。

我试图找到一种输入密码的方法,但它不起作用。

这也适用于我,使用您的实际用户名而不是username

同样的问题在这里。 尽管我在运行 docker 的远程机器上拥有 sudo 权限,但在某种程度上弄乱远程 sudoers 配置以创建本地 docker-machine 配置似乎是错误的。

类似的问题。 为 aws 构建时,默认的 docker-machine ssh 用户是 _ubuntu_。 我正在尝试创建一个不同的 sudo 用户(像 _demouser_ 这样更友好的用户)或在我完成创建远程 VM 后重命名 _ubuntu_ 用户。

在这两种情况下,您都可以使用(或编写脚本)来自https://askubuntu.com/questions/34074/how-do-i-change-my-username 的类似说明

  • 添加新的或临时的 sudo 用户
  • 可选的:

    • 以新/临时用户身份登录并更改 _ubuntu_ 用户的名称/主目录

两个步骤都有相同的问题,新用户_changed_ "ubuntu" 用户需要您指定密码才能使 sudo 工作。 除非您编辑 sudoers 文件以设置 nopasswd 选项。 原始“ubuntu”(默认)用户有一些秘密武器,尽管在 sudoers 中没有额外配置,但它允许无密码 sudo。

此页面是否有帮助?
0 / 5 - 0 等级