Portál AbcLinuxu, 25. dubna 2024 16:43


Dotaz: Script pro založení uživatele

3.8.2011 11:23 Kall Ell | skóre: 15
Script pro založení uživatele
Přečteno: 290×
Odpovědět | Admin
Ahoj, potřeboval bych nějakým jednoduchým způsobem udělat script, který se spustí při vytvoření uživatele. Mám SOGo webmail, ten ověřuje uživatele proti Mysql DB. Já potřebuji, aby když vytvořím uživatele příkazem
useradd -m -G skupina -c "Jmeno Prijmeni" uname
současně vytvořil následující záznam v mysql
INSERT INTO sogo_users VALUES ('uname', 'uname', MD5('heslo'),
'Jmeno Prijmeni', 'jmeno@mojedomena.cz');
Lze toho vůbec docílit? Jen pro informaci mám debian squeezee a nechci uživatele ověřovat v mysql, mám to nastavený v systemové db a měnit to nechci. Škoda že nemá SOGo nějakou administraci na vytvoření uživatele, jinak je opravdu super.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.8.2011 12:36 Kit
Rozbalit Rozbalit vše Re: Script pro založení uživatele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus potřebné příkazy přidat do /usr/sbin/useradd.local nebo si pohrát s /usr/sbin/adduser.
3.8.2011 14:09 Pev | skóre: 28
Rozbalit Rozbalit vše Re: Script pro založení uživatele
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přepsat /usr/sbin/useradd pomocí perl skriptu /usr/local/sbin/useradd (za předpokladu, že v $PATH je /usr/local/sbin před /usr/sbin - což standardně je). Pozor netestováno.
#!/usr/bin/perl -w
# WARN: not tested
use DBI;
use Getopt::Std;

# TODO: change
$db = "dbname";
$db_host = "localhost";
$db_user = "dbuser";
$db_password = "password";

my $G = "";
our $opt_G;
getopt('G');
$G = $opt_G if $opt_G;
$G ne '' or die("missing parameter -G \"group\"");

my $c = "";
our $opt_c;
getopt('c');
$c = $opt_c if $opt_c;
$c ne '' or die("missing parameter -c \"name\"");

$#ARGV gt -1 or die("missing parameter uname");
$uname = $ARGV[0];

#`/usr/sbin/useradd -m -G $G -c $c $uname`;
system("/usr/sbin/useradd", "-m", "-G", $G, "-c", $c, $uname);
if ($? == -1) {
    die("command failed: $!\n");
} else {
    printf "command exited with value %d", $? >> 8;
}

my $dbh = DBI->connect("DBI:mysql:database=$db:host=$db_host", $db_user, $db_password) 
                   or die "Can't connect to database: $DBI::errstr\n";
$dbh->do('INSERT INTO sogo_users VALUES(?, ?, ?, ?, ?)', $uname, $uname, MD5($heslo), $jmeno, $jmeno . '@mojedomena.cz');
$dbh->disconnect();

3.8.2011 14:17 Kall Ell | skóre: 15
Rozbalit Rozbalit vše Re: Script pro založení uživatele
dík, vyzkouším to

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.