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

일반 사용자나 루트로 터미널에서 실행하면 제대로 작동합니다. 그런 다음 KDE 데스크탑에 바로가기를 만들어 스크립트를 실행했습니다. 다른 경우에는 "encfs"가 잘못된 비밀번호로 인해 filesys를 마운트하지 않기 때문에 바로가기 정의에서 "터미널에서 실행" 옵션을 사용해야 했습니다. 그런데 비밀번호는 제대로 입력됐네요. KDE의 "konsole" 터미널에서 시작할 때만 스크립트가 작동하도록 하려면 제가 무엇을 잘못하고 있습니까?

답변1

다음을 포함하는 /etc/sudoers 행을 주석 처리합니다.

#Defaults requiretty

문제를 해결했습니다!

답변2

입력을 요청하고 STDIN 읽기를 거부하는 명령을 실행합니다.화면에서 명령을 실행합니다., 잠시만 기다려 주세요.그것에 입력을 제공.

관련 정보