Я запускаю несколько общих ресурсов Samba на выделенной машине Debian 9.6, присоединенной к домену AD (Zentyal с SMB 4).
Я использую довольно простую установку SSSD, которая пока идеально подходит для наших нужд.
Я хочу настроить Ambar , чтобы пользователи различных доменов могли искать документы на вышеупомянутых общих ресурсах Samba. Однако я хочу, чтобы Ambar сканировал только «общедоступные» документы и ничего из частных / «управляющих» папок.
Я изменил docker-compose.yml, чтобы Docker создавал нужные ему контейнеры как пользовательский искатель , но когда я запускаю docker-compose up -d
, я получаю следующую ошибку:
ОШИБКА: для Общая папка Невозможно запустить службу Общая папка: пользователь спецификаций linux: не удалось найти искатель пользователя: нет соответствующих записей в файле passwd
Ручное редактирование файла / etc / passwd
здесь не помогает. Я все еще получаю ту же ошибку.
Вот как выглядит соответствующая конфигурация docker-compose.yml:
Shared-folder:
depends_on:
serviceapi:
condition: service_healthy
image: ambar/ambar-local-crawler
restart: always
networks:
- internal_network
expose:
- "8082"
environment:
- name=Shared-folder
- ignoreExtensions=.{exe,dll,rar,s,so}
- apiUrl=http://serviceapi:8081
user: crawler
volumes:
- /shared/Shared-folder:/usr/data
Обратите внимание, что если я удалю строку user: crawler
, все будет работать должным образом (и root
] просматривает все мои документы).
Вот мой /etc/sssd/sssd.conf
-файл:
[sssd]
services = nss, pam
config_file_version = 2
domains = MY.COMPANY.COM
[domain/MY.COMPANY.COM]
id_provider = ad
access_provider = ad
ad_gpo_map_interactive = +cron
dyndns_update_ptr=false
# Use this if users are being logged in at /.
# This example specifies /home/DOMAIN-FQDN/user as $HOME. Use with pam_mkhomedir.so
override_homedir = /home/%u
ldap_idmap_autorid_compat = True
А вот моя /etc/pam.d/common-session
:
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
session [default=1] pam_permit.so
# here's the fallback if no module succeeds
session requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session required pam_permit.so
# and here are more per-package modules (the "Additional" block)
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0066
session optional pam_winbind.so
session optional pam_sss.so
session optional pam_systemd.so
# end of pam-auth-update config
Пожалуйста дайте мне знать, если какие-нибудь конфиги будут полезны! Я предполагаю, что smb.conf
не так актуален в данном случае, и что может быть какой-то способ указать Docker, что он просто доверяет PAM?
Конфигурация домена в sssd.conf
не имеет use_fully_qualified_names = False
. Без этого можно ожидать, что вы будете использовать полные имена (, например.crawler@MY.COMPANY.COM
). Это не обязательно для решения вашей проблемы, но я считаю это полезным, если машина ссылается только на один домен. В качестве альтернативы:
вы можете попробовать указать полное имя пользователя в docker-compose.yaml
(, то естьuser: crawler@MY.COMPANY.COM
). Я не пробовал это, поэтому я не могу подтвердить, что он работает должным образом.
Вы можете использовать uid пользователя вместо имени. Это метод, который я использую, поэтому я могу подтвердить, что он отлично работает. Вы можете получить uid, запустив id <username>
(, убедившись, что вы используете формат, соответствующий вашей настройке use_fully_qualified_names
).
В любом случае, если вы не можете получить uid своего пользователя, запустив id <username>
, проблема, скорее всего, связана с конфигурацией SSSD, а не с конфигурацией докера.