User Tools

Site Tools


cluster:users

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cluster:users [2020/01/04 12:45]
osotolongo
cluster:users [2020/10/22 08:43] (current)
osotolongo
Line 1: Line 1:
-====== Propagar usuarios de detritus hacia los nodos ======+====== Propagar usuarios del master hacia los nodos ======
  
-** No hacer despues de añadir los usuarios a los grupos!!!!** 
  
-Un nodo,+La idea es crear un usuario en el master y luego ejecutar un script que propague la misma configuracion a traves de los demas nodos,
  
-<code bash> +<code python>
-[root@detritus ~]# a=$(echo `grep cdalmasso /etc/passwd`); ssh brick01 "echo $a >> /etc/passwd" +
-[root@detritus ~]# ssh brick01 chmod +rw /etc/shadow +
-[root@detritus ~]# a=$(echo `grep cdalmasso /etc/shadow`); ssh brick01 "echo $a >> /etc/shadow" +
-[root@detritus ~]# ssh brick01 chmod -rw /etc/shadow +
-[root@detritus ~]# a=$(echo `grep cdalmasso /etc/group`); ssh brick01 "echo $a >> /etc/group" +
-[root@detritus ~]# ssh brick01 chmod +rw /etc/gshadow +
-[root@detritus ~]# a=$(echo `grep cdalmasso /etc/gshadow`); ssh brick01 "echo $a >> /etc/gshadow" +
-[root@detritus ~]# ssh brick01 chmod -rw /etc/gshadow +
-</code>+
  
-Todos +import sys 
-<code bash> +import subprocess # yep, this is user admin 
-for x in $(seq 3);do  +import re 
-a=$(echo `grep cdalmasso /etc/passwd`); ssh brick0${x} "echo '${a}>> /etc/passwd"; +import os 
-ssh brick0${x} chmod +rw /etc/shadow; + 
-a=$(echo `grep cdalmasso /etc/shadow`); ssh brick0${x} "echo '${a}>> /etc/shadow"; +# nodes list 
-ssh brick0${x} chmod -rw /etc/shadow; +nodes = ('brick01', 'brick02'
-a=$(echo `grep cdalmasso /etc/group`); ssh brick0${x} "echo '{$a}>> /etc/group"; +# First get the user 
-ssh brick0${x} chmod +rw /etc/gshadow; +cuser str(sys.argv[1]) 
-a=$(echo `grep cdalmasso /etc/gshadow`)ssh brick0${x} "echo '${a}>> /etc/gshadow"+# Get user data 
-ssh brick0${x} chmod -rw /etc/gshadow; +udata = re.search(r'(\w+):\w:(\d+):(\d+):.*:([a-z,\/]*):([a-z,\/]*)', subprocess.getoutput('grep '+cuser+' /etc/passwd')) 
-done+gdata = re.search(r'(\w+):\w:(\d+):.*', subprocess.getoutput('grep \'^'+cuser+'\' /etc/group')) 
 +shadowdata re.search(r'(\w+):(.*?):', subprocess.getoutput('grep \'^'+cuser+'\' /etc/shadow')) 
 +# añade el usuario en cada nodo 
 +for node in nodes: 
 +  order = 'ssh '+node+' groupadd -g '+gdata.group(2)+' '+gdata.group(1) 
 +  os.system(order) 
 +  order 'ssh '+node+' useradd -u '+udata.group(2)+' -g '+udata.group(3)+-d '+udata.group(4)+' '+cuser 
 +  os.system(order) 
 +  order = 'ssh '+node+' \'echo "'+shadowdata.group(1)+':'+shadowdata.group(2)+'" | chpasswd -e\'' 
 +  os.system(order)
 </code> </code>
  
 +La idea general es,
 +  * se entra el usuario por //stdin//
 +  * se buscan en los archivos // /etc/passwd //, // /etc/group // y // /etc/shadow// todos los detalles del usuario (nombre, //uid//, //gid//, y passwd encriptado)
 +  * Para cada nodo,
 +    * Se crea el grupo del usuario, con el mismo //gid//
 +    * Se crea el usuario, con el mismo //uid//, //gid// y //$HOME//
 +    * Se pasa el password encriptado del usuario  con //chpasswd//
 +  * enjoy :-P
 +
 +**Nota:** Los nodos estan //harcoded// en el script pero claramente pueden leerse de un archivo de sistema o asi. 
cluster/users.1578141919.txt.gz · Last modified: 2020/08/04 10:48 (external edit)