В выше-два-раза-упомянутой деревне Гадюкино наступил колхозный праздник. Аналогично-упомянутая бухгалтер тетя Маша теперь может ездить в контору только за зарплатой… и тратить ее на оплату Интернета.
Короче, научил freenx использовать локальные smb принтеры и шары клиента, почти как задумано nomachine. Только еще лучше. Но все по порядку. Сначала общее описание.
Вивисекции подвергался freenx 0.7.4 (src.rpm из альтовского сизифа на базе SVN 613). Патч к нему находится в прикрепленном файле. По идее, должно применяться вниз до 0.7.2, как минимум. Это код там не изменялся, потому-что не работал. ) Плохо то, что там все дистрозависимо - патч в первозданном виде заточен под альт. Для остальных систем придется накладывать думаючи. Но не сильно.
На текущий момент работает при таких настройках:
Код: Выделить всё
ENABLE_USERMODE_AUTHENTICATION="0"
ENABLE_PASSDB_AUTHENTICATION="0"
ENABLE_SSH_AUTHENTICATION="0"
ENABLE_SU_AUTHENTICATION="1"
SU – нужен, другие методы авторизации у меня нормально не работают, а SSH по паролю считается у нас моветоном.
Хоть и со SLAVE сессия быстрее грузится, но у меня не восстанавливается и не завершается корректно.
Код: Выделить всё
# !!!!!!!!!!!!!!!!!!!!!!!!!!!
ENABLE_CUPS_SERVER_EXPORT="0"
п# !!!!!!!!!!!!!!!!!!!!!!!!!!!
Самая главная переменная: установка в 0 включает изменения, 1 – все по старому. Подразумевается, что при выключении экспорта пользуемся импортным.
Код: Выделить всё
SAMBA_MOUNT_SHARE_PROTOCOL="smbfs"
ENABLE_SAMBA_PRELOAD="1"
По cifs не работает, потому как стандартный системный smbspool не понимает URI вида smb://$username:$password@$host:$port/$smbproto/$share. Только без $smbproto. А с nxspool морочиться пока неохота.
nxredir тоже не используется, т.к. ведет себя как дэвушка с ПМС – то цепляется, то нет. Печать и доступ идет в непосредственно проброшенный smb-порт 400?. Под альтом проблем с этим пока нет.
Организация печати.
Исходная задумка - рожать на каждую сессию отдельный cupsd, не прокатила по соображениям стоимости брендовой памяти, а также из-за того, что мне не сразу подсказали, как уговорить вайн юзать не системный. Да оно, как обычно, к лучшему.
Появилось два жирных плюса: пользователь при работе может печатать
и на принтерах в конторе, да и начальник может распечатать на принтере пользователя классическое «you’re fired!». Минус - добавляемый пользователем принтер, устройством по умолчанию не станет, естественно.
Операции по добавлению/удалению принтеров ведутся от рута через sudo, фрагмент sudoers приложен. Там можно дать волю подозрительности.
Ставилась задача не пугать юзера окошками с непонятными англицкими буквами при подключении ресурсов. Такие сообщения теперь пишутся только в лог на сервере.
А самое главное, пользователь избавлен от необходимости выбирать драйвер принтера.
Реализовано дешево и сердито: в $NX_ETC создается каталог ppd, куда кладется .ppd, имя которого должно совпадать с именем шары принтера у клиента. Количество клиентов и принтеров не ограничено.
Соответственно, внутри .ppd должен лежать драйвер нужной модели принтера. Также к серверному купсу должны быть установлены пакеты, позволяющие печатать через smb (foomatic, foo2jz… etc). Образец моего приложен. Именно с ним я печатал с другого конца города.
После запуска сессии, при отсутствии в CUPS принтера с именем $USER_$SHARE, он туда добавится. Т.е. можно запустить еще одну сессию с тем же принтером, и он не задвоится. Но, увы, удалится при завершении любой из сессий клиента.
Upd: Поправить в принципе можно, только стоит ли?
Использование локальных шар.
Как задумывалось. Только теперь можно прописывать в клиенте и абсолютные пути для mount, т.е. можно и обмен файлами по nx легче организовать.
Вот такая, блин, вечная музыка. Тестируйте, пишите, деньги высылайте. При отсутствии отзывов обижусь и сяду писать письмо BG с просьбой об усыновлении.
PS: По ходу выяснил, что рутлес сессия всегда завершается со статусом failed по таймауту. С этим и связано долгое ее завершение. Ее фриэныксовая мусорожорка прибивает. Опять клиент ковырять надоть. Ну почему, как только распинывается одна задница, из-за нее показывается еще больше? Название темы влияет?
Upd: Продолжение страданий.