|
Trataremos un tema de interés para muchos principiantes y para otros no tan
principiantes: los permisos y la administración de grupos y usuarios. GNU/Linux es un sistema multiusuario por lo cual es necesaria la administración de los permisos que le
otorgamos a los archivos y directorios de nuestro equipo.
¿Por qué es necesaria la administración de
grupos y usuarios?
Bueno, pongámoslo
de esta forma, no todos deben de tener
los mismos privilegios en un sistema informático, algunos tendrán acceso a determinados
recursos y otros no. Estos privilegios se dividen en
lectura, escritura y ejecución de un determinado archivo o recurso. Situémonos en un escenario: en un
entorno corporativo queremos que sólo la gerencia
tenga acceso al recurso compartido ventas, por lo
cual crearemos un grupo de usuarios llamado gerencia y asignaremos al directorio ventas permiso de
lectura y escritura para todo aquel que pertenezca
al grupo gerencia. De esta forma sólo los usuarios
pertenecientes a dicho grupo podrán leer o escribir
en él. Lo mismo ocurre con ciertos comandos del
sistema, como por ejemplo con el comando "TOP".
La ejecución de este comando por varios usuarios al
mismo tiempo puede comprometer la estabilidad del
sistema. Por la cual es conveniente otorgarle permisos de ejecución solamente al usuario root.
Dentro de un sistema encontraremos al menos
tres grupos de usuarios.
Usuarios Normales: son
usuarios con poca experiencia, propensos a causar problemas, sólo se les debe otorgar acceso
a los programas elementales para realizar su tarea
y desde luego un directorio de trabajo, o sea un home.
Usuarios del sistema: éstos son aquellos encargados de los demonios del sistema, esto quiere decir
que para algunos servicios es necesario que se cree
un usuario específico como por ejemplo mail, irc,
o incluso backup. Usuario ROOT: a éste se le conoce como DIOS. Como bien lo digo, tengan cuidado
con lo que hacen con este usuario ya que lo puede
todo. Este usuario es el equivalente al usuario admin
de otros sistemas.
Como podemos ver el mundo de "Unix" difiere del de otros sistemas operativos. Aunque ya estemos familiarizándonos un poco con esto
de los entornos Linux, en los Unix o Linux todo es un
archivo, incluso los dispositivos. Entonces todo es
un fichero y todo fichero tiene un dueno, por lo cual
cada fichero tendrá los privilegios suficientes para
que sea accedido o no por los demás.
Administrando usuarios y grupos
La administración de usuarios a través de la consola
es relativamente sencilla. Utilizaremos los siguientes comandos: useradd, user-mod y userdel. Con
estos comandos podremos dar de alta, modificar
y eliminar usuarios. Los datos de los usuarios se guardan en /etc/paswd. Todo usuario y grupo posee cierta información adjunta. Echémosle un vistazo a mi
archivo passwd.

Cada entrada está compuesta por los siguientes campos:
• Login= el nombre único de usuario en el sistema,
• Password= la contrasena con la cual el usuario
podrá acceder al sistema,
• UID= abreviatura de la identificación de usuario.
Toda combinación de usuario y UID debe ser única,
• GID= número que identifica al grupo al que pertenece el usuario,
• Comentario= comentario,
• Ruta de inicio= ruta absoluta del directorio de
trabajo,
• Shell= el programa que se ejecuta automáticamente cuando el usuario inicia sesión.
El intérprete de comandos.
Sin embargo la información de los grupos se almacena en el archivo /etc/group. Bien, y ¿por qué no husmear mi archivo groups? Listado 2.

Como podremos ver es un archivo muy sencillo y está conformado de la siguiente manera:
• Nombre de grupo,
• GID= Número de identificación del grupo,
• Lista de usuarios que pertenecen al grupo, !separados
por comas!
Lo que haremos ahora es utilizar los comandos useradd,
usermod y userdel. Con ellos manejaremos a los usuarios.
Para agregar un usuario utilizaremos el comando useradd
de la siguiente forma: useradd -d homedir -s /bin/bash [ic] -c
Nombre_ real_del_usuario nombre_de_usuario. En verdad es
un poco críptico, analicemos el ejemplo. Useradd es el comando a emplear para agregar un nuevo usuario, luego mediante
la opción -d especificamos nuestro directorio de inicio, -s nos
dará la posibilidad de elegir la shell a utilizar y -c será el nombre real del usuario. Éste debe de ir entre comillas dobles. Por último nos resta el nombre de usuario, el nombre con el cual
iniciaremos sesión en nuestro sistema:
#useradd -d /home/sebastian -s /bin/bash [ic] -o
"Sebastian Pignataro" sebastian
Digamos que nos hemos equivocado, o por algún motivo
decidimos cambiar los datos de algún usuario que está en
el sistema. Para ésto emplearemos el comando usermod.
Este comando nos permite cambiar todos los parámetros que
hayamos utilizado con el comando useradd. Recuerda que el
usuario no podrá iniciar sesión cuando estemos cambiando
sus datos. Para cambiar la información sobre la configuración
de un usuario haremos lo siguiente: usermod -c "Nuevo_Nombre" -d directorio_de_inicio -m -g nombre_de_grupo -s shell-l nuevo_nombre_de_usuario nombre_de_usuario_actual.
Demos un poco de luz a todo esto. Desde luego usermod será el comando que usaremos para realizar nuestro trabajo. Con
la opción -c y entre comillas dobles especificaremos el nuevo
nombre real del usuario, -d nos dejará indicar el directorio de
inicio, con -g incluiremos a nuestro usuario en un grupo de
usuario, -s nos dejará decidir qué tipo de shell usaremos.
Desde luego nos restará aclarar nuestro nuevo nombre de
usuario y nuestro nombre de usuario actual. Digamos que
sería algo así:
#usermod -o "Marco Preto" -d /home/marcos -m -g
abusuarios -s /bin/ bash -l marcos marcos
Finalmente veremos cómo eliminar un usuario del sistema.
Para ello disponemos del comando userdel, que se utiliza de
la siguiente manera: userdel -r nombre de usuario. Esto en el
sistema se vería así:
#userdel -r sebastian
Llega el momento de referirnos a los grupos. Encontraremos
que podemos manejar grupos de usuarios en casi cualquier sistema operativo. Nosotros nos focalizaremos en cómo manejarlos en la variedad de Unix/Linux. Dividir a los usuarios
en grupos es una forma ordenada de otorgar permisos a un
archivo que utiliza un grupo de personas. Con esto me refiero
que al establecer grupos podremos otorgar los mismos permisos para un grupo de usuarios. Pongamos esto en un ejemplo
y supongamos tener tres grupos de usuarios, 1) gerencia, 2)
ventas 3) sistemas; y digamos te-ner 3 directorios; productos,
sueldos y stock.
A éstos, les daremos permisos de la siguiente
manera. Crearemos la carpeta productos y le asignaremos
lectura, escritura para el usuario; lectura, escritura para el
grupo y lectura para otros. Luego le designamos como grupo
al directorio el grupo ventas. Esto quiere decir que cualquier
usuario que esté dentro del grupo gerencia tendrá acceso de
lectura y escritura al mismo. Por lo tanto los que se encuentren
dentro del grupo gerencia o ventas, solamente tendrán acceso
de sólo lectura.
Para trabajar con los grupos en Linux usaremos los
siguientes comandos: groupadd, groupmod, groupdel. Entremos en la sintaxis misma de estos comandos.
Para agregar un nuevo grupo al sistema lo hacemos
invocando el comando groupadd de la siguiente manera:
groupadd nombre_de_ grupo. Veamos un modelo de este
comando donde agregaremos un grupo llamado www. En este
grupo estarán todos los usuarios relacionados con el servidor
de web Apache:
#groupadd www
Siempre que agreguemos un grupo puede que nos encontremos con la necesidad de modificar el nuevo grupo. Bueno, esto no es problema, lo haremos con una sentencia tan sencilla
como la siguiente: groupmod -n nuevo_grupo grupo_actual.
Donde nuevo_grupo es el nuevo nombre de grupo que queremos otorgar al grupo y grupo_actual es el nombre actual
del grupo:
#groupmod -n gerencia gerencia2
A veces es inevitable pasar por la opción de tener que eliminar
algún grupo. Para llegar a nuestro cometido usaremos ni más
ni me-nos que groupdel y el grupo que deseemos eliminar:
#groupdel gerencia
En Linux tenemos dos utilidades que nos facilitarán la vida al
momento de manejar grupos y el modo en que se asigna un
grupo a un archivo o directorio. Éstas son gpasswd y chgroup. Tomemos la primera, gpasswd. Con ella podremos agregar
usuarios a un grupo existente. Para ello bastaría solamente
una línea como la siguiente: gpasswd -a nombre_de_usuario
nombre_de_grupo. Donde nombre de usuario sería el nombre
de inicio de sesión y nombre de grupo sería el nombre del
grupo al cual agregamos dicho usuario. Ahora para eliminar
un usuario de un grupo utilizamos gpasswd -d nombre_de_usuario nombre_de_grupo. Éste es muy similar al comando
anterior. De todas formas visualizaremos un ejemplo. Digamos
que queremos eliminar el usuario carlos del grupo gerencia.
Lo haríamos así:
#gpasswd -d c arlos gerencia
La otro utilidad es chgrp, la cual nos será de utilidad al momento de cambiar el grupo al cual pertenece un archivo. Se
usa de la siguiente manera chgrp nombre_de_grupo archivo.
Tomemos un ejemplo: si quisiera cambiar el grupo del archivo
articulo.html al grupo editorial procederíamos de la siguiente
forma:
#chgrp editorial
articulo.html
¿Qué pasa si queremos cambiar el grupo de un directorio
y todos sus y archivos? Utilizamos el comando chgrp con la
opción -R. Entonces digamos que cambiamos de grupo todos
los archivos del directorio redacción:
#chgrp -R
editorial redaccion
|