Сценарій, що використовує sudo, працює з терміналу, але не з ярлика робочого столу


1

Я створюю невеликий скрипт для монтажу файлової системи 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" не монтує файли, через неправильний пароль. Але пароль було введено правильно. Що я роблю неправильно, щоб сценарій працював належним чином тільки починався з терміналу "konsole" в KDE?


Чому ви монтуєте файлову систему як окремий користувач? encfs призначений для роботи як ваш користувач.
Жиль

Так, але в основному я використовую encfs для шифрування вмісту каталогу .ssh, що містить приватні ключі для підключення до серверів, якими я манежу (близько 20). Цей .ssh dir знаходиться в домашньому режимі користувача, але root також повинен використовувати ті самі .ssh клавіші. Мені це потрібно, оскільки мій попередній ноутбук був викрадений, і я шукаю рішення, щоб зберегти приватні ключі RSA більш безпечним способом. Мені було страшно міняти вміст файлу санкціонованих_ ключів на 20 серверах, розташованих по всій країні.
mackowiakp

Відповіді:


1

Коментування рядка в / etc / sudoers, що містить

#Defaults requiretty

проблему вирішено!


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.