Ad Widget

Collapse

При выполнении скриптов из под sudo выдает ошибку

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Uspcmer4
    Junior Member
    • Nov 2021
    • 6

    #1

    При выполнении скриптов из под sudo выдает ошибку

    Добрый день! Столкнулся со следующей проблемой с выполнением скриптов из под sudo , когда пытаюсь выполнить на веб интерфейсе тест, то выдает ошибку

    "pam account management error authentication service cannot retrieve authentication info"

    Версия ОС Cent os 7 x86_64

    Сам конфиг sudores для zabbix агента

    Defaults:zabbix !requiretty
    zabbix ALL = NOPASSWD: /usr/local/etc/script/get_cert.sh
    zabbix ALL = NOPASSWD: /usr/local/etc/script/get_cert_date.sh



    Может подсказать, как побороть данную ошибку ?
  • Uspcmer4
    Junior Member
    • Nov 2021
    • 6

    #2
    Ни у кого нет идей в какую сторону "копать"?

    Comment

    • Alex_UUU
      Senior Member
      • Dec 2018
      • 541

      #3
      Почему нет? Есть :-)
      скрипт как вызываешь?
      /usr/local/etc/script/get_cert.sh или sudo /usr/local/etc/script/get_cert.sh ?
      что выдает

      sudo -u zabbix sudo /usr/local/etc/script/get_cert.sh
      id zabbix


      Comment


      • Uspcmer4
        Uspcmer4 commented
        Editing a comment
        1) Скрипт /usr/local/etc/script/get_cert.sh - вызов через Userparameter
        Userparameter=cert.get, sudo /usr/local/etc/script/get_cert.sh $1 $2
        2) Выполнил команду из консоли linux sudo -u zabbix sudo /usr/local/etc/script/get_cert.sh /etc/certs pem
        скрипт выполнился нормально
        3) id zabbix - написать id группы и пользователя в файле /etc/passwd ?
    • Uspcmer4
      Junior Member
      • Nov 2021
      • 6

      #4

      1) Скрипт /usr/local/etc/script/get_cert.sh - вызов через Userparameter
      Userparameter=cert.get, sudo /usr/local/etc/script/get_cert.sh $1 $2
      2) Выполнил команду из консоли linux sudo -u zabbix sudo /usr/local/etc/script/get_cert.sh /etc/certs pem
      скрипт выполнился нормально
      3) id zabbix - написать id группы и пользователя в файле /etc/passwd ?

      Comment

      • Daggers
        Junior Member
        • Apr 2019
        • 16

        #5
        Может в sudoers надо прописать какую-то команду, которая в скрипте запускается? А не сам скрипт. У меня во всяком случае именно так настроено.

        Comment


        • teddy
          teddy commented
          Editing a comment
          сорри не сюда коммент
          Last edited by teddy; 03-12-2021, 16:05.

        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Там много команд, поэтому выполняю скриптом
      • teddy
        Senior Member
        • Dec 2017
        • 234

        #6
        user ALL=NOPASSWD: /usr/local/etc/script/get_cert.sh

        1. пробелы важны. у вас лишние есть.
        2. если redhat ( centos, fedora etc) то еще смотреть selinux. такое сообщение может быть от него

        Comment


        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Вот мой конфиг sudo
          Defaults:zabbix !requiretty
          zabbix ALL = NOPASSWD: /usr/local/etc/script/get_cert.sh
          zabbix ALL = NOPASSWD: /usr/local/etc/script/get_cert_date.sh

          По Selinux можете подсказать какие правила нужно прописать?

        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Выполнил команду из консоли linux sudo -u zabbix sudo /usr/local/etc/script/get_cert.sh /etc/certs pem
          скрипт выполнился нормально. А если через вебинтерфейс делать тест, то выводит ошибку
      • teddy
        Senior Member
        • Dec 2017
        • 234

        #7
        Originally posted by teddy
        По Selinux можете подсказать какие правила нужно прописать?
        я всегда делю первый шаг - selinux disable в /etc/selinux/selinux.conf и смотрю. если ситуация исправилась тогда уже ищем про selinux. я к сожалению не смогу вам помочь по настройке selinux. там каждый раз что то новое)))

        а по поводу комманд - то выполните отдельно
        sudo -u zabbix -i
        sudo /usr/local/etc/script/get_cert.sh /etc/certs pem
        и смотрите результат

        кстати есть еще нюанс - при выполнении из вебинтерфейса ( так же как и при крон-выполнении ) может не подтягиваться профиль. в скрипте желательно в явном виде прописать либо строку ( пример для bash, для других шеллов аналогично)
        . ~/.bash_profile
        либо задать переменные окружения руками

        Comment


        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Я правильно, понимаю, что нужно подгрузить именно ~/.bash_profile zabbix в скрипте? И какие конкретно env должны быть?

        • teddy
          teddy commented
          Editing a comment
          минимально правильные path что там еще вызывается из get_cert.sh.

        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Выполнил отдельно
          sudo -u zabbix -i - результат this account is currently not available
          sudo /usr/local/etc/script/get_cert.sh /etc/certs pem - результат получил массив json со списком сертификатов
      • wins
        Senior Member
        • Sep 2014
        • 307

        #8
        а что делает скрипт?

        Comment


        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          /usr/local/etc/script/get_cert.sh - получает json массив ssl сертификатов в определенном каталоге в определенным расширением
          /usr/local/etc/script/get_cert_date.sh - получает срок действия сертификатов в определенном каталоге в определенным расширением

          В забиксе - шаблон автодискакавери, который ищет с повощью /usr/local/etc/script/get_cert.sh серты, потом создаются элеементы с сертами и их сроками действия с помощью /usr/local/etc/script/get_cert_date.sh
          Через макросы задается путь к сертификатами и расширение сертов
      • Daggers
        Junior Member
        • Apr 2019
        • 16

        #9
        Originally posted by Uspcmer4
        1) Скрипт /usr/local/etc/script/get_cert.sh - вызов через Userparameter
        Userparameter=cert.get, sudo /usr/local/etc/script/get_cert.sh $1 $2
        Попробуй sudo и лишние пробелы убрать:
        Userparameter=cert.get,/usr/local/etc/script/get_cert.sh $1 $2

        Comment


        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Ок, завтра попробую, отпишусь

        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          Попробовал, не помогло.
      • Daggers
        Junior Member
        • Apr 2019
        • 16

        #10
        Судя по
        "sudo -u zabbix -i - результат this account is currently not available"
        У тебя аккаунт зеэкспайрился, попробуй сменить пароль и ещё раз "sudo -u zabbix -i"

        Comment


        • Uspcmer4
          Uspcmer4 commented
          Editing a comment
          В общем дело selinux. Отключил его временно командой sudo setenforce 0 . И ошибка исчезает. Но выключать его нельзя. Можете подсказать где в selinux глянуть, что блочит? И дает ошибку pam account management error authentication service cannot retrieve authentication info
      Working...