Articulo IV de GNU/Linux

Si has creado algún documento interesante, este es su sitio

Moderador: Moderadores

Articulo IV de GNU/Linux

Notapor 10010 » Lun Mar 20, 2006 2:07 am


GNU/LINUX
Articulo IV
La declaración de amor.
Realizado por: 10010.


Descarga: GNU Linux Básico IV

Comenzamos con la diversión:

Administración de cuentas de usuarios; creando y eliminando cuentas.

Presentación.

Un saludo a todos los curiosos de este hermoso universo. Hoy continuaremos avanzando con nuestro hermoso GNU/Linux y nos adentraremos en el fantástico terreno de la administración de usuarios; crearemos usuarios nuevos con sus respectivas claves de acceso y les daremos un directorio de trabajo, todo esto utilizando únicamente a nuestra hermosa shell.

En el articulo anterior aprendiste a cambiar los propietarios y permisos de los archivos, hoy completaras tus conocimientos creando y eliminando usuarios. Cuando termines de leer este articulo podrás decir que ya sabes realizar la tarea mas básica de la administración multiusuario. Es hora de ejercitar tu dedos :)

Administración de usuarios.

Sin duda alguna, la administración de usuarios es la tarea mas común de cualquier administrador de sistemas, pero... ¿que es la administración de usuarios?, simplemente es la capacidad que tiene el administrador de un sistema de crear, modificar o eliminar cuentas de usuarios. Aaaaa, perfecto... pero... ¿que es una cuenta de usuario?, es un conjunto de información relativa a una persona, la cual le permitirá acceder al sistema.

¿Como se almacena la información de los usuarios dentro del sistema?

Cada usuario del sistema debe poseer un nombre de usuario (login) y una clave (password) para poder acceder al mismo. El nombre del usuario, es decir, el login, debe de ser único, por tal motivo distintos usuarios no podrán tener el mismo login. Igualmente la clave (password) deberá ser única para cada usuario. Toda la información relativa a los usuarios se encuentra almacenada en el archivo; “/etc/passwd”. Veamos los permisos del mismo.

Imagen

ahora observemos el contenido del mismo utilizando el comando “cat /etc/passwd”; la salida del mismo sera lago como esto:

Imagen

de toda esta ensalada de números y letras, lo único que nos interesa son las 2 ultimas lineas... pero... ¿por que? pues hombre, este articulo es sobre la administración de usuarios y en este sistema solo hay dos; seneka y ada (las 2 ultimas lineas). Lo demás, quizás lo explique algún día :), ya sabes busca en www.google.com.

Teniendo en mente las 2 ultimas lineas de la imagen anterior, analizaremos el formato de las mismas:

usuario:password:id_usuario:id_grupo:comentario:directorio_home:comando

Cada campo significa lo siguiente:

usuario: Es el login (nombre) del usuario y deberá ser distinto para cada uno.

password: Es la clave del usuario ENCRIPTADA (¿por esta razón hay una “x”? bueno, luego te lo explico :)
id_usuario: Es un numero que utiliza el S.O para identificar al usuario. Cada numero es único para cada usuario.

id_grupo: Es un numero que identifica al grupo al que pertenece el usuario ante el S.O. Cada numero es único para cada grupo.

comentario: Puede ser el nombre real del usuario o cualquier otra cosa :)

directorio_home: Es el directorio donde cada usuario almacenara sus respectivos datos.

comando: Es el comando que se ejecutara cuando el usuario acceda al sistema, normalmente es la hermosa shell.

Hablando de seguridad sobre los nombres de usuarios y sus claves.

Si eres de esos que no se conforman con leer solo los artículos de “10010” y les gusta analizar varias escrituras referentes al mundo de GNU/Linux, lo mas probable es que observes similitudes en relación a como deben de crearse los nombre de usuarios, normalmente se recomienda que los nombres de usuarios estén formados por 8 caracteres como máximo. A pesar de que las letras mayúsculas, los subrayados y otros caracteres especiales están permitidos, no se recomiendan su uso. Esto no es una regla obligatoria, mas bien es una costumbre nacida de las experiencias personales de cada quien (la practica), lo cual se a convertido en una costumbre en la administración de sistemas UNIX-Like.

Con respecto a las claves (passwords) hay cosas mas importantes que explicar. Lo mas probable es que varios lectores de este articulo les haya llamado la atención encontrarse con una “x” en el campo password de la imagen anteriormente mostrada. Incluso quizás alguien haya pensado que “10010” ha puesto deliberadamente una “x” en lugar de la clave encriptada “por si hay un malintencionado lector”, pues en realidad esa no es la razón. En primer lugar, todo sistema GNU/Linux estándar guarda la clave encriptada en el campo password. Este campo puede ser modificado mediante la invocación del comando “passwd” por el administrador, para cambiar la clave de cualquier usuario o por cualquier usuario que desee cambiar su propia clave. Pero como nunca falta el bendito pero, nos encontramos con un gran problema; el archivo “/etc/passwd” tiene permiso de lectura para todos los usuarios del sistema. Muchos de ustedes dirán; “pero cual es el problema, de todos modos la clave se mostrara encriptada”. No seas ilus@, ya es hora de que despiertes. Así como la clave ha sido encriptada, así mismo se puede desencriptar, utilizando algunos simples métodos y programas que se consiguen en el hermoso hotel telaraña. Como ejemplo están todos los campeones de Juanito el Ripeador, sino sabes sobre el tema www.google.com.

Algunos sistemas UNIX, intentando evitar este problema, almacenan las claves encriptadas en el siguiente archivo; “/etc/shadow” el cual solo es accesible para el administrador y el grupo shadow. Sabrás de la existencia de un archivo “/etc/shadow” en tu sistema si en “/etc/passwd” encontramos una “x” en el campo password. De lo contrario observaremos la clave encriptada en vez de la “x”. Algo muy malo :( .... Puedes observar la clave encriptada de cada usuario utilizando “cat /etc/shadow”. Veamos un ejemplo:

Imagen

puedes observar la clave encriptada en el campo password :)

NOTA: no intentes NUNCA editar/cambiar los passwords de los archivos “/etc/passwd”, “/etc/shadow” a mano. Estos solo se pueden modificar mediante el comando “passwd”, el cual analizaremos mas adelante.

Creando nuestro primer usuario.

Antes de comenzar a divertirnos es aconsejable crear unas copias de seguridad, recuerden que somos NOVATOS y podemos dañar algo :(

Imagen

Esto ya deberías de entenderlo con mucha facilidad, pero como soy una chica terca te lo voy a explicar; primero utilizamos el comando “su” para volvernos administrador, luego creamos un directorio llamado “bck” utilizando el comando “mkdir”. Utilizamos el comando “cp -v” para copiar el archivo “/etc/passwd” al directorio “bck” y hacemos lo mismo con “/etc/shadow” y “/etc/group”. Luego listamos el contenido del directorio “bck”. Para los que están mas atentos, el asterisco (*); “cp -v /etc/passwd* bck” significa; copia TODO lo que se encuentre en “/etc/passwd” a bck.

En caso de que algo saliera mal, bastaría con teclear lo siguiente:

Imagen

Bueno entremos en materia... Cuando llega la hora de crear nuevos usuarios, siempre tendremos la posibilidad de hacerlo de varias maneras; utilizando las herramientas gráficas que vienen en las distintas distribuciones de GNU/Linux, utilizando scripts o cambiando manualmente todo lo necesario. Como nosotros queremos conocer que hace nuestro sistema cuando creamos un nuevo usuario, vamos a utilizar el modo mas engorroso y divertido, es decir, utilizaremos nuestros dedos :)

Los pasos para crear un nuevo usuario utilizando los dedos son los siguientes:

1.Añadir la información adecuada del nuevo usuario al archivo “/etc/passwd”.
2.Crear el directorio “home” para el nuevo usuario y asignarle como propietario al mismo usuario.
3.Copiar los archivos de configuración necesarios al directorio del usuario y asignar los permisos y propietarios adecuados.

Añadiendo información.

Antes de comenzar vamos a visualizar lo que haremos. Primero que todo, vamos a crear el usuario “mary”. A este usuario le asignaremos la clave “123mary123” y le crearemos su directorio “home”, el cual sera “/home/mary”.

Siguiendo los 3 pasos mostrados anteriormente, lo primero en hacer sera añadir como “root” una nueva linea a “/etc/passwd”. Esta tarea la realizaremos utilizando un simple editor de texto, como el “emacs”, “vi” o cualquier otro. Deberemos añadir la siguiente linea:

mary: :1066:100: :/home/mary:/bin/bash

Analicemos la linea anterior; “mary” sera el nombre del usuario. El campo del password queda vació (el espacio en blanco entre los dos puntos (: :)). ¿Por que? por la sencilla razón que el password no se puede cambiar editándolo, sino utilizando el comando “passwd”. id_usuario sera “1066” o cualquier otro que este por encima de 1000 y que no este siendo utilizado por otro usuario. id_grupo sera “users” representado por el numero “100”(no lo cambies). El directorio home sera “/home/mary” y finalmente al entra al sistema con este usuario se ejecutara una “bash shell”.

Veamos un ejemplo:

Imagen

utilizamos el comando “su” para volvernos administrador ( es la única forma de editar el archivo “/etc/passwd”). Luego utilizamos “emacs” para invocar (abrir) el editor de texto.

Imagen

Esta es una versión del editor “emacs” de Richard Stallman, selecciona open (abrir) luego el editor te mostrara al final de su ventana “Dired (directory):” tu tendrás que escribir “/etc”(por todos los cielos, no coloques las comillas), fíjate en la ultima linea de la imagen anterior, luego presiona la tecla ENTER y te aparecerán TODOS LOS ARCHIVOS DEL DIRECTORIO “/etc”. Este no es un articulo sobre el editor “emacs”, así que tendrás que aprender a utilizarlo tu sol@. Buena suerte :) nos ubicamos sobre el archivo “passwd” y luego ENTER.

Imagen

Imagen

En este momento añadimos los datos de nuestro nuevo usuario al final del archivo “/etc/passwd”, los cuales son:

mary: :1066:100: :/home/mary:/bin/bash

luego salva (save) el documento. Observa los datos de los 3 usuarios al final de la imagen anterior “seneka, ada, mary”, la diferencia mas importante es que el nuevo usuario (“mary”) tiene el campo del password vació, mientras que los otros 2 tienen una “x” :)

Creando el directorio para el usuario mary.

Esto ya lo hemos practicado, así que no deberías de tener ningún problema.

Imagen

Bueno, creamos el directorio “/home/mary” con el comando “mkdir” y le asignamos como propietario a “mary” del grupo “users” :)

Ahora debemos copiar los archivos de configuración al directorio del usuario, es decir a “/home/mary”. Los archivos de configuración suelen estar en “/etc/bashrc” y “/etc/profile”. Un ejemplo seria el siguiente:

Imagen

Obsérvese que los archivos “.bashrc” y “.profile” comienzan con un punto, esto lo que quiere decir es que ambos archivos los dejamos OCULTOS. No te olvides de cambiar los propietarios, fíjate de la imagen.

Añadiendo el password al nuevo usuario.

A continuación añadiremos el password. En un sistema UNIX estándar bastaría con:

Imagen

como puedes observar utilizamos el comando “passwd” su sintaxis es la siguiente:

“passwd <nombre_usuario>”

donde “nombre de usuario”, es el usuario al que cambiaremos el password. Luego nos solicita el nuevo password (New UNIX password), lo escribiremos a ciegas y presionaremos ENTER, luego nos solicita que reescribamos el password para confirmar (Retype new UNIX password), lo escribiremos a ciegas y presionaremos ENTER.

Si todo a salido bien veremos el siguiente mensaje; “password updated successfully”, en caso contrario;“Authentication failure”, este es mi caso :(

Si tu caso es igual a “Authentication failure”, no te preocupes, vamos a buscar una solución >:)

Lo primero que debemos hacer, es observar si el archivos “/etc/passwd” fue editado correctamente con los datos del nuevo usuario, es decir:

mary: :1066:100: :/home/mary:/bin/bash

Imagen

Imagen

Si todo esta correcto tendremos que observa el archivo “/etc/shadow” y así verificar si nuestro nuevo usuario se ha registrado en el, en caso contrario deberemos de realizar una edición del mismo. La edición del archivo “/etc/shadow” es sumamente experimental, es decir, es como si yo te dijera “voy a modificar esto para ver que sucede”. Es hora de pensar :m ubicamos al archivo “shadow” con el editor emacs y lo abrimos para observarlo y editarlo, la ultima linea resaltada nos muestra que solo hay un usuario, el cual es “seneka” y observamos su password ENCRIPTADO. Pero el usuario “mary” no aparece por ningún lado.... :m .... Que tal si colocamos al nuevo usuario por nosotros mismos, solo para ver que sucede >:)

Imagen

Bueno, como nosotros no sabemos cual es el método que utiliza nuestro Linux para encriptar el password, sencillamente lo dejamos vacío. Luego he copiado una serie de números (13036:0:99999:7:::), los cuales son los mismos que tiene el usuario “seneka”, probemos nuevamente a añadirle un password al usuario “mary”

Imagen

“all authentication tokens updated successfully”, BINGO... :) Pero antes de gritar victoria debemos de verificar los cambios realizados por el sistema en los archivos “/etc/passwd” y “/etc/shadow”

Imagen

Hmmm, muy interesante el archivo “/etc/passwd”, el sistema le a colocado al usuario “mary” una “x” en el campo “password”, algo que nosotros habíamos dejado vacío. Ahora observemos el archivo “/etc/shadow”:

Imagen

Excelente, el nuevo usuario “mary” ya posee su password encriptado. Y si observamos bien, el sistema no solo a colocado el password encriptado en el lugar que habíamos dejado vacío, sino que también a modificado el numero que habíamos colocado; “13036” por “13037”, el resto si lo dejo igual :)

Ahora solo queda iniciar sección con el usuario “mary”, para así verificar que todo haya salido bien..... Todo a quedado perfecto. CIERTO.

En algunas distribuciones de GNU/Linux podremos utilizar el comando “adduser” para crear un nuevo usuario sin necesidad de editar ningún archivo a mano, ya que nuestro Linux realizara todo el trabajo sucio por nosotros. Muchos se preguntaran; ¿Por que diablos entonces tenemos que crear usuarios editando los archivos “/etc/passwd” y “/etc/shadow” si el comando “adduser” lo hace por nosotros? la respuesta es muy simple......, es la única forma de conocer el funcionamiento de nuestro sistema. Aquí lo importante no es COMO SE HACEN LAS COSAS, sino mas bien COMPRENDER COMO FUNCIONAN LAS COSAS.

No te conformes con estar en la superficie del mar, busca comprender las profundidades del mismo, ya que es allí donde encontraras el verdadero conocimiento.

La sintaxis del comando “adduser y userdel” es la siguiente:

“adduser <usuario>” crear un nuevo usuario.
“userdel <usuario>” elimina un usuario existente.

Donde “usuario”, es el usuario a crear o eliminar. No te colocare un ejemplo, mas bien dejare que lo hagas por ti mismo, en caso de que tu GNU/Linux no “reconozca” los comandos “adduser y userdel” ---> www.google.com.

Comprendiendo a los grupos de usuarios.

Cada usuario del sistema debe de pertenecer a un grupo y un grupo puede gestionar los permisos de varios usuarios del sistema simultáneamente, de este modo resulta muy cómodo manejar sistemas en los que existen muchos usuarios.

La información relativa a los grupos de usuarios se encuentra en “/etc/group”. Vemos un ejemplo:
la linea resaltada en color amarillo (users:x:100:mary) es el grupo que le colocamos al usuario “mary”, recordemos:

Imagen

mary: :1066:100: :/home/mary:/bin/bash

el numero “100” representa al grupo users. Si colocáramos otros numero dejaría de representar a ese grupo. Pero sera mas sencillo de comprender si lo explicamos a fondo.

Analicemos la siguiente linea:

users:x:100:mary

Cada linea se interpreta de la siguiente manera:

“nombre_grupo:password_grupo:id_grupo:usuarios_pertenecientes_al_grupo”

nombre_grupo: El nombre que deseamos darle al grupo.

password_grupo: La clave que deseamos darle al grupo.

id_grupo: Numero que identifica al grupo ante el S.O

usuarios_pertenecientes_al_grupo: Lista de todos los usuarios que pertenecen a ese grupo.

Crear un nuevo grupo y añadirle un usuario es algo muy simple, solo deberemos de editar el archivo “/etc/group” y colocar las entradas necesarias.

También puedes probar con los siguientes comandos “addgroup y delgroup”. La sintaxis es la siguiente:

“addgroup <grupo>” crea un nuevo grupo.
“delgroup <grupo>” elimina un grupo existente.

Donde “grupo”, es el nombre del grupo a crear o eliminar.

Borrando usuarios o grupos.

Eliminar un usuario editando los archivos “/etc/passwd, /etc/shadow, consistirá básicamente en eliminar su directorio “/home” y borrar las entradas necesarias en los archivos de configuración. En caso de querer eliminar un grupo, bastara con editar la linea necesaria en el archivo /etc/group”. También podrás utilizar los comandos dados anteriormente. PRACTICA :)

Conclusiones.

Todas las tareas explicadas anteriormente las realizan programas gráficos que nos facilitan la vida, estos programas varían dependiendo de la distribución de GNU/Linux que tu utilices. Recuerda que las interfaces gráficas son sumamente útiles para todas esas tareas que nos vemos obligados a repetir día tras día, mientras que la shell y la edición de archivos de configuración a mano, son unos de los muchos templos OCULTOS del conocimiento. Se un poco mas curioso cada día :)

Hoy comprendiste todo lo que hace tu sistema cuando creas un nuevo usuario o grupo, mañana conocerás algo mas. ES UNA PROMESA.

Articulo realizado por:
10010.
"EvaKorvus y ??????_ , .... Nunca los perdonare, para mi..... no existen".
**********************************************************
Nuestro himno: una melodía
Nuestra religión: el placer
Nuestro símbolo: un embudo
Avatar de Usuario
10010
:-D
:-D
 
Mensajes: 71
Registrado: Lun Mar 06, 2006 6:25 pm
Ubicación: Tierra Wadalbertiana, hotel telaraña, puerta 10010

Notapor NeTTinG » Lun Mar 20, 2006 2:13 am

Gracias de nuevo!! ;)

SALU2
| Blog NeTTinG | Proyecto Destripando iOS |
_____________________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. (Albert Einstein)
Todos recaerán en la necesidad de conocer la única y presumible verdad que el gran embudo emana. (Sire Netting)
Avatar de Usuario
NeTTinG
Wadalbertita
Wadalbertita
 
Mensajes: 6270
Registrado: Mar Sep 20, 2005 5:54 pm
Ubicación: Bajo la trampilla del décimo primer piso.

Notapor Raiden » Lun Mar 20, 2006 2:27 am

Muches zenkius....a este paso los voy a encuadernar :-)
Avatar de Usuario
Raiden
:-)
:-)
 
Mensajes: 31
Registrado: Mié Nov 23, 2005 3:19 am
Ubicación: Enrutado

Notapor Popolous » Lun Mar 20, 2006 2:28 am

Gracias mil ;).

¡Saludos!
A. Einstein, cabello y violín,
hacemos nuestra última reverencia;
aunque sólo comprendido por dos personas,
él mismo y, a veces, Dios.

Jack C. Rosseter

"Sin direccionamiento Físico, no hay direccionamiento Lógico"

Vikingo dixit
Popolous
Wadalbertita
Wadalbertita
 
Mensajes: 1946
Registrado: Mié Ene 26, 2005 10:40 pm
Ubicación: E=mc^2


Volver a Faq

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados