Содержание
Вход в систему пользователем домена (или PAM в Slackware) |
---|
Или, другими словами, аутентификация и дальнейшая авторизация в системе Slackware 14.0 с использованием логина и пароля взятого с Activ Directory (AD).
Ниже приведённые названия даны, исключительно, только в качестве примеров.
Начало
Для того, чтобы осуществить задуманное, нам необходимо:
- Собрать и установить PAM;
- Собрать и установить samba с поддержкой PAM;
- Собрать и установить shadow с поддержкой PAM;
- Всё это дело настроить.
Файл | Описание |
---|---|
pam-1.1.3-i486-1.txz | Собранный пакет PAM |
shadow-4.1.5.1-i586-pam-1.tgz | Собранный пакет shadow с поддержкой PAM |
samba-3.6.12-i486-1_slack14.0.txz | Собранный пакет samba с поддержкой PAM |
samba_pam_slackbuild.tar.gz | SlackBuild для сборки samba с поддержкой PAM |
pam.d.tar.gz | Каталог pam.d со всеми рабочими настройками |
confs_pam.tar.gz | Файлы конфигураций (krb5.conf, login.defs, nsswitch.conf, pam.conf, resolv.conf, smb.conf) |
Как собрать и где применить - ниже по статье.
Работать будем с контролером домена из ЭТОЙ СТАТЬИ.
Т.е.:
Домен | TRANSIT |
Контролер домена | DC1.TRANSIT.LOCAL |
IP контролера домена | 192.168.10.188 |
IP шлюза и сервера времени | 192.168.10.250 |
Тестовый компьютер со Slackware 14.0 | Slack-test |
IP тестового компьютер со Slackware 14.0 | 192.168.10.44 |
Администратор домена | Administrator |
Пользователь домена | v_pupkin |
В принципе, оно работает и с контролером домена на Windows 2003 (проверено).
«I think a better name for PAM might be SCAM, for Swiss Cheese Authentication Modules, and have never felt that the small amount of convenience it provides is worth the great loss of system security. We miss out on half a dozen security problems a year by not using PAM, but you can always install it yourself if you feel that you're missing out on the fun. (No, don't do that)»
Patrick.
Что на великом и могучем звучит, примерно, так:
«Я думаю, что лучшим названием для PAM может быть SCAM (Swiss Cheese Authentication Modules - Швейцарско сырный модуль аутентификации) и никогда не чувствовал, что небольшое количество удобств, которое он обеспечивает, стоит большой потери безопасности системы . Мы освободились от полдюжины проблем безопасности в год, не используя PAM, но вы всегда можете установить его самостоятельно, если чувствуете, что упускаете самое интересное. (Нет, не делайте этого)»
Патрик.
Собираем PAM
Начиная с версии 13.37, в дистрибутиве Slackware Linux в папке extra/source/pam, присутствует SlackBuild, который поможет нам собрать и в итоге получить готовый пакет pam-1.1.3-i486-1.txz.
Установим его:
# installpkg pam-1.1.3-i486-1.txz
далее собираем остальные пакеты. Соберем samba.
Собираем и настраиваем samba
Прежде чем начать собирать samba, нам необходимо собрать и установить керберос. Я тестировал с MIT Kerberos.
При помощи sbopkg правим слакбилд, info, собираем и устанавливаем последнюю версию MIT kerberos.
Для того, чтобы не искать программы от kerberos добавим их в /etc/profile:
..... ..... # Set the default system $PATH: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/kerberos/bin:/usr/kerberos/sbin" ..... .....
Далее, для примера возьмем samba-3.6.12.
Скачаем SlackBuild samba_pam_slackbuild.tar.gz уже подправленный для сборки с PAM или с http://mirror.yandex.ru/slackware/slackware-14.0/source/n/samba/, где нужно будет подправить SlackBuild в части ./configure.
Скачаем саму самбу samba-3.6.12.tar.gz и положим файл в каталог со SlackBuild'ом.
Если используете уже подправленный SlackBuid, то просто запустите его, если нет, то в части ./configure измените на нижеследующее:
./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --mandir=/usr/man \ --sysconfdir=/etc \ --with-configdir=/etc/samba \ --with-piddir=/var/run \ --with-privatedir=/etc/samba/private \ --localstatedir=/var \ --with-lockdir=/var/cache/samba \ --with-logfilebase=/var/log/samba \ --with-acl-support \ --with-automount \ --with-quotas \ --with-syslog \ --with-utmp \ --with-winbind \ --with-ldap \ --with-ads \ --with-sendfile-support \ --with-dnsupdate \ --with-profiling-data \ --with-fhs \ --with-swatdir=/usr/share/swat \ --with-pammodulesdir=/etc/security \ --with-krb5=/usr/kerberos \ --with-pam \ --with-pam_smbpass \ --enable-cups \ --enable-external-libtalloc=no \ --enable-static=no \ --enable-shared=yes \ --with-cifsmount \ --with-cifsumount \ --with-quotas \ --with-libsmbclient \ --build=$ARCH-slackware-linux
Для чистоты эксперимента я удалил установленную самбу и поставил вновь собранную.
После установки скопируем 2 библиотеки pam_smbpass.so и pam_winbind.so туда, где им положено быть.
# cp /etc/security/*.so /lib/security/
Теперь необходимо её настроить для ввода в домен. Для этого правим нужные файлы.
В начале статьи есть файл confs_pam.tar.gz в котором уже собраны файлы с рабочими у меня настройками, но на всякий случай, я их дублирую прямо в статье. И так, по порядку:
/etc/krb5.conf
[logging] default = FILE10000:/var/log/krb5/krb5lib.log # default = FILE:/var/log/krb5/krb5libs.log kdc = FILE:/var/log/krb5/krb5kdc.log admin_server = FILE:/var/log/krb5/kadmind.log [libdefaults] default_realm = TRANSIT.LOCAL dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h forwardable = yes [realms] TRANSIT.LOCAL = { kdc = dc1.transit.local:88 admin_server = dc1.transit.local:750 default_domain = transit.local } [domain_realm] .transit.local = TRANSIT.LOCAL transit.local = TRANSIT.LOCAL [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
/etc/resolv.conf
search transit.local nameserver 192.168.10.188
/etc/nsswitch.conf
# passwd: files nis # shadow: files nis # group: files nis passwd: files winbind shadow: files winbind group: files winbind hosts: files dns networks: files services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files bootparams: files automount: files aliases: files
/etc/smb.conf
[global] interfaces = eth0 lo hosts allow = 192.168.10. 127. netbios name = Slack-test server string = Slack_test security = ADS workgroup = TRANSIT realm = TRANSIT.LOCAL obey pam restrictions = yes allow trusted domains = No socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 name resolve order = hosts wins bcast lmhosts case sensitive = no dns proxy = no client use spnego = yes client signing = yes os level = 0 preferred master = No local master = No domain master = No dns proxy = No ldap ssl = no strict locking = No time server = no auth methods = winbind encrypt passwords = yes winbind enum users = Yes winbind enum groups = Yes winbind use default domain = yes winbind refresh tickets = yes winbind uid = 10000-20000 winbind gid = 10000-20000 template shell = /bin/bash template homedir = /home/%D/%U log file = /var/log/samba/log.%m max log size = 1024 log level = 3 display charset = koi8-r unix charset = koi8-r dos charset = cp866 nt acl support = yes printcap name = /etc/printcap
Пробуем получить билетик:
# kinit Administrator Password for Administrator@TRANSIT.LOCAL: # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Administrator@TRANSIT.LOCAL Valid starting Expires Service principal 11.03.2013 17:59:03 12.03.2013 03:59:03 krbtgt/TRANSIT.LOCAL@TRANSIT.LOCAL renew until 12.03.2013 18:01:50
Получили, теперь введем машину в домен:
# net ads join -U Administrator Enter Administrator's password: Using short domain name -- TRANSIT Joined 'SLACK-TEST' to dns domain 'transit.local'
Немного изменим файл /etc/rc.d/rc.samba добавив winbindd. В итоге он будет выглядеть так:
# # /etc/rc.d/rc.samba # # Start/stop/restart the Samba SMB file/print server. # # To make Samba start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.samba # samba_start() { if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf ]; then echo "Starting Samba: /usr/sbin/smbd -D" /usr/sbin/smbd -D echo " /usr/sbin/nmbd -D" /usr/sbin/nmbd -D echo " /usr/sbin/winbindd -D" /usr/sbin/winbindd -D fi } samba_stop() { killall smbd nmbd winbindd } samba_restart() { samba_stop sleep 2 samba_start } case "$1" in 'start') samba_start ;; 'stop') samba_stop ;; 'restart') samba_restart ;; *) # Default is "start", for backwards compatibility with previous # Slackware versions. This may change to a 'usage' error someday. samba_start esac
дадим ему права на запуск и запустим samba:
# chmod 755 /etc/rc.d/rc.samba # /etc/rc.d/rc.samba start Starting Samba: /usr/sbin/smbd -D /usr/sbin/nmbd -D /usr/sbin/winbindd -D
Проверим связь с контролером домена:
# wbinfo -t checking the trust secret for domain TRANSIT via RPC calls succeeded # wbinfo -u v_pupkin administrator dns-dc1 krbtgt guest # wbinfo -g ..... ..... domain admins domain guests schema admins domain users dnsadmins # wbinfo -a administrator Enter administrator's password: plaintext password authentication succeeded Enter administrator's password: challenge/response password authentication succeeded
А теперь нужно убедиться, что программа getent покажет нам локальных и доменных пользователей и группы одновременно:
# getent passwd root:x:0:0::/root:/bin/bash ..... ..... apache:x:80:80:User for Apache:/srv/httpd:/bin/false messagebus:x:81:81:User for D-BUS:/var/run/dbus:/bin/false haldaemon:x:82:82:User for HAL:/var/run/hald:/bin/false pop:x:90:90:POP:/:/bin/false nobody:x:99:99:nobody:/:/bin/false v_pupkin:*:10000:10000:Пупкин Василий Иванович:/home/TRANSIT/v_pupkin:/bin/bash administrator:*:10001:10000:Administrator:/home/TRANSIT/administrator:/bin/bash dns-dc1:*:10002:10000:dns-dc1:/home/TRANSIT/dns-dc1:/bin/bash krbtgt:*:10003:10000:krbtgt:/home/TRANSIT/krbtgt:/bin/bash guest:*:10004:10001:Guest:/home/TRANSIT/guest:/bin/bash # getent group root:x:0:root bin:x:1:root,bin daemon:x:2:root,bin,daemon ..... ..... domain admins:x:10013:administrator domain guests:x:10001: schema admins:x:10014:administrator domain users:x:10000: dnsadmins:x:10015:
Отлично! Всё необходимое мы проверили - работает! Теперь приступим к самому серьёзному - к установке shadow.
Собираем и устанавливаем shadow
Скачаем последнюю версию, на сегодня, shadow, соберем с поддержкой РАМ и установим в систему.
# wget http://pkg-shadow.alioth.debian.org/releases/shadow-4.1.5.tar.gz # tar xf shadow-4.1.5.tar.gz # cd shadow-4.1.5.1 # ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/man \ --docdir=/usr/doc/shadow-4.1.5.1 \ --disable-shared \ --without-libcrack \ --with-libpam # make # make install DESTDIR=/tmp/shadow-4.1.5.1 # cd /tmp/shadow-4.1.5.1 # makepkg -l y -c n /tmp/shadow-4.1.5.1-i586-pam-1.tgz # upgradepkg --reinstall --install-new /tmp/shadow-4.1.5.1-i586-pam-1
Всё, shadow установлен, теперь нужно настроить PAM и в соседней консоли проверить работоспособность.
Настройка и проверка работоспособности
Настройки PAM находятся в каталоге /etc/pam.d. Изначально его нет, нужно создать.
В этом каталоге находятся текстовые файлы с политиками. И именуются эти файлы, соответственно сервису, к которому политики применяются.
Т.е. для программы login, это login и т.д.
Вначале статьи есть архив каталога pam.d с моими рабочими файлами, можете взять их для примера и настроить под себя, или просто создать свои.
Существует возможность настройки РАМ через /etc/pam.conf в котором содержатся все политики PAM для системы. Но я этот метод не испытывал и положил его в архив confs_pam.tar.gz на всякий случай, может кому-то такой способ покажется более привлекательным и он напишет, потом, про это статью. :)
Все политики в файле pam.conf взяты ОТ СЮДА.
Подробно про то, что такое PAM, тонкости настройки и с чем его едят можно почитать:
МНОГО ТУТ.
НЕМНОГО ТУТ.
ЧУТЬ-ЧУТЬ ТУТ.
А мы приступим к настройке.
Если Вы воспользовались каталогом из моего архива pam.d.tar.gz, то Вам, в принципе, здесь настраивать ничего не надо. Разве только убрать или добавить что-то лично под себя.
Я приведу содержимое нескольких файлов, необходимых для входа в систему:
/etc/pam.d/login
#%PAM-1.0 auth required pam_securetty.so auth sufficient pam_winbind.so auth sufficient pam_unix.so use_first_pass auth include system-auth-winbind auth required pam_nologin.so account sufficient pam_winbind.so account include system-auth-winbind password include system-auth-winbind session include system-auth-winbind session required pam_unix.so session required pam_env.so session required pam_motd.so session required pam_limits.so session optional pam_mail.so dir=/var/spool/mail standard session optional pam_lastlog.so session optional pam_loginuid.so session optional pam_console.so
/etc/pam.d/passwd
#%PAM-1.0 auth include system-auth-winbind account include system-auth-winbind password include system-auth-winbind
/etc/pam.d/su
#%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. auth required pam_wheel.so use_uid auth include system-auth-winbind account include system-auth-winbind password include system-auth-winbind session include system-auth-winbind session optional pam_xauth.so
/etc/pam.d/usermod
#%PAM-1.0 auth sufficient pam_rootok.so account required pam_permit.so password include system-auth
/etc/pam.d/system-auth-winbind
#%PAM-1.0 auth required pam_env.so auth sufficient pam_winbind.so auth sufficient pam_unix.so likeauth nullok use_first_pass auth required pam_deny.so account sufficient pam_winbind.so account required pam_unix.so password sufficient pam_unix.so nullok use_authtok md5 shadow password required pam_deny.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 session required pam_limits.so session required pam_unix.so
/etc/pam.d/system-auth
#%PAM-1.0 auth required /lib/security/pam_mount.so auth optional /lib/security/pam_group.so auth sufficient /lib/security/pam_unix.so nullok_secure use_first_pass auth sufficient /lib/security/pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE debug auth required /lib/security/pam_deny.so
НЕ ПЕРЕЗАГРУЖАТЬСЯ!!!
Переходим в соседнюю консоль и пытаемся зайти под доменным пользователем:
Welcome to Linux 3.2.29-smp (tty3) Slack-test Login: administrator ошибка настройки: неизвестный элемент «FAILLOG_ENAB» (сообщите администратору) ошибка настройки: неизвестный элемент «LASTLOG_ENAB» (сообщите администратору) ошибка настройки: неизвестный элемент «MAIL_CHECK_ENAB» (сообщите администратору) Password: Your password will expire in 10 days. Linux 3.2.29-smp. In a great romance, each person basically plays a part that the other really likes. -- Elizabeth Ashley administrator@Slack-test:~$
Ура, вошли, но получили ошибки. Ничего страшного, просто нужно закомментировать эти элементы в файле /etc/login.defs.
В файле login.defs идущим в архиве вначале статьи, уже все ошибки закомментированы.
Идём дальше. Пробуем получить привилегии локального root'a
administrator@Slack-test:~$ su - Password: su: Доступ запрещен
Всё верно, ведь пользователь administrator не входит в группу wheel. Вернёмся в родную консоль, убедимся в этом и добавим в группу.
# id administrator uid=10001(administrator) gid=10000(domain users) группы=10000(domain users),10006(group policy creator owners),10004(denied rodc password replication group),10009(enterprise admins),10014(schema admins),10013(domain admins) # usermod -a -G wheel administrator # id administrator uid=10001(administrator) gid=10000(domain users) группы=10000(domain users),10(wheel),10006(group policy creator owners),10004(denied rodc password replication group),10009(enterprise admins),10014(schema admins),10013(domain admins)
Переходим обратно в соседнюю консоль и проверяем:
administrator@Slack-test:~$ su - Password: F: When into a room I plunge, I Sometimes find some VIOLET FUNGI. Then I linger, darkly brooding On the poison they're exuding. -- The Roguelet's ABC root@Slack-test:~#
Всё работает!
Пробуем войти под обычным пользователем домена v_pupkin.
administrator@Slack-test:~$ logout Welcome to Linux 3.2.29-smp (tty3) Slack-test Login: v_pupkin Password: Создание каталога /home/TRANSIT/v_pupkin. Linux 3.2.29-smp. XIIdigitation, n.: The practice of trying to determine the year a movie was made by deciphering the Roman numerals at the end of the credits. -- Rich Hall, "Sniglets" v_pupkin@Slack-test:~$
И так, вход в систему пользователями домена работает. Но не забывайте, что они не являются членами локальных групп, таких как audio, video, cdrom и т.д. и поэтому не смогут пользоваться всеми «вкусностями» системы. Просто добавьте их в эти группы и наслаждайтесь! :)
Графический вход в систему
Можно не делать всего вышеописанного, если планируется работа в одной из графических сред рабочего стола (KDE, XFCE и т.д), которые возможно выбрать с помощью утилиты xwmconfig.
В качестве графической оболочки запроса логина с паролем, будем использовать оконный менеджер lightdm входящий в состав проекта по использованию PAM в Slackware Linux.
Скачиваем скрипт с сайта проекта, присваиваем бит запуска и запускаем:
# wget http://www.bisdesign.ca/ivandi/slackware/SlackADS/sync-SlackADS.sh # chmod +x ./sync-SlackADS.sh # ./sync-SlackADS.sh
После запуска скрипта всё необходимое скачается в /home/SlackADS. Переходим в этот каталог и запускаем скрипт сборки. По окончании сборки запускаем скрипт настройки.
# cd /home/SlackADS # ./SlackADS.SlackBuild # ./setup.ADS.sh
Проверяем соответствие нашему домену в /etc/krb5.conf
default_realm = MYDOM.LAN
и в /etc/samba/smb.conf
[global] workgroup = MYDOM realm = MYDOM.LAN security = ADS
для samba 4.6+
idmap config *:backend = tdb kerberos method = dedicated keytab dedicated keytab file = /etc/krb5.keytab
Если всё верно, присоединяемся к домену и получаем keytab
# net ads join -U Administrator # kinit Administrator # net ads keytab create -U Administrator
Далее настраиваем lightdm.
Правим файлы конфигураций:
/etc/lightdm/lightdm.conf
[SeatDefaults] # Запрещаем гостевой вход allow-guest=false # Скрываем список пользователей greeter-hide-users=true # Пользователь вручную вводить логин с паролем greeter-show-manual-login=true # Сессия для загрузки #user-session=kde-plasma user-session=default # Скрипт который запустится при запуске сеанса greeter (выполняется от root) display-setup-script=/etc/rc.d/rc.x11vnc
/etc/lightdm/lightdm-gtk-greeter.conf
[greeter] # Файл изображения в качестве фона или цвет (например, # 772953) background=/home/fon.jpeg # Схема GTK+ theme-name=Raleigh # Схема иконок icon-theme-name=oxygen # Позиция окна ввода логина с паролем (x y). По умолчанию 50% 50% - середина экрана. position= 55% 45%
Используемые параметры, их значения и описание есть тут же в каталоге /etc/lightdm/ в файлах *.default
X11vnc
Для возможности удалённого контроля и демонстрации возможностей графической среды установим x11vnc. Его можно собрать самостоятельно при помощи sbopkg или найти готовый пакет на https://pkgs.org/download/x11vnc.
После установки пакета создадим скрипт /etc/rc.d/rc.x11vnc с содержимым:
#!/bin/bash /usr/bin/x11vnc -forever -repeat -rfbport 5900 -shared -rfbauth /etc/vnc/passwd -o /var/log/x11vnc.log &
Назначим пароль при подключении, создадим лог-файл, присвоим скрипту бит запуска и запустим VNC.
# mkdir /etc/vnc # x11vnc -storepasswd ваш_пароль /etc/vnc/passwd # touch /var/log/x11vnc.log # chmod +x /etc/rc.d/rc.x11vnc # /etc/rc.d/rc.x11vnc
Теперь можно подключаться к компьютеру по VNC на порту 5900.
Для автозапуска скопируем скрипт rc.x11vnc в, предварительно созданный, каталог /etc/X11/Xsession.d
Автомонтирование
При входе в систему примонтируем сетевой каталог 4all расположенный на файловом сервере 192.168.10.247 в /mnt/fserver с правами вошедшего в систему пользователя домена.
Для этого надо установить дополнительные пакеты последних версий libHX, audit и pam_mount c http://www.bisdesign.ca/ivandi/slackware/PAM-packages/.
После установки прописываем pam_mount.so в файл /etc/pam.d/system-auth, который примет вид:
auth required pam_mount.so auth optional pam_group.so auth sufficient pam_krb5.so minimum_uid=70001 auth required pam_unix.so use_first_pass account sufficient pam_krb5.so minimum_uid=70001 account required pam_unix.so session required pam_mount.so session required pam_mkhomedir.so umask=0066 session sufficient pam_krb5.so minimum_uid=70001 session required pam_unix.so password sufficient pam_krb5.so minimum_uid=70001 password required pam_unix.so
И в файл /etc/security/pam_mount.conf.xml в блок Volume definitions прописываем:
<!-- Volume definitions --> <volume fstype="cifs" server="192.168.10.247" path="4all" mountpoint="/mnt/fserver" />
Теперь, после ввода доменного логина и пароля в lightdm, пользователь войдёт в свой рабочий стол и получит доступ на сетевой ресурс в /mnt/fserver.
Ошибки
- При верном логине и пароле всё равно выкидывает в lightdm
1. В ~/.xsession-errors ошибка:
xfce4-session: Unable to establish ICE listeners: Cannot establish any listening sockets
исправляем
# rm -r /tmp/.ICE-unix/ # mkdir /tmp/.ICE-unix && chmod 1777 /tmp/.ICE-unix
2. В /var/log/Xorg.0.log* ошибка:
(EE) Backtrace: (EE) 0: /usr/libexec/Xorg (xorg_backtrace+0x41) [0x580701] (EE) 1: /usr/libexec/Xorg (0x400000+0x184629) [0x584629] (EE) 2: /lib64/libpthread.so.0 (0x7f14041f9000+0x113b0) [0x7f140420a3b0] (EE) 3: /usr/lib64/libpixman-1.so.0 (pixman_region_fini+0x9) [0x7f1404c5cac9] (EE) 4: /usr/lib64/xorg/modules/drivers/intel_drv.so (0x7f13ff7b7000+0x5f396) [0x7f13ff816396] (EE) 5: /usr/lib64/xorg/modules/drivers/intel_drv.so (0x7f13ff7b7000+0x5d041) [0x7f13ff814041] (EE) 6: /usr/libexec/Xorg (0x400000+0x10bf9d) [0x50bf9d] (EE) 7: /usr/libexec/Xorg (0x400000+0x102661) [0x502661] (EE) 8: /usr/libexec/Xorg (0x400000+0x34d5f) [0x434d5f] (EE) 9: /usr/libexec/Xorg (0x400000+0x38c43) [0x438c43] (EE) 10: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f140283d7d0] (EE) 11: /usr/libexec/Xorg (_start+0x29) [0x4242a9] (EE) (EE) Segmentation fault at address 0x0
Исправляем. Создаем файл /etc/X11/xorg.conf.d/20-intel.conf с содержимым:
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" EndSection
- В списках настройки экрана нет поддерживаемого монитором разрешения.
Я точно знаю, что мой 17" монитор поддерживает разрешение 1280Х1024, но в настройках экрана XFCE максимально допустимое всего лишь 1024Х768.
Узнаем параметры разрешения 1280х1024 для последующей настройки.
# cvt 1280 1024 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Создадим скрипт в /usr/bin/fix_vga_mode куда впишем полученные значения.
#!/bin/sh # VGA1 - это название монитора которое можно узнать запустив xrandr без параметров. # my_set - произвольное название создаваемого режима. /usr/bin/xrandr --newmode my_set 109.00 1280 1368 1496 1712 1024 1027 1034 1063 /usr/bin/xrandr --addmode VGA1 my_set /usr/bin/xrandr --output VGA1 --mode my_set
Присваиваем бит запуска и запускаем.
# chmod +x /usr/bin/fix_vga_mode # fix_vga_mode
Для автоматизации можно прописать запуск скрипта в /etc/rc.d/rc.x11vnc который потом будет прописан в конфиге lightdm.