Сценарии предпочтения идентификации для сопоставления URL-адреса с сертификатом пользователя - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь добавить настройку идентификации, чтобы связать 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")

Любая помощь приветствуется. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...