Samba preexec / postexec не работает в smb.conf на Rocky Linux 9

Вопрос или проблема

Я пытаюсь запустить простой скрипт preexec каждый раз, когда к общему ресурсу обращаются в samba, работающем на Rocky Linux 9. Вот моя конфигурация “testparm”:

# testparm
Загрузка файлов конфигурации smb из /etc/samba/smb.conf
Файл сервисов загружен успешно.
Слабое шифрование разрешено GnuTLS (например, NTLM как запасной вариант совместимости)

Роль сервера: ROLE_STANDALONE

Нажмите Enter, чтобы увидеть дамп определений ваших сервисов

# Глобальные параметры
[global]
        client signing = required
        disable spoolss = Yes
        load printers = No
        printcap name = /dev/null
        security = USER
        server signing = required
        workgroup = SAMBA
        idmap config * : backend = tdb
        cups options = raw
        printing = bsd


[content]
        create mask = 0755
        path = /opt/samba/shared
        read only = No
        root postexec = echo \"%u отключился от %S с %m (%I)\" >> /tmp/log
        root preexec = echo \"%u подключился к %S с %m (%I)\" >> /tmp/log
        valid users = bart
        write list = bart @wheel

Ничего не записывается в /tmp/log. Я также не вижу никаких сообщений в журналах samba. Любая помощь будет полезна!

Kermes

Ответ или решение

Проблема с работой скриптов preexec и postexec в Samba на Rocky Linux 9

Введение

Вопрос, который вы подняли, касается конфигурации Samba, используемой в Rocky Linux 9, и конкретно скриптов preexec и postexec. Давайте рассмотрим вашу ситуацию и предложим решения проблемы, чтобы обеспечить корректное выполнение данных скриптов при доступе к общему ресурсу.

Анализ конфигурации

Давайте сначала посмотрим на вашу конфигурацию в файле smb.conf. Вы указали следующее:

[content]
        path = /opt/samba/shared
        valid users = bart
        write list = bart @wheel
        root preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
        root postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log
  1. Права доступа к лог-файлу: Убедитесь, что процесс Samba имеет права на запись в файл /tmp/log. Обычно Samba запускается от имени пользователя smbd, и если этот пользователь не имеет прав на запись, то логирование не будет работать. Вы можете изменить права доступа к папке /tmp или, предпочтительно, указать другой каталог, доступный для записи.

    touch /tmp/log
    chown root:smbd /tmp/log
    chmod 664 /tmp/log
  2. Использование root: Вам не нужно указывать root перед командами preexec и postexec, просто укажите их напрямую, как показано ниже:

    preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
    postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log
  3. Отладка и логи Samba: Включите более подробные логи Samba, чтобы понять, что именно происходит при попытке вызова preexec и postexec. Для этого добавьте в секцию [global] следующее:

    log level = 3
    log file = /var/log/samba/%m.log
    max log size = 50

    Это создаст отдельные логи для каждого клиента, что позволит вам видеть, какие ошибки могут возникать.

  4. Проблемы версий: Убедитесь, что версия Samba подходит для использования данной конфигурации. Некоторые опции могут работать некорректно в устаревших или устаревших версиях. Используйте команду samba --version для проверки версии.

  5. Проверка конфигурации: После внесения изменений в smb.conf, убедитесь, что конфигурация проверена с помощью testparm, а затем перезапустите службу Samba:

    sudo testparm
    sudo systemctl restart smb
    sudo systemctl restart nmb

Заключение

Проблема с вызовом preexec и postexec может быть связана с правами доступа к файлам, неправильной конфигурацией и отсутствием подходящих логов. Следуя предложенным рекомендациям, вы сможете установить причину проблемы и обеспечить ее решение. Если после всех проверок проблема не исчезла, рассмотрите возможность использования альтернативных подходов для реализации необходимого функционала, например, через другие системные скрипты или процессы.

Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...