Ошибка при выполнении su в новом chroot-пользователе в Arch Linux.

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

Я создал jail-пользователя в Arch Linux, который может выполнять все нижеописанные случаи использования.

  1. Команда su (переключение пользователя) из любого пользователя в системе должна перенаправлять в его домашний каталог внутри chroot тюрьмы
  2. С помощью ssh также он должен попадать в определенный путь.
  3. У пользователя не должно быть привилегий root.
  4. Файл 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 или специализированным форумам для получения дополнительной информации и помощи.

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

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