El n�cleo de Linux en s� trata a los usuario como meros n�meros. Cada usuario es identificado por un �nico numero entero, el uid (identificaci�n de usuario) esto debido a que un numero es mas f�cil y r�pido de procesarlo que un nombre para un sistema. Una base de datos o tabla asociada a dichos UIds y GIds, por fuera del n�cleo asigna un nombre textual, un �nico nombre de usuario para cada id. La base de datos que tambi�n contiene informaci�n adicional.
Para crear un usuario, necesita agregar informaci�n sobre el usuario a la base de datos (ver arriba) y crear un directorio "inicio" (directorio principal del usuario) para �l. Tambi�n puede ser necesario educar al usuario, y configurar un ambiente conveniente para �l.
La mayor�a de las distribuciones de Linux cuentan con programas para crear cuentas. Existen muchos de estos programas disponibles [32]. Contamos con dos comandos alternativos que son adduser y useradd, as� tambi�n como con herramientas gr�ficas [33]. Cualquiera sea el programa, resulta muy poco el trabajo manual por hacer. Aun cuando los detalles son muchos e intrincados, estos programas hace parecer todo trivial. Como sea, en la secci�n “Crear un usuario a mano” se describe c�mo hacerlo a mano.
La base de datos b�sica de usuarios en un sistema Unix es un archivo de
texto /etc/passwd
(llamado el archivo de
contrase�as), que lista todos los nombres de usuarios validos y su
informaci�n asociada. El archivo tiene una l�nea por usuario, y es dividido en
siete colon-delimited campos.
nombre de usuario
contrase�a, de modo encriptado
Identificaci�n (Id) de numero de usuario
Identificaci�n (Id) de numero de grupo
Nombre completo u otra informaci�n descriptiva de la cuenta
Directorio Inicio (directorio principal del usuario)
Interprete de comandos (programa a ejecutar al ingresar al sistema)
El formato esta explicado con mas detalles en la pagina de manual del comando
passwd
.
Cualquier usuario del sistema puede leer el archivo de contrase�as, para por ejemplo conocer el nombre de otro usuario del mismo. Esto significa que la contrase�a (el segundo campo) esta tambi�n disponible para todos. El archivo de contrase�as encripta las contrase�as, as� que en teor�a no hay problema, pero dicho encriptado puede ser quebrado, sobre todo si dicha contrase�a es "d�bil" [34]. Por lo tanto no es buena idea tener las contrase�as en el archivo de contrase�as.
Muchos sistemas GNU/Linux tienen contrase�as
"sombra".Esto es una alternativa en la manera de
almacenar las contrase�as: las claves encriptadas se guardan en un archivo
separado /etc/shadow
que solo puede ser le�do por el
administrador del sistema. As� el archivo /etc/passwd
solo
contiene un marcador especial en ese segundo campo. Cualquier programa que
necesite verificar un usuario o uid, pueden tambi�n acceder al archivo
shadow/sombra. Significa tambi�n que programas normales que solo usan otros
campos del archivo de contrase�as, no pueden acceder a las contrase�as.
Paralelamente tambi�n existe /etc/gshadow
para cierta
informaci�n seg�n grupos [35]
En la mayor�a de los sistemas, no importa cuales son los n�meros de usuario y grupo, pero si usa un sistema de archivos de red [36], necesitar� que sean los mismo n�meros de identificaci�n de usuario (uid) y grupo (gid) en todos los sistemas. Esto es porque el sistema de archivos de red tambi�n identifica al usuarios (nombre de usuario) con su ++respectivo++ numero de identificaci�n de usuario (uid).
Si esta usando un sistema de archivos de red NFS [37], tiene que inventar un mecanismo para sincronizar la informaci�n de cada cuenta. Una alternativa es el sistema NIS [38](ver Gu�a de Administraci�n de Redes con Linux, Cap�tulo 13)
Como sea, trate de evitar re-usar n�meros de identificaci�n de usuario (UIds) y nombres de usuario exactamente iguales entre si entre sistemas, porque el nuevo due�o de ese numero de identificaci�n de usuario o nombre de usuario puede tener (o tendr� seguro?) acceso a los archivos o correos-e del anterior due�o.
/etc/skel
[39]Cuando el directorio Inicio para un nuevo usuario es creado es
inicializado por medio del directorio /etc/skel
. El
administrado del sistema puede crear archivos dentro de
/etc/skel
que proveer�n un amable entorno predeterminado
para los usuarios. Por ejemplo, el puede crear un
/etc/skel/.profile
que configura las variable de entorno
de alg�n editor mas amigable para los usuarios nuevos.
Como sea, usualmente lo mejor es conservar dicho directorio lo mas peque�o
que sea posible, ya que en el futuro ser� imposible actualizar los archivos de
los usuarios. Por ejemplo, si cambia el nombre de un editor a uno mas amigable,
todos los usuarios tendr�n que editar su archivo .profile
.
El administrador del sistema podr�a tratar de hacer esto autom�ticamente con un
script
[40], pero
casi con seguridad resultar� que se corrompa el archivo de
alguno. Siempre que sea posible, es mejor poner lo que sea configuraci�n global
dentro de archivos globales, como es /etc/profile. De esta manera es posible
actualizarlo sin corromper la configuraci�n de ning�n usuario.
Para crear una nueva cuenta a mano, sigue estos pasos:
Editar /etc/passwd
con
vipw y agregar una nueva linea por cada nueva cuenta.
Teniendo cuidado con la sintaxis. No lo edite directamente
con un editor! Use vipw que bloquea el
archivo, as� otros comandos no tratar�n de actualizarlo al mismo tiempo.
Deber�a hacer que el campo de la contrase�a sea `*
',
de esta forma es imposible ingresar al sistema.
Similarmente, edite /etc/group
con
vigr, si necesita crear tambi�n un
grupo.
Cree el directorio Inicio del usuario con el comando mkdir.
Copie los archivos de /etc/skel
al
nuevo directorio creado
[41]
Corrija
la pertenencia del due�o y permisos con los comandos
chown y chmod (Ver paginas de
manual de los respectivos comandos). La opci�n -R
es
muy �til. Los permisos correctos var�an un poco de un sitio a otro, pero
generalmente los siguientes comandos har�n lo correcto:
cd /home/nuevo-nombre-de-usuario
chown -R nombre-de-usuario.group .
chmod -R go=u,go-w . chmod go= .
Asigne una contrase�a con el comando passwd
Despu�s de asignar la contrase�a del usuario en el ultimo paso, la cuenta funcionara. No deber�a configurar esto hasta que todo lo dem�s este hecho, de otra manera el usuario puede inadvertidamente ingresar al sistema mientras copias los archivos de configuraci�n de su entorno de trabajo.
A veces es necesario crear cuentas "falsas" [42] que no son usadas por personas. Por ejemplo, para configurar un servidor FTP [43] an�nimo (as� cualquiera podr� acceder a los archivos por �l, sin tener que conseguir una cuenta de usuario en el sistema primero) podr�a crear una cuenta llamada "ftp". En esos casos, usualmente no es necesario asignar una contrase�a (el ultimo paso de arriba). Verdaderamente, es mejor no hacerlo, para que nadie puede usar la cuenta, a menos que primero sea root/cuenta administrador, y as� convertirse en cualquier usuario.
[32] En Internet puede comenzar buscando en: http://sourceforge.com y http://freshmeat.com
[33] GUI: Grafic User Interface. En KDE dispone de Kuser. En Gnome ?XXX?
[34] Estad�sticamente, seg�n el estudio de los m�todos para romper claves encriptadas, se ha establecido que aumenta significativamente la seguridad una suma de caracter�sticas: tener mas de 6 caracteres, combinar letras may�sculas y min�sculas, a la vez que intercalar tambi�n n�meros.
[35] Si, esto significa que en el archivo de contrase�a contiene toda la informaci�n sobre un usuario excepto su contrase�a. Una maravilla del desarrollo.
[36] NFS: Network file System
[37] NFS: Network file System
[38] NIS: Network Information Service
[39] Apocope de la palabra inglesa skeleton, que en castellano significa esqueleto, asiendo referencia al funci�n de estructura.
[40] Lenguaje de programaci�n cuyo c�digo no necesita ser compilado para ser ejecutado, por lo general conjunto de instrucciones a ejecutar por el interprete de comandos (Shell). Se llamar tambi�n script a un programa o fragmento de c�digo escrito en alg�n lenguaje de scripts, interpretados por ejemplo por Perl (Mundo Unix y en general para todas las dem�s plataformas) Visual Basic Script (Microsoft Windows) JavaScript (Todas las plataformas). Ver tambi�n "Expresiones regulares".
[41] cp /etc/skel/* /ruta (donde ruta ser� por convenci�n /home/"nombre de usuario"
[42] �Usuarios Surrealistas?
[43] FTP: File transfer Protocol.