gpt4 book ai didi

linux - 已解决 : PAM module bash script on sudo breaks Zenity -/bin/bash failed: exit code 126 -/bin/bash failed: exit code 126

转载 作者:行者123 更新时间:2023-12-04 18:42:55 25 4
gpt4 key购买 nike

我一直在玩弄 帕姆 上的模块库本图 18.04 (基本上是 Ubuntu 18.04)并且似乎无法弄清楚为什么每当用户执行 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
    好吧,离修复它更近了一步,但仍然存在问题:
    我添加了 stdoutauth required 之后如果我使用 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

    最佳答案

    原因
    没有为 Zenity 定义用于提示消息的显示。
    解决方案
    为您在 bash 中执行的任何可视化脚本添加显示 - 在我的情况下,它附加了 --display=:0.0像这样的zenity:

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

    关于linux - 已解决 : PAM module bash script on sudo breaks Zenity -/bin/bash failed: exit code 126 -/bin/bash failed: exit code 126,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68233577/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com