Вольный перевод статьи из HowtoForge.
Оригинал...В статье описывается один из вариантов установки file- и print-сервера для малого и среднего предприятия до 250 пользователей. Для хранения паролей и информации об аккаунтах пользователей используется Samba с поддержкой tdb.
Что будем ставить:
1. Samba как доменконтроллер
Войдем в режим root командой:
sudo -s -H
Настройка сети.(K)ubuntu 7.10 при установке настраивает сеть на использование DHCP, т.е присваивает компьютеру динамический адрес. Серверу нужно иметь постоянный (static) адрес, поэтому нам нужно исправить сетевые настройки. Допустим, что наш сервер будет иметь адрес 192.168.0.100. Редактируем файл /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping hotplug
script grep
map eth0
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Чтобы изменения вступили в силу необходимо перегрузить сетевую подсистему:
/etc/init.d/networking restart
Теперь нужно изменить /etc/hosts, чтобы имя сервера соответствовало реальному IP, т.е. добавляем строчку типа:
192.168.0.100 server1.example.com server1
Настраиваем Hostname:
echo server1.example.com > /etc/hostname
/etc/init.d/hostname.sh
echo '192.168.0.100 server1.example.com' >> /etc/hosts
Для ограничения дискового пространства пользователей установим пакет quota:
aptitude install quita
Добавим в /etc/fstab параметры usrquota и grpquota в описание нужного раздела, например:
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
# /dev/sda1
UUID=226d9304-88ca-44c0-a3e3-d1ad26cfc084 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
# /dev/sda5
UUID=d824ce36-04b8-4870-83f4-f1a5037c2de4 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/ /media/floppy0 auto rw,user,noauto 0 0
Теперь нужно создать файлы quota.user и quota.group
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
Команда quotacheck выведет ошибку:
quotacheck: WARNING - Quotafile //quota.user was probably truncated. Cannot save quota settings...
quotacheck: WARNING - Quotafile //quota.group was probably truncated. Cannot save quota settings...
Это нормально для первого запуска, не обращайте внимания.
Установка Samba.aptitude install libcupsys2 samba samba-common samba-doc smbclient winbind cupsys-common
Отредактируем файл /etc/samba/smb.conf. Должно получиться что-то вроде этого:
[global]
workgroup = MYWORKGROUP
netbios name = SERVER1
server string = %h server (Samba, Ubuntu)
passdb backend = tdbsam
security = user
username map = /etc/samba/smbusers
name resolve order = wins bcast hosts
domain logons = yes
preferred master = yes
wins support = yes
# Set CUPS for printing
load printers = yes
printcap name = CUPS
printing = CUPS
# Default logon
logon drive = H:
logon script = scripts/logon.bat
logon path = \\server1\profile\%U
# Useradd scripts
# add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
add user script = /usr/sbin/useradd -m '%u' -g users -G users
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usernod -G %g %u
add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
idmap uid = 15000-20000
idmap gid = 15000-20000
template shell = /bin/bash
# sync smb passwords woth linux passwords
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd chat debug = yes
unix password sync = yes
# set the loglevel
log level = 3
[public]
browseable = yes
public = yes
[homes]
comment = Home
valid users = %S
read only = no
browsable = no
[printers]
comment = All Printers
path = /var/spool/samba
printable = yes
public = no
writable = no
create mode = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
write list = root, @smbadmin
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
admin users = Administrator
valid users = %U
read only = no
guest ok = yes
writable = no
share modes = no
[profile]
comment = User profiles
path = /home/samba/profiles
valid users = %U
create mode = 0600
directory mode = 0700
writable = yes
browsable = no
guest ok = no
Создадим директории для domain logons и profiles:
mkdir /home/samba
mkdir /home/samba/netlogon
mkdir /home/samba/profiles
chmod 777 /var/spool/samba/
chown -R root:users /home/samba/
chmod -R 771 /home/samba/
Перезапустим сервис Samba:
/etc/init.d/samba restart
В файле /etc/nsswitch.conf нужно изменить строку:
hosts: files dns
на
hosts: files wins dns
Добавить все компьютеры группы в /etc/hosts:
192.168.0.100 server1 server1.example.com
192.168.0.110 workstation1
192.168.0.111 workstation2
192.168.0.112 workstation3
192.168.0.113 workstation4
Теперь добавим пользователя root (alias: Administrator), он будет domain-адиминистратором для добавления новых машин в Samba domain.
smbpasswd -a root
Создадим файл /etc/samba/smbusers и добавим в него такую запись:
echo "root = Administrator" > /etc/samba/smbusers
Создадим дефолтные доменные группы для виндов:
net groupmap add ntgroup="Domain Admins" unixgroup="root" type=domain -U root
net groupmap add ntgroup="Domain Users" unixgroup="users" type=domain -U root
net groupmap add ntgroup="Domain Guests" unixgroup="nogroup" type=domain -U root
Для примера добавим в наш домен пользователя tom с паролем secret:
net rpc user add tom -U root
net rpc user password tom "secret" -U root
smbpasswd -e tom
Создадим общий для всех пользователей домена каталог:
mkdir -p /home/shares/allusers
chown -R root:users /home/shares/allusers/
chmod -R ug+rwx,o+rx-w /home/shares/allusers/
Добавим его в конфигурационный файл Samba /etc/samba/smb.conf:
[allusers]
comment = All Users
path = /home/shares/allusers
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
Перезапустим сервис Samba:
/etc/init.d/samba restart