【问题标题】:SOLVED: PAM module bash script on sudo breaks Zenity - /bin/bash failed: exit code 126 - /bin/bash failed: exit code 126已解决:sudo 上的 PAM 模块 bash 脚本会破坏 Zenity - /bin/bash 失败:退出代码 126 - /bin/bash 失败:退出代码 126
【发布时间】:2021-07-03 05:49:03
【问题描述】:

我一直在使用 Kubuntu 18.04(基本上是 Ubuntu 18.04)上的 PAM 模块,似乎无法弄清楚为什么我突然在运行我的每当用户执行sudo 命令时的bash 脚本。

这是我的/usr/local/bin/test.sh文件代码:

#!/bin/sh
/usr/bin/zenity --info --text="It Works!"

这是我的/etc/pam.d/sudo文件代码:

#%PAM-1.0

session    required   pam_env.so readenv=1 user_readenv=0
session    required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0

# My PAM test runs here
auth       required   pam_exec.so /bin/bash /usr/local/bin/test.sh

@include common-auth
@include common-account
@include common-session-noninteractive

每当我尝试sudo -i 时,它都会返回此错误消息:

bin/bash failed: exit code 126

要求输入密码,当输入正确的密码时,打印另一个错误行:

bin/bash failed: exit code 126

我再次确认/usr/bin/test.sh 拥有所有必要的权限。

我的问题是 - 我在这里做错了什么?如何正确调用它并触发 zenity 消息框作为测试?

更新 1

以下是我尝试过的一些修复方法,但没有成功:

  • /usr/bin/test.sh 权限为:-rwx--x--x 1 root root
  • #!/bin/sh#!/bin/bash 都工作
  • 添加 "DISPLAY=:0" 没有帮助

更新 2

好吧,离修复更近了一步,但仍然有问题:

我在auth required 之后添加了stdout,如果我使用echo,它解决了这个问题,但是如果我运行/usr/bin/zenity --info --text="It Works!",它会提示一个新的错误:

Unable to init server: Could not connect: Connection refused  (zenity:5046):
Gtk-WARNING **: 05:52:37.200: cannot open display:  /bin/bash failed: exit code 1

【问题讨论】:

  • 退出代码让我们认为bash 找不到东西。我猜你应该在test.sh 中使用shebang #!/bin/bash 而不是#!/bin/sh/bin/sh 中的 sh short 不再链接到 bash 或 sudo 上下文中的功能性 shell 的事实可以解释你突然遇到的麻烦。
  • 好的,所以它不起作用。不过想法不错。
  • 在 test.sh 的第一行之后添加一行 "DISPLAY=:0" 可能会使其工作。
  • Gtk-WARNING **: 05:52:37.200: cannot open display: 告诉我们当时没有定义DISPLAY。由于您有 pam 会话 user_readenv=0,我猜您在某处依赖 X 设置脚本?
  • 从桌面上运行的终端运行xhost +

标签: linux bash ubuntu pam


【解决方案1】:

原因

没有为 Zenity 定义用于提示消息的显示。

解决方案

为您在 bash 中执行的任何可视化脚本添加显示 - 在我的情况下,它为 zenity 附加 --display=:0.0,如下所示:

#!/bin/sh
/usr/bin/zenity --info --text="It Works!" --display=:0.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多