По какой-то причине мне нужно установить сервер perforce, и я пытался автоматизировать установку, но у меня возникла глупая проблема с тем, что я не могу повторно запустить скрипт через день после истечения срока действия сеанса.
Для уточнения цели:
helix-p4d
.Все приведенные ниже команды выполняются на сервере perforce.
Я кое-что прочитал, и некоторые предлагают создать билет без срока действия с помощью этой команды:
p4 login -a -p
Я попробовал и получил строку билетов для подключения:
p4 -P STRING login
И у меня спросили пароль... Я не очень понимаю, что я там делаю не так, и я не знаю, как проверить срок действия билета.
Я пробовал другие более простые вещи, такие как:
p4 set P4PASSWD=PASSWORD
, которая, похоже, больше не работает, значение не отображается при выполнении p4 set -s
p4 set -s
, но p4 login
по-прежнему запрашивает пароль.Я бы очень хотел, чтобы билет работал без срока действия, но на данный момент я приму все, что не позволит запрашивать пароль...
Кто-нибудь знает, как установить пароль или билеты, чтобы он работал?
Обновлено:
Я также попытался изменить параметр безопасности конфигурации perforce, чтобы не требовать аутентификации билета, как в параметрах 3/4 (значение по умолчанию), и попробовал значения для совместимости, но я все еще не могу установить P4PASSWD.
Если на вашем сервере нет уровня безопасности, требующего использования входных билетов, и вы хотите использовать прямую аутентификацию по паролю для каждой команды вместо аутентификации на основе билетов, вы можете полностью игнорировать p4 login
. Единственная цель p4 login
— предоставить вам билет для аутентификации на основе билетов. Чтобы удалить любой существующий входной билет, который у вас может быть, выполните:
p4 logout
Затем, чтобы установить открытый текстовый пароль в вашей среде для аутентификации, выполните следующие действия:
p4 set P4PASSWD=your_password
Проверьте, работает ли он, выполнив команду, требующую аутентификации, например:
p4 changes -m1
Не запускайте p4 login
, если не хотите аутентифицироваться с помощью билетов. p4 login
полностью игнорирует ваше значение P4PASSWD
(идея состоит в том, что если вы используете билеты для обеспечения безопасности, вы не должны устанавливать свой пароль в своей среде, поэтому все, что связано с аутентификацией на основе билетов, игнорирует / не поощряет использование P4PASSWD
) и всегда будет запрашивать вам для вашего пароля.
Обратите внимание, что p4 set
и p4 set -s
применяются к разным пространствам имен среды; если вы устанавливаете переменную с помощью p4 set
, то проверьте ее с помощью p4 set
:
p4 set P4PASSWD
покажет вам значение P4PASSWD
для текущего пользователя. Флаг -s
устанавливает и запрашивает среду для системного пользователя в Windows.
Если сервер требует аутентификации на основе билетов (например, для счетчика security
установлено значение 3
, что является стандартом для администраторов, которым нужна хоть какая-то безопасность при установке Perforce), вам нужно будет запросить возможность создавать билеты с неограниченным временем ожидания. Это делается путем назначения вас group
с Timeout: unlimited
.
Похоже, у вашего пользователя еще не настроен неограниченный билет.
Команда p4 login -a -p
даст вам билет для этого пользователя, который можно использовать на любом компьютере, но он не делает этот билет неограниченным. Чтобы изменить время ожидания билета пользователя, вам необходимо создать группу с неограниченным временем ожидания входа, а затем добавить пользователя в эту группу.
Если вы хотите сделать это в CLI, на этой странице рассказывается, как это сделать https://portal.perforce.com/s/article/2589 Но вы также можете сделать это в P4Admin с любой машины.
Войдите в P4Admin как суперпользователь. В верхнем меню нажмите кнопку «Добавить группу».
Затем в диалоговом окне «Группа» дайте ей имя (например, «Неограниченно»), нажмите «Обзор...», чтобы выбрать своего пользователя и добавить его в группу, затем установите переключатель «Неограниченно» для параметра «Продолжительность до истечения времени сеанса входа в систему».
После того, как вы нажмете «ОК» и создадите эту группу, а затем попробуйте войти в систему, сеанс на этом компьютере должен оставаться действительным навсегда (пока вы вручную не выйдете из системы или не измените пароль).
Надеюсь, это поможет!