Настройка локали без PAM при подключении по SSH

Вопрос или проблема

Я сегодня узнал, что отключение PAM в sshd_config (UsePAM no) влияет на настройку локали (потому что /etc/default/locale читается PAM), фактически заставляя систему перейти с en_US.UTF-8 на POSIX. Поскольку я хотел бы оставить PAM отключенным по соображениям безопасности, есть ли способ правильно настроить желаемую локаль без PAM?

Ответ или решение

Конфигурация локали без использования PAM при подключении через SSH может стать вызовом, особенно если вы хотите отключить PAM для улучшения безопасности. В данной статье мы рассмотрим, как можно правильно настроить локаль на сервере, в обход системы управления доступом PAM.

Что такое PAM и как он влияет на локаль?

PAM (Pluggable Authentication Modules) — это система для управления аутентификацией в UNIX-подобных системах. В частности, файл /etc/default/locale используется PAM для чтения настроек локали. При отключении PAM (например, установкой UsePAM no в файле sshd_config), системы могут возвратиться к умолчательным локалям, таким как POSIX.

Решение проблемы конфигурации локали без использования PAM

Для корректной настройки локали без PAM можно воспользоваться следующими шагами:

  1. Установка необходимых локалей:
    Убедитесь, что нужные вам локали установлены. Для этого выполните команду:

    sudo locale-gen en_US.UTF-8

    Затем, обновите кэш локалей:

    sudo update-locale
  2. Редактирование профилей пользователя:
    Вы можете установить локаль непосредственно в профиле пользователя, который используется при подключении через SSH. Для этого:

    • Откройте файл ~/.bashrc или ~/.profile для редактирования:

      nano ~/.bashrc
    • Добавьте следующие строки в конец файла:

      export LANG=en_US.UTF-8
      export LC_ALL=en_US.UTF-8
      export LANGUAGE=en_US.UTF-8
    • Сохраните изменения и закройте редактор. Примените изменения с помощью команды:

      source ~/.bashrc
  3. Настройка SSH:
    В файле конфигурации SSH-доступа (обычно /etc/ssh/sshd_config) убедитесь, что UsePAM установлен в no:

    UsePAM no

    После внесения изменений перезапустите SSH-сервис для их применения:

    sudo systemctl restart sshd
  4. Проверка локали после подключения:
    После выполнения этих шагов, подключитесь к вашему серверу через SSH и проверьте текущую локаль с помощью команды:

    locale

    Вы должны увидеть en_US.UTF-8 или другую локаль, которую вы установили.

Дополнительные соображения

  • Глобальные настройки локали: Вы также можете добавить настройки локали в файл /etc/environment или /etc/profile, которые странцы сервера будут подхватывать на уровне системы. Это будет полезно, если вы хотите, чтобы каждое новое подключение имело заданные вами параметры локали.

  • Дебаг: Если после выполнения шагов выше локали все еще не установлены, проверьте наличие возможных конфликтов в других конфигурациях и научитесь использовать printenv для проверки переменных окружения.

Заключение

Чтобы правильно настроить локаль на сервере без использования PAM, выполните конфигурацию в профиле пользователя и убедитесь, что необходимые локали установлены. Эти шаги помогут избежать возврата к стандартной локали POSIX, обеспечивая при этом безопасность, предоставляемую отключением PAM.

Оцените материал
Добавить комментарий

Капча загружается...