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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Отключение lightdm и запуск X-сессии с unity из tty  (Прочитано 4940 раз)

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

Оффлайн ivanxstupid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Всем добра, вопрос по Ubuntu 13.04!

Собственно появилась такая задача:
необходимо, чтобы при включении компьютера пользователь видел только консоль,
после того, как он залогинится, специальный скрипт должен проверить является ли он администратором;
если да, то работа продолжается в консоли, если же нет, должна стартовать X-сессия для него,
со всеми его свистелками и бибикалками.

Какие пробовал варианты?
1. Запускал сервис lightdm, но этот способ не годится — во-первых lightdm запускает X-сессию для
всех пользователей, во-вторых сам может быть запущен только под sudo, что в контексте данной задачи
неприемлимо.
2. Использовал команду startx, которая не требует sudo и запускает ГУИ только для конкретного юзера, но
тут опять проблема. Во-первых при запуске иксов через startx все, что относится к оболочке юнити просто
не отображается, виден только сам десктоп с ярлыками и коньки. Во-вторых компиз, который, хотя и исправно
запускается, начинает безбожно тормозить.

Вот что я думаю по этому поводу:
первый вариант отпадает однозначно, ведь запуск сервиса lightdm, так или иначе, ведет в логон. Что касается
startx, насколько я понимаю, надо найти способ врубить, все-таки, юнити тоже и, скорее всего, поддержку OpenGL
для компиза (судя по-тому как он тормозит, дело именно в том, что происходит софтверный расчет).

Подскажите, пожалуйста, нубасу как это сделать :)
« Последнее редактирование: 11 Августа 2013, 17:20:39 от ivanxstupid »

Оффлайн botsman

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: lightm, startx и непонимание :)
« Ответ #1 : 10 Августа 2013, 20:55:34 »
Боюсь спросить -  а на хрена такое нужно???
Я понимаю простой пользователь не умеет чего-то там.... Но чтоб админ не мог самостоятельно попасть в консоль.... :(

не проще ли сделать чтоб автоматом грузилась графика для пользователя, а админ и сам сможет завершить работу графики и залогиниться куда ему нужно....

Оффлайн ivanxstupid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: lightm, startx и непонимание :)
« Ответ #2 : 10 Августа 2013, 21:49:29 »
botsman, дело в том, что для простого пользователя разницы особой не будет, ему и так и так надо ввести только имя и пароль и нажать Enter :) А вот админы должны дождаться прогрузки X-сессии только затем, чтоб потом в 80% случаев прыгнуть в консоль и больше к ней не возвращаться, просто хотелось сделать поизящнее :)

В любом случае, я выявил проблему: отрисовкой всяких рюшечек в данной системе управляет компиз, который использует OpenGL, если просмотреть вывод компиза видно, что как раз OpenGL-то и не инициализируется из-за отсутствия прав рута — отсюда и дикие лаги при отрисовке эффектов :( Юнити же запускается просто командой unity (лол), но тоже требует рута. Как дать эти самые права так, чтобы пароль вводить не приходилось и, при этом, чтоб залогинивало пользователя, а не root у меня даже идей нет :(

Оффлайн botsman

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: lightm, startx и непонимание :)
« Ответ #3 : 11 Августа 2013, 10:46:42 »
мда... значит гораздо изящнее по вашему городить костыли вместо того, чтобы админу на экране логина (lightdm) нажать Ctrl+Alt+F1 и залогиниться в консоль.... ну-ну... успехов в "костылестроении"...

Пример:
User работает в GUI, приходит Admin и говорит: "Дай-ка я поработаю чуток". User отправляет комп в reboot - и дальше работает Ваш костыль.

Вместо того чтобы переключиться в консоль и по окончании работы вернуться в GUI.

А если User'ов несколько??? А если они пользуют различные DE? Во что превратится Ваш костыль???

Для костыля: Не думали использовать уровни запуска? Скрипт, который будет обрабатывать логин в любом случае под рутом работает - так почему бы не делать в нем init 5 для юзеров и init 3 для админов?
« Последнее редактирование: 11 Августа 2013, 11:01:50 от botsman »

Оффлайн ivanxstupid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: lightm, startx и непонимание :)
« Ответ #4 : 11 Августа 2013, 12:22:04 »
botsman, вы вот, вроде, все правильно говорите, а до конца то, что я хочу так и не поняли.

Суть в чем: я хочу как во FreeBSD. Там вы, в общем случае, начинаете работу в консоли, далее логинитесь, далее $ startx (или какая у вас там среда еще есть) и для вас создается X-сессия в свободном DISPLAY, ВСЕ! :)

Я не занимаюсь никаким шаманством, просто пытаюсь миновать этот lightdm как-то. Хорошо, допустим, в консоль прыгаем из логона (что по мне нелогично, потому как у вас прогружено лишнее, если вы не собираетесь в ГУИ), и вот вы говорите пришел админ: «Дай я поработаю!» — в этом случае ребутаться то зачем? Чего вы передергиваете? Т.е. ваш сценарий какой? Пользователь мирно отваливает от компа и админ садится ковыряться в консоли, НО что делать если админу все-таки понадобились ГУИ? Юзер сохранись и закрой все и давай-ка я под собой зайду, вместо того, чтобы просто написать startx и поиметь сессию в свободном дисплее. Так называемое «быстрое переключение пользователей» не предлагать, потому как это за гранью добра и зла — функция просто НЕ ДОДЕЛАНА, количество загубленных из-за этой фичи сессий просто зашкаливает :(

DE и несколько юзеров — это все решается, в моем случае юзеры и знать не знают ни про какой DE, всем годится бережно настроенный юнити — он может работать шустро и быть удобным, как-то все привыкли :)

Нельзя ли поподробнее про уровни запуска? Я не прошу готовый скрипт, но не могли бы вы в двух словах описать, как мне это поможет?

А, я понял про уровни, снимаю вопрос. Это опять же потащит пользователя в логон, а я хочу заставить заработать команду startx, минуя lightdm вообще.
« Последнее редактирование: 11 Августа 2013, 12:34:52 от ivanxstupid »

Оффлайн arrecck

  • Старожил
  • *
  • Сообщений: 1725
    • Просмотр профиля
Re: lightm, startx и непонимание :)
« Ответ #5 : 11 Августа 2013, 12:53:20 »
XSESSION=unity startx
смотрите /etc/X11/Sessions

Оффлайн ivanxstupid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: lightm, startx и непонимание :)
« Ответ #6 : 11 Августа 2013, 13:38:26 »
arrecck, к сожалению, даже с указанием переменной, юнити не стартует. Получается запустить его со sleep, секунд через 15 после загрузки сессии :(



Пользователь решил продолжить мысль 11 Августа 2013, 16:54:43:
Удалось решить проблему с OpenGL!

Для того, чтобы компиз запущенный от username мог использовать драйвер нужно сделать следующее:
$ sudo usermod -G video -a username    #добавляем пользователя в группу видео
Чтобы включить звук и заставить работать кнопки управления громкостью (если таковые есть):
$ sudo -s
$ usermod -G video -a username         #добавляем пользователя в группу аудио
$ usermod -G pulse -a username         #разрешаем взаимодействие с пульсами
$ usermod -G pulse-access -a username  #


Способ, конечно, не самый красивый, но, по крайней мере, прозрачный, быстрый и легко откатываемый :)

Пользователь решил продолжить мысль 11 Августа 2013, 17:13:28:
Теперь что касается юнити, самый простой способ запустить его вместе с иксами — это следующая команда:
$ startx -- :1 /usr/bin/unity
Но проблема в том, что окружение грузится дефолтное, без пользовательских настроек, в общем случае это не так уж и важно, но хотелось бы, все-таки, доделать до ума... Посему переименовал немного тему. Очень жду еще советов :)
« Последнее редактирование: 11 Августа 2013, 17:23:54 от ivanxstupid »

Оффлайн zscauer

  • Новичок
  • *
  • Сообщений: 3
  • :P
    • Просмотр профиля
    • twittter.com/zscauer
Re: Отключение lightdm и запуск X-сессии с unity из tty
« Ответ #7 : 19 Августа 2013, 16:31:03 »
Проверь xinitrc. Есть ли в нем команда на запуск lightdm? Если нет, то добавь. Кажется exec lightdm-session. Не помню точно. Это позволит запускать DM командой startx от пользователя из tty. Это половина решения. А вот как убрать DM с автозапуска я хз, комп не под рукой((
Ubuntu 12.04, Windows 7, iOS 5.1.1

 

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