Indice del forum www.zeroshell.net
Distribuzione Linux ZeroShell
 
 FAQFAQ   CercaCerca  GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo  Log inLog in   Messaggi privatiMessaggi privati 

[SCRIPT] Aggiungere utenti tramite sh

 
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell
Precedente :: Successivo  
Autore Messaggio
MaLoX



Registrato: 07/04/10 11:22
Messaggi: 6

MessaggioInviato: Ven Apr 30, 2010 6:18 pm    Oggetto: [SCRIPT] Aggiungere utenti tramite sh Rispondi citando

Codice:

#!/bin/sh

############################################################################################################################
#
# Made by: Gianfilippo Balestriero [ http://www.balestrierofilippo.com ]
#
# Script to add user to LDAP, KERBEROS and assign mobile number to it for ZEROSHELL.
#
# USAGE: sh /[path]/[to]/[script]/useraddzh.sh "ADMIN PWD" "NEW_USERNAME" "PWD_NEW_USERNAME" "MOBILE_NUM" "USR_DESCRIPTION"
#
############################################################################################################################


######## Config PARAM #######
adminpw=$1
username=$2
userpw=$3
usermobile=$4
userdescription=$5
######## LDAP PARAM #######

######## LDAP PARAM #######
dc0=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $2}'`
dc1=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $3}'`
dc=$dc0,$dc1
######## LDAP PARAM #######

#id=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1 -b "ou=People,$dc"|grep "uidNumber:"| sed 's/uidNumber: //'|tail -1`
#id=`expr $id + 1`

######## LDAP ADD #######
ldapadd -D "cn=Manager,$dc" -x -w "$adminpw" <<EOF
dn: uid=$username,ou=People,$dc
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: organizationalPerson
uid: $username
cn: ?
description: $userdescription
displayName: $username
o: ?
mail: ?
givenName: $username
sn: $username
telephoneNumber: $usermobile
uidNumber: $id
gidNumber: 65534
gecos: $username
homeDirectory: /home/$username
loginShell: /bin/false
EOF
######## LDAP ADD #######

######## KADMIN ADD #######
kadmin.local add_principal -pw $userpw $username
######## KADMIN ADD #######



Dal momento che è una delle cose più richieste, ho deciso di postare lo script per intero.

Come gia parlato con Fulvio per telefono, a breve posterò anche una guida in pdf dove spiego come installare da zero un sistema di Captive Portal con autenticazione e gestione utenti tramite cellulare.

Un saluto a tutti.

Gianfilippo
Top
Profilo Invia messaggio privato
giorgio58



Registrato: 02/05/10 13:09
Messaggi: 6

MessaggioInviato: Dom Mag 02, 2010 1:18 pm    Oggetto: Ldap Radius Rispondi citando

allego scripts di inserimento utenti integrato della parte Radius in LDAP e script per eliminazione utente

#!/bin/sh

############################################################################################################################
#
# Made by: Gianfilippo Balestriero [ http://www.balestrierofilippo.com ]
#
# Script to add user to LDAP, KERBEROS and assign mobile number to it for ZEROSHELL.
#
# USAGE: sh /[path]/[to]/[script]/addutente.sh "ADMIN PWD" "NEW_USERNAME" "PWD_NEW_USERNAME" "MOBILE_NUM" "USR_DESCRIPTION"
#
# 02.05.2010 Corretto da Giorgio Piangatelli x parte aggiunta LDAP Radius
#
############################################################################################################################


######## Config PARAM #######
adminpw=$1
username=$2
userpw=$3
usermobile=$4
userdescription=$5
######## LDAP PARAM #######

######## LDAP PARAM #######
dc0=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $2}'`
dc1=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $3}'`
dc=$dc0,$dc1
######## LDAP PARAM #######

id=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1 -b "ou=People,$dc"|grep "uidNumber:"| sed 's/uidNumber: //'|tail -1`
id=`expr $id + 1`

######## LDAP ADD #######
ldapadd -D "cn=Manager,$dc" -x -w "$adminpw" <<EOF
dn: uid=$username,ou=People,$dc
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: organizationalPerson
uid: $username
cn: ?
description: $userdescription
displayName: $username
o: ?
mail: ?
givenName: $username
sn: $username
telephoneNumber: $usermobile
uidNumber: $id
gidNumber: 65534
gecos: $username
homeDirectory: /home/$username
loginShell: /bin/false
EOF
ldapadd -D "cn=Manager,$dc" -x -w "$adminpw" <<EOF
dn: cn=$username,ou=Radius,$dc
objectClass: organizationalPerson
objectClass: top
objectClass: radiusprofile
cn: $username
sn: $userpw
dialupAccess: yes
EOF
######## LDAP ADD #######

######## KADMIN ADD #######
kadmin.local -q "addprinc -pw $userpw $username"
######## KADMIN ADD #######

--------------------------------------------------------------------------------

#!/bin/sh

############################################################################################################################
#
# Script to delete user to LDAP, KERBEROS for ZEROSHELL.
#
# USAGE: sh /[path]/[to]/[script]/delutente.sh "ADMIN PWD" "USERNAME"
#
# 02.05.2010 Realizzato da Giorgio Piangatelli (derivato da addutente.sh)
#
############################################################################################################################


######## Config PARAM #######
adminpw=$1
username=$2
######## Config PARAM #######

######## LDAP PARAM #######
dc0=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $2}'`
dc1=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $3}'`
dc=$dc0,$dc1
######## LDAP PARAM #######

######## LDAP DEL #######
ldapdelete -D "cn=Manager,$dc" -x -w "$adminpw" "uid=$username,ou=People,$dc"
ldapdelete -D "cn=Manager,$dc" -x -w "$adminpw" "cn=$username,ou=Radius,$dc"
######## LDAP DEL #######

######## KADMIN DEL #######
kadmin.local -q "delprinc -force $username"
######## KADMIN DEL #######


Saluti a tutti
Top
Profilo Invia messaggio privato
giorgio58



Registrato: 02/05/10 13:09
Messaggi: 6

MessaggioInviato: Dom Mag 02, 2010 2:05 pm    Oggetto: Altra funzionalità Rispondi citando

Per poter utilizzare da remoto i files bisogna copiare i file in una cartella (/Database/servizio), aggiugere il percorso completo ai comandi:

comandi ldap
/usr/local/bin/

comandi kadmin.local
/usr/local/sbin/

modificare /etc/passwd per non far partire il menù iniziale
riga
admin........:/bin/bash

e quindi da remoto:

Aggiunta utente:
sshpass -p PASSWORD_ADMIN ssh admin@IP_ZeroShell "/Database/servizio/addutente.sh PASSWORD_ADMIN USER_NAME USER_PASSW USER_MOBILE USER_DESCR"

Cancellazione utente:
sshpass -p PASSWORD_ADMIN ssh admin@IP_ZeroShell "/Database/servizio/delutente.sh PASSWORD_ADMIN USER_NAME"

Spero che queste informazioni possano essere utili a qualcuno.

Saluti a tutti
Top
Profilo Invia messaggio privato
fabrizio.tarolli



Registrato: 23/07/10 10:53
Messaggi: 5

MessaggioInviato: Ven Lug 23, 2010 11:02 am    Oggetto: Interfaccia user-friendly Rispondi citando

Innanzitutto ringrazio i colleghi sopra perchè finalmente qualcuno si è degnato di postare una soluzione per questo problema senza tenersela per se e venderla a prezzi spropositati.

Se il buon vecchio Fulvio si è fatto un mazzo tanto per creare zeroshell senza chiedere nulla, mi sembra il minimo che le persone che sfruttano il sistema collaborino anche loro free al suo sviluppo, con la filosofia dell'OpenSource.

Detto questo, con questa tipologia di script in ssh, quale è la soluzione migliore a vostro avviso per implementare un interfaccia "a prova di stupido" per inserire questi utenti?

Ovviamente non si può pensare di dare in mano script ssh a receptionist vari.

Io, che sono nuovissimo dell'ambiente e sto cercando di imparare, pensavo a qualche sorta di web-interface in php, con i file sul server (zeroshell come macchina virtuale), da far girare in remoto.

Qualche aiuto?
Cosi magari arriviamo ad una soluzione finale, e la postiamo per tutti direttamente su zeroshell.net

Grazie!

Fabrizio
Top
Profilo Invia messaggio privato
mesfet



Registrato: 22/06/10 08:44
Messaggi: 2

MessaggioInviato: Ven Lug 30, 2010 12:30 pm    Oggetto: CRON Script che crea automaticamente ed aggiorna le password Rispondi citando

Ciao.
Facendo tesoro di quanto sopra esposto, allego 2 script:

* uno che crea delle chiavi, i cui nomi sono definiti in un array bash, con password random di 8 caratteri, pensato per gli alberchi: ogni giorno alle 11.30 vengono generate nuove password per ciascuna camera, e queste informazioni vengono poi trasmesse in email alla reception.
Da creare attraverso il menu web Setup -> Startup/Cron

Codice:

# Bash script: createusers-Cron                               
# Used to create users automatically at a specific time/interval, using cron daemon.
# If user exists, change its password.                                             
# Written by Paolo Subiaco http://shop.creasol.it                                   
# Based on script written by Gianfilippo Balestriero                               


#Admin password for zeroshell
adminpw=ioijio               

#Key definition
declare -a key
nkeys=0       
key[$nkeys]='room1'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room2' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room3' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room4' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room5' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room6' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room7' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room8' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room9' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room10'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room11'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='room12'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='vazzoler'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='marzotto'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='dinetto'
nkeys=$(( $nkeys+1 ))
key[$nkeys]='zanchi' 
nkeys=$(( $nkeys+1 ))
key[$nkeys]='mastroianni'
nkeys=$(( $nkeys+1 ))   


PATH=$PATH:/usr/local/bin:/usr/local/sbin

function adduser () {
############################################################################################################################                                                                                                     
#                                                                                                               
# Made by: Gianfilippo Balestriero [ http://www.balestrierofilippo.com ]                                         
#                                                                                                               
# Script to add user to LDAP, KERBEROS and assign mobile number to it for ZEROSHELL.                             
#                                                                                                               
# USAGE: sh /[path]/[to]/[script]/addutente.sh "ADMIN PWD" "NEW_USERNAME" "PWD_NEW_USERNAME" "MOBILE_NUM" "USR_DESCRIPTION"                                                                                                       
#                                                                                                               
# 02.05.2010 Corretto da Giorgio Piangatelli x parte aggiunta LDAP Radius                                       
#                                                                                                               
############################################################################################################################                                                                                                     


######## Config PARAM #######
adminpw=$1                   
username=$2                 
userpw=$3                   
usermobile=$4               
userdescription=$5           
######## LDAP PARAM ####### 

######## LDAP PARAM #######
dc0=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $2}'`
dc1=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1|grep "dn: ou=People"|awk -F, '{print $3}'`
dc=$dc0,$dc1                                                                                 
######## LDAP PARAM #######                                                                   

id=`/usr/local/bin/ldapsearch -LLL -x -h 127.0.0.1 -b "ou=People,$dc"|grep "uidNumber:"| sed 's/uidNumber: //'|tail -1`                                                                                                           
id=`expr $id + 1`                                                                                               

######## LDAP ADD #######
ldapadd -D "cn=Manager,$dc" -x -w "$adminpw" 2>/dev/null 2>/dev/null <<EOF
dn: uid=$username,ou=People,$dc                                           
objectClass: inetOrgPerson                                               
objectClass: posixAccount                                                 
objectClass: top                                                         
objectClass: shadowAccount                                               
objectClass: organizationalPerson                                         
uid: $username                                                           
cn: ?                                                                     
description: $userdescription                                             
displayName: $username                                                   
o: ?                                                                     
mail: ?                                                                   
givenName: $username                                                     
sn: $username                                                             
telephoneNumber: $usermobile                                             
uidNumber: $id                                                           
gidNumber: 65534                                                         
gecos: $username                                                         
homeDirectory: /home/$username                                           
loginShell: /bin/false                                                   
EOF                                                                       
ldapadd -D "cn=Manager,$dc" -x -w "$adminpw" <<EOF                       
dn: cn=$username,ou=Radius,$dc
objectClass: organizationalPerson
objectClass: top
objectClass: radiusprofile
cn: $username
sn: $userpw
dialupAccess: yes
EOF
######## LDAP ADD #######

######## KADMIN ADD #######
kadmin.local -q "addprinc -pw ${userpw} $username" 2>/dev/null
kadmin.local -q "change_password -pw ${userpw} ${username}"
######## KADMIN ADD #######
}
# End of adduser function


# Main: create some users
msg='New passwords:\n'
for (( i=0; $i<$nkeys; i++ )); do
  user=${key[$i]}
  pass=`rand`
  mobilephone=0123456789
  adduser ${adminpw} ${user} ${pass} ${mobilephone} ${user}
  msg="${msg}User: ${user} Password: ${pass}\n"
done

echo "============================================"
echo -e ${msg}
echo "============================================"

echo -e ${msg} | ../mail info@creasol.it info@creasol.it psubiaco@creasol.it psubiaco@creasol.it 'New passwords'
echo -e ${msg} | cat >/tmp/file.txt



* uno per inviare mail utilizzando il modulo perl SMTP, da inserire in /Database/var/register/system/startup/scripts

Codice:

#!/usr/bin/perl                                                                                                 
# Perl script: /Database/var/register/system/startup/scripts/mail                                               

#Send email using the specified SMTP server (relay_host variable)
#Syntax: mail SENDER SENDERNAME RECIPIENT RECIPIENTNAME SUBJECT < BODY
#i.e. mail psubiaco@creasol.it 'Paolo Subiaco' shop@creasol.it 'Creasol Shop' 'New passwords for zeroshell'
# to send a mail from "Paolo Subiaco" <psubiaco@creasol.it> to "Creasol Shop" <shop@creasol.it>
# with subject "New passwords for zeroshell" and body read from STDIN

use Net::SMTP;

$relay_host = '192.168.1.1';

$sender = $ARGV[0];
$sender_name = $ARGV[1];

$recipient = $ARGV[2];
$recipient_name = $ARGV[3];

$subject = $ARGV[4];

@bodyarr=<STDIN>;

foreach $line (@bodyarr)
{
 chomp($line);
 $body.="$line\n";
}

$smtp=Net::SMTP->new("$relay_host") or die($!);
$smtp->mail("$sender");
$smtp->to("$recipient");
$smtp->data();
$smtp->datasend("Subject: $subject\n");
$smtp->datasend("To: $recipient_name <$recipient>\n");
$smtp->datasend("From: $sendername <$sender>\n\n");
$smtp->datasend("$body");
$smtp->dataend();
$smtp->quit;


Ogni suggerimento e correzione è benvenuta.
Ciao. Paolo
Top
Profilo Invia messaggio privato Invia e-mail
fabrizio.tarolli



Registrato: 23/07/10 10:53
Messaggi: 5

MessaggioInviato: Ven Lug 30, 2010 11:10 pm    Oggetto: script Rispondi citando

Ottima pensata!! e grazie per il post!!

Problema... testando il codice in Startup/Cron genera l'errore seguente:

/tmp/ScriptToRun9361: line 130: syntax error: unexpected end of file

[Cron Password]: ERROR (2)


Idee??
Top
Profilo Invia messaggio privato
fabrizio.tarolli



Registrato: 23/07/10 10:53
Messaggi: 5

MessaggioInviato: Sab Lug 31, 2010 11:33 am    Oggetto: script Rispondi citando

anche gli script base addutente.sh e delutente.sh mi danno errore...

sto usando l'ultima versione di zeroshell beta 13...

errore:

ldapadd: invalid format (line 21) entry: "uid=utente1,ou=People,dc=example,dc=com "
Top
Profilo Invia messaggio privato
lowtech



Registrato: 04/02/13 11:31
Messaggi: 7

MessaggioInviato: Gio Giu 26, 2014 8:38 am    Oggetto: Rispondi citando

Qualcuno saprebbe gentilmente suggerirmi come impostare da script anche la scadenza dell'utente (giorno/mese/anno)?
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it