Я пытаюсь добавить настройку идентификации, чтобы связать URL-адрес с сертификатом с помощью сценария Unix, который я могу отправить всем пользователям.
Пользователи имеют в своей цепочке для ключей сертификат, который называется «Имя, Фамилия», например, Джон Смит
Мне нужно получить это имя, вот так
nameoncert=$(security find-certificate -a -c "$(sudo -u $(stat -f "%Su" /dev/console) id -F)" -Z login.keychain | grep ^' "labl"<blob>="' |cut -c19- | sed 's/.$//')
, который запутан и, кажется, работает только при локальном использовании с учетной записью администратора, при удаленном запуске на пользовательском устройстве возвращает «» (ничего).
Затем возьмите это значение и поместите его в эту команду,
security set-identity-preference -c "$nameoncert" -s "*.url.com"
Теперь проблема заключается в том, что с помощью нашей утилиты управления это означает, что любые сценарии запускаются от имени пользователя root.
Так что мне нужно найти способ просмотреть цепочку ключей для зарегистрированных пользователей в качестве пользователя root, получить имя, указанное в сертификате, затем принять это значение, поместить его в переменную и использовать в приведенной выше команде.
Это однострочное «решение», которое работало локально для начальной точки,
sudo -u $(stat -f "%Su" /dev/console) $(security set-identity-preference -c "$(security find-certificate -a -c "$(sudo -u $(stat -f "%Su" /dev/console) id -F)" -Z login.keychain | grep ^' "labl"<blob>="' |cut -c19- | sed 's/.$//')" -s "*.url.com")
Любая помощь приветствуется. Заранее спасибо