Задать вопрос
  • Как настроить авторизацию через PAM несколькими способами?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Держи. Читать и разбираться, что почем придется самому.

    Задача - локальная аутентификация., в случае отсутствия юзера - аутентификация через AD
    auth       required     pam_env.so
    auth       [success=3 new_authtok_reqd=done default=ignore] pam_unix.so try_first_pass
    auth       requisite    pam_succeed_if.so uid >= 1000 quiet
    auth       [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so use_first_pass use_authtok krb5_auth krb5_ccache_type=FILE:/tmp/krb5cc_%u cached_login
    auth       requisite    pam_deny.so
    auth       required     pam_permit.so
    auth       optional     pam_keystore.so use_first_pass
    auth       optional     pam_ecryptfs.so unwrap
    auth       optional     pam_gnome_keyring.so
    auth       optional     pam_exec.so seteuid expose_authtok /usr/local/sbin/generate-credstore-auth
    
    account    required     pam_unix.so
    account    sufficient   pam_localuser.so
    account    sufficient   pam_succeed_if.so uid < 1000 quiet
    account    [default=bad success=ok user_unknown=ignore] pam_winbind.so
    account    required     pam_permit.so
    
    password   required     pam_pwquality.so try_first_pass retry=3 type=
    password   sufficient   pam_unix.so nullok sha512 shadow try_first_pass use_authtok
    password   optional     pam_ecryptfs.so
    password   required     pam_deny.so
    password   optional     pam_gnome_keyring.so
    
    session    required     pam_env.so
    session    required     pam_limits.so
    -session   optional     pam_loginuid.so
    session    optional     pam_mkhomedir.so umask=0077
    -session   optional     pam_elogind.so
    session    optional     pam_exec.so seteuid /usr/local/sbin/generate-credstore-session -p .trinity/share/config -d DOMAIN
    session    [success=2 default=ignore] pam_succeed_if.so service in crond quiet use_uid
    session    [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_unix.so
    session    required     pam_winbind.so
    session    optional     pam_ecryptfs.so unwrap
    session    optional     pam_gnome_keyring.so auto_start

    Скрипт generate-credstore-auth/generate-credstore-session - локальный, тебе не нужен, просто выброси
    Ответ написан
    Комментировать
  • Как регистры SOC отображаются на память Linux?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как узнать, какой адрес этих регистров уже после инициализации устройств и загрузки ОС?

    Физический адрес -- как и написано в dts: 0xfe600000. Виртуальный адрес -- какой-то сравнительно случайный, выделенный вызовом ioremap() или какой-нибудь его обёрткой. Если драйверу нужен доступ к регистрам -- драйвер просто вызывает ioremap() сам и получает адрес. Если доступ нужен в юзерспейсе -- можно (при наличии разрешений) сделать mmap() файлу /dev/mem по смещению равному физическому адресу устройства.

    Или обратная задача: есть процесс, который пишет в некоторую область памяти, как узнать, возможно, это какие-то регистры SOM

    Сделать cat /proc/<pid>/maps и посмотреть, что отображено в эту область виртуальных адресов.

    Но обычно люди не отображают регистры устройств напрямую в пользовательскую память, максимум -- отображают файл обрабатываемый драйвером устройства, а драйвер уже может выступить дополнительным слоем абстракции и подставить в отображение часть адресного пространства устройства, если такое им поддерживается. В этом случае для понимания что куда отображается без чтения исходников драйвера не обойтись.
    Ответ написан
    Комментировать
  • Как лучше вносить изменения в стороннюю библиотеку С?

    @NIR-Ginko
    Нужны подробности реализации. Если вы рассчитываете, что с вашей реализацией библиотеки должны работать и сторонние программы, то, как минимум, не надо ломать API при изменении функции.

    Вариант реализации:
    • Сделать в функции два code path. Один - как был раньше. Другой - какой нужен. Переключение осуществлять по значению переменной окружения. Ещё один вариант - сделать переменную-переключатель. Это, конечно, неудачные варианты, но если программа работает в одном потоке то по принципу "и так сойдёт" - вполне будет работать.
    • Можно попробовать для своего случая подмену функции с помощью библиотеки, загружаемой через LD_PRELOAD. Тоже не самый лучший вариант, но можно рассмотреть.
    • Таки определить другую функцию и переписать кусочек программы. Оптимальный вариант.
    Ответ написан
    1 комментарий
  • Как лучше вносить изменения в стороннюю библиотеку С?

    Непонятно, какие у этой библиотеки есть точки расширения, какие есть интерфейсы. Общий ответ всегда один - форкать, наливать сверху свои изменения и затем портировать их регулярно на свежий релиз. Это самый затратный вариант, но он не требует ничего от библиотеки кроме открытости кода и подходящей лицензии, разрешающей вносить правки без неприемлемых для вас обязательств.
    Ответ написан
    Комментировать
  • Как сделать кастомный экран или оболочку для embedded linux?

    @Drno
    возможно проще сделать веб версию + режим "киоск"
    Ответ написан
    2 комментария