Назад | Перейти на главную страницу

Ограничение кэша учетных данных Kerberos для сеанса

В настоящее время мы используем очень плохую модель доступа к нашим серверам. Каждый человек входит в систему через 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, имени пользователя, контекста безопасности или того и другого.