[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.
Avatar utente
a1k
Linux 2.x
Linux 2.x
Messaggi: 288
Iscritto il: mar 6 dic 2005, 14:34
Località: Sondrio

[HELP] adduser script

Messaggio da a1k »

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
albatros
Iper Master
Iper Master
Messaggi: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Messaggio da albatros »

Ma in man useradd dov'è l'opzione -p per le password?
Non è che magari le dovresti creare a parte con passwd ?

Avatar utente
a1k
Linux 2.x
Linux 2.x
Messaggi: 288
Iscritto il: mar 6 dic 2005, 14:34
Località: Sondrio

Messaggio da a1k »

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]


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

Messaggio da bloodlust »

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 21 dic 2006, 15:05, modificato 1 volta in totale.

Avatar utente
a1k
Linux 2.x
Linux 2.x
Messaggi: 288
Iscritto il: mar 6 dic 2005, 14:34
Località: Sondrio

Messaggio da a1k »

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

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

Messaggio da bloodlust »

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.

Avatar utente
a1k
Linux 2.x
Linux 2.x
Messaggi: 288
Iscritto il: mar 6 dic 2005, 14:34
Località: Sondrio

Messaggio da a1k »

...hmm e per generarlo con la bash?

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Messaggio da albatros »

: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: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Messaggio da albatros »

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
....

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

Messaggio da bloodlust »

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

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Messaggio da albatros »

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...

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

Messaggio da bloodlust »

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 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio da bloodlust »

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.

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Messaggio da albatros »

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...

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

Messaggio da bloodlust »

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

Rispondi