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


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

Автор Тема: Запрос пароля по необходимости из bash-скрипта  (Прочитано 2151 раз)

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

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Целый час рыл гугл, не нашёл ответа :-\
И man читал.

Вот тестовый скрипт, описывающий проблему:
#!/bin/bash
gksudo -S :
sudo gnome-commander
Gnome-commander не открывается, если данный скрипт запускается из Наутилуса или *-коммандера. Только если через терминал.
Что делать?

Если интересно, зачем, то вот подробности:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 10 Октября 2012, 17:15:34 от kitaets »
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Есть скрипт, общающийся с пользователем через Zenity. Иногда он выполняет последовательность команд, требующих прав рута, и в таком случае используется gksudo.
gksudo bash -c "cmd1 ; cmd2 ; cmd3"?

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
gksudo bash -c "cmd1 ; cmd2 ; cmd3"?
Слишком очевидно :)
Команд много, с кейсами и вызовом функций (или как там они в баше называются). Поэтому перед командами, требующими повышенных прав, идёт проверка переменной, говорящей о том, вводился ли пароль админа, а затем - sudo cmd. И оно прекрасно работает, если вызывать из терминала, а через GUI - нет, хотя пользователь с терминалом никак не взаимодействует.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
« Последнее редактирование: 11 Октября 2012, 00:51:50 от arcfi »

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Спасибо, но менять что-то в системе для запуска одного скрипта - это не по-нашему.

Пока придумал так:
RootPass=`zenity --password --title "Мой крутой скрипт"`
echo $RootPass | sudo -S gnome-commander
Не очень красиво, но работает.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
kitaets,
zenity --entry --title="Пароль" --text="Enter your пароль:" --entry-text "" --hide-texthttp://5.231.6.184/petkas/i2.htm
« Последнее редактирование: 11 Октября 2012, 01:49:34 от victor00000 »
Wars ~.o

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
victor00000,
Спасибо, про опцию "hide-text" забыл. Правда, я не эту красивость имел в виду, а то, что с т.з. безопасности лучше, если скрипт не получает пароля. Но с "hide-text" чуток лучше, сейчас поправлю свою шпаргалку :)

P.S. Пустой entry-text не требуется.
« Последнее редактирование: 11 Октября 2012, 08:35:52 от kitaets »
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

 

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