Здраствйте!
Такая проблема: Apache2+CGI. Написал web-морду, заполняя через web-интерфейс форму и нажимая submit, вызывается cgi-скрипт создающий системную учетную запись.(Апач крутится под учетной записью nobody)
Пробую жать на эту кнопку — ничего не получается, тогда как запуская скрипт из-под рута всё делается на ура. Посмотрел логи — там несколько упоминаний про PAM.
Заглядываю в /etc/pam.d, там есть файл useradd, а я собственно в cgi этой командой и пользовался. Содержимое файла небольшое:
auth sufficient pam_rootok.so
auth required pam_permit.so
account include system-auth
password required pam_permit.so
Содержимое system-auth:
auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth required pam_deny.so
account required pam_unix.so
password required pam_cracklib difok=2 minlen=8 dcredit=2 …..
password sufficient pam_unix.so
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
Попробовал изменить конфиг для useradd на банально простой:
auth required pam_permit.so
account required pam_permit.so
password required pam_permit.so
session required pam_permit.so
Не разрешает простому смертному юзеру выполнять useradd(а мне нужно чтоб nobody мог это делать). Выдает такую вот ругань:
useradd: unable to lock password file
Менял и разрешения на /etc/passwd и владельцев — ничего не помогает.
Спасайте, люди добрые.
Спасибо.
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Я бы sudo использовал, дав этому nobody доступ к минимальному набору команд.
И мы ведь думаем о безопасности, ага? Менять права на /etc/passwd я бы не стал ни при каких.
nobody?!?
Ты в своём уме?!?
Как раз этому пользователю никаких прав выше умолчательных давать не следует!
Правильное решение:
1. Пускать Индейца от специально созданного пользователя.
2. Этому пользователю через sudo дать права на выполнение минимально необходимого набора команд.
3. Помедитировать не предмет логирования действий этого пользователя.
Да причем тут sudo. Есть софтина собранная с опцией PAM.
PAM ведь ничем не хуже sudo. Да и вопрос-то больше по PAM а не по апачу…
Допустив юзеру Васе Пупкину нужно исполнить команду useradd (без sudo).
Почему мой вариант с повсеместным pam_permit.so не работает?