User Tools

Site Tools


cluster:users

Differences

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

Link to this comparison view

Next revision
Previous revision
cluster:users [2019/09/04 09:16]
osotolongo created
cluster:users [2020/10/22 08:43]
osotolongo
Line 1: Line 1:
-====== Propagar usuarios de detritus hacia los nodos ======+====== Propagar usuarios del master hacia los nodos ======
  
-Un nodo, 
  
-<code bash> +La idea es crear un usuario en el master y luego ejecutar un script que propague la misma configuracion traves de los demas nodos,
-[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 +<code python
-<code bash+ 
-for x in $(seq 3);do  +import sys 
-a=$(echo `grep cdalmasso /etc/passwd`); ssh brick0${x} "echo '${a}>> /etc/passwd"; +import subprocess # yep, this is user admin 
-ssh brick0{x} chmod +rw /etc/shadow; +import re 
-a=$(echo `grep cdalmasso /etc/shadow`); ssh brick0{x} "echo '${a}>> /etc/shadow"; +import os 
-ssh brick0{x} chmod -rw /etc/shadow; + 
-a=$(echo `grep cdalmasso /etc/group`); ssh brick0{x} "echo '{$a}>> /etc/group"; +# nodes list 
-ssh brick0{x} chmod +rw /etc/gshadow; +nodes = ('brick01', 'brick02'
-a=$(echo `grep cdalmasso /etc/gshadow`)ssh brick0{x} "echo '${a}>> /etc/gshadow"+# First get the user 
-ssh brick0{x} chmod -rw /etc/gshadow; +cuser str(sys.argv[1]) 
-done+# Get user data 
 +udata = re.search(r'(\w+):\w:(\d+):(\d+):.*:([a-z,\/]*):([a-z,\/]*)', subprocess.getoutput('grep '+cuser+' /etc/passwd')) 
 +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>
-[root@detritus ~]# ssh brick01 chmod -rw /etc/gshadow+ 
 +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.txt · Last modified: 2020/10/22 08:43 by osotolongo