.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Gestione degli utenti (http://www.dsy.it/forum/showthread.php?threadid=31583)


Posted by Laüra on 18-07-2007 16:35:

Gestione degli utenti

Ciao a tutti!

Ho delle difficoltà per quanto riguarda la gestione degli utenti in Minix. Mi sembra che non sia stata spiegata a lezione di lab.....o magari ero io distratta.....
Qualcuno potrebbe spiegarmi quello che dovrei sapere per l'esame di lab riguardo agli utenti e quali comandi bisogna saper usare?

Se devo creare un nuovo utente....posso creare un nuovo gruppo in cui metterlo o devo usare quelli già esistenti?
Come si crea un nuovo gruppo?

Come si fa a cancellare un utente?

Grazie!


Posted by n3o on 18-07-2007 17:30:

Per creare un utente prova a leggerti i manuali di adduser, passwd, chsh, chfn

Per creare o eliminare un gruppo dai un occhio al file /etc/group

Per cancellare un utente elimina la sua home directory rm -r /home/utente; elimina le righe contenenti il nome utente da /etc/passwd e /etc/shadow

__________________
The answer is blowing in the wind...


Posted by n3o on 19-07-2007 11:07:

Posto una soluzione più umana di quella del prof per aggiungere degli utenti da una lista contenuta in un file:

Contenuto del file (user group home-dir):

code:
pippo operator /home/pippo pluto others /home/pluto
Script:
code:
1) #!/bin/bash 2) NUM=$(cat $1 | wc -l) 3) COUNT=0 4) while [ $NUM -ne $COUNT ]; do 5) COUNT=$(expr $COUNT + 1) 6) adduser $(cat $1 | awk "NR == $COUNT") 7) done

Spiegazione:
  1. Interprete script
  2. in NUM ci sarà il numero di utenti (cat $1 | wc -l) presenti nel file passato come parametro ($1)
  3. Contatore dell'utente corrente
  4. Finchè il contatore non raggiunge il numero degli utenti nel file...
  5. Aumento il contatore
  6. La sintassi di adduser è: adduser user group home-dir, ovvero proprio la formattazione che abbiamo nel nostro file, quindi leggo il file (cat) e con awk estraggo la $COUNT riga (awk "NR == $COUNT"). è un parametro da prendere "as is" ovvero così com'è, per maggiori informazioni guardate il man awk
  7. fine ciclo

__________________
The answer is blowing in the wind...


Posted by n3o on 19-07-2007 14:26:

Per completezza di informazione la riga (6)

6) adduser $(cat $1 | awk "NR == $COUNT")

può essere sostituita anche con:

6) adduser $(cat $1 | xargs -n 3)

in questo modo xargs prende il risultato di cat non un "campo" alla volta (ovvero una stringa separata da blank), ma 3 alla volta, ricostruendo così una intera riga del file pronta da passare ad adduser
Dopo xargs non c'è nulla, quindi per default viene preso echo (xargs == xargs echo)

A voi la scelta !!!

__________________
The answer is blowing in the wind...


Posted by Simaldeff on 19-07-2007 17:14:

vorrei far notare che la semplice linea di comando

cat user.list | xargs -n 3 adduser

basta e avanza se il file user.list e' del formato seguente :
<user_name> <group> <home_dir>

come nell'esempio.
Ma il prof ha spiegato come si puo fare a riordinare una stringa (se per esempio nel file viene scritto con ordine diverso nome, homedir e gruppo)?

__________________
There is no way to happyness, happyness is the way. -Buddha-


Posted by n3o on 19-07-2007 17:33:

Grazie di avercelo fatto notare! :D (ma l'esercizio l'ho studiato apposta per metterci un while e giocare con xargs e awk che potrebbero esserci all'esame!)

Credo l'unico modo per riordinare sia leggere pezzo per pezzo i campi con un for, metterli in variabili e poi fare un adduser passandogliele (controllando di farlo ogni 3 cicli...)
Se è una questione di separatori tr basta e avanza

__________________
The answer is blowing in the wind...


Posted by mjfan80 on 29-01-2008 21:53:

Originally posted by n3o
Posto una soluzione più umana di quella del prof per aggiungere degli utenti da una lista contenuta in un file:

Contenuto del file (user group home-dir):
code:
pippo operator /home/pippo pluto others /home/pluto
Script:
code:
1) #!/bin/bash 2) NUM=$(cat $1 | wc -l) 3) COUNT=0 4) while [ $NUM -ne $COUNT ]; do 5) COUNT=$(expr $COUNT + 1) 6) adduser $(cat $1 | awk "NR == $COUNT") 7) done

Spiegazione:
  1. Interprete script
  2. in NUM ci sarà il numero di utenti (cat $1 | wc -l) presenti nel file passato come parametro ($1)
  3. Contatore dell'utente corrente
  4. Finchè il contatore non raggiunge il numero degli utenti nel file...
  5. Aumento il contatore
  6. La sintassi di adduser è: adduser user group home-dir, ovvero proprio la formattazione che abbiamo nel nostro file, quindi leggo il file (cat) e con awk estraggo la $COUNT riga (awk "NR == $COUNT"). è un parametro da prendere "as is" ovvero così com'è, per maggiori informazioni guardate il man awk
  7. fine ciclo


dovrebbe esserci anche questa soluzione
ho provato, pare funzionare

code:
#!/bin/sh while read linea: do adduser $linea done < utenti.txt

__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual


All times are GMT. The time now is 10:53.
Show all 7 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.