使用 sudo 的脚本可以从终端运行,但不能从桌面快捷方式运行

使用 sudo 的脚本可以从终端运行,但不能从桌面快捷方式运行

我创建了一个小脚本来挂载 encfs 文件系统。像这样:

#!/bin/bash
kdialog --password "Wprowadź hasło do SSH lub ENTER żeby rozłączyć:" >  /home/maciek/Pobrane/pass-1
sudo encfs -S --public /home/maciek/dir/.dir_c /home/maciek/dir_v < /home/maciek/Pobrane/pass-1
status=$?
if test $status -eq 0
then
cat /dev/null > /home/maciek/Pobrane/pass-1
<command_A>
kdialog --passivepopup "Zamontowano SSH" 5
exit
else
cat /dev/null > /home/maciek/Pobrane/pass-1
<command_B>
kdialog --passivepopup "Rozłączono SSH lub błędne hasło" 5
fi

当以普通用户或 root 身份从终端运行时,它工作正常。然后我在 KDE 桌面上创建快捷方式来运行该脚本。我必须在快捷方式定义中使用选项“在终端中运行”,因为在其他情况下“encfs”由于密码错误而不会挂载 filesys。但密码输入正确。我做错了什么,所以脚本只能从 KDE 中的“konsole”终端启动才能正常工作?

答案1

注释 /etc/sudoers 中的行,包含

#Defaults requiretty

解决了问题!

答案2

运行提示输入并拒绝从 STDIN 读取的命令我在屏幕上运行命令,稍等一下,然后向其提供输入

相关内容