Creació d'usuaris amb perfils
De Wiki Linkat
Revisió actual (10:44, 20 set 2009) (mostra codi font) |
|||
(Hi ha 2 revisions intermèdies) | |||
Línia 62: | Línia 62: | ||
# | # | ||
# Nom de l'script: alta_massiva_perfils.sh | # Nom de l'script: alta_massiva_perfils.sh | ||
- | # Execució de l' | + | # Execució de l'script: sh alta_massiva_perfils.sh nom_base perfil nombre_usuaris |
- | # Versió 1. | + | # Versió 1.1 |
# Autor: Joan de Gracia | # Autor: Joan de Gracia | ||
# Servei TAC - Departament d'Educació | # Servei TAC - Departament d'Educació | ||
- | # Data: | + | # Data: 20/09/2009 |
# Llicència GPL 3.0 | # Llicència GPL 3.0 | ||
# | # | ||
- | # Nota: Aquest script | + | # Nota: Aquest script pressuposa que l'usuari ha instal·lat algun (o tots) dels paquets: |
- | # | + | # perfil-usuari-infantil |
- | # | + | # perfil-usuari-primaria |
+ | # perfil-usuari-secundaria | ||
+ | # | ||
# Descripció de variables: | # Descripció de variables: | ||
# | # | ||
Línia 94: | Línia 96: | ||
ESCRIPTORI=$2 | ESCRIPTORI=$2 | ||
N=$3 | N=$3 | ||
- | CONTRASENYA=" | + | CONTRASENYA="" |
DIRECTORI=/home-local | DIRECTORI=/home-local | ||
PERFIL=/usr/share/linkat/profiles | PERFIL=/usr/share/linkat/profiles | ||
Línia 124: | Línia 126: | ||
mkdir $USUARI | mkdir $USUARI | ||
chown $USUARI:$GRUP $USUARI | chown $USUARI:$GRUP $USUARI | ||
+ | cd $DIRECTORI/$USUARI | ||
+ | mkdir Documents | ||
+ | chown $USUARI:$GRUP Documents | ||
+ | mkdir Drives | ||
+ | chown $USUARI:$GRUP Drives | ||
+ | mkdir public_html | ||
+ | chown $USUARI:$GRUP public_html | ||
echo $CONTRASENYA | passwd --stdin $USUARI | echo $CONTRASENYA | passwd --stdin $USUARI | ||
cd $DIRECTORI/$USUARI | cd $DIRECTORI/$USUARI | ||
Línia 137: | Línia 146: | ||
mkdir $USUARI | mkdir $USUARI | ||
chown $USUARI:$GRUP $USUARI | chown $USUARI:$GRUP $USUARI | ||
+ | cd $DIRECTORI/$USUARI | ||
+ | mkdir Documents | ||
+ | chown $USUARI:$GRUP Documents | ||
+ | mkdir Drives | ||
+ | chown $USUARI:$GRUP Drives | ||
+ | mkdir public_html | ||
+ | chown $USUARI:$GRUP public_html | ||
echo $CONTRASENYA | passwd --stdin $USUARI | echo $CONTRASENYA | passwd --stdin $USUARI | ||
cd $DIRECTORI/$USUARI | cd $DIRECTORI/$USUARI | ||
Línia 150: | Línia 166: | ||
mkdir $USUARI | mkdir $USUARI | ||
chown $USUARI:$GRUP $USUARI | chown $USUARI:$GRUP $USUARI | ||
+ | cd $DIRECTORI/$USUARI | ||
+ | mkdir Documents | ||
+ | chown $USUARI:$GRUP Documents | ||
+ | mkdir Drives | ||
+ | chown $USUARI:$GRUP Drives | ||
+ | mkdir public_html | ||
+ | chown $USUARI:$GRUP public_html | ||
echo $CONTRASENYA | passwd --stdin $USUARI | echo $CONTRASENYA | passwd --stdin $USUARI | ||
cd $DIRECTORI/$USUARI | cd $DIRECTORI/$USUARI |
Revisió actual
Script per donar d'alta múltiples usuaris genèrics amb els perfils d'infantil, primària i/o secundària:
En la versió actual de la Linkat 3.0 s'ofereixen tres perfils d'alumnat: infantil, primària i secundària. Si voleu tenir més informació sobre aquests perfils podeu consultar el recurs: Perfils_d'alumnat
L'objectiu de l'script que es presenta tot seguit és el de crear múltiples usuaris que disposin dels entorns d'escriptori abans esmentat.
Nota: Com a requisits previs, cal haver instal·lat els paquets: perfil-usuari-infantil perfil-usuari-primaria perfil-usuari-secundaria
Per tal de procedir a la instal·lació d'aquests paquets, cal anar a:
Sistema -> Sistema -> YaST (introduir la contrasenya de root)-> Software -> Gestió de programari
i cercar els paquets:
perfil-usuari-infantil perfil-usuari-primaria perfil-usuari-secundaria
Un cop instal·lats aquests paquets, es procedeix a copiar el codi de l'script: alta_massiva_perfils.sh en un editor de text com ara el gedit.
Aquest script s'ha d'executar des de consola i com a root ja que s'han de crear nous usuaris dins del sistema:
su (s'introdueix la contrasenya de l'usuari root) sh alta_massiva_perfils.sh nom_base perfil nombre_usuaris
per exemple, l'execució de l'script:
sh alta_massiva_perfils.sh alumne infantil 10
crearia els usuaris alumne1, alumne2, .... alumne10 amb l'escriptori infantil.
La contrasenya ve definida en la variable: CONTRASENYA i pren el valor per defecte: alumne
Tots els usuaris es creen amb el directori personal /home-local i pertanyen al grup users. El directori personal pot canviar-se per /home si aquesta màquina és un perfil autònom.
IMPORTANT: Aquest script s'ha de provar primer en una màquina que no contingui dades de l'usuari. Recomanem per tant que es facin còpies dels documents de l'usuari abans d'aplicar la recepta.
########################################################################################################################################### # #!/bin/bash # # Nom de l'script: alta_massiva_perfils.sh # Execució de l'script: sh alta_massiva_perfils.sh nom_base perfil nombre_usuaris # Versió 1.1 # Autor: Joan de Gracia # Servei TAC - Departament d'Educació # Data: 20/09/2009 # Llicència GPL 3.0 # # Nota: Aquest script pressuposa que l'usuari ha instal·lat algun (o tots) dels paquets: # perfil-usuari-infantil # perfil-usuari-primaria # perfil-usuari-secundaria # # Descripció de variables: # # USUARI_BASE: És el nom que s'agafa com a base per generar la totalitat d'usuaris # ESCRIPTORI: Els valors disponibles són:infantil, primaria, secundaria # N: Nombre d'usuaris a crear # CONTRASENYA: És la contrasenya genèrica que tindran tots els usuaris i que per defecte pren el valor: alumne # DIRECTORI: És el directori local de l'usuari. De forma predeterminada s'assigna a /home-local tot i que es pot canviar a /home # PERFIL: Directori on es desen els perfils dels escriptoris un cop s'han instal·lat els paquets rpm corresponents. Aquests paquets són: # perfil-usuari-infantil, perfil-usuari-primaria, perfil-usuari-secundaria # GRUP: El grup predeterminat al qual s'associa l'usuari. De forma predeterminada és el grup users amb gid=100 # # # UTILITZACIÓ DE L'SCRIPT: # # sh alta_usuaris.sh NOM_BASE_USUARI PERFIL_ESCRIPTORI NOMBRE_USUARIS # on PERFIL_ESCRIPTORI pot prendre un dels valors següents: infantil primaria secundaria # ########################################################################################################################################### declare -i N USUARI_BASE=$1 ESCRIPTORI=$2 N=$3 CONTRASENYA="" DIRECTORI=/home-local PERFIL=/usr/share/linkat/profiles GRUP=users if [ "$USUARI_BASE" == "" ] || [ "$ESCRIPTORI" == "" ] ; then { echo -e "\n" "Has d'introduir les dades de l'usuari i del grup" echo -e "\n" "Executa l'script de la forma següent:" echo -e "\n" "sh alta_usuaris.sh NOM_BASE_USUARI PERFIL_ESCRIPTORI NOMBRE_USUARIS" echo -e "\n" "El PERFIL_ESCRIPTORI pot ser: infantil primaria secundaria" exit 0 }; fi if [ $N -le 0 ] || [ "$N" == "" ] ; then { echo -e "\n" "El nombre d'usuaris ha de ser més gran que zero\n" exit 0 }; fi for i in $(seq 1 $N); do USUARI=$USUARI_BASE$i if [ "$(cat /etc/passwd |grep $USUARI)" == "" ] ; then { case "$ESCRIPTORI" in infantil) useradd -d $DIRECTORI/$USUARI -g users -s /bin/bash $USUARI >/dev/null 2>&1 cd $DIRECTORI mkdir $USUARI chown $USUARI:$GRUP $USUARI cd $DIRECTORI/$USUARI mkdir Documents chown $USUARI:$GRUP Documents mkdir Drives chown $USUARI:$GRUP Drives mkdir public_html chown $USUARI:$GRUP public_html echo $CONTRASENYA | passwd --stdin $USUARI cd $DIRECTORI/$USUARI sudo -u $USUARI tar -jxf $PERFIL/perfil-$ESCRIPTORI.tar.bz2 cd $DIRECTORI/$USUARI/.nautilus/metafiles for j in $(ls $DIRECTORI/$USUARI/.nautilus/metafiles |grep infantil); do mv $j $(echo $j | sed 's/infantil/'$USUARI'/g') done ;; primaria) useradd -d $DIRECTORI/$USUARI -g users -s /bin/bash $USUARI >/dev/null 2>&1 cd $DIRECTORI mkdir $USUARI chown $USUARI:$GRUP $USUARI cd $DIRECTORI/$USUARI mkdir Documents chown $USUARI:$GRUP Documents mkdir Drives chown $USUARI:$GRUP Drives mkdir public_html chown $USUARI:$GRUP public_html echo $CONTRASENYA | passwd --stdin $USUARI cd $DIRECTORI/$USUARI sudo -u $USUARI tar -jxf $PERFIL/perfil-$ESCRIPTORI.tar.bz2 cd $DIRECTORI/$USUARI/.nautilus/metafiles for j in $(ls $DIRECTORI/$USUARI/.nautilus/metafiles |grep primaria); do mv $j $(echo $j | sed 's/primaria/'$USUARI'/g') done ;; secundaria) useradd -d $DIRECTORI/$USUARI -g users -s /bin/bash $USUARI >/dev/null 2>&1 cd $DIRECTORI mkdir $USUARI chown $USUARI:$GRUP $USUARI cd $DIRECTORI/$USUARI mkdir Documents chown $USUARI:$GRUP Documents mkdir Drives chown $USUARI:$GRUP Drives mkdir public_html chown $USUARI:$GRUP public_html echo $CONTRASENYA | passwd --stdin $USUARI cd $DIRECTORI/$USUARI sudo -u $USUARI tar -jxf $PERFIL/perfil-$ESCRIPTORI.tar.bz2 cd $DIRECTORI/$USUARI/.nautilus/metafiles for j in $(ls $DIRECTORI/$USUARI/.nautilus/metafiles |grep secundaria); do mv $j $(echo $j | sed 's/secundaria/'$USUARI'/g') done ;; *) echo -e "\n" "Aquest perfil d'escriptori $ESCRIPTORI no existeix." echo -e "\n" "Prova amb algun dels valors: infantil primaria secundaria" exit 0 ;; esac } else { echo -e "\n" "L'usuari $USUARI ja existeix i no es crearà\n" exit 0 }; fi done exit 0