Как аутентифицировать пользователя с PAM, который не является пользователем, который запустил приложение

Избегать использования ls, шарики удара могут сделать это лучше

printf '%s\n' *.jpg >output_file
3
28.02.2013, 13:29
1 ответ

PAM не является демоном, но просто библиотекой. Поскольку у обычного пользователя нет доступа к данным аутентификации (как /etc/shadow), программы, работающие при обычном пользователе, не могут пройти проверку подлинности. Существует одно маленькое исключение: пользователь может аутентифицировать себя, потому что в этом случае SETGID/sbin/unix_chkpwdпрограмму помощника автоматически называют, который имеет доступ к данным аутентификации (но не позволяет аутентифицировать других пользователей).

Таким образом, Вам нужно, любой дает саму программу, базируются права через флаги SUID (я не рекомендую это, поскольку трудно не открыть бэкдор) так, чтобы это работало под корнем или потребностью пройти проверку подлинности через сетевую службу или путем запущения программы SUID как su.

В этом вопросе обсуждены возможные решения.

8
27.01.2020, 21:11
  • 1
    Это не отвечает на мой вопрос, поскольку я все еще получаю доступ к существующим функциям PAM C. Те детализировали в руководстве разработчика приложений PAM Linux, которое должно позволить Вам реализовать программы как 'su', Таким образом, у меня не должно быть доступа к данным аутентификации насколько я знаю, потому что, как мог программа, поскольку у меня есть он теперь, аутентифицируют одного пользователя, но не всех других, если у меня не было доступа вообще? Вы однако корректны в не не присвоении полномочий пользователя root процесса, который является точно, почему я реализую PAM. –  Zimrilim 01.03.2013, 16:21
  • 2
    @Zimrilim я добавил корректную причину для ответа, почему пользователь может аутентифицировать себя. Но кроме этого, уже в руководстве разработчика говорится, на что я ответил: "Модули PAM обычно не имеют никакого увеличенного полномочия по находившемуся в собственности приложением, которое использует его".. Обратите внимание на то, что всем программам, которые могут пройти проверку подлинности, установили флаг SETUID/SETGID или работают как корень как ssh демон. двоеточие возвратов –  jofel 03.03.2013, 01:29
  • 3
    Мои извинения. Я чувствую себя действительно глупым для того, что пропустил это. Я действительно получал впечатление от руководств и объяснений, что я нашел, что у Вас не должно было быть отдельной части программы с усиленными полномочиями аутентифицировать любого пользователя. С этим, хотя это совершенно ясно теперь.Спасибо. –  Zimrilim 07.03.2013, 11:22

Теги

Похожие вопросы