Цель:
Организовать работу группы компьютеров таким образом, чтоб любой пользователь мог войти на любой из них под своим паролем и при этом получить все свои документы, ярлычки и прочее на привычных местах.
Примечания:
Вопросы безопасности применения NIS и NFS в данной инструкции существенно не затрагиваются, однако следует учитывать что NIS это весьма опасная штука.
Рассматривается вариант исключительно со статическими IP.
В примере все прописано для одного клиента, так как добавление последующих представляется очевидным.
Тестовый стенд:
ПК выполняющий роль сервера со установленным Ubuntu 9.04 Desktop, имя server1, IP 10.0.0.1/24
ПК выполняющий роль клиента со установленным Ubuntu 9.04 Desktop, имя client1, IP 10.0.0.2/24
1. Настройка серверной части - NIS.
Открываем /etc/hosts и добавляем следующие записи:
10.0.0.1 server1
10.0.0.2 client1
Открываем /etc/hosts.allow и добавляем в конец файла следующую строчку:
portmap ypserv ypbind : 10.0.0.1 10.0.0.2
Устанавливаем NIS, запустив в консоли:
sudo apt-get install portmap nis
При этом будет задан вопрос как назвать домен NIS. Имя может быть любое, лишь бы одинаковое на клиентах и на сервере. Пусть у нас будет testdomain. Если забыли как назвали, то можно подсмотреть в /etc/defaultdomain.
Открываем /etc/default/nis и меняем:
NISSERVER=false на NISSERVER=master
Открываем /etc/yp.conf и добавляем строчку:
domain testdomain server server1
Редактируем: /etc/ypserv.securenets (закомментируем доступ для всех и пропишем только клиентские ПК):
#0.0.0.0 0.0.0.0
host 10.0.0.2
Запускаем в консоли:
sudo /usr/lib/yp/ypinit -m
Когда появится запрос:
next host to add:
нажмем control-D, а затем подтвердим свой выбор серверов.
Перезагружаем сервер (теоретически достаточно перезапустить portmap и nis).
2. Настройка серверной части - NFS.
Создаем папку, в которую в последствии будем помещать домашние директории пользователей, пусть это будет /nfs
Устанавливаем NFS запустив в консоли:
sudo apt-get install nfs-kernel-server nfs-common
Открываем /etc/exports и в конце добавляем шару для клиентских пк:
/nfs 10.0.0.2(rw)
Перезапускаем NFS, выполнив в консоли:
sudo /etc/init.d/nfs-kernel-server restart
3. Серверная часть - управление.
Любым привычным способом заводим пользователей, пусть это будут nsiuser1 и nsiuser2. При этом в качестве домашнего каталога указываем /nfs/nsiuser1 и /nfs/nsiuser2 соответственно. По завершению выполняем в консоли:
sudo make -C /var/yp
Если эту команду не выполнить, то последний заведенный пользователь не опознается на клиентских ПК.
Если есть необходимость держать разные директории NFS для разных групп пользователей, то вносим соответствующие изменения в /etc/exports и выполняем в консоли:
sudo exportfs -a
Теперь у нас есть сервер на котором мы можем централизовано заводить пользователей и управлять их домашними директориями. Можно настраивать клиента.
4. Настройка клиента - NIS.
Открываем /etc/hosts и добавляем следующие записи:
10.0.0.1 server1
10.0.0.2 client1
Устанавливаем NIS, запустив в консоли:
sudo apt-get install portmap nis
На вопрос о домене NIS вводим тоже что на сервере, в нашем случае testdomain.
Открываем /etc/hosts.allow и добавляем в конец файла следующую строчку:
portmap : 10.0.0.1
Открываем /etc/passwd и добавляем в конец файла следующую строчку:
+::::::
Открываем /etc/group и добавляем в конец файла следующую строчку:
+:::
Открываем /etc/shadow и добавляем в конец файла следующую строчку:
+::::::::
Открываем /etc/yp.conf и прописываем наш сервер:
ypserver 10.0.0.1
Перезапускаем клиента (теоретически достаточно перезапустить nis).
Пока заходим имеющимся локальным sudoer-ом под которым выполнялись все настройки и в консоли запускаем:
ypcat passwd
На выходе должны получить что-то вроде:
admin:x:1000:1000:root,,,:/home/admin:/bin/bash
nisuser1:x:1001:1001:NIS TEST USER 1,,,,:/nfs/nisuser1:/bin/bash
nisuser2:x:1002:1002:NIS TEST USER 2,,,,:/nfs/nisuser2:/bin/bash
Если пользователей не видим, значит NIS не работает - проверяйте предыдущие шаги.
5. Настройка клиента - NFS.
Устанавливаем NFS, для разнообразия запустив в консоли:
sudo aptitude install nfs-common
Создаем папку /nfs - для наших целей (размещение пользовательских директорий) это должна быть ровно такая же папка, как на сервере. Если это не удобно, то не забудьте сделать символическую ссылку на папку куда монтируете NFS.
Открываем /etc/fstab и прописываем:
10.0.0.1:/nfs /nfs nfs rw,hard,intr,rsize=8192,wsize=8192 0 0
Монтируем:
sudo mount -a
Клиент настроен, можно пользоваться.
6. Проблемы.
Теоретически при настройке как сервера, так и клиента NIS перезагружать ПК целиком нет никакой необходимости, однако у меня
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nis restart
не прошло. Впрочем аналогичные проблемы были и автора SettingUpNISHowTo.
Если все настроено верно, ypcat passwd на клиенте показывает пользователей, но при этом войти на клиентский компьютер не удается, то вероятно вы забыли выполнить на сервере sudo make -C /var/yp после добавления нового пользователя.
На многих форумах рекомендуют обратить внимание на /etc/nsswitch.conf По умолчанию там прописано:
passwd: compat
group: compat
shadow: compat
Можно прописать:
passwd: files nis
group: files nis
shadow: files nis
У меня работает и так и так.
Удачи!