Среда, 26 Апрель 2023 08:55

Настройка пользовательского рабочего компьютера на Simply Linux

Автор
Оцените материал
(9 голосов)

Поставили задачу по замене операционной системы на некоторых рабочих компьютерах. Причём, в задаче указывалась рекомендация, что лучше подобрать какую-нибудь из российских ОС. Выбор пал на Simply Linux — система российская на базе Alt, свободно распространяемая и имеющая тот же самый репозиторий Sisyphus, который используется в Alt Linux. Документация по Alt Linux актуальна и для Simply Linux. Также, Simply Linux нетребовательна к ресурсам, имеет графическую оболочку Xfce.

Начну с установки. На первом шаге предлагается выбрать язык и переключение раскладки, где я ничего менять не буду, т.к. по умолчанию всё стоит как мне надо:

Затем принимаю лицензионное соглашение и перехожу к следующему шагу, где надо выбрать часовой пояс и можно сразу задать NTP-сервер, если такой имеется в сети. У меня имеется, поэтому задаю:

На следующем шаге надо выбрать диск, на который будет установлена система. И вот тут нужно быть внимательным! Если на компьютере установлено 2 (или более) физических диска, то установщик Simply Linux заберёт их все под себя, если выбрать автоматическую разметку!

Установщик об этом предупреждает, главное не просмотреть!

Далее выбираю компоненты, отключив лишнее:

После чего начинается установка системы:

Но это ещё не конец. После установки система спрашивает, на какой диск поставить загрузчик. Ставлю на тот диск, на котором установлена система:

Затем можно завести свои сетевые реквизиты:

Далее задаю пароль для рута:

А потом создаю обычного пользователя. Хоть он и будет зваться администратором, но это будет обычный пользователь:

И, после этого шага, установка Simply Linux завершается, компьютер перезагружается. Вынимаю установочный носитель и загружаю комп:

 Что ж, теперь надо определиться с подробностями задачи. Итак:

- имеется домен AD, комп на Simply Linux должен войти в этот домен, чтобы пользователи домена AD могли логиниться и работать на Simply Linux.

- при логине доменного пользователя должны монтироваться сетевые SMB шары к нему в домашний каталог.

- должен быть удалённый доступ к рабочему столу пользователя, аналогичный Radmin.

- на компьютере будут работать несколько пользователей и, помимо стандартных офисных программ, им надо будет просматривать dwg-файлы и файлы из Компас 3D. 

Начну с обновления системы и некоторого «причёсывания» под себя. Пытаюсь со своего рабочего компа подключиться по SSH к Simply Linux и… облом. По умолчанию в Simply Linux не запущен SSH-сервер. Поэтому становлюсь рутом непосредственно на самом Simply Linux компьютере и нахожу файл /etc/openssh/sshd_config и меняю в нём параметр: 

#PermitRootLogin without-password 

на: 

PermitRootLogin yes 

Затем ввожу команды: 

systemctl start sshd
systemctl enable sshd 

Всё, SSH-сервер запущен, можно законнектиться к Simply Linux со своего компьютера. Подключился и сразу ставлю обновления:

apt-get update
apt-get dist-upgrade 

Дожидаюсь завершения обновления и перезагружаю компьютер. Следующее, чего мне хочется после обновления — это видеть логи системы в их классическом виде, а не Journald, который в Simply Linux используется по умолчанию. Нахожу файл /etc/systemd/journald.conf и в секции [Journal] редактирую два параметра, приводя их к такому виду: 

Storage=none
ForwardToSyslog=yes 

Затем устанавливаю logrotate и rsyslog: 

apt-get install logrotate rsyslog-classic 

И запускаю сервис Rsyslog:

systemctl start rsyslog
systemctl enable rsyslog 

Потом перезагружаю комп и проверяю, появились ли логи в /var/log. Появились.

Теперь мне надо ввести компьютер в домен AD. Здесь приходит на помощь оф.документация: 

https://www.altlinux.org/ActiveDirectory/Login

В Simply Linux есть весьма интересное решение под названием Alterator, он же Центр управления системой, который позволяет ввести компьютер в домен AD через графический интерфейс. Но перед этим надо установить пакет task-auth-ad-sssd

apt-get install task-auth-ad-sssd 

По зависимостям он тянет за собой много других пакетов, поэтому я перезагружу компьютер на всякий случай. После загрузки захожу в Альтератор:

Система попросит ввести пароль от рута. Ввожу:

Открывается окно Альтератора, в котором я перехожу в меню «Аутентификация»:

В открывшемся окне настроек я ставлю крыж на домен Active Directory, причём поля «домен» и «имя компьютера» уже сразу заполнены были. И заполнены правильно. Не знаю точно, из каких параметров система взяла эти значения, но предполагаю, из имени хоста + из параметра «search» в настройках DNS. Жму кнопку «Настройки SSSD»:

В настройках SSSD выбираю значение «enabled» в параметре «Обновлять IP адрес машины в DNS»:

Всё, теперь жму применить:

Система попросит логин и пароль администратора домена AD:

И затем выйдет уведомление об успешном присоединение к домену:

После этого перезагружаю компьютер. И затем вижу, что окно авторизации немного изменилось. Теперь логин пользователя надо вводить вручную, причём уже сразу доменного пользователя:

Можно вводить без домена, система поймёт. И да, сразу заглядываю на контроллер домена в оснастку «Пользователи и компьютеры» и в оснастку «DNS». Компьютер с Simply Linux появился и там и там:

IP-адрес у него не тот, который я задал при установке, т.к. я потом убрал статический IP и прописал, чтобы комп получал IP-адрес от DHCP-сервера, как и все остальные пользовательские компы.

Итак, залогинившись под доменным пользователем, вижу точно такой же рабочий стол, как и у локального пользователя. Теперь мне надо сделать, чтобы, при логине доменного юзера, ему сразу автоматически монтировались сетевые SMB-папки. Эти сетевые папки находятся на Windows-серверах, которые также являются членами домена AD. А значит, что при монтировании можно использовать kerberos-авторизацию. Также в AD настроена политика, которая переназначает пользователям папку рабочего стола, папку документов и пр. на сетевое хранилище:

Это сделано с той целью, чтобы у пользователей не терялось их барахло при выходе из строя hdd/sdd на рабочем компе. Собственно, всё это барахло ещё и бэкапится ежедневно с сетевых хранилищ. Но это уже совсем другая история. А на компе Simply Linux нужно точно также к рабочему столу, документам и прочему монтировать каталоги с сетевого хранилища. 

Сперва приведу в порядок файл /etc/krb5.conf. В нём в секции [libdefaults] уже должна быть строка: 

default_realm = DOMAIN.LOCAL

где DOMAIN.LOCAL — название моего домена в AD, т.к. до этого комп был введён в домен.

Осталось привести в должный вид секции [realms] и [domain_realm]:

[realms]
 DOMAIN.LOCAL = {
  default_domain = domain.local
 }

[domain_realm]
 .domain.local = DOMAIN.LOCAL
 domain.local = DOMAIN.LOCAL

Чтобы обычные пользователи могли монтировать сетевые SMB-папки, нужно сделать некоторые приготовления. Для начала надо установить setuid на файл /sbin/mount.cifs командой: 

chmod 4611 /sbin/mount.cifs 

и установить setuid на файл /usr/bin/sudo командой: 

chmod 4611 /usr/bin/sudo 

Далее нахожу файл /etc/sudoers. В нём в секцию # Cmnd alias specification надо добавить строчку: 

Cmnd_Alias MOUNT = /sbin/mount.cifs 

А в секцию # User privilege specification добавить строчку: 

%users ALL=(ALL:ALL) NOPASSWD: MOUNT 

Группа users — это группа, в которую, по умолчанию, входят все доменные пользователи. Вышеобозначенные действия позволяют пользователям использовать команду sudo mount.cifs без ввода рутового пароля.

Создаю каталог /home/distrib и в нём создаю скрипт следующего содержания:

#!/bin/bash

# Создание папки NFile, если её нет.
if [ ! -d /home/DOMAIN.LOCAL/$USER/NFile ]; then
	mkdir -p /home/DOMAIN.LOCAL/$USER/NFile
fi

# Создание папки Disk_P, если её нет.
if [ ! -d /home/DOMAIN.LOCAL/$USER/Disk_P ]; then
	mkdir -p /home/DOMAIN.LOCAL/$USER/Disk_P
fi

# Создание папки Disk_K, если её нет.
if [ ! -d /home/DOMAIN.LOCAL/$USER/Disk_K ]; then
	mkdir -p /home/DOMAIN.LOCAL/$USER/Disk_K
fi

# Создание папки OTK, если её нет.
if [ ! -d /home/DOMAIN.LOCAL/$USER/OTK ]; then
	mkdir -p /home/DOMAIN.LOCAL/$USER/OTK
fi

# Монтирование рабочего стола и доков
sudo mount.cifs "//Docserv.domain.local/docs$/$USER/desktop" "/home/DOMAIN.LOCAL/$USER/Рабочий стол" -o sec=krb5i,file_mode=0777,dir_mode=0777
sudo mount.cifs "//Docserv.domain.local/docs$/$USER/My Documents" "/home/DOMAIN.LOCAL/$USER/Документы" -o sec=krb5i,file_mode=0777,dir_mode=0777
sudo mount.cifs "//Docserv.domain.local/docs$/$USER/My Documents/My Pictures" "/home/DOMAIN.LOCAL/$USER/Изображения" -o sec=krb5i,file_mode=0777,dir_mode=0777

# Монтирование папки NFile
sudo mount.cifs "//NFile-T.domain.local/NFile$" "/home/DOMAIN.LOCAL/$USER/NFile" -o sec=krb5i,file_mode=0777,dir_mode=0777

# Монтирование папки Disk_P
sudo mount.cifs "//f1.domain.local/Project" "/home/DOMAIN.LOCAL/$USER/Disk_P" -o sec=krb5i,file_mode=0777,dir_mode=0777

# Монтирование папки Disk_K
sudo mount.cifs "//f1.domain.local/DWG" "/home/DOMAIN.LOCAL/$USER/Disk_K" -o sec=krb5i,file_mode=0777,dir_mode=0777

# Монтирование папки OTK
sudo mount.cifs "//fileserv2.domain.local/ОТК" "/home/DOMAIN.LOCAL/$USER/OTK" -o sec=krb5i,file_mode=0777,dir_mode=0777

exit

Назову этот скрипт mountdocs-krb. И не забываю дать особые права на каталог /home/distrib и на сам скрипт mountdocs-krb:

chmod -R 550 /home/distrib
chown -R Administrator:"domain users" /home/distrib 

В каталог и его содержимое даю доступ на чтение+исполнение владельцу и группе доменных пользователей. Права на редактирование давать не обязательно. Под рутом всё равно можно редактировать.

Ну и, пожалуй, не помешают некоторые пояснения. Скрипт создаёт в домашнем каталоге пользователя папки с определёнными названиями и к этим папкам монтирует сетевые папки. При монтировании используется kerberos-авторизация, причём параметр sec=krb5i, а не sec=krb5. С параметром sec=krb5 у меня не заработало почему-то, но разбираться не стал. И важный момент в следующем: при kerberos-авторизации в команде монтирования надо использовать FQDN-сервера, а не его IP. Т.е. правильно так: //f1.domain.local/Project, а не так: //10.100.100.20/Project. А значит, что в локальной сети должен иметься правильно настроенный DNS-сервер.

Пробую запустить mountdocs-krb под доменным пользователем, и если отрабатывает нормально, то помещаю этот скрипт в автозапуск пользователю:

Сохраняю и перезагружаю комп. Логинюсь под доменным пользователем и… вижу пустой рабочий стол:

Но если нажать F5, то всё становится хорошо, файлы доступны (напомню, что к рабочему столу монтируется сетевая папка при входе пользователя в систему). Это происходит потому, что графическая оболочка загружается быстрее чем срабатывает монтирование сетевых папок. Причём, такое поведение у меня наблюдается только на компе с SSD диском. На компе с обычным HDD графическая оболочка грузится медленнее, поэтому монтирование успевает срабатывать до её загрузки – соответственно там проблемы с пустым рабочим столом нет. Но, при варианте с SSD, каждый раз жать F5 неудобно, да и пользователь может не догадаться, поэтому надо придумать что-то такое, чтобы оно само нажимало F5 на рабочем столе при входе пользователя. И такое решение нашлось при помощи утилиты xdotool. Сначала её надо установить: 

apt-get install xdotool

Затем в конец своего скрипта /home/distrib/mountdocs-krb (перед строчкой exit) добавляю вот такие строчки: 

sleep 2
xdotool search --class desktop windowclose
xdotool search --class desktop windowfocus && xdotool key F5 

Тут сразу скажу, что параметры xdotool и очерёдность их срабатывания подбирались методом проб и ошибок. Почему-то, вначале, надо дать параметр windowclose, а уже потом windowfocus и key F5. Может быть, это как-то проще можно сделать, но работает и так. Теперь файлы на рабочем столе отображаются сразу при логине пользователя:

Следующим этапом будет настройка удалённого доступа к рабочему столу пользователя. Для этого будет использоваться классические решение x11vnc, работающее как сервис. Устанавливаю: 

apt-get install x11vnc x11vnc-service 

Во многих дистрибутивах приходится настраивать вручную, чтобы x11vnc работал как сервис. Но в Simply Linux уже есть готовый пакет x11vnc-service для этой цели. После установки надо лишь сгенерировать пароль доступа: 

x11vnc --storepasswd

Будет запрос пароля, подтверждение и путь к файлу, в который запишется хэш пароля: 

Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n y
Password written to: /root/.vnc/passwd 

Добавляю сервис x11vnc в автозапуск: 

systemctl enable x11vnc.service 

Теперь перезагружаю комп и пробую подключиться к нему по VNC. Использую для этого клиент KRDC, вводя в строке vnc://10.100.101.23:5900. Подключение работает. 

Теперь надо разобраться с просмотром DWG и компасовских файлов. Для просмотра DWG-файлов я нагуглил программу VariCAD Viewer. В репозиториях её нет, поэтому скачиваю RPM-ку с оф.сайта: 

https://www.varicad.com/en/home/products/download/

И пробую установить: 

rpm -ivh VariCAD_View_2023-en-2.04-1.x86_64.rpm 

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

OpenGlShaderSmoothRgb 460 Fragment shader:
0:1(10): error: GLSL 4.60 is not supported. Supported versions are: 1.10, 1.20, and 1.00 ES 

И потом ещё кучу ошибок такого же плана. Ответ я нашёл тут: 

https://www.varicad.com/en/home/support/discussion-forum/index.php?caller=1e2734ae19fb0cf52b6e00b2c06d29b0endiscussion1&action=show_post&post=540&cat=20

Там заявляется, что VariCAD неправильно определяет актуальную версию openGL. И автор топика решил проблему переопределением переменных MESA_GL_VERSION_OVERRIDE и MESA_GLSL_VERSION_OVERRIDE при запуске VariCAD. И да, мне это тоже помогло. Поэтому нахожу файлик /usr/share/applications/varicadview.desktop и правлю в нём эту строчку: 

Exec=varicad-view 

Заменив её на: 

Exec=env MESA_GL_VERSION_OVERRIDE=4.3 env MESA_GLSL_VERSION_OVERRIDE=430 varicad-view 

Сохраняю, перелогиниваюсь под доменным пользователем и пробую запустить VariCAD. Запустился, DWG-файлы открывает.

Теперь нужно поставить просмотрщик Компас 3D. А его под Linux нету, но его можно запустить под Wine’ом. Что ж, ставлю Wine: 

apt-get install wine i586-wine winetricks 

И, на всякий случай, перезагружаю комп. После загрузки компьютера мне надо под кем-то залогиниться и установить Компас 3D просмотрщик. Вообще, Wine устроен так, что каждому пользователю создаётся отдельный префикс (а-ля виртуальная Windows), и в этот префикс устанавливаются программы Windows. Но, в моём случае, проблема в том, что за компьютером будут работать три человека и каждому из них настраивать отдельный префикс с отдельным Компасом… ну такое себе… Я попробую сделать один префикс на всех. Сразу оговорюсь, что, возможно, это не самое хорошее решение и, возможно, потом приведёт к каким-то ошибкам, но я попробую всё-таки. В конце концов, резервный вариант с отдельным префиксом каждому пользователю никто не отменял.

Итак, дальнейшие действия делаю под пользователем, а не под рутом. Сначала запускаю Wine config, чтобы создался префикс: 

winecfg 

И тут сразу предлагается загрузить и установить Wine Mono. Соглашаюсь:

Потом появляется окно настройка Wine. В нём ничего не делаю, просто закрываю его:

Префикс создался. Теперь надо установить дополнительные компоненты, необходимые для Компаса 3D. Действую вот по этой инструкции: 

https://habr.com/ru/companies/ascon/articles/715710/

Ставлю NET. Framework 4.8: 

winetricks --force -q dotnet48 

Winetricks начнёт сам скачивать все зависимости и exe-файлы. Это займёт некоторое время. Затем ставлю d3dcompiler_47: 

winetricks -q d3dcompiler_47 

Потом MSXLM: 

winetricks -q msxml3 msxml4 msxml6 

Потом Шрифты: 

winetricks -q corefonts 

И Visual C++ Redistributable вместе с неким модулем, содержащем функции управления форматом текста: 

winetricks vcrun2019 riched20 

Появляются знакомые окна установщиков Visual C++ Redistributable:

По завершению установки компонентов скачиваю с официального сайта просмотрщик Компас 3D: 

https://kompas.ru/kompas-3d-viewer/download/

На момент статьи это версия 21. Скачанный архив распаковываю в каталог /home/distrib и запускаю установку: 

wine /home/distrib/KOMPAS-3D_Viewer_v21_x64/Setup.exe 

Запустился установщик:

Выбираю выборочную установку и снимаю две последних галки, мне эти компоненты не нужны:

Компас установился без какой-либо ругани:

Пробую запустить и открыть какие-нибудь файлы. Вроде всё нормально:

Теперь, что я делаю далее… А далее я обращаю внимание, что после установки dotnet48, vcrun2019 и прочих прелестей для Компаса 3D, в настройках Wine’а включились замещения DLL.

Эти настройки прописываются в файле .wine/user.reg в секции [Software\\Wine\\DllOverrides], и они понадобятся в дальнейшем. Куст DllOverrides можно выгрузить штатным средством Wine. Делаю: 

wine regedit /E dll.overrides.reg "HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides" 

Полученный файлик dll.overrides.reg кладу в каталог /home/distrib.

Теперь мне надо куда-нибудь скопировать весь префикс, в который установлен Компас 3D, т.е. это каталог .wine, расположенный в домашней директории пользователя, под которым делал всё вышеописанное. Копирую его содержимое в /opt/wine, затем даю нужные права на этот каталог: 

chown -R somedomainuser:"domain users" /opt/wine
chmod -R g+w /opt/wine 

Первой командой я назначаю владельцем каталога кого-нибудь из доменных пользователей и владеющую группу domain users. Тут, как раз, основная цель — это назначить владеющую группу. А второй командой я добавляю право на запись владеющей группе.

Следующее, что нужно подготовить — это файлик КОМПАС-3D Viewer v21.desktop. У пользователя, которому только что установил Компас, этот файлик есть и лежит он тут: /home/DOMAIN.LOCAL/user/.local/share/applications/wine/Programs/КОМПАС-3D Viewer v21 x64. Я скопирую этот файлик, например, в /home/distrib/КОМПАС-3D Viewer v21 x64. И внесу кое-какие правки.
Параметр Exec пропишу так: 

Exec=wine "/opt/wine/drive_c/Program Files/ASCON/KOMPAS-3D Viewer v21/Bin/kViewer.exe" 

Параметр Path пропишу так: 

Path=/opt/wine/drive_c/Program Files/ASCON/KOMPAS-3D Viewer v21/Bin/ 

Параметр Icon пропишу так: 

Icon=/home/distrib/kompas.png 

И добавлю параметр:

Terminal=false 

В итоге, получится вот такое содержание: 

[Desktop Entry]
Name=КОМПАС-3D Viewer v21
Exec=wine "/opt/wine/drive_c/Program Files/ASCON/KOMPAS-3D Viewer v21/Bin/kViewer.exe"
Type=Application
StartupNotify=true
Comment=Средство просмотра документов КОМПАС-3D
Path=/opt/wine/drive_c/Program Files/ASCON/KOMPAS-3D Viewer v21/Bin/
Icon=/home/distrib/kompas.png
StartupWMClass=kviewer.exe
Terminal=false 

Файлик kompas.png с иконкой скачиваю где-нибудь в интернете и кладу в /home/distrib. Ну или вот здесь выложу:

Всё, теперь создаю скрипт /home/distrib/wine-pripare вот с таким содержимым:

#!/bin/bash
# Создание папки .wine, если её нет, и частичное наполнение.
if [ ! -d /home/DOMAIN.LOCAL/$USER/.wine ]; then
	mkdir -p /home/DOMAIN.LOCAL/$USER/.wine
	cp /opt/wine/system.reg /home/DOMAIN.LOCAL/$USER/.wine/
	ln -s /opt/wine/drive_c /home/DOMAIN.LOCAL/$USER/.wine/drive_c
fi

# Добавление Компаса в меню приложений, если его нет.
if [ ! -d "/home/DOMAIN.LOCAL/$USER/.local/share/applications/КОМПАС-3D Viewer v21 x64" ]; then
	cp -R "/home/distrib/КОМПАС-3D Viewer v21 x64" /home/DOMAIN.LOCAL/$USER/.local/share/applications/
fi

# Запуск утилиты winecfg для генерации остальных файлов в префиксе
winecfg

# Импорт предварительно выгруженного куста у эталонного пользователя. Для переопределения библиотек.
wine regedit /home/distrib/dll.overrides.reg

exit

И сейчас поясню, что происходит. Допустим я залогинился под новым доменным пользователем которому нужен Компас 3D. Я запускаю этот скрипт. Если у пользователя в домашнем каталоге нет папки .wine, то она создаётся. Затем в неё копируется файлик system.reg из общего префикса. Потом создаётся символическая ссылка на каталог /opt/wine/drive_c, находящийся в общем префиксе. Вначале я пробовал делать ссылку на весь каталог /opt/wine, но тогда была проблема: Wine при запуске жаловался «.wine is not owned by you». И менять владельца не было смысла, т.к. потом уже под другим пользователем вылезла бы та же самая ошибка. Далее скрипт копирует пользователю файлик КОМПАС-3D Viewer v21.desktop, если его нет. Потом запускает winecfg, чтобы Wine создал в префиксе остальные необходимые файлы, в том числе и user.reg. В процессе этого вылезет окно:

в котором можно нажать на «Нет». Потом откроется окно настройки Wine, которое можно закрыть. И уже после этого скрипт импортирует в настройки ранее выгруженный куст dll.overrides.reg, чтобы применить замещение DLL, необходимое для работы Компаса.

Теперь, когда пользователь первый раз логинится на компе, ему нужно лишь один раз запустить этот скрипт ( /home/distrib/wine-pripare ), чтобы подтянуть общий вайновский префикс с установленным КОМПАС-3D Viewer. Но тут я обнаружил один неприятный побочный эффект. При формировании префикса таким образом, создаются ненужные вайновские ассоциации файлов, их можно увидеть в каталоге /home/DOMAIN.LOCAL/user/.local/share/applications:

Из-за них многие файлы, по умолчанию, начинают открываться в winebrowser вместо положенной программы. Вот, например, .xlsx файл:

Поэтому в конец скрипта /home/distrib/wine-pripare (перед exit) я добавлю строчку: 

rm -f /home/DOMAIN.LOCAL/$USER/.local/share/applications/*.desktop 

которая как раз и будет удалять эти ненужные ассоциации. Итого, весь скрипт становится таким:

#!/bin/bash
# Создание папки .wine, если её нет, и частичное наполнение.
if [ ! -d /home/DOMAIN.LOCAL/$USER/.wine ]; then
	mkdir -p /home/DOMAIN.LOCAL/$USER/.wine
	cp /opt/wine/system.reg /home/DOMAIN.LOCAL/$USER/.wine/
	ln -s /opt/wine/drive_c /home/DOMAIN.LOCAL/$USER/.wine/drive_c
fi

# Добавление Компаса в меню приложений, если его нет.
if [ ! -d "/home/DOMAIN.LOCAL/$USER/.local/share/applications/КОМПАС-3D Viewer v21 x64" ]; then
	cp -R "/home/distrib/КОМПАС-3D Viewer v21 x64" /home/DOMAIN.LOCAL/$USER/.local/share/applications/
fi

# Запуск утилиты winecfg для генерации остальных файлов в префиксе
winecfg

# Импорт предварительно выгруженного куста у эталонного пользователя. Для переопределения библиотек.
wine regedit /home/distrib/dll.overrides.reg

# удалить ненужные ассоциации после подготовки префикса
rm -f /home/DOMAIN.LOCAL/$USER/.local/share/applications/*.desktop

exit

Теперь надо сделать так, чтобы при первом логине пользователя, ему сразу создавался правильный профиль, в котором отключены ненужные апплеты и в котором уже есть в автозагрузке скрипт /home/distrib/mountdocs-krb, монтирующий сетевые папки. Также, при первом логине, должен сработать скрипт /home/distrib/wine-pripare, но только при первом логине! Ну и другие мелочи.

Итак, начальные установки профиля для нового пользователя заданы в каталоге /etc/skel. Для начала делаю (под рутом конечно же) его резервную копию: 

cp -r /etc/skel /etc/skel-orig 

Когда я пользователю petrov_ev добавил в автозапуск (см. несколько пунктов выше) скрипт, монтирующий сетевые папки при входе, то у него в профиле создался файл /home/DOMAIN.LOCAL/petrov_ev/.config/autostart/Сетевые папки.desktop. Чтобы то же самое было в профиле по умолчанию, копирую этот файл в каталог /etc/skel/.config/autostart

cp "/home/DOMAIN.LOCAL/petrov_ev/.config/autostart/Сетевые папки.desktop" /etc/skel/.config/autostart 

Далее, я хочу отключить апплет, проверяющий обновления и, за одним, Bluetooth. Простому пользователю это не нужно. Отключаю их в настройках Xfce:

После этого появляются два файла в каталоге /home/DOMAIN.LOCAL/petrov_ev/.config/autostart:

У обоих такое содержимое: 

[Desktop Entry]
Hidden=true 

Эти два файла тоже копирую в каталог /etc/skel/.config/autostart

cp "/home/DOMAIN.LOCAL/petrov_ev/.config/autostart/apt-indicator.desktop" /etc/skel/.config/autostart
cp "/home/DOMAIN.LOCAL/petrov_ev/.config/autostart/blueberry-obex-agent.desktop" /etc/skel/.config/autostart 

Далее, я хочу изменить настройки хранителя экрана и отключить гашение дисплея. Делаю это в графическом интерфейсе:

Данные настройки сохранились в файлах /home/DOMAIN.LOCAL/petrov_ev/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml и /home/DOMAIN.LOCAL/petrov_ev/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml соответственно. Копирую эти файлы в каталог /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml с заменой уже существующих там:

\cp /home/DOMAIN.LOCAL/petrov_ev/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml
\cp /home/DOMAIN.LOCAL/petrov_ev/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml

Также, если, к примеру хочу удалить этот значок, или добавить другой вместо него:

то это делается в каталоге /etc/skel/XDG-Desktop.skel.

И вот дошла очередь до самого интересного. Нужно, чтобы при первом входе пользователя запустился скрипт /home/distrib/wine-pripare. Здесь я пойду, возможно, не самым грамотным путём, но зато рабочим. В каталоге /home/distrib создаю скрипт wine-onestart следующего содержания: 

#!/bin/bash

sleep 7
/home/distrib/wine-pripare
rm -f /home/DOMAIN.LOCAL/$USER/.config/autostart/wineonestart.desktop
exit

Не забываю сделать его исполняемым:

chmod +x wine-onestart

Теперь иду в графический интерфейс пользователя и добавляю этот скрипт в автозапуск, дав ему имя wineonestart:

И появившийся файлик /home/DOMAIN.LOCAL/petrov_ev/.config/autostart/wineonestart.desktop копирую в каталог /etc/skel/.config/autostart

cp /home/DOMAIN.LOCAL/petrov_ev/.config/autostart/wineonestart.desktop /etc/skel/.config/autostart

Собственно, задумка такая, что при первом логине у пользователя в автозагрузке будет скрипт wineonestart, который выдержит паузу 7 секунд (тут каждый под себя правит) и запустит скрипт /home/distrib/wine-pripare, а затем удалит себя из автозагрузки. Таким образом, при первом входе пользователя, ему автоматически настроится заранее подготовленный префикс вайна с установленным Компасом 3D.

В целом, можно подвести итог. Я получил рабочий комп на Simply Linux, на котором могут логиниться и работать пользователи Active Directiry. Не скажу, что настроил его идеально – скорей всего можно это сделать более грамотно и более изящно – я пока не сообразил как. Но это всё равно рабочий вариант, который позволяет часть пользователей пересадить с Windows на Linux. 

Донаты принимаются на кошельки:

Yoomoney:
4100118091867315

BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna

ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo

Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7

XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr

TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY

Прочитано 1205 раз Последнее изменение Пятница, 28 Апрель 2023 12:16
Другие материалы в этой категории: « Скрипт для бэкапа почтовых ящиков Zimbra

You have no rights to post comments

Вы здесь: Home Мои статьи Разное Настройка пользовательского рабочего компьютера на Simply Linux