В настоящее время мы используем очень плохую модель доступа к нашим серверам. Каждый человек входит в систему через ssh под одним и тем же пользователем unix. У нас есть несколько вкладок, которые используются всеми, и обычно используется одна и та же вкладка. Однако иногда кому-то нужно использовать одну из других клавиш. Но kinit перезаписывает кеш билетов новому принципалу. Поэтому я хотел бы знать, можно ли создать кинит, который действителен только в текущем сеансе и не влияет на другие сеансы того же пользователя unix?
Спасибо за вашу помощь!
Да, это плохая модель и ее надо менять. Мало того, что у вас все используют одного пользователя, но похоже, что вы используете keytabs, такие как незащищенные закрытые ключи ssh. Для последнего вопроса, пожалуйста, посмотрите man .k5login
для gssapi ssh.
А пока вы можете добавить что-то вроде этого в профиль bash:
export KRB5CCNAME=FILE:/tmp/krb5cc_$(id -u)_$(base64 /dev/urandom | head -c 10)
Это должно дать каждому сеансу собственный кеш учетных данных krb5.
Каждый человек входит в систему через ssh под одним и тем же пользователем unix.
Вы, вероятно, должны решить это. (общие учетные записи делают людей безответственными.)
Учетные данные Kerberos по умолчанию кэшируются в / tmp, но я не знаю, является ли этот путь жестко закодированным или полученным из $TMPDIR
Окружающая среда.
Таким образом, все, что создает частный TMPDIR для каждого сеанса (и очищает его после завершения сеанса), должно работать на вас.
я считать вы могли бы справиться с этим, хотя PAM:
libpam-tmpdir это один из подходов, который устанавливает для каждого сеанса $TMP
& $TMPDIR
но это не сработает для приложений, которые не соблюдают среду и напрямую переходят к /tmp/
.
или pam_namespace Модуль PAM, который устанавливает частное пространство имен для сеанса с полиэкземплярными каталогами. Многозначный каталог предоставляет другой экземпляр на основе имени пользователя или при использовании SELinux, имени пользователя, контекста безопасности или того и другого.