PRACTICA # 3

"ADMINISTRACIÓN DE USUARIOS"



OBJETIVO: Aprender las diversas herramientas y técnicas que pueden ser empleadas para la administración de cuentas de usuarios.



INTRODUCCIÓN:

El administrador del sistema está encargado de la administración de los usuarios:

Involucrando el registro de los mismos, el ajuste de los privilegios, la creación y asignación de directorios personales, la asignación de usuarios a grupos, asignación de cuota y la eliminación de usuarios en caso necesario.



DESARROLLO :

1.- Alta de una cuenta de usuario

Las tareas que se llevan a cabo para generar una cuenta de usuario son:

  1. Editar el /etc/passwd.
  2. Crear un directorio de casa (HOME DIRECTORY).
  3. Editar el /etc/group.
  4. Copiar archivos de configuración.
  5. Asignar una contraseña (password).
  6. Asignar recursos.


En Linux, varias de éstas tareas se llevan a cabo mediante el comando '/usr/sbin/adduser'

Edición del /etc/passwd

El archivo /etc/passwd, es el archivo de registro de los usuarios válidos en el sistema. La información que contiene es la siguiente:

Nombre de la cuenta de usuario.

Password encriptado.

Identificador de Usuario (UID).

Identificador del Grupo de default (GID).

Información particular del usuario (GECOS).

Directorio de casa (HOME DIRECTORY).

Shell de inicio.



Ejemplos de registros del /etc/passwd:

sergio:HP37g3QhPYvyk:353:100:dominguez herrera sergio,,,:/users/ptc/sergio:/bin/ksh

gus:.PCVB95IGB8YM:355:100:El Gran Gus,,,:/users/ptc/gus:/bin/ksh

firebird:YFv0O04k5H7S2:358:100:padilla casta&eda m. angel,,,:/users/ptc/firebird:/bin/ksh

gork:GAiWHeAqoKgRk:396:100:diaz jimenez jose,,,:/users/ptc/gork:/bin/ksh

rody:iY2PPS0lNN81g:463:100:mendez zarate rodolfo,,,:/users/ptc/rody:/bin/ksh



1.1 Registra al usuario Frida Kalo con el comando '/usr/sbin/adduser'. Para esto, entra a sesión como super usuario y teclea lo siguiente:



#/usr/sbin/adduser fridaka <enter>

Looking for first available UID... 507

Looking for first available GID... 501

Adding login: fridaka...done.

Creating home directory: /home/fridaka...done.

Creating mailbox: /var/spool/mail/fridaka...done.

Don't forget to set the password.

#

1.2 Edita el archivo /etc/passwd y localiza al nuevo usuario Frida Kalo.

#vi /etc/passwd <enter>

NOTA: Se puede usar el comando /usr/sbin/vipw

Una vez que identificaste la cuenta de Frida Kalo, anota textualmente la información de su registro en la siguiente línea.





También anota la información de cada uno de los campos del registro:



Nombre de registro:
contraseña cifrada:
ID de usuario:
ID de grupo:
información del usuario:
directorio de casa:
shell de inicio:


1.3 Dentro del editor, escribe 'Frida Kalo' en el campo de información del usuario (GECOS) y salva el archivo. El registro debe quedar así:

fridaka:*:507:501:Frida Kalo:/home/fridaka:/bin/bash

NOTA: El UID y el GID pueden ser distintos.



1.4 Asigna la contraseña a Frida Kalo utilizando el comando '/usr/bin/passwd'. Asignale la palabra 'redes99'. Para esto teclea lo siguiente:

# passwd fridaka <enter>

New password: Teclea redes99 <enter>

New password (again): Repítelo <enter>

Password changed

passwd: all authentication tokens updated successfully

#



1.5 Para verificar que el password se ha asignado correctamente, entra a sesión como el usuario Frida Kalo. Utiliza la secuencia de teclas '<ctrl> + <alt> + <F2>'. Donde <F2> es la segunda sesión, <F3> la tercera y así sucesivamente. Recuerda que el login de Frida Kalo es fridaka y que su passwd es redes99.



1.6 Una vez que hayas logrado entrar a sesión, observa el contenido del registro de Frida Kalo, utilizando el comando 'grep':

# grep "^fridaka:" /etc/passwd <enter>

En el siguiente recuadro anota textualmente lo obtenido en pantalla, y comparalo con el formato del inciso 1.4.





Teclea el comando '/usr/bin/id' y anota el texto.





Teclea el comando '/bin/ls -lia' y anota el texto.























Salte de la sesión de fridaka.

En el inciso 1 se habla de seis tareas que se deben llevar a cabo cuando se da de alta un usuario, Cuáles son las tareas que realizó el comando 'adduser' ? Listelas.





2.- Alta de una cuenta de grupo

En cualquier plataforma UNIX, se pueden crear grupos de trabajo, los cuales compartirán los mismos recursos. El registro se lleva a través del archivo '/etc/group'

Edición del /etc/group



Nombre del grupo

Password (este campo ya no es utilizado)

Identificador del grupo (GID)

Lista de claves de usuario pertenecientes al grupo (separadas por comas).

Ejemplos de registros del '/etc/group':

ptc::100:antonio,argos,david,doom,falcon,firebird,gork,gus,invent,jess,mena

precand::101:prebe01,prebe02,prebe03,prebe04,prebe05,prebe06,prebe07,prebe08

cursos::102:alfa01,alfa02,alfa03,alfa04,alfa05,alfa06,alfa07,alfa08,alfa09

alum::103:gadc,morro1,alexcho,isaacm,tonio

profes::104:adrian,aedlot,ajim,ante,avel50,cgj001,coatza,donal,eco,garf70

die::105:anapat,apollo,cgarci,dia123,dms208,eamch,gabo,karo

informix::106:informix

sybase:*:200:sybase

veraltas::300:sergio,morfeo,kyo,patty,mena,greedo,rody,chesst,gus,falcon



2.1. Cambiate a la sesión de root (presiona ctrl+alt+F1, o la F? adecuada) y crea un grupo llamado 'amigos' , asignale al usuario Frida Kalo (fridaka):

Primero, edita el archivo de grupo:



#vi /etc/group



Segundo, localiza el renglón (registro) que contiene a fridaka, el cual puede tener el siguiente formato: fridaka::501:fridaka

Tercero, cambiale el nombre del primer campo, por el nuevo grupo 'amigos':

amigos::501:fridaka

Cuarto, salva el archivo.



2.2 Abre una nueva sesión y entra como el usuario fridaka, teclea el comando 'id' y anota su salida.

# id <enter>



Observa si el usuario pertenece al grupo que le asignaste, es decir, al grupo 'amigos'.

Qué diferencias existe con lo obtenido en el inciso 1.6?. Anota tus conclusiones.







2.3 Cambiate a la sesión del usuario fridaka, lista sus archivos con el comando 'ls'

#ls -lia <enter>



A qué grupo pertenecen los archivos? y Porqué?






2.4 Crea un nuevo grupo, llamado 'equipo'. La entrada en el archivo '/etc/group' debe quedar así:

equipo::777:



1.10 Como te pudiste dar cuenta, en el punto anterior realizamos una cambio de grupo con el usuario fridaka, pero no cambiamos de grupo sus archivos, por lo que pertenecen al viejo grupo. Ahora, cambiaremos dichos archivos al nuevo grupo con el siguiente comando:



#find /home/fridaka -exec chgrp amigos {} \;



1.11 Nuevamente, teclea el comando 'ls -lia' y observa a que grupo pertenecen. También teclea el comando 'id' y verifica que 'Frida Kalo' si aparesca en el grupo 'amigos'.

Cuáles fueron las diferencias que encontraste con referencia al punto anterior?



3.- Cambios de UID, GID, Login, Shell y de Directorio de Casa.



a) Cambio de UID.



3.1 En muchas ocasiones y por distintas razones, es necesario cambiar a un usuario el UID que ya tiene asignadopor algún otro. Veámos como se lleva a cabo ésta tarea.

Primero, encuentra un UID libre, es decir un UID que no este asignado a algún usuario. Para nuestra práctica usaremos el UID 2125. Entra a sesión como super usuario.



3.2 Segundo, edita el archivo '/etc/passwd' , localiza el registro del usuario fridaka y en su campo de UID (tercer campo) cambialo por 2125, salva el archivo. El registro debería quedar así:

fridaka:rF/4sxUyEUVY:2125:501:Frida Kalo:/home/fridaka:/bin/bash



3.3 Entra a sesión como usuario fridaka y verifica que el usuario si pertenece al UID que le asignaste, es decir, al UID 2125, también verifica si sus archivos le pertenecen. Anota textualmente los resultados obtenidos. Para realizar esta actividad ejecuta los siguientes comandos:



Teclea el comando '/usr/bin/id' y anota el texto.





Teclea el comando '/bin/ls -lia' y anota el texto.























Qué diferencias existe con lo obtenido en el inciso 1.6?. Anota tus conclusiones.





3.4 El primer paso para cambiar el UID de un usuario ya esta hecho, pero falta que los archivos del UID anterior se cambien al UID nuevo, recuerda que ésta información está almacena en la estructura i-nodo. Para cambiar los archivos al nuevo UID teclea el siguiente comando:

#find /home/fridaka -exec chown 2125 {} \;



3.5 De la sesión que tenías como fridaka salte y vuelve a entrar. Ejecuta los comandos 'id' y 'ls -lia' y comprara los resultados con los obtenidos en el inciso 3.3.

b) Cambio de GUID



3.6 En muchas ocasiones y por distintas razones, es necesario cambiar a un usuario el GUID que ya tiene asignadopor algún otro. Veámos como se lleva a cabo ésta tarea.

Primero, define a que nuevo grupo va a pertenecer y obtén el valor numérico. En nuestro caso ese nuevo grupo es el de 'equipo' y cuyo valor es 777.



3.7 Segundo, edita el archivo '/etc/passwd' , localiza el registro del usuario fridaka y en su campo de GUID (cuarto campo) cambialo por 777, salva el archivo. El registro debería quedar así:



fridaka:rF/4sxUyEUVY:2125:777:Frida Kalo:/home/fridaka:/bin/bash



3.8 Como te podrás imaginar, los archivos del usuario fridaka pertenecen al grupo amigos. Compruébalo entrando nuevamente a sesión como fridaka y ejecuta los comandos 'id' y 'ls -lia'. Para cambiar de grupo a los archivos del usuario fridaka ejecuta el siguiente comando:



#find /home/fridaka -exec chgrp 777 {} \;



3.9 Entra nuevamente a sesión como usuario fridaka, si ya estabas dentro; salte y vuelve a entrar, y ejecuta los comandos 'id' y 'ls -lia'. Compara los resultados con los obtenidos en el inciso 3.8.





c) Cambio de Login



3.10 Edita el archivo '/etc/passwd' , localiza el registro del usuario fridaka y cambia el login (primer campo) 'fridaka' por 'apollo' .



fridaka:rF/4sxUyEUVY:2125:777:Frida Kalo:/home/fridaka:/bin/bash



sustituyendo tendremos :



apollo:rF/4sxUyEUVY:2125:777:Frida Kalo:/home/fridaka:/bin/bash



y guardamos el archivo.



3.11 Abre una sesión como usuario Frida Kalo, utilizando el nuevo login. Ejecutando el comando 'id', identifica y anota los valores ID de usuario y grupo obtenidos. Despliega una lista de los archivos del usuario con el comando 'ls -lia'

Cuáles son tus observaciones? Anótalas















d. Cambio de Shell



3.12 Una de las tareas más comunes del administrador es cambiar o adecuar el Shell de inicio aa sus usuarios. Edita el archivo '/etc/passwd' y modifica el séptimo campo del registro del usuario 'apollo' de '/bin/bash' por '/bin/sh'



Realizando los cambios teniamos:

apollo:rF/4sxUyEUVY:2125:777:Frida Kalo:/home/fridaka:/bin/bash



y ahora tendremos:



apollo:rF/4sxUyEUVY:2125:777:Frida Kalo:/home/fridaka:/bin/sh



3.13 Abre una sesión como el usuario 'apollo'. Y anota textualmente, en el recuadro, la salida de la ejecución del siguiente comando:



$ grep "^apollo:" /etc/passwd <enter>











3.14 Estando en la sesión del usuario 'apollo', ejecuta el comando '/usr/bin/chsh' y cambia el Shell de '/bin/sh' a '/bin/bash'. Anota la secuencia de teclas que presionaste para lograr el cambio del Shell.

















e) Cambio de Directorio de Casa



3.15 Otra de las actividades más comunes del administrador es cambiar el directorio de casa de sus usuarios, ya sea por que se cambiaron de Login, de grupo, etc.. Para realizar ésta labor, primero editaremos el archivo '/etc/passwd' . El nuevo directorio de casa será '/users/apollo',

apollo:rF/4AsxUyEUVY:2125:777:Frida Kalo:/home/fridaka:/bin/bash

cámbialo por:

apollo:rF/4AsxUyEUVY:2125:777:Frida Kalo:/users/apollo:/bin/bash



3.16 Crea el nuevo directorio '/users/amigos/apollo' y cámbiate al directorio de casa del usuario apollo:



#mkdir -p /users/amigos/apollo

#cd /home/fridaka





3.17 Copia los archivos del usuario al nuevo directorio:



#find . -print | cpio -pdmv /users/amigos/apollo



3.18 Elimina los archivos del directorio /home/fridaka



#cd ..

#rm -rf fridaka





3.19 Finalmente cambia de dueño y grupo al nuevo directorio '/users/amigos/apollo':



#cd ~apollo

#chown apollo .

#chgrp 777 .



4.- Eliminación o Baja definitiva de una cuenta de usuario.



Otra de la actividades más comunes de un administrador es la de dar de baja a un usuario. Para realizar ésta tarea sigue los siguientes pasos.



4.1 Crea un usuario temporal que tenga login 'dummy' y asignale password. No importa el grupo al que pertenezca.



4.2 Desde una sesión como 'root' enviále una carta (e-mail) de bienvenida al usuario 'dummy'.

4.3 Abre a una sesión como el usuario 'dummy', y ejecuta el siguiente comando. Anota la salida del comando.



$ grep "^dummy:" /etc/passwd







4.4 Revisa el archivo de correo del usuario 'dummy', ejecuta el siguiente comando:



#ls -lia /usr/spool/mail/dummy



4.5 Cierra la sesión del usuario 'dummy', y entra a sesión como 'root'. Para borrar del sistema los archivos del usuario 'dummy' utilizando el siguiente comando:



# find / -user dummy -print -exec rm -f {} \;





4.6. Finalmente, edita el '/etc/passwd' y borra la línea (registro) del usuario 'dummy'. También edita el '/etc/group' y borra el UID del usuario 'dummy' de la lista del grupo al que pertenece.



4.7 Anota los comandos y/o pasos que seguiste para comprobar que el usuario 'dummy' ha sido dado de baja definitivamente.



5.- Configuración de Cuota



Al momento de tener a los usuarios en el sistema, no queremos que ocupen todo el espacio en disco, por lo cual el administrador decidirá cuanto espacio en disco le proporcionará a cada usuario o a un grupo, por ello hay un programa que facilita esta tarea, llamado quota, el cual especifica la cantidad de espacio en disco a utilizar y los inodos que pueden crear, lo cual es bastante bueno, ya que los usuarios pueden:



i) Cometer errores al compilar, por lo cual crean un archivo de error (denominados core)

ii)Archivos que bajan de Internet, etc.



Antes que nada los usuarios se deben crear en otra partición diferente al del sistema (" / "), con ello logramos 2 cosas:



i) Si le pasa algo al sistema ó simplemente queremos actualizarlo, los archivos de usuarios no les pasará nada.

ii) Activar el programa quota.



5.1 Saber donde están ubicados los usuarios. Un ejemplo es que los usuarios se encuentran en el direcotrio /users ó en la particón /dev/hda3 y lo podemos ver con el sig. comando:



#df

Filesystem 1024-blocks Used Available Capacity Mounted on

/dev/hda2 495746 318861 151282 68% /

/dev/hda3 405963 33821 351176 9% /users

/dev/hda4 949529 170803 729672 19% /export



5.2 Depués de localizar en que directorio(s) están los usuarios, en el archivo /etc/fstab tenemos que agregar una palabra:



/dev/hda2 / ext2 defaults 1 1

/dev/hda1 swap swap defaults 0 0

/dev/fd0 /mnt/floopy ext2 noauto 0 0

/dev/hda3 /users ext2 defaults 1 1

none /proc proc defaults 0 0



Agregando la palabra en la partición donde están los usuarios:



/dev/hda2 / ext2 defaults 1 1

/dev/hda1 swap swap defaults 0 0

/dev/fd0 /mnt/floopy ext2 noauto 0 0

/dev/hda3 /users ext2 defaults,usrquota 1 1

none /proc proc defaults 0 0

donde la palabra usrquota, es para darle a los usuarios cuota, si queremeos darle a un grupo cuota, se pondrá grpquota, si queremos ambos se pondrá:



/dev/hda2 / ext2 defaults 1 1

/dev/hda1 swap swap defaults 0 0

/dev/fd0 /mnt/floopy ext2 noauto 0 0

/dev/hda3 /users ext2 defaults,usrquota,grpquota 1 1

none /proc proc defaults 0 0



5.3 Crearemos un archivo y darle el permiso correpondiente donde guardará los registros de los usuarios



#touch /users/quota.user

#chmod 600 /users/quota.user



5.4 Reinicie la maquina, con ello obtenemos que lea este archivo y empiece el comando quotaon



5.5 Después de reiniciar la maquina podemos asignarle el espacio al usuario con edquota:



#edquota -u login

Quotas for user login:

/dev/hda3: blocks in use: 3872, limits(soft=0, hard=0)

inodes in use: 375, limits(soft = 0, hard = 0)



Donde la información esta como:



i)Después de que usuario esta dandole el espacio correspondiente, está en que partición se lo está asignando.

ii) El no. de bloques usados.

iii) Los limites de cuota inferiores y superiores (soft y hard, respectivamente).

iv) El mismo formato pero ahora para los inodos.



Para asignarle el valor correspondiente se pone en kbytes (en soft y hard). Modifica al usuario y anota el resultado.

















5.6 Ahora para comprobar ó el usuario quiere ver su cuota, utilicemos el comando quota -v login para ver el espacio ocupado del usuario:



#quota -v login



Anota el resultado.











Con lo anterior vemos que es muy fácil darle cuota a los usuarios y mantener controlados a los usuarios, no permitiendo llenar el disco por unos ó varios usuarios.



5.7 Miscelaneas.- Con el comando quota -v login vemos a un usuario en particular, pero si quiero ver a todos los usuarios usaremos repquota -a:



#repquota -a



Anota el resultado.











































También se puede actualizar el archivo /users/quota.user, cuando se da de alta un usuario con quotacheck -a.



#quotacheck -a



Anota el resultado.









Ahora repite el comando repquota:

#repquota -a

Anota el resultado.





















6.- Ultimo punto

6.1 Crea un nuevo grupo que tenga el GID 550 y el nombre que gustes.



6.2 Registra a todos los integrantes de tu equipo, asignandolos al grupo que creaste en el inciso anterior. Modifica el GECOS de los usuarios, escribiendo el nombre completo y teléfono.



CONCLUSIONES:



Realiza un balance de los ejercicios desarrollados, anotando los puntos más destacados de cada uno, anexando tus comentarios personales.



anterior siguiente