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.xmlEOF /sbin/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)
Основний принцип роботи
У контексті цієї статті сервер і 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), яким контролер домену надає сервіси в мережу.