jueves, 25 de junio de 2009

OpenSolaris – Gestión de Usuarios

Las cuentas de usuario para el acceso al sistema no difieren en Solaris de otros sistemas Linux y Unix.

1. Ficheros de configuración

Los ficheros de configuración contienen la información sobre las cuentas de usuario, los grupos y contraseñas. Los ficheros son:

/etc/passwd

Cada una de las líneas del fichero contiene la información de un usuario.

Aulaunix:x:65535:1:Nombre y apellidos:/export/home/aulaunix:/bin/bash


IDlogin:x:UID:GID:comentario:home_directory:login_shell

Estos campos son:

· IDlogin: es el identificador con el que hacemos login en el sistema debe de ser unico.

· Contraseña: la contraseña representada por x es almacenada en el fichero /etc/shadow

· UID: esta representado por un numero superior a 0 ya que 0 pertenece al usuario root. Los números del 1 al 99 están reservados para usuarios administradores del sistema. Para el resto de usuarios se utiliza el rango del 100 al 60000. Se reserva para el usuario nobody el 60001 y para el usuario noaccess el 60002.

· GID: numero mayor de 0 que representa el grupo primario al que pertenece el usuario.

· Comentario: Nombre completo del usuario.

· Directorio home (home_directory): ruta absoluta del directorio home para el usuario.

· Shel (login_shell): Define la shell para el usuario (sh, ksh, csh, etc...)

/etc/shadow

Contiene las contraseñas de las cuentas de usuario, al ser un fichero que puede comprometer la seguridad del sistema solo el usuario root debe de tener permisos de lectura para el archivo.

/etc/group/

Todos los usuarios del sistema tienen que pertenecer a un grupo principal definido en el fichero /etc/passwd. Adicionalmente un usuario puede pertenecer a mas grupos disponibles en el sistema denominados grupos secundarios definidos en el fichero /etc/group.

2. Gestión de usuarios

Crear usuario

El comando empleado para crear usuarios es useradd con la siguiente sintaxis:

useradd [–u uid] –g [gid] –G [gid1,gid2, …] [-d dir] –m [–s shell] [–c comment][–e expire] usuario

Los parámetros admitidos son los siguientes:

· -u define un id único para el usuario.

· -g define el grupo primario al que va a pertenecer el usuario.

· -G define los grupos secundarios a los que va a pertenecer el usuario.

· -d define el path absoluto para el home del usuario.

· -m fuerza la creación del home del usuario si no existe.

· -s define la shell para el usuario, por defecto asigna /bin/sh

· -c establece el nombre completo del usuario o cualquier otro comentario.

· -o permite la duplicación del uid del usuario.

· -e fecha de expiración de la cuenta.

· -f tiempo máximo admitido de inactividad para la cuenta. Si el usuario no entra en el sistema en el tiempo establecido la cuenta se bloquea.

Ejemplo de uso de useradd:

Crear usuario:

El siguiente ejemplo muestra como crear el usuario aula, definir su UID manualmente e incluirlo en el del comando:

# useradd –u 109 –g alumnos –d /export/home/aulaunix

Modificar un usuario

Si ya tenemos un usuario en el sistema y deseamos cambiar alguna de sus propiedades utilizamos el comando usermod:

Ejemplo de uso del comando usermod:

Cambiamos el home del usuario dgalan a /home/nuevopath

#usermod –m –d /export/nuevohome dgalan

Este ejemplo implica que el nuevo home para el usuario dgalan es /export/nuevohome y mueve todos los archivos del viejo directorio al nuevo.

Borrado de usuarios

Borrar un usuario del sistema es muy sencillo utilizando el comando userdel.

userdel –r [usuario a borrar]

La opción –r elimina el home del usuario si este existe, pero no borra los archivos que el usuario pueda tener repartidos en otros directorios de la maquina.

Para eliminar todos los archivos del usuario deberíamos de recurrir a una búsqueda recursiva utilizando el comando find. Buscaríamos todos los archivos y directorios pertenecientes al usuario eliminado.

Ejemplo de borrado de usuario:

userdel –r dgalan


Cambiar la contraseña de usuario

Para cambiar la contraseña de un usuario recurrimos al comando passwd:

passwd [usuario].

3. Gestión de Grupos

Hemos visto como crear, modificar y eliminar usuarios. Ahora vamos a realizar el mismo recorrido pero esta vez gestionando grupos, para ello utilizaremos los comandos:

· groupadd

· groupmod

· groupdel

Añadir un nuevo grupo al sistema

Para añadir un nuevo grupo al sistema recurrimos al comando groupadd. El GID y el nombre del grupo han de ser únicos.

Ejemplo para añadir un grupo llamado admins:

# groupadd –g 124 admins
Lo verificamos:
# grep admin. /etc/group

Modificar un grupo

Podemos ejecutar cambios en un grupo existente con el comando groupmod que nos permite modificar el GID o renombrar un grupo.

groupmod –d [GID] –n [nuevo nombre de grupo]

Este primer ejemplo cambia el GID para el grupo opera:

#groupmod –g 125 opera

Y este otro ejemplo cambia el nombre al grupo opera por monitor
#groupmod –n monitor opera

Eliminar un grupo

Eliminar un grupo existente es muy facil con el comando groupdel; groupdel [nombre del grupo]

Ejemplo:

#groupdel admins

Cambio de grupos

Siempre que entramos al sistema lo hacemos perteneciendo al grupo principal, pero un usuario que pertenece a varios grupos puede necesitar operar en cada uno de ellos en diferentes momentos de su sesión en el sistema.

Para cambiar de grupo recurrimos al comando newgrp, veamos un ejemplo práctico:

Hemos entrado al sistema con el usuario dgalan tal como se puede ver en el siguiente ejemplo:
$ id

Uid=109(dgalan) gid=1(other)


Para pasarnos al grupo admins ejecutamos:
#newgrp admins
Lo verificamos:
$ id

Uid=109(dgalan) gid=1(other) gid=45(admins)

A partir de este momento todos los ficheros y directorio creados pertenecerán al grupo admins.


domingo, 14 de junio de 2009

Proceso de instalacion del SiStema Operativo Solaris





SECUENCIA DE BOOTEO EN SOLARIS

En este artículo veremos la secuencia de booteo del sistema operativo SOLARIS.
Proceso de arranque SPARC:

El proceso de arranque en una máquina SPARC sigue los siguientes pasos:

  1. Cuando pulsamos el botón de encendido de la maquina se inicia la PROM y esta ejecuta un POST que realiza unchequeo al hardware y la memoria del sistema. La PROM muestra en pantalla información sobre el modelo de máquina, versión de PROM, número de serie de la PROM y host ID. Una vez finalizado el chequeo boot identifica el dispositivo de arranque y carga bootblk situado en dicho dispositivo.
  2. bootblk tiene ahora la función de cargar el programa secundario de arranque llamado ufsboot que se encuentra en elsistema de ficheros ufs del dispositivo de arranque.
  3. Una vez cargado ufsboot en memoria este tiene la misión decargar el kernel en 32 o 64 bits.
  4. El kernel comienza a cargar los módulos y se apoya en ufsbootpara poder tener acceso a los ficheros. Cuando ha cargado losmódulos necesarios para poder montar el sistema de ficherosroot “/” descarga de memoria ufsboot. El kernel lee el fichero/etc/system que contiene parámetros de configuración queafectan directamente al comportamiento del sistema y sonmodificables. Una vez leído los parámetros de configuraciónarranca el proceso /sbin/init.
  5. El proceso init comienza la carga de los procesos que están declarados en el fichero /etc/inittab. En versiones anteriores aSolaris 10 se iniciaba la carga de los Runlevel. A partir deSolaris 10 se inicia el proceso /lib/svc/bin/svc.startd que ejecuta el proceso de arranque basado en SMF y que porcompatibilidad ejecutará o parará las aplicaciones incluidas en los directorios rc*d.
Proceso de arranque x86
En la arquitectura x86 como novedad se ha incorporado el gestor de arranque GRUB. Siguiendo el grafico de la figura 4.2 el proceso de arranque en una máquina con arquitectura x86 sigue los siguientes pasos:

  1. Se inicia la BIOS y realiza un chequeo hardware.
  2. La BIOS pasa el control al MBR que contiene la carga de la primera fase de GRUB que tan solo ocupa 512 bytes. GRUB llama a las siguientes fases hasta mostrar el menú de GRUB donde podemos elegir el kernel para Solaris 10.
  3. Elegimos el kernel y GRUB lo carga en memoria pasándole el control.
  4. El kernel comienza a cargar los módulos y se apoya en ufsboot para poder tener acceso a los ficheros. Cuando ha cargado los módulos necesarios para poder montar el sistema de ficheros root “/” descarga de memoria ufsboot. El kernel lee el fichero /etc/system que contiene parámetros de configuración que afectan directamente al comportamiento del sistema y son modificables. Una vez leído los parámetros de configuración arranca el proceso /sbin/init.
  5. El proceso init comienza la carga de los procesos indicados en el fichero /etc/inittab. En versiones anteriores a Solaris 10 se iniciaba la carga de los Runlevel. A partir de Solaris 10 se inicia el proceso /lib/svc/bin/svc.startd que ejecuta el proceso de arranque basado en SMF y que por compatibilidad ejecutara o parara las aplicaciones incluidas en los directorios rc*d.