Файл /usr/home/lissyara/>more /usr/local/etc/thin_configs/conf/rdesktop_polling.sh #!/bin/sh # Параметры --> переменные win_user_name="$1" win_ts_server="$2" x_user_profile_dir="$3" x_username="$4" # Запускаем бесконечный цикл while test 1 -eq 1 do # считаем число процессов rdesktop. rdesktop_proc="`ps -ax | grep rdeskt | grep -v grep | \ grep -v '/bin/sh' | wc -l`" # ПРоверяем, работает ли rdesctop if [ ${rdesktop_proc} -ne 1 ] then # создаём файл .xinitrc echo "exec /usr/local/bin/rdesktop \ -u ${win_user_name} -n ${win_user_name} \ -d grand-prix -f -N ${win_ts_server}" > \ ${x_user_profile_dir}/${x_username}/.xinitrc # Даём на неё ему права chown ${x_username} ${x_user_profile_dir}/${x_username} su ${x_username} -c /usr/X11R6/bin/startx 2>/dev/console & # Засыпаем на 35 секунд, потом снова будем проверять. # sleep 35 fi sleep 35 done #-k en-us exit; После чего не забываем сделать их исполняемыми и заводим нужного юзера: /usr/home/lissyara/>pw useradd ThinUser -d /var/user_profile/ThinUser /usr/home/lissyara/>chmod +x /usr/local/etc/rc.d/thin_startup.sh /usr/home/lissyara/>chmod +x /usr/local/etc/thin_configs/conf/rdesktop_polling.sh /usr/home/lissyara/> Ну, можно завести себя, чтоб ходить по ssh, можно разрешить вход руту. Кому как удобней - тут о секурности можно не особо беспокоится... Также кладём конфиг для иксов - /usr/local/etc/thin_configs/conf/xorg.conf.template # Этот файл не написан мною с нуля, откуда-то скатан рабочий образец и # рашпилем (это такой напильник с крупными зубьями :)) подрихтован под # свои нужды. Соответственно комменты - минимальны, и тока в тех местах, # где вместо фиксированных настроек прописаны переменные. # Создаём конфиг иксов в /etc/X11/xorg.conf (не забываем, что эта директория # у меня является симлинком на ``/var/etc/X11'', т.к. ``/'' подмонтирован в # режиме только чтения.) echo "# Конфиг тонкого клиента ${win_user_name}. Создан автоматически из # шаблона ``/usr/local/etc/thin_configs/xorg.conf.template'' # ${current_date} в ${current_time} Section \"Module\" Load \"dbe\" SubSection \"extmod\" Option \"omit xfree86-dga\" EndSubSection Load \"type1\" Load \"freetype\" EndSection Section \"Files\" RgbPath \"/usr/X11R6/lib/X11/rgb\" FontPath \"/usr/X11R6/lib/X11/fonts/local\" EndSection Section \"ServerFlags\" Option \"DontZap\" EndSection Section \"InputDevice\" Identifier \"Keyboard1\" Driver \"kbd\" Option \"AutoRepeat\" \"500 30\" Option \"XkbDisable\" Option \"XkbRules\" \"xfree86\" # Если поставить клаву отличающуюся от 102 то будет лочиться клава # при нажатии ALT+SHIFT - в принципе, правиться в иксовых раскладках # тока мне это нафик не нужно.... Option \"XkbModel\" \"${x_keyboard:-pc102}\" Option \"XkbLayout\" \"en\" EndSection Section \"InputDevice\" Identifier \"Mouse1\" Driver \"mouse\" Option \"Protocol\" \"${x_mouse_proto:-SysMouse}\" Option \"Device\" \"${x_mouse_device:-/dev/sysmouse}\" Option \"Emulate3Buttons\" Option \"Emulate3Timeout\" \"50\" Option \"ZAxisMapping\" \"4 5\" EndSection Section \"Monitor\" Identifier \"monik\" HorizSync ${x_horiz_sync:-30-70} VertRefresh ${x_vert_refresh:-60-100} EndSection Section \"Device\" Identifier \"monik_device\" VendorName \"Unknown\" BoardName \"Unknown\" Driver \"${x_vga_driver:-vesa}\" Option \"NoAccel\" \"0\" EndSection Section \"Screen\" Identifier \"Screen 1\" Device \"monik_device\" Monitor \"monik\" DefaultDepth 24 Subsection \"Display\" Depth ${x_color_bits:-24} Modes ${x_resolution:-\"1024x768\" \"800x600\" \"640x480\"} ViewPort 0 0 EndSubsection EndSection Section \"ServerLayout\" Identifier \"Simple Layout\" Screen \"Screen 1\" InputDevice \"Mouse1\" \"CorePointer\" InputDevice \"Keyboard1\" \"CoreKeyboard\" EndSection " >/etc/X11/XF86Config # в xorg конфиг называется иначе #> /etc/X11/xorg.conf Выкладываем дефолтовый конфиг клиента - /usr/local/etc/thin_configs/defaults.conf, который сразу можно подравить под себя (имя домена и сервера) # first.config # Имя пользователя - используется для имени хоста, # и для имени, с которым коннектится win_user_name="change_user_name_in_config" # Домен в которых будет логиниться юзер win_domain="CHANGE-DOMAIN-NAME-IN-CONFIG" # Имя сервера терминалов win_ts_server="TS" # Настройки иксов. # Горизонтальная развёртка x_horiz_sync="30-70" # Частота обновления кадров x_vert_refresh="60-100" # Драйвер видеокарты x_vga_driver="vesa" # Скольки битный цвет x_color_bits="24" # Разрешение моника (именно в одинарных и двойных кавычках!!) x_resolution='"1024x768"' Также, надо сделать симлинк /tmp --> /var/tmp /usr/home/lissyara/>cd / //>rm -R tmp/ //>ll / | grep tmp //>ln -s /var/tmp //>ll lrwxr-xr-x 1 root wheel 8B 14 ноя 06:38 tmp -> /var/tmp //> Пожалуй, всё. Перезагружаемся, смотрим - подымутся ли иксы. Должны подняться. Типичный конфиг клиента выглядит так: /usr/home/lissyara/>more /usr/local/etc/thin_configs/0050BF694851.conf # Имя пользователя - используется для имени хоста, # и для имени, с которым коннектится win_user_name="lissyara" # Домен в которых будет логиниться юзер win_domain="DOMAIN.NAME.OF.MY.DOMAIN" # Имя сервера терминалов win_ts_server="TerminalServerName" # Настройки иксов. # Горизонтальная развёртка x_horiz_sync="30-70" # Частота обновления кадров x_vert_refresh="85" # Драйвер видеокарты x_vga_driver="s3virge" # Скольки битный цвет x_color_bits="24" # Разрешение моника (именно в одинарных и двойных кавычках!!) x_resolution='"1024x768"' Список драйверов можно глянуть тут: /usr/X11R6/lib/modules/drivers/>ls -alh total 3586 drwxr-xr-x 2 root wheel 1K 15 ноя 09:57 . drwxr-xr-x 9 root wheel 1K 15 ноя 09:57 .. -r--r--r-- 1 root wheel 113K 15 ноя 09:57 apm_drv.o -r--r--r-- 1 root wheel 14K 15 ноя 09:57 ark_drv.o -r--r--r-- 1 root wheel 47K 15 ноя 09:57 ati_drv.o -r--r--r-- 1 root wheel 146K 15 ноя 09:57 atimisc_drv.o -r--r--r-- 1 root wheel 138K 15 ноя 09:57 chips_drv.o -r--r--r-- 1 root wheel 32K 15 ноя 09:56 cirrus_alpine.o -r--r--r-- 1 root wheel 9K 15 ноя 09:56 cirrus_drv.o -r--r--r-- 1 root wheel 24K 15 ноя 09:56 cirrus_laguna.o -r--r--r-- 1 root wheel 22K 15 ноя 09:57 cyrix_drv.o -r--r--r-- 1 root wheel 202K 15 ноя 09:56 glint_drv.o -r--r--r-- 1 root wheel 49K 15 ноя 09:57 i128_drv.o -r--r--r-- 1 root wheel 40K 15 ноя 09:56 i740_drv.o -r--r--r-- 1 root wheel 197K 15 ноя 09:57 i810_drv.o -r--r--r-- 1 root wheel 198K 15 ноя 09:56 mga_drv.o -r--r--r-- 1 root wheel 65K 15 ноя 09:56 neomagic_drv.o -r--r--r-- 1 root wheel 251K 15 ноя 09:57 nsc_drv.o -r--r--r-- 1 root wheel 75K 15 ноя 09:56 nv_drv.o -r--r--r-- 1 root wheel 89K 15 ноя 09:57 r128_drv.o -r--r--r-- 1 root wheel 139K 15 ноя 09:57 radeon_drv.o -r--r--r-- 1 root wheel 36K 15 ноя 09:56 rendition_drv.o -r--r--r-- 1 root wheel 39K 15 ноя 09:56 riva128.o -r--r--r-- 1 root wheel 48K 15 ноя 09:56 s3_drv.o -r--r--r-- 1 root wheel 69K 15 ноя 09:56 s3virge_drv.o -r--r--r-- 1 root wheel 71K 15 ноя 09:56 savage_drv.o -r--r--r-- 1 root wheel 73K 15 ноя 09:57 siliconmotion_drv.o -r--r--r-- 1 root wheel 526K 15 ноя 09:56 sis_drv.o -r--r--r-- 1 root wheel 66K 15 ноя 09:56 tdfx_drv.o -r--r--r-- 1 root wheel 43K 15 ноя 09:56 tga_drv.o -r--r--r-- 1 root wheel 127K 15 ноя 09:56 trident_drv.o -r--r--r-- 1 root wheel 61K 15 ноя 09:56 tseng_drv.o -r--r--r-- 1 root wheel 19K 15 ноя 09:57 vesa_drv.o -r--r--r-- 1 root wheel 15K 15 ноя 09:57 vga_drv.o -r--r--r-- 1 root wheel 327K 15 ноя 09:57 via_drv.o -r--r--r-- 1 root wheel 34K 15 ноя 09:56 vmware_drv.o /usr/X11R6/lib/modules/drivers/> Замечу, что драйвер vesa - практически универсальный, но не всегда он тянет большое разрешение и частоту обновления, он - выход на крайний случай, когда не удалось подобрать драйвер производителя. Осталось последнее - у меня больше половины клиентов, без сетевух с поддержкой PXE - надо создать загрузочную дискету. Для этого выполняем такой набор телодвижений (без комментов, тока примечание - делалось на FreeBSD4.11 на 6.1 будет отличаться.) /usr/home/lissyara/>mkdir boot_floppy /usr/home/lissyara/>cd boot_floppy /usr/home/lissyara/boot_floppy/>dd if=/dev/zero of=boot_floppy.img count=1440 bs=1k 1440+0 records in 1440+0 records out 1474560 bytes transferred in 2.135704 secs (690433 bytes/sec) /usr/home/lissyara/boot_floppy/>vnconfig -s labels -c /dev/vn0 boot_floppy.img /usr/ho..skipped.._ppy/>disklabel -Brw -b /boot/boot1 -s /boot/boot2 vn0c fd1440 /usr/home/lissyara/boot_floppy/>newfs -i 32768 -m 0 -p 0 -o space /dev/vn0c Warning: Block size restricts cylinders per group to 6. Warning: 1216 sector(s) in last cylinder unallocated /dev/vn0c: 2880 sectors in 1 cylinders of 1 tracks, 4096 sectors 1.4MB in 1 cyl groups (6 c/g, 12.00MB/g, 64 i/g) super-block backups (for fsck -b #) at: 32 /usr/home/lissyara/boot_floppy/>mount /dev/vn0c /mnt /usr/home/lissyara/boot_floppy/>mkdir -p /mnt/boot /usr/home/lissyara/boot_floppy/>cp /boot/loader /mnt/boot /usr/home/lissyara/boot_floppy/>echo "echo Loading kernel..." >> /mnt/boot/loader.rc /usr/home/lissyara/boot_floppy/>echo "load /kernel" >> /mnt/boot/loader.rc /usr/ho..skipped.._ppy/>echo "echo Kernel loaded successful" >> /mnt/boot/loader.rc /usr/home/lissyara/boot_floppy/>echo "autoboot 1" >> /mnt/boot/loader.rc /usr/home/lissyara/boot_floppy/>cp /kernel ./ /usr/home/lissyara/boot_floppy/>gzip --best kernel /usr/home/lissyara/boot_floppy/>ls -alh kernel.gz -r-xr-xr-x 1 root wheel 944K 17 ноя 15:28 kernel.gz /usr/home/lissyara/boot_floppy/>cp kernel.gz /mnt/ /usr/home/lissyara/boot_floppy/>umount /mnt /usr/home/lissyara/boot_floppy/>vnconfig -u vn0 /usr/home/lissyara/boot_floppy/> Всё. Пишем полученный флоп такой командой: dd if=boot_floppy.img of=/dev/fd0 P.S. C дискеты довольно долго грузиться, ядро всё же не маленькое... P.S.2 Писалось после сделанного, мог чего-то забыть... P.S.3 Не забываем сделать корень "ro"!
Источник: http://www.lissyara.su/?id=1191