LINUX.ORG.RU
решено ФорумAdmin

Монтирование cifs-шары на ПК с Linux в домене Active Directory

 , ,


0

1

Добрый день!

ПК введен в домен Active Directory (через sssd). Пользователи домена могут авторизовываться в системе.

Задача - организовать прозрачное монтирование файловых ресурсов серверов windows без ввода пароля.

Все работает в графических фаловых менеджерах (например nemo), если открывать ссылки вида smb://server/share, запрос на ввод пароля не опявляется (как и требовалось). Доступ к смонтированным ресурсам возможен после этого так же и через /run/user/${UID}/gvfs/

Хочу сделать монтирование через autofs:

cat /etc/auto.cifs

share_mountpoint -fstype=cifs,rw,noperm,file_mode=0666,dir_mode=02777,forceuid,user=${USER},uid=${UID},sec=krb5i,addr=<SERVER_IP_ADDR>  ://<SERVER_NAME>/<SHARE_NAME>

Не работает, ругается на отсутсвие билета керберос в файле /tmp/krb5cc_0, но файл пользователя с актуальным билетом другой.

Если вручную згенерировать билет для рута через kinit то все работает.

Кто может подсказать, как можно решить данную проблему?

установлен пакет mit-krb5.
Один из используемых вариантов.
# cat /etc/krb5.conf

........ SKIP .......
[libdefaults]
	default_realm = DOMAIN.COM
	default_ccache_name = KEYRING:persistent:%{uid}
........ SKIP .......

cat /etc/autofs/auto.master
#+auto.master
/media/samba    /etc/autofs/auto.samba    --ghost
+dir:/etc/autofs/conf.d


cat /etc/autofs/auto.samba
shara_N1    -fstype=cifs,multiuser,cruid=$UID,sec=krb5i,domain=DOMAIN.COM,noserverino,file_mode=0600,dir_mode=0700 ://servern1.domain.com/shara_n1
shara_N2    -fstype=cifs,multiuser,cruid=$UID,sec=krb5i,domain=DOMAIN.COM,noserverino,file_mode=0600,dir_mode=0700 ://servern2.domain.com/shara_n2


cat /etc/sssd/sssd.conf

[sssd]
services = nss, pam
config_file_version = 2
domains = domain.com
# logger = journald # change in file /etc/sysconfig/sssd # see in systemd unit sssd

[nss]

entry_negative_timeout = 0
debug_level = 3

filter_groups = root
filter_users = root


[pam]

debug_level = 3
pam_pwd_expiration_warning = 5

[domain/domain.com]

debug_level = 3

ad_domain = domain.com
ad_server = ad1.domain.com
ad_server = ad2.domain.com
enumerate = true

id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = simple
simple_allow_groups = users #каким группам разрешено логиниться, через запятую. Есть ограничение — названия групп должны быть с маленькой буквы.
ldap_schema = ad
ldap_id_mapping = false
fallback_homedir = /home/%d/%u
default_shell = /bin/bash
ldap_sasl_mech = gssapi
ldap_sasl_authid = MYHOST$
ldap_krb5_init_creds = true
krb5_keytab = /etc/sssd/MYHOST.keytab

krb5_renewable_lifetime = 7d
krb5_renew_interval = 30m
# Для автоматического обновления машинного ключа установить количество дней, если установить 0 - то перестанет обновляться
ad_maximum_machine_account_password_age=15

# Set CCache to Kerberos default - NOT NEED!


Atlant ★★★★★
()
Ответ на: комментарий от Atlant

cat /etc/samba/smb.conf

[global]
   workgroup = DOMAIN
   server string = Samba Server
   server role = member server
   realm = DOMAIN.COM
   dns proxy = no 
   security = ads
   encrypt passwords = yes
   passdb backend = tdbsam
   kerberos method = dedicated keytab
   dedicated keytab file = /etc/sssd/MYHOST.keytab
   load printers = no
   cups options = raw
   printcap name = /dev/null

   idmap config DOMAIN : backend        = sss
   idmap config DOMAIN : range          = 2000-32147483647
   idmap config * : backend        = tdb
   idmap config * : range          = 1500-1999

# отключаем обновления ключа KERBEROS через SAMBA/WINBIND , этим занимается SSSD
   machine password timeout = 0
   vfs objects = acl_xattr
   map acl inherit = yes
# disable enum users/group via winbind. Uses SSSD
  winbind enum users = no
  winbind enum groups = no

[homes]
   comment = Home Directories
   browseable = no
   writable = yes

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
# Set public = yes to allow user 'guest account' to print
   guest ok = no
   writable = no
   printable = yes



Выше указанный файл с конфигурацией sssd.conf несколько неудачный, но рабочий.

Неудачный с точки зрения фиксации имени компа в конфиге. Переделывал по другому, буду у тех компов - скопирую.

ldap_sasl_authid = MYHOST$
krb5_keytab = /etc/sssd/MYHOST.keytab

Требования к АД - схема не менее 2003 с расширением под unix ( Впрочем иных наверное уже не осталось).
Идентификаторы (UID/GID) берутся из базы АД. Заполняешь или вручную. Или ищешь скрипт по автозаполнению UID/GID.

Atlant ★★★★★
()

Не работает, ругается на отсутсвие билета керберос в файле /tmp/krb5cc_0, но файл пользователя с актуальным билетом другой.

Есть такое. Удалось избавиться через фиксацией в krb5.conf

default_ccache_name = KEYRING:persistent:%{uid}

Atlant ★★★★★
()