Основной вопрос:
Есть ли способ, которым я могу выполнить «полностью» один из моих скриптов, когда рабочий стол Ubuntu появляется, независимо от того, вошли ли пользователь root, администратор, пользователь рабочего стола или непривилегированный пользователь?
Что делает скрипт?
Сценарий монтирует раздел, ищет файл в этом разделе и, наконец, на основе этого файла принимается решение о копировании раздела в другой раздел. Это копирование осуществляется через
dd if=/dev/sda2 of=/dev/sda5
Когда скрипт работает нормально?
Скрипт работает без проблем, когда я запускаю его из терминала
sudo ./my_copying_script
Эта команда запрашивает у меня пароль пользователя, вошедшего в систему. Я ввожу пароль и скрипт начинает работать.
Когда скрипт НЕ работает нормально?
Я хочу запустить скрипт при запуске. Я установил программу запуска с помощью утилиты Startup Applications Ubuntu. Скрипт запускается при запуске, но завершается по команде dd, возвращая следующую ошибку:
dd: opening '/dev/sda2': Permission denied
По предложению edk я установил владельца my_copying_script как root и установил SUID. Теперь разрешения my_copying_script (-rwsr-sr-x). Точка зрения edk заключалась в том, что после установки suid запускаемая программа будет запускаться с разрешениями ее владельца. Я сделал это, но возникла та же самая ошибка доступа /dev /sda2.
Затем я добавил префикс sudo, как указано ниже
sudo dd if=/dev/sda2 of=/dev/sda5
но это вернуло следующую ошибку:
sudo: no tty present and no askpass program specified