Вопрос или проблема
Я создал jail-пользователя в Arch Linux, который может выполнять все нижеописанные случаи использования.
- Команда su (переключение пользователя) из любого пользователя в системе должна перенаправлять в его домашний каталог внутри chroot тюрьмы
- С помощью ssh также он должен попадать в определенный путь.
- У пользователя не должно быть привилегий root.
- Файл bashrc также был загружен.
В качестве справки я делюсь ниже конфигурацией, которую я настроил
jail/
│
├── bin
│
├── dev
│
├── etc
│ ├── passwd
│ ├── group
│ ├── shadow
│ └── environment
│
├── home
│ └── jaileduser
│ ├── .bashrc
│ ├── .profile
│ └── .bash_history
│
├── lib
│ ├── ld-<версия>.so
│ ├── libc-<версия>.so
│ ├── libdl-<версия>.so
│
│
├── lib64
│ ├── ld-linux-x86-64.so.2
│ ├── libm.so.6
│
│
├── usr
│ ├── bin
│ ├── lib
│
│
└── var
├── log
Файлы etc в chroot выглядят следующим образом
/jail/etc/
├── group
├── login.defs
├── nsswitch.conf
├── pam.d/
│ ├── su
│ ├── system-auth
│ ├── system-local-login
│ └── system-login
├── passwd
└── shadow
Запись в файле паролей
jailed-user:x:1003:1003::/jail/home/jailed-user:/bin/jail-shell
Скрипт jail-shell выглядит следующим образом
#!/bin/bash
sudo chroot /jail /bin/su jailed-user
Запись в файле sudo уже выполнена с конкретной записью
Проблема, с которой я сталкиваюсь:
su: Служба аутентификации не может получить информацию об аутентификации
Ответ или решение
Ошибка, с которой вы столкнулись при использовании команды su
в созданном вами чревоточине (chroot) пользователя на Arch Linux, является достаточно распространенной проблемой. Основная ошибка — "su: Authentication service cannot retrieve authentication info", что указывает на проблемы с системой аутентификации внутри вашего чревоточины. Рассмотрим основные аспекты, которые помогут вам диагностировать и устранить эту проблему.
1. Структура Chroot окружения
Ваше chroot окружение выглядит в целом корректно, однако стоит убедиться, что все необходимые библиотеки и бинарные файлы присутствуют. Команда su
требует доступа к библиотекам PAM (Pluggable Authentication Modules) и соответствующим файлам для работы. Проверьте следующее:
-
Библиотеки PAM: Убедитесь, что соответствующие модули PAM присутствуют в вашем chroot. Основные модули PAM обычно находятся в
/usr/lib/security
и могут быть необходимы для работы командыsu
. -
Файлы конфигурации PAM: Убедитесь, что ваши файлы конфигурации PAM в
/jail/etc/pam.d/
настроены правильно. Вам необходимо проверить содержание файлаsu
. Вот пример:auth required pam_unix.so account required pam_unix.so session required pam_unix.so
-
Файл
/etc/passwd
и/etc/shadow
: Убедитесь, что в этих файлах корректно прописаны данные пользователя, как на уровне chroot, так и на уровне всей системы. Убедитесь, чтоjailed-user
существует и у него правильные идентификаторы (UID и GID).
2. Путь к бинарным файлам и библиотекам
Убедитесь, что в вашем chroot окружении доступные команды из /bin
и /usr/bin
корректно работают. Для этого выполните тест на наличие необходимых библиотек с помощью команды ldd:
ldd /jail/bin/su
Это покажет, какие библиотеки требуются для запуска su
и укажет, есть ли они в chroot окружении.
3. Пересмотрите конфигурацию sudo
Ваша sudo
конфигурация может влиять на использование chroot. Убедитесь, что ваш конфигурационный файл /etc/sudoers
настроен правильно, и пользователь, который использует sudo
, имеет право запускать chroot
. Пример:
username ALL=(ALL) NOPASSWD: /bin/chroot /jail /bin/su jailed-user
Замените username
на соответствующее имя пользователя.
4. Тестирование окружения
После всех проверок и исправлений попробуйте следующее:
- Запустите оболочку в chroot напрямую:
sudo chroot /jail /bin/bash
- Из этой оболочки попробуйте выполнить команды, такие как
su jailed-user
.
5. Логи и диагностика
Проверьте системные журналы, такие как /var/log/auth.log
или /var/log/secure
, для получения более подробной информации об ошибках аутентификации.
Заключение
Системы с chroot могут быть сложными в настройке и поддержке, особенно когда речь идет об аутентификации. Убедившись, что все конфигурации PAM и необходимые библиотеки присутствуют в вашем окружении, вы сможете устранить ошибку "su: Authentication service cannot retrieve authentication info". Если после выполнения всех шагов проблема сохраняется, возможно, следует обратиться к документации Arch Linux или специализированным форумам для получения дополнительной информации и помощи.