LINUX.ORG.RU

Ответ на: комментарий от yars068

создаю не большое серверное приложение которое должно будет выбирать данные пользователя из мускл и создавать на основе них нового пользователя в системе как создавать в ручную я знаю но не могу найти библиотеку или функцию с помощью которой это можно было сделать из кода

skyfree
() автор топика
#include <stdlib.h>
...
system("useradd user_name");
Harald ★★★★★
()
Ответ на: комментарий от skyfree

Ну дык можно же в сорцы того же usermod глянуть.

yars068 ★★★★
()
Ответ на: комментарий от skyfree

man newusers

echo "username:password" | newusers

Ну и традиционно

cat tons_of_users | newusers

А ты вообще можешь прямо из своего процесса писать в дочерный newusers, если откроешь через popen

Только валидируй свой input хорошо, а то тебе подсунут инъекцию

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от val-amart

Не совсем _так_ поросто. ;) Помимо /etc/passwd есть ещё /etc/shadow, /etc/master.passwd, /etc/pwd.db, /etc/spwd.db, директории юзверя и много чего другого и на разных системах разное.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

эээ, их write не берет? ;)

// если серьезно, тс, используй существующие инструменты через пайп, потому что тебе надо будет делать кучу проверок, устанавливать правильный шелл и хоум, веротно создавать этот хоум, назначать группы... короче ненужный гемор.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Я к тому, что копать надо в сторону pw_init и pw_dup и ещё дальше.

Ну и popen(«/usr/sbin/adduser», «w») (или useradd? путаю их вечно) никто не отменял. (Что было бы ИМХО самым верным решением.)

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от unsigned

какой глобальный смысл? все что ты от него получишь — дополнительную валидацию входных параметров (которую тебе все равно прийдется делать) и кроме того ему надо передать файлстрим, и все дополнительные действия а-ля хоумдира отработать самому. уж лучше либо сразу ручной write, либо какая-нибуть утилита готовая через пайп.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Все-таки pwd.h - стандартный интерфейс для поставленной задачи, внутри у него хоть SQL-запросы могут быть. Говорят, админы сильно матерят разработчиков, не пользующихся стандартными интерфейсами.

unsigned ★★★★
()
Ответ на: комментарий от unsigned

да. только он все равно не будет правильно добавлять пользователей на системе использующей к примеру sssd или скажем голый керберос.

val-amart ★★★★★
()
Ответ на: комментарий от skyfree

создаю не большое серверное приложение которое должно будет выбирать данные пользователя из мускл и создавать на основе них нового пользователя

а вот для этого есть ldap.

можно ещё pam`ом его, что конечно тоже криво, но всё равно лучше вашей идеи

MKuznetsov ★★★★★
()
Ответ на: комментарий от anonymous

так я же про это и пишу — все варианты не предусмотреть в неспециализированном коде.

val-amart ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.