| Artículos | 01 JUN 1998

Configurar el sistema

Tags: Histórico
Curso Linux
Javier Cáceres.
El mes pasado se trataron los aspectos más generales del sistema: cómo iniciar y finalizar una sesión, cómo está organizado el sistema de archivos, qué tipos de ficheros nos podemos encontrar e incluso se describieron algunos comandos básicos. En este número intentaremos profundizar algo más en la interfaz de comandos y prestaremos especial atención a la configuración de las partes más relevantes del sistema.

La shell algo más a fondo
Una de las principales directivas de Unix es emplear pequeñas aplicaciones, poco útiles por sí mismas, y combinarlas para que sean capaces de dar solucióna grandes problemas. Partiendo de esta base, podríamos entender que una de las funciones de la shell o intérprete de comandos, es ejercer de nexo de unión entre una y otra utilidad, mediante los operadores de redirección que ya hemos tratado. Los operadores de redirección, el resto de metacarácteres y un limitado conjunto de comandos, conforman el lenguaje de los shell scripts, pequeños archivos de proceso por lotes (como los batch del DOS), pero mucho más potentes.
De entre el resto de metacaracteres, sin duda uno de los más útiles es “&”. Con él podemos indicarle al sistema que una determinada tarea u orden ha de realizarse en segundo plano concurrentemente. Para ello, simplemente hemos de incluirlo al final de la línea de comandos. Por ejemplo, si deseamos copiar el contenido de un disquete al disco duro, indicando la orden cp /mnt/floppy/* /temp & el sistema realizaría la tarea en backgroud devolviéndonos inmediatamente el control de la línea de comandos. Otra función interesante es sin duda, que podemos introducir más de un comando en la misma línea, siempre que los separemos convenientemente con el carácter punto y coma ‘;’. En el siguiente ejemplo podemos descubrir el provecho que a esta propiedad se le puede sacar. Un pequeño handicap de ls es que no muestra el número de ficheros incluidos en el directorio que enseña. La siguiente combinación de comandos solventaría tal problema, gracias a la orden wc: ls –ls ; echo –n El número total de ficheros es: ; ls –1 | wc –l. Primero mostraría la lista de archivos completa del directorio actual, luego el mensaje de texto y por último, le pasaría la lista de ficheros a wc para que muestre el número de líneas que encuentre.
Las listas de comandos se pueden agrupar mediante el uso de paréntesis “()”, o llaves “{}”. El esquema es simple y análogo para las llaves: ( comando 1 ; comando 2 ; ... ; comando n ). La ejecución de los comandos se realiza de forma secuencial en ambas, con la única diferencia de que empleando paréntesis, la ejecución la lleva a cabo nuestra shell y con llaves, y es realizada por un nuevo intérprete, no modificando así de ninguna forma las variables del entorno inicial. Además, las listas también pueden ser concatenadas mediante el uso de “&&” y “||”. El formato es idéntico: (lista 1) && ó || (lista 2), con && indicaríamos al intérprete que ejecute la segunda lista sólo en caso de que la primera haya terminado correctamente y con || el intérprete ejecutaría la segunda lista si no finalizó la primera.
Todo esto sólo proporciona una parte de la potencia de los comandos Unix, la otra la aportan los propios comandos. No hemos nunca de olvidar que un comando puede disponer de un gran número de opciones, y que éstas pueden expandir terriblemente su funcionalidad. La orden ls por sí sola apenas ofrece información, pero si introducimos ls –lsa, nos mostrará el contenido del directorio con todo lujo de detalles. Si quiere conocer las opciones de un determinado comando, recuerde que siempre puede consultar las páginas del manual (man comando ) o tecleando comando –help. En la tabla 1 se incluyen algunas de las órdenes más comunes, junto con sus opciones más relevantes, las cuales son casi siempre combinables.
Por último, en lo concerniente al intérprete de comandos, sólo nos resta comentar los caracteres comodín o wildcards. El asterisco ‘*’ opera de forma muy similar a como lo hace en DOS, aunque hay que tener presente que el sistema de archivos de Linux no respeta los puntos, es decir, no se ajusta de ninguna manera a los nombres 8+3 del DOS o Windows NT/95. Por ejemplo, para copiar todos los ficheros y subdirectorios de /temp/informes a /temp/backup habríamos de escribir cp –R /temp/informes/* /temp/backup. Nótese que se ha escrito con * y no con *.*, pues si pusiéramos lo segundo sólo copiaría los archivos en cuyo nombre se incluyera un punto. Por su parte, el carácter interrogación ‘?’ sustituye un único carácter, mientras que si encerramos una serie de caracteres entre corchetes separados por comas, la shell seleccionaría indistintamente cada uno de ellos. De esa manera, la orden ls *[a,e] mostrará todos los archivos que terminen en ‘a’ o en ‘e’.

Grupos y usuarios
Linux es un sistema multiusuario, lo que significa que podemos definir todos los usuarios que nos sean precisos. Cada usuario a su vez ha de estar incluido en uno o más grupos determinados de usuarios, de los cuales, heredará determinados privilegios, que le permitirán tener acceso a determinados archivos y aplicaciones del sistema.
Para la administración de los grupos de usuarios, disponemos de las herramientas Groupadd, Groupdel y Groupmod, y análogamente para la gestión de usuarios, encontramos Useradd, Userdel y Usermod. Sus funciones son añadir, eliminar y modificar grupos o usuarios respectivamente. Lo primero que hemos de hacer es crear los grupos de usuario con Groupadd, por ejemplo, groupadd NombreGrupo. A continuación, puede crear usuarios en los distintos grupos mediante la orden useradd –g NombreGrupoPrincipal –G ListaGruposSecundarios –d RutaDirectorioUsuario IdentificativoUsuario. Por ejemplo, para crear un grupo llamado “pruebas” e incluir en él al usuario “invitado” introduciríamos: groupadd pruebas ; useradd –g pruebas –d /home/invitado invitado. A partir de este momento, ya tendríamos creado el usuario “invitado”. Sólo quedaría especificarle la contraseña que ha de tener dicho usuario con la orden passwd invitado.
Para verificar que se han introducido correctamente nuevos usuarios, podemos editar el fichero /etc/passwd (fichero de información sobre los usuarios) y /etc/group (información de los grupos) y comprobar que han sido incluidos. Los listados 1 y 2, respectivamente, muestran un ejemplo de estos dos archivos. La orden groupdel/userdel tienen una sintaxis muy simple, únicamente especificar el nombre del grupo o usuario y éste será eliminado. Sin embargo, Groupmod y Usermod ya admiten un buen número de parámetros. Por ello, es mucho más cómodo realizar estas tareas de administración con una herramienta gráfica como usercfg de RedHat o el entorno YaST de SuSE.

La seguridad y el sistema de archivos
En cualquier sistema Unix, el propio sistema de archivos incluye toda la información que precisa el sistema para su seguridad. Cuando un usuario modifica o crea un nuevo fichero, junto con el propio contenido del archivo, se incluyen datos como quién es el propietario del archivo, es decir quien lo ha creado o modificado, cual es su grupo principal, y

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información