【问题标题】:sudo command on MacOS Sierra does not respect timestamp_timeoutMacOS Sierra 上的 sudo 命令不遵守 timestamp_timeout
【发布时间】:2016-09-13 15:41:30
【问题描述】:

升级到 MacOS Sierra (10.12) 后,我的 sudo 命令似乎有所不同。请参阅以下测试用例:

# Run in terminal pane #1: (should prompt for password)
sudo -v

# Run in terminal pane #2: (should NOT prompt for password)
sudo -v

上述操作在早期版本的 OS X 上按预期工作。但是,在 Sierra 上,第二个命令再次提示输入密码。它不会在同一终端窗格中提示输入密码。这似乎只发生在root 用户身上;以下在包括 Sierra 在内的所有操作系统版本上都按预期工作:

# Run in terminal pane #1: (prompts for password)
sudo -v -u "$USER"

# Run in terminal pane #2: (does not prompt for password)
sudo -v -u "$USER"

查看/ect/sudoerstimestamp_timeout 值未设置为0。我已经简单地查看了changelog for 1.7 to 1.8,但除了在运行sudo -V 时提到了一个用于 Sierra 的策略插件之外,我想不出任何重要的东西。

谁能帮我弄清楚发生了什么变化?我有一个脚本,它依赖于 sudo 超时值进行保活,而在 Sierra 上,它不断提示输入密码,因为它似乎不再为 root 用户使用时间戳。

【问题讨论】:

    标签: shell sudo macos-sierra


    【解决方案1】:

    经过大量搜索并将旧操作系统版本上的 sudo 配置与 Sierra 的 (sudo su; sudo -V) 配置进行比较后,Sierra 现在似乎默认启用了tty_tickets,从而导致了上述问题。据我所知,这是一个未记录的更改。要修复,需要通过运行sudo visudo将以下内容添加到/etc/sudoers文件中,

    Defaults !tty_tickets
    

    【讨论】:

      【解决方案2】:

      TLDR;馊主意。这种旧行为虽然是 sudo 的一个选项,但我从未遇到过任何其他 UNIX-y 操作系统都将其用作默认行为。原因是它很容易被利用,一旦被利用,恶意代码就会完全控制你的系统。

      原始的很长的咆哮帖子,正确指出是 blahdiblah:

      大声笑,这很有趣。我是通过谷歌搜索来到这里的,因为我不记得如何将旧行为更改为这个新的、正确的行为(被其他所有 UNIX-y 操作系统使用)。甚至没有注意到我的新 Sierra Mac 现在运行正常。

      我早些时候在 Mac 论坛上写过关于这种先前行为的文章,这是一个巨大的安全漏洞。我什至提供了一个三行概念验证脚本,它会简单地(作为普通用户)等待sudo 事件出现任何地方,然后立即获得系统的 root 访问权限.我被粉丝们嘘了出来,然后被禁止说谎。不过,苹果似乎在听。干得好,这一次,库比蒂诺。尝试恢复旧行为的坏主意。

      作为参考,这里是三班轮。它不会做任何恶意的事情,只是在获得 sudo 后将一个虚拟文件添加到文件系统的根目录。在脚本中运行它(或者只是将它粘贴到没有 sudo 的地方),然后在另一个终端应用程序/窗口或使用 sudo 的应用程序(例如 TrueCrypt/VeraCrypt 或类似的)中执行 sudo,然后观察它的工作。

      tail -f -n 0 /var/log/system.log | grep -m 1 -E 'sudo\[[0-9]+\]:\s+'$USER
      echo "Gonna play around with root privs ..."
      sudo touch /kilroy-was-here
      

      【讨论】:

      • 不错的故事,但实际上,SO 不是“讲故事的地方”;至少在我眼里。你看,答案应该是为了帮助人们解决问题。但在你的“答案”中,我想说 75% 的文字根本没有增加价值。所以,我个人的建议(尤其是当你有兴趣为你的答案赢得声誉时):避免讲故事。与以 LOL 开头的答案相比,清晰准确的事实往往会吸引更多的积极反馈。但如前所述,那是我个人的 2 美分。
      • 你知道,@GhostCat,这是一个完全正确的观点,我完全同意。 +1 对我的评论。这是早上 6 点 30 分,试图离开 Sandman 去工作。也就是说,我只是要在顶部添加一个快速的 TLDR,因为...不确定...不再关心 Apple 的错误 :D 还喝啤酒玩部落冲突,所以就是这样: D
      猜你喜欢
      • 2017-02-15
      • 1970-01-01
      • 2018-12-16
      • 2017-03-05
      • 1970-01-01
      • 2017-02-11
      • 2018-05-10
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多