4. Аутентификация без заморочек.
Теперь чтобы полноценно работать в сети нам достаточно сразу после входа под локальным пользователем выполнить в терминале команду kinit и получить привилегии указанного после нее пользователя. Но это не есть хорошо, и надо сделать так чтоб пользователь пересев с Windows не почувствовал большой разницы, и уж тем более ни в коем случае не услышал слова терминал, поскольку это чревато суицидом. Чтобы заставить менеджер паролей GDM признавать пользователей AD за своих, нужно настроить систему PAM (Pluggable Authentication Modules), поскольку GDM это лишь оболочка, а авторизации производит система подключаемых модулей аутентификации.
1) Изменяем /etc/pam.d/common-account
Код:
account sufficient pam_winbind.so
account required pam_unix.so
2) Изменяем /etc/pam.d/common-auth
Код:
# пользователей AD в локальные группы
auth optional pam_group.so
# Пробуем выполнить аутентификацию в AD и если удачно
# то получаем билетик Kerberos и записываем его в файл
auth sufficient pam_winbind.so krb5_auth krb5_ccache_type=FILE debug
# Если аутентификацию в AD не прошли то пробуем аутентификацию
# в качестве локального пользователя
auth sufficient pam_unix.so nullok_secure use_first_pass
# аутентификация при запуске SWAT
auth optional pam_smbpass.so migrate missingok
# Если все отказали то получаем запрет
auth required pam_deny.so
3) Изменяем /etc/pam.d/common- password
Добавьте
password sufficient pam_winbind.so
перед
password requisite pam_unix.so nullok obscure md5
4) Изменяем /etc/pam.d/common- session
Код:
session sufficient pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_unix.so
5) Изменяем /etc/pam.d/sudo
Код:
auth sufficient pam_winbind.so
auth sufficient pam_unix.so use_first_pass
auth required pam_deny.so
@include common-account
Превые четыре файла, это общие настройки для всех приложений выполняющих аутентификацию. Они включаются с помощью @include в настройки для каждого отдельно взятого приложения таких как GDM, или команда login в терминале. Пятый файл это настройки для команды SUDO, то есть выполнение задач от имени суперпользователя. Настоятельно рекомендую ознакомиться с документацией по PAM, в противном случае вы рискуете изменить настройки так, что уже в систему войти будет невозможно.
Теперь нужно настроить параметры для pam_group.so . Для этого открываем файл /etc/security/group.conf и добавляем две строчки.
*;*;*;Wk0900-2200; scanner,fuse,sambashare,lpadmin
Эта строчка для пользователей и наделяет их всеми локальными привилегиями кроме SUDO.
*;*;vashadmin;Al0000-2400;scanner,fuse,sambashare,lpadmin,admin
Эта строчка для администраторов и наделяет их всеми привилегиями включая включая SUDO. Если вы хотите дать права на SUDO другим пользователям, то можете их перечислять через запятую после vashadmin.
Все! Завершаем работу root, и заходим в систему под пользователем AD точно так же как и это делалось в Windows. Если пользователь заходит первый раз ему будет создан профиль в /home/COMPANY/ и незаметить этого не получится. Если что-то идет не так, то перепроверьте настройки Samba и PAM.
5. Как настроить Internet приложения на работу через ISA Server.
Настроить Galeon не сложнее чем Internet Explorer. Давим: Правка => Изменить Настройки => Сеть => Конфигурация прокси. Выбираем – “Ручная настройка сервиса прокси”, затем ставим флажок “Использовать общий прокси для всех протоколов”. Забиваем IP нашего Proxy – 192.168.0.11, сохраняем настройки, и перезапускаем браузер. Все, браузер работает используя учетную запись пользователя AD через фильтр Web Proxy , и при этом значительно быстрее чем через клиент ISA Server.
Однако наверно ни для кого не секрет что не существует клиента для ISA Server под Linux, а это означает, что мы теряем ISA Server в качестве POP3, SMTP и Socks5 прокси. Горевать по этому поводу не будем, а топаем на
http://3proxy.ru и качаем оттуда бесплатные минипрокси для SOCKS, POP3 и SMTP. Запускаем их на машине с ISA Server или на любой другой машине где установлен клиент ISA, и тогда эти маленькие (но обладающие очень гибкими настройками) приложения будут слушать запросы на указанные вами порты, и, используя имеющийся на компьютере выход в интернет, отправлять все запросы от имени запустившего их пользователя ISA Server. На приведенном сайте есть полная документация по настройкам.
Осталось ответить себе только на один вопрос, а стоит ли дальше использовать ISA Server, ведь имеются очень хорошие, бесплатные, кроссплатформенные прокcи… Я не утверждаю что представленное мною решение единственное, и если вам не нравится мое, то поступайте как считаете нужным, а это лишь один из вариантов.
6. Печатаем на принтер под управлением Windows XP.
Начнем с того, что PCL драйвер практически на любой существующий или некогда существовавший принтер вы найдете здесь:
http://openprinting.org/printer_list.cgi , но скорее всего, искать вам ничего не придется, поскольку базу данных драйверов Foomatic мы уже установили и они есть в нашей системе.
Прежде всего, нам нужно в AD завести пользователя от имени которого машины с Runtu Office будут печатать на принтеры подключенные к Windows. Заведем пользователя AD printmaker которого будем указывать для прохождения аутентификации.
Подключить принтер можно двумя способами, первый это при помощи консоли Меню -> Параметры -> Печать, а второй это при помощи WEB-интерфейса системы CUPS, попасть в который можно набрав в браузере
http://localhost:631/. В любом случае нам нужно устанавливать принтер следующим образом: Windows Printer via SAMBA, затем указать его расположение, указать пользователя от имени которого будет производиться печать, и указать драйвер принтера либо из имеющихся, либо явно указать PPD драйвер. Лично мне больше нравится использование WEB-интерфейса, но в любом случае результат нашей настройки должен выходить на принтер в распечатанном виде.
7. Монтирование общих ресурсов файлового сервера.
Решений как всегда несколько и самое простое это в PCMan наделать закладок на ресурсы из сетевого окружения, но самый сложный для дальнейшего использования. Во первых такой подход по-прежнему требует монтирования “Сетевого окружения” после каждой новой загрузки, а во-вторых пользователи не в жизни не отыщут сетевой путь чтоб сохранить набранный файл по сети на сервере. Отсюда делаем вывод что ресурсы нужно монтировать, причем так, чтоб все попало в “Мои документы ”, а у пользователя привыкшего работать с сетевыми дисками R,S,Y,Z не возникло проблем с переездом на новую платформу.
Пусть у нашего пользователя следующие учетные данные:
Логин: exuser
Пароль: expass
Пусть у пользователя в Windows подключались следующие сетевые диски:
1) R – open на MFS (файлообменник)
2) S – soft$ на FS (скрытый общий ресурс с софтом)
3) Y – photo# на FS (фотоархив)
4) Z – exfolder$ на FS (персональный общий ресурс для нашего пользователя)
Попытаемся создать репродукцию только уже в Runtu Office, и начнем мы с того что разрешим пользователям использовать команды MOUNT и UMOUNT (монтирование и демонтаж устройств) от имени суперпользователя без указания пароля для SUDO.
Изменяем с правами суперпользователя файл: /etc/sudoers
Добавьте
%sambashare ALL=NOPASSWD:/bin/mount,/bin/umount
после
%admin ALL=(ALL) ALL
Поскольку все пользователи домена, входят в локальную группу sambashare то членам именно этой группы я и решил дать описанные выше полномочия. К сожалению это единственный способ как можно автоматизировать монтирование сетевых устройств, чтобы перечень монтируемых ресурсов зависел не от того на какой машине идет монтирование, а от того какой пользователь произвел регистрацию в системе.
Теперь нам нужен скрипт который бы монтировал нужные ресурсы. Я написал приведенный ниже и обозвал его .smbmt скрыв от глаз в рабочем каталоге пользователя.
Код:
#!/bin/bash
#Общие параметры
USR=exuser #Логин пользователя
PWD=expass #Пароль пользователя
LFOLD="$HOME" #Каталог в котором будем размещать смонтированные ресурсы
я использую каталог текущего пользователя
FS="192.168.0.3" #IP файлового сервера FS
MFS="192.168.0.5" #IP файлового сервера МFS
#Функция осуществляющая монтирование
mt ()
{
if [ ! -e "$LFOLD/$3" ] #проверяем наличие каталога для монтирования и если нет то создаем
then
mkdir --mode=0777 $LFOLD/$3
fi
if [ `ls -a "$LFOLD/$3" | grep -v "^\.$" | grep -v "^\.\.$" | wc -l` = "0" ] #монтирем если каталог пуст
then
sudo mount -t smbfs //$1/$2 $LFOLD/$3 -o rw,username=$USR,password=$PWD,iocharset=utf8,codepage=cp866
fi
}
# Подключение сетевых ресурсов "mt <ip сервера> <ресурс> <имя локального каталога>"
mt "$FS" "soft\$" "S(soft)"
mt "$MFS" "OPEN" "R(open)"
mt "$FS" "PHOTO#" "Y(photo)"
mt "$FS" "exfolder\$" "Z(мои_файлы)"
Скрипт сам создает недостающие каталоги для монтирования если их нет, и если каталог для монтирования пуст, то монтирует нужный сетевой ресурс. Добавление и удаление монтируемых устройств как видим производится очень просто. Теперь не забываем поменять параметры безопасности для этого скрипта, чтобы никто другой не смог подсмотреть пароль забитый в нем. Для этого меняем хозяина и права доступа, если не знаете что надо писать, то повторите настройки из каталога Mail в рабочем каталоге пользователя.
Осталось только организовать автоматический вызов скрипта, а для этого допишем в файл .profile следующие строчки:
Код:
if [ -f "$HOME/.smbmt" ]; then
. "$HOME/.smbmt"
fi
Теперь можем исполнить скрипт, или заново войти в систему, и увидим в каталоге пользователя новые папки: S(soft), R(open), Y(photo) и Z(мои_файлы). Содержимое этих каталогов должно соответствовать общим ресурсам файловых серверов.
Ну вот вроде и все, старался изложить так, чтоб было понятно даже школьнику. Стоит добавить что вы можете создать тарбол содержащий измененные системные файлы и применять нужные настройки для других машин одним махом. Также, при помощи утилиты в составе данной сборки вы можете записать на CD все доустановленные пакеты, и созданный тарбол, который в последствии можно использовать как локальный репозиторий. Всем удачи!
Цитата: Little-Yo от 26 Ноября 2009, 08:45:53
Кстати, не могли бы вы рассказать механизм создания такого тарбола ибо гугол не помогает, а создание .sh копирующего нужные системные файлы и расставляющего права и владельцев (chown chmod) кагбэ не дало нужного мне эффекта.
Не вопрос.
1) Зайдите в систему под пользователем root.
2) В каталог /root (профиль суперпользователя) скопируйте измененный .profile и "обезличенный" .smbmt. Под обезличенный я подразумеваю скрипт в котором не указаны пользователь и пароль, а все строчки монтирования (вида: mt "$FS" "soft\$" "S(soft)") закомментированы.
3) Теперь выполните в терминале (можно написать и скрипт) следующее:
Код:
tar cvf $HOME/AD_conf.tar.gz $HOME/.smbmt $HOME/.profile /etc/sudoers /etc/gdm/gdm.conf-custom /etc/gdm/gdm.conf /etc/hosts /etc/krb5.conf /etc/default/rcS /etc/default/ntpdate /etc/samba/smb.conf /etc/nsswitch.conf /etc/pam.d/common-account /etc/pam.d/common-auth /etc/pam.d/common-password /etc/pam.d/common-session /etc/pam.d/sudo /etc/security/group.conf
Выполнять в терминале надо чтобы убедиться что тарбол собран без ошибок. В домашнем каталоге суперпользователя появится файл AD_conf.tar.gz он содержит все системные настройки. Тарбол создается в принципе всего один раз и потом уже используется один и тот-же для всех остальных.
4) На другой машине этот тарбол нужно распаковать опять же под пользователем root просто при помощи Xarchiver. распаковывать нужно в корень ( / ) и проставить флажки на перезапись и распаковку с полным путем.
Естественно делать это все нужно уже после доустановки компонентов перечисленных в разде 2. Подготовка системы.. Обязательно нужно поправить файлы конфигурации, хранящие настройки относящиеся к конкретно этой машине, а именно /etc/hosts (перебить IP) и /etc/samba/smb.conf (можно и через SWAT, но нужно изменить параметр netbios name).
5) Регистрируем новую рабочую станцию в AD, дав в терминале команду net ads join –U vashadmin, потом перезапускаемся, и все должно работать как часы.
/************************************************************************************/
Таким образом настройка прочих компьютеров будет состоять из следующих пунктов:
1) Установка Runtu Office
2) Доустановка и обновление пакетов из репозитория, а также удаление ненужных.
3) Подстановка файлов конфигурации из тарбола.
4) Незначительная правка /etc/hosts и /etc/samba/smb.conf.
5) Регистрация в AD и перезагрузка системы.
6) Если нужно в каком-либо профиле пользователя подключать сетевые диски, то вытягиваем из папки /root файлы .profile и .smbmt в домашний каталог нужного нам пользователя (нужны права суперпользователя), приводим .smbmt к должному виду (в соответствии с описанием).
Вроде все.