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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Запуск приложения в определенной сессии  (Прочитано 948 раз)

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

Оффлайн licon22rus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Доброго времени суток! Есть небольшой проектик на php, вернее несколько скриптов, которые сильно помогают мне по работе. Там стоит WinXP и вертится денвер. Есть скриптик, который по ссылке htt://open.ru?dir=destination-folder выполняет команду exec('explorer.exe D:\\destination\folder'); после клика по ссылочке, запускается проводник по указанному пути.
Дома стоит Ubuntu, вертится LAMP. Беда в том, что команда exec('su %username% nautilus /home/%username%/destination/folder'); не работает. Я не оч продвинут в правах и сессиях, да и вообще в основном у меня все работает с дичайшими костылями, но я стремлюсь :) понять и разобраться. Как я понял в Linux есть понятия как сессия(сеанс) и пользователь www-data, который возможно и запускает наутилус, все равно запускает его в отдельном сеансе/сессии. Помогите разобраться, предложите свою реализацию запуска приложения на сервере посредством php/

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 267
    • Просмотр профиля
Re: Запуск приложения в определенной сессии
« Ответ #1 : 05 Октября 2016, 16:57:59 »
su %username% nautilus /home/%username%/destination/folder
Во-первых эта команда записывается по-другому:
su - %username% -c 'nautilus /home/%username%/destination/folder'Подробнее man suА во-вторых она запросит пароль этого самого %username%. Имеется в виду при запуске из консоли, как это воспримет php из апача не в курсе.

Как вариант (правда не очень хороший вариант) можно запускать апач от имени этого самого пользователя. Тогда можно будет просто засовывать нужную команду в exec() без su или sudo.

 

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