ALT Linux Wiki
•••

Samba AD / ALTDC

Порядок розгортання на Альт Стартеркит MATE

Підготовка та встановлення необхідних пакетів

Після оновлення системи та ядра...

apt-get update && apt-get dist-upgrade -y && update-kernel

Встановити пакет tzdata

apt-get install -y tzdata

Встановлюємо часовий пояс і синхронізуємо час

timedatectl set-timezone Europe/Moscow
ntpdate pool.ntp.org

Встановлюємо необхідні пакети і вимикаємо сервіси

apt-get install -y task-samba-dc admc
for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done

Підготовка конфігураційних файлів системи

Задаємо ім’я хоста

hostnamectl set-hostname dc.domain.alt
domainname domain.alt

Також перевірити й за необхідності виправити ім’я хоста у файлі

/etc/sysconfig/network

Перезавантажитися для перевірки

reboot

Далі налаштовуємо 127.0.0.1 як DNS-сервер системи (далі в команді створення домену ми додамо можливість для цього DNS-сервера робити запити до зовнішніх DNS-серверам)

cat << EOF > /etc/resolv.conf
# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces//resolv.conf instead.
search alt
nameserver 127.0.0.1
EOF

Тут наведена команда конфігурування файлу /etc/hosts, з огляду на те, що у налаштовуваного сервера локальна IP-адреса: 192.168.0.249

cat << EOF > /etc/hosts
192.168.0.249 dc.domain.alt domain.alt
127.0.0.1 localhost
EOF

Створення домену однією командою

Перед виконанням команди створення домену потрібно видалити конфігураційний файл:

/bin/rm -rf /etc/samba/smb.conf /var/lib/samba /var/cache/samba
mkdir -p /var/lib/samba/sysvol

Для домену

domain.alt

з паролем

Pa$$word

і адресою зовнішнього DNS-сервера

8.8.8.8

команда створення домену буде такою:

samba-tool domain provision --realm=domain.alt --domain domain --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --option="dns forwarder=8.8.8.8"

Увімкнення сервісу і перевірка роботи домену

Увімкнення

systemctl enable --now samba

Перевірка

samba-tool domain info 127.0.0.1

У відповідь має прийти щось на кшталт цього:

Forest           : domain.alt
Domain           : domain.alt
Netbios domain   : DOMAIN
DC name          : dc.domain.alt
DC netbios name  : DC
Server site      : Default-First-Site-Name
Client site      : Default-First-Site-Name

Налаштування Kerberos

cat << EOF > /etc/krb5.conf
includedir /etc/krb5.conf.d/

[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_kdc = true
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = DOMAIN.ALT
# default_ccache_name = KEYRING:persistent:%{uid}

[realms]
DOMAIN.ALT = {
  default_domain = domain.alt
}

[domain_realm]
dc = DOMAIN.ALT
EOF

Керування користувачами з командного рядка

Створити користувача з паролем

Наприклад, створюємо користувача ivanov_ivan

samba-tool user create ivanov_ivan

Встановлюємо строк дії пароля

samba-tool user setexpiry ivanov_ivan

Створюємо користувача із зазначенням повного імені, адреси електронної пошти і пароль діятиме завжди

samba-tool user create ivanov_ivan --given-name='Иванов Иван' --mail-address='ivanovi@mail.ru'
samba-tool user setexpiry ivanov_ivan --noexpiry

Видалити користувача

samba-tool user delete ivanov_ivan

Вимкнути користувача

samba-tool user disable ivanov_ivan

Увімкнути користувача

samba-tool user enable ivanov_ivan

Змінити пароль користувача

samba-tool user setpassword ivanov_ivan

Переглянути доступних користувачів

samba-tool user list

Перегляд інформації про користувача

samba-tool user show ivanov_ivan

або, щоб дізнатися UID і GID (наприклад, для встановлення власника на каталог samba)

wbinfo -i ivanov_ivan

у відповідь має прийти щось на кшталт

DOMAIN\ivanov_ivan:*:3000023:100::/home/DOMAIN.ALT/ivanov_ivan:/bin/bash

де UID це 3000023 а GID це 100

Створення домашнього каталогу для користувача

Поки що вручну. Триває робота над інтеграцією відповідного скрипта в процес додавання користувача в SAMBA

Перед виконанням команд додавання домашнього каталогу на основі /etc/skel конкретно у контексті цієї статті потрібно додати до /etc/skel каталог, який пізніше буде монтуватися кожному користувачу за допомогою pam_mount. Для цього потрібно виконати команду

mkdir /etc/skel/share

далі на базі скелетона створюємо каталог

cp -rp /etc/skel /home/DOMAIN.ALT/ivanov_ivan

потім змінюємо користувача-власника і групу-власника на цей каталог на основі інформації з wbinfo (приклад команди -- вище)

chown 3000023:100 /home/DOMAIN.ALT/ivanov_ivan -R

Створення домашнього каталогу для користувача під час першого входу

У контексті цієї статті це вирішується запуском скрипта через параметр

root preexec = /usr/local/samba/bin/create_homedir %U

, доданий до ресурсу

[share]

Завдання, яке вирішує цей скрипт -- створення домашніх каталогів для доменних користувачів на основі скелетона /etc/skel. У майбутньому це буде потрібно для монтування каталогів на клієнтских машинах за допомогою pam_mount.

Повний конфіг ресурсу

[share]
        path = /home/DOMAIN.ALT/%U/share
        root preexec = /usr/local/samba/bin/create_homedir %U
        read only = No
        browseable = yes
        writable = yes
        valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins"

Створення домашнього каталогу для користувача під час першого входу

У контексті цієї статті це вирішується запуском скрипта через параметр

root preexec = /usr/local/samba/bin/create_homedir %U

, доданий до ресурсу

[share]

Завдання, яке вирішує цей скрипт -- створення домашніх каталогів для доменних користувачів на основі скелетона /etc/skel. У майбутньому це буде потрібно для монтування каталогів на клієнтских машинах за допомогою pam_mount.

Повний конфіг ресурсу

[share]
        path = /home/DOMAIN.ALT/%U/share
        root preexec = /usr/local/samba/bin/create_homedir %U
        read only = No
        browseable = yes
        writable = yes
        valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins"

Параметр вказує на виконання скрипта, параметром в який надходить ім’я користувача. Створюємо скрипт

mkdir -p /usr/local/samba/bin/
cat << 'EOF' > /usr/local/samba/bin/create_homedir 
#!/bin/bash
[ -z ${1} ] && echo "Try: $0 " && exit 1
user="${1}"
homepath="/home/DOMAIN.ALT/${user}"
[ -d ${homepath} ] || /bin/cp -rp /etc/skel ${homepath}
[ -d ${homepath} ] && /bin/chown `wbinfo -i ${user} | awk -F ':' {'print $3 ":" $4'}` ${homepath} -R
exit 0
EOF
chmod +x /usr/local/samba/bin/create_homedir
mkdir /home/DOMAIN.ALT

Тепер при зверненні користувача до ресурсу [share] від суперкористувача запускатиметься скрипт, який:

1. Створює домашній каталог на основі /etc/skel (створює тільки, якщо каталогу не існує)

2. Оновлює користувача-власника і групу-власника для созцього каталогу. UID користувача-власника і GID групи-власника скрипт отримує з команди (оновлює, тільки якщо каталог існує)

wbinfo -i ${user} | awk -F ':' {'print $3 ":" $4'}

Запуск ADMC

Для коректної роботи застосунку ADMC необхідно отримати квиток Kerberos командою

kinit Administrator

У відповідь необхідно ввести пароль от доменного адміністратора

Щоб це автоматизувати, можна, наприклад, зробити скрипт автоматичного запуску admc

cat << 'EOF' > /opt/admc.sh
#!/bin/bash
echo 'Pa$$word' | kinit Administrator
admc
EOF

chmod +x /opt/admc.sh

Якщо необхідно, то:

ln -s /opt/admc.sh /home/administrator/Рабочий\ стол/

Порядок введення комп’ютера до домену під керуванням ОС Альт Стартеркит MATE

Підготовка

Встановлюємо пакети

apt-get install alterator-auth sssd-ad samba-common-tools realmd

Встановлюємо часовий пояс і синхронізуємо час

timedatectl set-timezone Europe/Moscow
ntpdate pool.ntp.org

Задаємо ім’я хоста

hostnamectl set-hostname host-arm01

Також перевірити й за необхідності виправити ім’я хоста у файлі

/etc/sysconfig/network

Перезавантажитися для перевірки

reboot

Введення комп’ютера до домену однією командою

Команда введення комп’ютера з іменем хоста

host-arm01

до домену

domain.alt

з паролем

Pa$$word

буде такою:

system-auth write ad domain.alt host-arm01 domain 'administrator' 'Pa$$word'

Увімкнути застосування групових політик

apt-get install -y gpupdate alterator-auth alterator-gpupdate
gpupdate-setup write enable workstation

Виведення комп’ютера з домену

У контексті цієї статті комп’ютер з домену виводиться командою, яку вводять на самому комп’ютері (не на сервері):

realm leave domain.alt Administrator

Перевірка поточного типу автентифікації

control system-auth

Монтування каталогів через SAMBA

На сервері

Додаємо параметри в конфіг samba і перезапускаємо сервіс

cat << 'EOF' >> /etc/samba/smb.conf
[share]
  path = /home/DOMAIN.ALT/%U/share
  read only = No
  browseable = yes
  writable = yes
  valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins"
EOF
systemctl restart samba

На клієнтському комп’ютері, введеному до домену

Встановлюємо необхідні пакети

apt-get install -y pam_mount cifs-utils systemd-settings-enable-kill-user-processes pam_script mate-file-manager-extensions fuse-smb gvfs-backend-smb

Конфігуруємо PAM

Готова команда для створення робочого конфігу

cat << 'EOF' > /etc/pam.d/system-auth-sss
#%PAM-1.0

auth [success=5 perm_denied=ignore default=die] pam_localuser.so
auth [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
auth [default=1] pam_permit.so
auth optional pam_mount.so
auth substack system-auth-sss-only
auth [default=1] pam_permit.so
auth substack system-auth-local-only
auth substack system-auth-common
#auth optional pam_exec.so expose_authtok /opt/pam_exec_hook_auth

account [success=4 perm_denied=ignore default=die] pam_localuser.so
account [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
account [default=1] pam_permit.so
account substack system-auth-sss-only
account [default=1] pam_permit.so
account substack system-auth-local-only
account substack system-auth-common

password [success=4 perm_denied=ignore default=die] pam_localuser.so
password [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
password [default=1] pam_permit.so
password substack system-auth-sss-only
password [default=1] pam_permit.so
password substack system-auth-local-only
password substack system-auth-common

session [success=5 perm_denied=ignore default=die] pam_localuser.so
session [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
session [default=1] pam_permit.so
session required pam_mkhomedir.so silent
session optional pam_mount.so disable_interactive
session substack system-auth-sss-only
session [default=1] pam_permit.so
session substack system-auth-local-only
session substack system-auth-common
session optional pam_script.so
#session optional pam_exec.so /opt/pam_exec_hook_session
EOF

Якщо цього конфігу недостатньо щоб запрацювало монтування через pam_mount, додайте ці два рядки

session         [success=1 default=ignore] pam_succeed_if.so  service = systemd-user
session         optional        pam_mount.so disable_interactive

у кінець файлу

/etc/pam.d/system-auth

Додаємо скрипт в pam_script

Практика показала, що під час завершення користувачем сеансу НЕ відбувається відмонтування мережевого каталогу share. Поцему довелося додатково використовувати pam_script і налаштувати для завершення сесії такий скрипт, який виконує команду відмонтування під час завершення сесії (який, на відміну від <cifsumount></cifsumount> секції в конфігу pam_mount, працює коректно!).

Готова команда для створення скрипта

cat << 'EOF' > /etc/pam-script/pam-script.d/umount_share_if_ses_close
#!/bin/bash
systemd-mount -u /home/DOMAIN.ALT/${PAM_USER}/share
exit 0
EOF

Дозволяємо для всіх доступ до fuse під root

control fusermount public

Перевірка доступності ресурсів для користувача

У наведеній нижче команді перевіряються ресурси користувача ivanov_ivan:

smbclient -L dc.domain.alt -U ivanov_ivan -m SMB2

Монтування ресурсу вручну

У наведеній нижче команді перевіряється монтування ресурсу вручну для користувача ivanov_ivan:

mount.cifs //dc.domain.alt/share ~/share -o vers=2.0,user=ivanov_ivan

Під користувачем, який увійшов в введений до домену комп’ютер користувачем ivanov_ivan команда має монтувати ресурс без запиту пароля!

Якщо перевірка і ручне монтування працюють коректно, то можна налаштовувати pam_mount

Конфігуруємо pam_mount

Робимо бекап

cp /etc/security/pam_mount.conf.xml /etc/security/pam_mount.conf.xml.orig

Одразу створюємо готовий файл конфігурації:

cat << 'EOF' > /etc/security/pam_mount.conf.xml







    
    
    /sbin/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)
    
    
    
    

EOF

Основний принцип роботи

У контексті цієї статті сервер і pam_mount на клієнтской машине налаштовані таким чином, щоб під час входу доменного користувача в систему в домашній каталог цього користувача автоматично підключався ресурс, який на комп’ютері користувача знаходитиметься в каталозі

/home/DOMAIN.ALT/ivanov_ivan/share

і буде змонтований в каталог на сервері с точно таким же расположением, т.е.

/home/DOMAIN.ALT/ivanov_ivan/share

Отже, локально користувач ivanov_ivan працюватиме на конкретній машині, введеній до домену в локальном каталозі

/home/DOMAIN.ALT/ivanov_ivan

і результат роботи зберігатиметься тільки на локальной машине.

Но файли, з якими користувач ivanov_ivan работает на локальной машине A именно в каталозі

/home/DOMAIN.ALT/ivanov_ivan/share

, будуть фактично зберігатися в каталозі

/home/DOMAIN.ALT/ivanov_ivan/share

файлового сервера на машине контролера домену (і не будуть зберігатися в таком же каталозі локальной машини) і в случае, когда користувач ivanov_ivan працюватиме на машине B, введеній в цей же домен, то в каталозі

/home/DOMAIN.ALT/ivanov_ivan/share

пользователю ivanov_ivan будутьь доступні ті самі файли, с якими он работал на машине A.

Готові конфіги для клієнта і сервера, у контексті завдання, описаного в цій статті

Для сервера

Файл /etc/samba/smb.conf

# Global parameters
[global]
  dns forwarder = 8.8.8.8
  netbios name = DC
  realm = DOMAIN.ALT
  server role = active directory domain controller
  workgroup = DOMAIN

[sysvol]
  path = /var/lib/samba/sysvol
  read only = No

[netlogon]
  path = /var/lib/samba/sysvol/domain.alt/scripts
  read only = No

[share]
  path = /home/DOMAIN.ALT/%U/share
  root preexec = /usr/local/samba/bin/create_homedir %U
  read only = No
  browseable = yes
  writable = yes
  valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins"

Вивід команди testparm

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed

Server role: ROLE_ACTIVE_DIRECTORY_DC

Press enter to see a dump of your service definitions

# Global parameters
[global]
  dns forwarder = 8.8.8.8
  passdb backend = samba_dsdb
  realm = DOMAIN.ALT
  server role = active directory domain controller
  workgroup = DOMAIN
  rpc_server:tcpip = no
  rpc_daemon:spoolssd = embedded
  rpc_server:spoolss = embedded
  rpc_server:winreg = embedded
  rpc_server:ntsvcs = embedded
  rpc_server:eventlog = embedded
  rpc_server:srvsvc = embedded
  rpc_server:svcctl = embedded
  rpc_server:default = external
  winbindd:use external pipes = true
  idmap config * : backend = tdb
  map archive = No
  vfs objects = dfs_samba4 acl_xattr


[sysvol]
  path = /var/lib/samba/sysvol
  read only = No


[netlogon]
  path = /var/lib/samba/sysvol/domain.alt/scripts
  read only = No


[share]
  path = /home/DOMAIN.ALT/%U/share
  read only = No
  root preexec = /usr/local/samba/bin/create_homedir %U
  valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins"

Файл /usr/local/samba/bin/create_homedir

#!/bin/bash
[ -z ${1} ] && echo "Try: $0 " && exit 1
user="${1}"
homepath="/home/DOMAIN.ALT/${user}"
[ -d ${homepath} ] || /bin/cp -rp /etc/skel ${homepath}
[ -d ${homepath} ] && /bin/chown `wbinfo -i ${user} | awk -F ':' {'print $3 ":" $4'}` ${homepath} -R
exit 0

Файл /etc/krb5.conf

[libdefaults]
  default_realm = DOMAIN.ALT
  dns_lookup_realm = false
  dns_lookup_kdc = true

[realms]
DOMAIN.ALT = {
  default_domain = domain.alt
}

[domain_realm]
  dc = DOMAIN.ALT

Файл /etc/sysconfig/network

# When set to no, this may cause most daemons' initscripts skip starting.
NETWORKING=yes

# Used by hotplug/pcmcia/ifplugd scripts to detect current network config
# subsystem.
CONFMETHOD=etcnet

# Used by rc.sysinit to setup system hostname at boot.
HOSTNAME=dc.alt

# This is used by ALTLinux ppp-common to decide if we want to install
# nameserver lines into /etc/resolv.conf or not.
RESOLV_MODS=yes

Файл /etc/resolv.conf

# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces//resolv.conf instead.
search domain.alt
nameserver 127.0.0.1

Файл /etc/hosts

192.168.0.249 dc.domain.alt domain.alt
127.0.0.1 localhost

Файл /etc/hostname

dc.domain.alt

Файл /opt/admc.sh

Файл не обов’язковий. Просто синтаксичний цукор для запуска admc без необхідності виконувати вручну kinit Administrator і вводить пароль.

#!/bin/bash
echo 'Pa$$word' | kinit Administrator
admc

Розмістити симлінк на цей файл можна, наприклад, так

ln -s /opt/admc.sh /home/administrator/Рабочий\ стол/

Для клієнта

Файл /etc/resolv.conf

У цьому прикладі файлу адреса DNS-сервера має бути адресою домену, у який необхідно вводить клієнта. Вище описана процедура розгортання домену і сделан акцент на том, що домен через себя має пропускать работу DNS-сервера. Якщо DNS сервер не буде узнавать контроллер домену по имени, процедура введення завершиться помилкою.

/etc/resolv.conf
# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces//resolv.conf instead.
search domain.alt
nameserver 192.168.0.249

Файл /etc/hosts

127.0.0.1 localhost.localdomain localhost

Файл /etc/hostname

host-arm01.domain.alt

Файл /etc/sysconfig/network

# When set to no, this may cause most daemons' initscripts skip starting.
NETWORKING=yes

# Used by hotplug/pcmcia/ifplugd scripts to detect current network config
# subsystem.
CONFMETHOD=etcnet

# Used by rc.sysinit to setup system hostname at boot.
HOSTNAME=host-arm01.domain.alt

# This is used by ALTLinux ppp-common to decide if we want to install
# nameserver lines into /etc/resolv.conf or not.
RESOLV_MODS=yes

Файл /etc/pam.d/system-auth-sss

#%PAM-1.0

auth [success=5 perm_denied=ignore default=die] pam_localuser.so
auth [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
auth [default=1] pam_permit.so
auth optional pam_mount.so
auth substack system-auth-sss-only
auth [default=1] pam_permit.so
auth substack system-auth-local-only
auth substack system-auth-common

account [success=4 perm_denied=ignore default=die] pam_localuser.so
account [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
account [default=1] pam_permit.so
account substack system-auth-sss-only
account [default=1] pam_permit.so
account substack system-auth-local-only
account substack system-auth-common

password [success=4 perm_denied=ignore default=die] pam_localuser.so
password [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
password [default=1] pam_permit.so
password substack system-auth-sss-only
password [default=1] pam_permit.so
password substack system-auth-local-only
password substack system-auth-common

session [success=5 perm_denied=ignore default=die] pam_localuser.so
session [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
session [default=1] pam_permit.so
session required pam_mkhomedir.so silent
session optional pam_mount.so disable_interactive
session substack system-auth-sss-only
session [default=1] pam_permit.so
session substack system-auth-local-only
session substack system-auth-common
session optional pam_script.so

Файл /etc/security/pam_mount.conf.xml








    
    
    /sbin/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)
    
    
    
    

Файл /etc/pam-script/pam-script.d/umount_share_if_ses_close

#!/bin/bash
systemd-mount -u /home/DOMAIN.ALT/${PAM_USER}/share
exit 0

Пакетне додавання користувачів

Формат файлу для імпорту

На прикладі файлу с тремя користувачами...

Такий файл можна отримати, наприклад, на основі електронної таблиці .ods або .xls(x)

Формат і порядок стовпців даних такий:

фамилия,имя,отчество,логин,email,пароль

Файл демонструє то, що імпортовані користувачі могут не содержать імені або по батькові, но на місці прізвища обов’язково має бути какой-либо текст, має бути обязательно логін, email і пароль

cat << 'EOF' > /opt/users.csv 
Петрова,Мария,Ивановна,petrova_mi,petrova_mi@mail.ru,Qwe123!@#
Сидоров,Иван,,sidorov_i,sidorov_i@mail.ru,Qwe123!@#
Вася,,,vasya,vasya@mail.ru,Qwe123!@#
EOF

Скрипт для пакетного імпорту

cat << 'EOF' > /opt/batch_create_dc_users.sh 
#!/bin/bash

while read -r line;
do
f=`echo $line | awk -F ',' {'print $1'}`
i=`echo $line | awk -F ',' {'print $2'}`
o=`echo $line | awk -F ',' {'print $3'}`
login=`echo $line | awk -F ',' {'print $4'}`
email=`echo $line | awk -F ',' {'print $5'}`
password=`echo $line | awk -F ',' {'print $6'}`

if [ -z $i ] && [ -z $o ]; then
samba-tool user create "${login}" "${password}" --surname="${f}" --mail-address="${email}"
else

given_name=''
if [ -z $o ]; then
given_name="${i}"
else
given_name="${i} ${o}"
fi

samba-tool user create "${login}" "${password}" --surname="${f}" --given-name="${given_name}" --mail-address="${email}"
fi

samba-tool user setexpiry "${login}" --noexpiry
done < /opt/users.csv
EOF

Запуск скрипта

chmod +x /opt/batch_create_dc_users.sh
/opt/batch_create_dc_users.sh

Лайфхаки

Покрокова інструкція на повторне введення до домену робочої станції після перейменування і/або зміни IP-адреси робочої станції

Крок 1

Вийти з домену. Для цього або використати заздалегідь підготовлений скрипт

leave-domain

або нативну команду

realm leave nntc.alt Administrator

Крок 2

Задати хостове ім’я на базі IP-адреси одной командою

echo "pc-$(hostname -i | awk {'print $1'} | sed 's/10.207.//g' | sed 's/\./-/g')" > /etc/hostname && hostname $(cat /etc/hostname)

якщо на хості працює PVE, то ще пересоздати файл /etc/hosts

echo "$(hostname -i | awk {'print $1'}) $(cat /etc/hostname)" > /etc/hosts && echo "127.0.0.1 localhost.localdomain localhost" >> /etc/hosts

Крок 3

Ввести машину до домену. Для цього або використати заздалегідь підготовлений скрипт

go2domain

Успішна відповідь на запуск цього скрипта має виглядати приблизно так:

 8 Dec 20:01:56 ntpdate[359700]: adjust time server 192.36.143.130 offset -0.007325 sec
Using short domain name -- NNTC
Joined 'PC-192-164' to dns domain 'nntc.alt'
Successfully registered hostname with DNS
No such group: localadmins!
Error 156: No such group

або нативні команди

синхронізувати час обов’язково

ntpdate pool.ntp.org

затем команда ввода до домену

system-auth write ad nntc.alt pc-192-164 nntc administrator "Тут пароль от облікової записи Administrator домена"

Крок 4

Перевірити на тестовому користувачі с введеній до домену машини

kinit vasya@NNTC.ALT

далі ввести пароль. У разі успіху у відповідь має повернутися запрошення командного рядка без будь-яких повідомлень.

Якщо пароль було введено неправильно, то у відповідь має прийти щось на кшталт цього:

kinit: Password incorrect while getting initial credentials

Крок 5

Перевірка.

Перезавантажитися, увійти доменним користувачем, переконатися, що монтується мережева директорія share, отлогиниться.

Вимкнути вимогу складного пароля

# samba-tool domain passwordsettings set --complexity=off

Якщо змінювалася IP-адреса сервера контролера домену

Спробувати виконати команду оновлення DNS-записів в самбе

samba_dnsupdate --verbose

Якщо це не допоможе, перевірити наявність цих налаштувань

bind interfaces only = yes
interfaces = lo enp6s20

в секции

[global]

у файлі

/etc/samba/smb.conf

, де

lo enp6s20

це інтерфейс локальної петлі (lo) і мережевий інтерфейс (enp6s20), яким контролер домену надає сервіси в мережу.

Категорія: AltSrv