Bug 23377 - Возможность запуска alteratord, alterator-{standalone,cmdline} от любого юзера
Summary: Возможность запуска alteratord, alterator-{standalone,cmdline} от любого юзера
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: alterator (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL: http://git.altlinux.org/people/snejok...
Keywords:
Depends on:
Blocks: 18321
  Show dependency tree
 
Reported: 2010-04-22 22:34 MSD by Lenar Shakirov
Modified: 2014-04-23 18:45 MSK (History)
10 users (show)

See Also:


Attachments
Добавляет интеллект по поиску каталога для сокета и лога (1.79 KB, patch)
2011-07-22 13:30 MSK, Lenar Shakirov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Lenar Shakirov 2010-04-22 22:34:10 MSD
У меня на git.alt лежит alterator.git с чуть измененными d.scm и alteratord.scm, который добавляет возможность запуска alterator'а от простого юзера.

При запуске путь к сокету определяется через переменную TMPDIR, например /tmp/.private/testuser/alterator/.socket. У root'а путь к сокету всегда /tmp/alterator/.socket. Есть обработка ситуации с отсутствием переменной TMPDIR

Права на сокет при запуске от root'а как обычно root._alterator:660, от юзера testuser.testuser:660

PS: кстати сокет лежит там же, где свой сокет создает alterator-browser-qt
Comment 1 Lenar Shakirov 2011-07-22 13:30:03 MSK
Created attachment 5021 [details]
Добавляет интеллект по поиску каталога для сокета и лога

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

Изменение в alterator-cmdline пока не прикладываю, т.к. его как следует не протестировал.
Comment 2 Michael Shigorin 2011-10-06 11:30:17 MSK
На всякий -- когда-то (кажется, в 3.0) alterator-i18n понимал разницу между запуском от рута и от пользователя, соответственно правил /etc/sysconfig/i18n и ~/.i18n; и это было хорошо.
Comment 3 barabashka 2011-10-06 12:12:11 MSK
Зачем его от пользователя запускать? Какая задача решается?
Comment 4 Lenar Shakirov 2011-10-06 12:20:18 MSK
(В ответ на комментарий №3)
> Зачем его от пользователя запускать? Какая задача решается?

Настройка терминальных соединений на тонком клиенте и собственно их запуск.
Это аналог альтового проекта Helios:
squashfs образ ТК, Xorg+пакет autologin, запуск "Списка соединений" с кнопками "Подключится", "Информация" и "Настройка" (последняя просто запускает acc)

http://git.altlinux.org/people/snejok/packages/?p=alterator-thinner.git;a=summary
Comment 5 Sergey V Turchin 2011-10-06 15:39:39 MSK
(В ответ на комментарий №3)
> Зачем его от пользователя запускать?
Когда-то это было можно и использовалось.

> Какая задача решается?
Разные настройки для разных пользователей.
Comment 6 barabashka 2011-10-06 17:01:55 MSK
(In reply to comment #5)
> (В ответ на комментарий №3)
> > Зачем его от пользователя запускать?
> Когда-то это было можно и использовалось.
> 
> > Какая задача решается?
> Разные настройки для разных пользователей.
Может это тогда другой инструмент? Т.е. не ставить такую задачу перед альтератором и найти другое решение? Он же (альтератор) "плоский" и понятный, если исходить из того, что это инструмент администратора.
Comment 7 Michael Shigorin 2012-05-11 04:55:30 MSK
(In reply to comment #1)
> Изменение в alterator-cmdline пока не прикладываю,
> т.к. его как следует не протестировал.
А оно вообще нужно?  Прикидывается работающим с приложенным патчем.

(In reply to comment #6)
> > > Какая задача решается?
> > Разные настройки для разных пользователей.
> Может это тогда другой инструмент?
Например? :)
Comment 8 Lenar Shakirov 2012-05-12 19:29:28 MSK
(В ответ на комментарий №7)
> (In reply to comment #1)
> > Изменение в alterator-cmdline пока не прикладываю,
> > т.к. его как следует не протестировал.
> А оно вообще нужно?  Прикидывается работающим с приложенным патчем.

Нужно: от простого юзера тоже запускаю alterator-cmdline

<skip>
Comment 9 Michael Shigorin 2012-05-12 20:46:18 MSK
К тому, что у меня alterator-cmdline от простого юзера как раз и работает; посмотрел -- на первый взгляд не вижу, что ещё в нём править.

Собсно такая сборка alterator со вчера работает -- собирать тестовый таск или сразу в сизиф, есть возражения?
Comment 10 Lenar Shakirov 2012-05-13 14:15:37 MSK
(В ответ на комментарий №9)
> К тому, что у меня alterator-cmdline от простого юзера как раз и работает;
> посмотрел -- на первый взгляд не вижу, что ещё в нём править.

Я думаю это из-за того, что alteratord _уже_ запущен от _обычного_юзера_, возможно его запустил acc (alterator-standalone). Попробуйте его прибить и запустить alterator-cmdline не получится.

Дело в том, что alterator-cmdline:
- не умеет работать без alteratord и использует его сокет - /var/run/alteratord/.socket;
- запущенный alterator-cmdline от обычного пользователя не может писать в сокет, т.к. там srw-rw---- 1 root _alteratord /var/run/alteratord/.socket
- не умеет (как и ahttpd) самостоятельно запускать alteratord (а вот acc (alterator-standalone) умеет);

Мой патч как раз исправляет третий пункт: учит alterator-cmdline запускать alteratord, если он не запущен (от текущего юзера).

> Собсно такая сборка alterator со вчера работает -- собирать тестовый таск или
> сразу в сизиф, есть возражения?

Т.к. у нас нет "генерального конструктора" по alterator'у, то лучше тестовый и попросить протестить в sisyphus@/community@
Comment 11 Lenar Shakirov 2012-05-13 14:20:18 MSK
(В ответ на комментарий №10)
<skip>
> - не умеет (как и ahttpd) самостоятельно запускать alteratord (а вот acc
> (alterator-standalone) умеет);
> 
> Мой патч как раз исправляет третий пункт: учит alterator-cmdline запускать
> alteratord, если он не запущен (от текущего юзера).

Я имел ввиду вот этот патч:
http://git.altlinux.org/people/snejok/packages/?p=alterator-old.git;a=commitdiff;h=a7f5eca5869dd4935a6744dc69dcdd4cd8730f22

Вот его я не очень хорошо протестировал и не уверен что это верное решение.
Comment 12 Michael Shigorin 2012-05-14 19:54:02 MSK
(In reply to comment #10)
> Я думаю это из-за того, что alteratord _уже_ запущен от _обычного_юзера_,
> возможно его запустил acc (alterator-standalone). Попробуйте его прибить и
> запустить alterator-cmdline не получится.
В том-то и дело, что просто работает:

$ pidof alteratord  
$ ls -l $TMP/alterator/browser-sock                 
/bin/ls: cannot access .../alterator/browser-sock: No such file or directory
$ /usr/sbin/alterator-cmdline -l /mkimage/arches action list                    

name:32-bit
label:i586
$ _
Comment 13 Lenar Shakirov 2012-05-14 20:18:30 MSK
(В ответ на комментарий №12)
> (In reply to comment #10)
> > Я думаю это из-за того, что alteratord _уже_ запущен от _обычного_юзера_,
> > возможно его запустил acc (alterator-standalone). Попробуйте его прибить и
> > запустить alterator-cmdline не получится.
> В том-то и дело, что просто работает:
> 
> $ pidof alteratord  
> $ ls -l $TMP/alterator/browser-sock                 
> /bin/ls: cannot access .../alterator/browser-sock: No such file or directory
> $ /usr/sbin/alterator-cmdline -l /mkimage/arches action list                    
> 
> name:32-bit
> label:i586
> $ _

Дык "-l" же! :)

=== /usr/sbin/alterator-cmdline ===

(if (option-ref options 'local #f)
   (begin (alterator-init-local)
         (d-init-local))
   (alterator-init-global))

=== /usr/sbin/alterator-cmdline ===

а мой патч добавляет (d-init-global):
(if (option-ref options 'local #f)
   (begin (alterator-init-local)
         (d-init-local))
   (begin (alterator-init-global)
         (d-init-global)))
Comment 14 Michael Shigorin 2012-05-14 22:04:10 MSK
А, вот что.  Посмотрел d.scm -- похоже, всё правильно: это остатки той самой былой роскоши и именно их и надо было вновь задействовать.  УМВР и без -l.
Comment 15 Repository Robot 2012-05-14 22:09:11 MSK
alterator-4.21-alt1 -> sisyphus:

* Mon May 14 2012 Michael Shigorin <mike@altlinux> 4.21-alt1
- add support for non-privileged execution of alteratord,
  alterator-cmdline (by Lenar Shakirov; closes: #23377)
- fix finding out current user: "cuserid" not working in hasher
  (by Lenar Shakirov)