Repository 32bit  Forum
Repository 64bit  Wiki

[HELP] adduser script

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[HELP] adduser script

Messaggioda a1k » gio dic 21, 2006 11:12

sono sotto ubuntu e non mi mette le passwd
Codice: Seleziona tutto
#!/bin/bash
for ((a=1; a <= 22; a++))
do
useradd utente$a -G aula -c utente$a -p utente$a
done
exit 0

come posso fare?
Avatar utente
a1k
Linux 2.4
Linux 2.4
 
Messaggi: 288
Iscritto il: mar dic 06, 2005 14:34
Località: Sondrio

Messaggioda albatros » gio dic 21, 2006 11:53

Ma in man useradd dov'è l'opzione -p per le password?
Non è che magari le dovresti creare a parte con passwd ?
Avatar utente
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Messaggioda a1k » gio dic 21, 2006 14:20

Codice: Seleziona tutto
USERADD(8)                                                          USERADD(8)

NOME
       useradd  -  Crea un nuovo utente o aggiorna le informazioni predefinite
       per i nuovi utenti

SINTASSI
       useradd [-c commento] [-d home_dir]
               [-e data_scadenza] [-f tempo_inattività]
               [-g gruppo_iniziale] [-G gruppo[,...]]
               [-m [-k dir_scheletro]] [ -o] [-p password]
               [-s shell] [-u uid] login

       useradd -D [-ggruppo_predefinito] [-bhome_predefinita]
               [-e data_scadenza_predefinita] [-f inattività_predefinita]
               [-s shell_predefinita]

Avatar utente
a1k
Linux 2.4
Linux 2.4
 
Messaggi: 288
Iscritto il: mar dic 06, 2005 14:34
Località: Sondrio

Messaggioda bloodlust » gio dic 21, 2006 14:42

semplice la password non la devi passare in plain-text ma crittata :)
ciao

EDIT
ESEMPIO : se hai php installato puoi ottenerla facilmente con
Codice: Seleziona tutto
<?php
if ($argc == 2) {
  $password = crypt($argv[1]);
  echo $password;
}
?>

eseguendo
Codice: Seleziona tutto
php -f creapasswd.php la_mia_password


a te la gestione errori e tutto il resto
Ultima modifica di bloodlust il gio dic 21, 2006 15:05, modificato 1 volta in totale.
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Messaggioda a1k » gio dic 21, 2006 14:43

bloodlust ha scritto:semplice la password non la devi passare in plain-text ma crittata :)
ciao

come?
Avatar utente
a1k
Linux 2.4
Linux 2.4
 
Messaggi: 288
Iscritto il: mar dic 06, 2005 14:34
Località: Sondrio

Messaggioda bloodlust » gio dic 21, 2006 15:07

a1k ha scritto:come?

guarda l'edit sopra.
comunque lo dice nelle man page di useradd:
man useradd ha scritto:-p passwd
The encrypted password, as returned by crypt(3). The default is
to disable the account.
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Messaggioda a1k » gio dic 21, 2006 17:49

...hmm e per generarlo con la bash?
Avatar utente
a1k
Linux 2.4
Linux 2.4
 
Messaggi: 288
Iscritto il: mar dic 06, 2005 14:34
Località: Sondrio

Messaggioda albatros » gio dic 21, 2006 18:24

:shock: O questa?
Io l'opzione -p non ce l'ho...
USERADD(8) USERADD(8)



NOME
useradd - Crea un nuovo utente o aggiorna le informazioni
predefinite per i nuovi utenti

SINTASSI
useradd [-c commento] [-d home_dir]
[-e data_scadenza] [-f tempo_inattivita]
[-g gruppo_iniziale] [-G gruppo[,...]]
[-m [-k dir_scheletro]] [-s shell]
[-u uid [ -o]] login

useradd -D [-g gruppo_predefinito] [-b home_predefinita]
[-f inattivita_predefinita] [-e data_scadenza_pre-
definita]
[-s shell_predefinita]

Ometto di riportare il resto della pagina per evitare di prendere troppo spazio, ma anche lì di -p non c'è traccia...
Avatar utente
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Messaggioda albatros » gio dic 21, 2006 18:40

E infatti nello script /usr/sbin/adduser della slackware la password viene impostata così:
$passwd "$LOGIN"
dove $passwd=/usr/bin/passwd e
....
LOGIN="$1"
needinput=yes
while [ ! -z $needinput ]; do
if [ -z "$LOGIN" ]; then
while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")"
; done
....
Avatar utente
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Messaggioda bloodlust » gio dic 21, 2006 20:43

albatros ha scritto:Io l'opzione -p non ce l'ho...

che versione di shadow hai nel sistema?
giusto per info io ho la 4.0.3-i486-13
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Messaggioda albatros » gio dic 21, 2006 21:27

Trovato il baco...

Per rispondere alla tua domanda:

shadow-4.0.3-i486-11

Abitualmente uso una slackware 10.2 profondamente modificata, per cui ho alcuni software con versioni aggiornate, tipo gcc 4.1.1, kde 3.5.5 e via dicendo, solitamente da me compilati e un po' ottimizzati, ma altri, fra cui la suite shadow, che non ho mai aggiornato...
Non sempre le tecniche per consentire il login sono uguali (vedi pam) fra le diverse distribuzioni, ma pensavo che fra slackware 10.2 e 11 non ci fossero differenze...

E invece vedo, andando a guardare nella partizione dove ho la slackware 11 senza alcuna modifica, che in man useradd (inglese) c'è anche l'opzione -p (versione di shadow: shadow-4.0.3-i486-13 ).

Per curiosità vado allora a vedere il changelog della slackware:
nulla di rilevante...

E allora?
Ecco svelato l'arcano: in realtà anche nella 10.2 (e quindi in shadow-4.0.3-i486-11) c'è l'opzione -p e funziona regolarmente (ho provato con una password "" per semplicità), solo che non è stata elencata nella pagina man in italiano, mentre, invece, c'è in quella francese... ( riga: [-m[-krep_squelette] | -M] [-pmot_de_passe] )
Non ci ho mai fatto caso perché di utenti sul mio pc ne ho solo due oltre a root ed ho inoltre sempre usato lo script adduser...

Scusate ragazzi, ero in buona fede, più che leggere il manuale... :roll:

Per tornare al tema della discussione, prima di tutto:
1) proverei con:
Codice: Seleziona tutto
#!/bin/bash
for ((a=1; a <= 22; a++))
do
useradd utente$a -G aula -c utente$a -putente$a
done
exit 0

ovvero a togliere lo spazio fra -p e la password (a giudicare dalla pagina di man in inglese e in francese non ci vuole)

2) proverei con:
Codice: Seleziona tutto
#!/bin/bash
for ((a=1; a <= 22; a++))
do
useradd utente$a -G aula -c utente$a
passwd utente$a utente$a
done
exit 0


Facci sapere com'è andata e scusa(te)mi ancora per le iniziali indicazioni fuorvianti...
Avatar utente
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Messaggioda bloodlust » gio dic 21, 2006 22:15

ecco un altra vittima delle man page localizzate :badgrin:

togliere lo spazio fra -p e la password

none! forse non è chiaro abbastanza... la stringa che devi passare dopo il "-p" è la chiave des non plain text, il blank non centra una pippa.
Se fai la prova a passare a useradd una password non crittata, quando fai "su nuovo_utente" (ovviamente non da root) vedrai che non entri. normalmente non scrivono caz*te sulle man pages.

Comunque se interessa ho fatto una prova in C usando la funzione crypt() passando anche il salt e funziona (per creare l'utente ho usato lo script bash di a1k).
Se interessa ho provato anche in python basta includere crypt e usare la funzione crypt per generare la chiave (anche qua serve il salt).

Sicuramente anche altri linguaggi (es. Perl) hanno queste funzioni : la scelta sta a te.

ciaoo
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Messaggioda bloodlust » gio dic 21, 2006 22:28

albatros ha scritto:2) proverei con:
Codice: Seleziona tutto
#!/bin/bash
for ((a=1; a <= 22; a++))
do
useradd utente$a -G aula -c utente$a
passwd utente$a utente$a
done
exit 0


così non può funzionare. passwd è interattivo richiede l'input da stdin.
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Messaggioda albatros » gio dic 21, 2006 22:47

ecco un altra vittima delle man page localizzate

Eh, beh... :lol:
none! forse non è chiaro abbastanza... la stringa che devi passare dopo il "-p" è la chiave des non plain text, il blank non centra una pippa.

No, era già chiaro e avevo letto pure la pagina man (corretta, in inglese) che anche tu hai citato, ma non ci pensavo più...
La proposta 1 non funzionerà mai...
Hai fatto bene a precisare, che vuoi, se sono rintronato mica è colpa tua...
:lol:
Riguardo lo spazio, a volte fa differenza, prova a dare mysql -ppasswd o mysql -p passwd...
Da man mysql:
If you use the short option form (-p), you cannot have a
space between the option and the password.

Ok, non era questo il caso, ma non era un'ipotesi folle...
Se fai la prova a passare a useradd una password non crittata, quando fai "su nuovo_utente" (ovviamente non da root) vedrai che non entri.

Il bello è che avevo anche provato... :roll:
normalmente non scrivono cazzate sulle man pages.

Lo penso anch'io...

Dirò che anche la versione 2 proposta così com'è non va tanto bene, perché viene chiesta la passwd per ogni utente...

Mi riprometto di non postare più sul forum se non quando avrò il tempo e l'attenzione necessaria per assicurarmi di non scrivere sciocchezze...
Scusate e buona serata a tutti...

:)

P.S.
Visto solo ora:
così non può funzionare. passwd è interattivo richiede l'input da stdin


Infatti...
Avatar utente
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Messaggioda bloodlust » ven dic 22, 2006 2:17

se sono rintronato mica è colpa tua

:lol:
Riguardo lo spazio, a volte fa differenza,

a volte si, ti do ragione
Mi riprometto di non postare più sul forum se non quando avrò il tempo e l'attenzione necessaria per assicurarmi di non scrivere sciocchezze...
Scusate e buona serata a tutti...

ah ah non essere così drastico! l'importante è dare il proprio contributo e la volontà di aiutare chi da solo non riesce a raccapezzarsi.
e non devi scusarti!! le défaillances capitano a tutti :badgrin:

ciaoo
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Prossimo

Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: TurnitinBot [Bot] e 1 ospite

cron