Поставили задачу по замене операционной системы на некоторых рабочих компьютерах. Причём, в задаче указывалась рекомендация, что лучше подобрать какую-нибудь из российских ОС. Выбор пал на 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
И потом ещё кучу ошибок такого же плана. Ответ я нашёл тут:
Там заявляется, что 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
Карта Т-Банк (бывший Тиньков):
2200 7017 2612 2077
Карта Альфа-Банк:
2200 1539 1357 2013