LaunchDaemon не запускает скрипт

Я настраиваю launchdaemon для запуска сценария, который проверяет, вошла ли в систему определенная локальная учетная запись. Если эта учетная запись вошла в систему, ей необходимо снова автоматически выйти из системы. У меня есть рабочий сценарий, но я не могу запустить его с помощью агента запуска или запуска.

Я пробовал использовать его как средство запуска, но это не работает, и конкретному пользователю запрещено запускать скрипты. Это работает на macOS 10.14.5. Иногда он работает при запуске нашим MDM, но нам нужно, чтобы он работал, даже если MDM недоступен (таким образом, локальный скрипт).

Это мой агент на данный момент:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>fubar.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/location/of/fubar.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StartInterval</key>
    <integer>30</integer>
</dict>
</plist>

А вот сценарий:

currentUser=$( scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ { print $3 }' )

if [ "$currentUser" == "fubarUser" ]; then
  echo "$currentUser is fubarUser. Logging out"
  killall loginwindow
fi

Я ожидаю, что он зарегистрирует, что fubarUser вошел в систему, затем выведет мое сообщение и убьет loginwindow, таким образом выйдя из системы.

Если я запускаю сценарий как root в окне терминала, он правильно определяет, кто вошел в систему. Итак, я знаю, что сам сценарий работает. Я просто не могу заставить его загрузить агент запуска или демон запуска.

В моей производственной версии он фактически выводит эхо в файл журнала, который, как он видит, вошел в систему и правильно регистрирует текущего пользователя.


person DWShore    schedule 15.08.2019    source источник


Ответы (1)


Оказывается, это проблема с разрешениями. Очевидно, мы заблокировали права доступа к папке, в которой я размещал скрипт. С тех пор я переместил его в папку /Library/Scripts/ и смог без проблем запустить его оттуда.

person DWShore    schedule 15.08.2019