Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Запуск bash скриптов при помощи gksu  (Прочитано 1106 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Undefvoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Запуск bash скриптов при помощи gksu
« : 08 Январь 2012, 19:00:31 »
Здравствуйте коллеги!
Всех с прошедшими праздниками!

Столкнулся с проблемой. Нужно сделать гуёвый скрипт, но он должен иметь права рута для выполнения определённых задач. Для удобства решил использовать команду gksu.
i=$(whoami)
if [ "$i" != "root" ]
then
gksu $0 &
exit 0
fi
echo "test" >> ./log
zenity --info --text "This run from $i"
exit 0

Но после ввода пароля не отображается сообщение и файл не создаётся. Т.е. такое ощущение, что gksu не хочет запускать скрипт. Не подскажите в какую сторону смотреть?
Заранее спасибо!

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Запуск bash скриптов при помощи gksu
« Ответ #1 : 08 Январь 2012, 19:08:48 »
Цитировать
if [ "$i" != "root" ]
Брр.
http://www.google.ru/search?q=test+root+euid

Далее, путь к каталогу с логом.

Наконец, тестовый запуск из терминала.

Оффлайн Undefvoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Запуск bash скриптов при помощи gksu
« Ответ #2 : 08 Январь 2012, 19:14:35 »
Цитировать
if [ "$i" != "root" ]
Брр.
http://www.google.ru/search?q=test+root+euid

Далее, путь к каталогу с логом.

Наконец, тестовый запуск из терминала.

Ну проверку я поменяю, из терминала, собака, работает. А вот про логи я Вас не понял.
« Последнее редактирование: 08 Январь 2012, 19:31:41 от Undefvoid »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Запуск bash скриптов при помощи gksu
« Ответ #3 : 08 Январь 2012, 19:25:02 »
Вы говорите ему писать в лог. В какой директории будет этот лог?

Насчёт zenity: запускайте скрипт в терминале через gksu, смотрите ошибки.

Оффлайн ChaosWarrior

  • Активист
  • *
  • Сообщений: 461
  • d(-_-)b
    • Просмотр профиля
Re: Запуск bash скриптов при помощи gksu
« Ответ #4 : 08 Январь 2012, 19:29:04 »
Ну так и выполняй его весь с правами root, зачем моск кипятить бесполезными вещами?
И я очень надеюсь, что когда ты со скриптом закончишь, сделаешь его владельцем того же root, чтобы только он мог его редактировать.
Открытый код и его подержка — это лучшая реклама Windows.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Запуск bash скриптов при помощи gksu
« Ответ #5 : 08 Январь 2012, 19:33:20 »
Цитировать
gksu $0 &
Да, само-сабой разумеется, эта беда внутри скрипта не нужна.

Оффлайн Undefvoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Запуск bash скриптов при помощи gksu
« Ответ #6 : 08 Январь 2012, 19:36:16 »
Из терминала всё работает. Нужно сделать скрипт юзабельным. Там где выходит сообщение, это всего лишь для примера. Остальная часть, которую я не показал, работает.
Нужно просто сделать скрипт юзабельным, чтобы человек щёлкнул дважды и... А так из терминала да, всё работает. Но только задача состоит в том, чтобы не прибегать к терминалу.
Если не
gksu $0 &
Тогда как?
« Последнее редактирование: 08 Январь 2012, 19:38:42 от Undefvoid »

Оффлайн ChaosWarrior

  • Активист
  • *
  • Сообщений: 461
  • d(-_-)b
    • Просмотр профиля
Re: Запуск bash скриптов при помощи gksu
« Ответ #7 : 08 Январь 2012, 19:41:48 »
весь-скрипт-от-root
Открытый код и его подержка — это лучшая реклама Windows.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Запуск bash скриптов при помощи gksu
« Ответ #8 : 08 Январь 2012, 19:42:44 »
Тогда как?
Вот, например:
Цитировать
$ grep Exec /usr/share/applications/synaptic.desktop
Exec=gksu --description /usr/share/applications/synaptic.desktop /usr/sbin/synaptic
« Последнее редактирование: 08 Январь 2012, 19:45:45 от arcfi »

Оффлайн Undefvoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Запуск bash скриптов при помощи gksu
« Ответ #9 : 08 Январь 2012, 20:01:28 »
Забавно, оказывается $0 не работает. Дело в том, что gksu не может понять пробелы в именах папок. А $0 передаёт их неэкранироваными.

Надо в скрипте прописывать полный путь для gksu, или поменять путь и сделать линк. Жалко, что так долго допирал до такой мелочи...
Спасибо всем за помощь, ещё раз с праздниками!!!
« Последнее редактирование: 08 Январь 2012, 20:14:58 от Undefvoid »

 

Страница сгенерирована за 0.109 секунд. Запросов: 24.