SOM04.- Administración de un Sistema Operativo Libre I.pdf
Document Details
Uploaded by StatuesqueDemantoid
Tags
Full Transcript
SOM04.- Administración de un Sistema Operativo Libre I (index.html) Administración de un Sistema Operativo Libre I Caso práctico Nuria Barroso (Elaboración propia) Iván y Marta, en su empresa de prácticas, han tenido que instalar un servidor Linux, para optimizar el trabajo del sistema opera...
SOM04.- Administración de un Sistema Operativo Libre I (index.html) Administración de un Sistema Operativo Libre I Caso práctico Nuria Barroso (Elaboración propia) Iván y Marta, en su empresa de prácticas, han tenido que instalar un servidor Linux, para optimizar el trabajo del sistema operativo y facilitar el trabajo a los usuarios y usuarias. Una vez instalado van a necesitar realizar ciertas tareas administrativas adicionales, las de administración del sistema y otras útiles para cualquier usuario o usuaria como la instalación de nuevo software, la actualización del sistema operativo, la instalación o uso de los servicios del sistema, mejorar el rendimiento, etc. Ya conoces la consola o el intérprete de comandos de Windows, ahora te voy a enseñar el manejo de la shell Linux. Shell que en castellano significa concha, es el intérprete de comandos del sistema. Es una interfaz de texto de altas prestaciones, que te sirve fundamentalmente para tres cosas: de 1. Administra el sistema operativo. 2. Lanza aplicaciones. 3. Interactúa con ellas y como entorno de programación. El shell es tanto un intérprete de comandos u órdenes, como un lenguaje de programación. Sobre él vas a poder ejecutar órdenes con las que puedes crear programas, que se llaman script y ejecutar comandos para administrar el sistema operativo. Ministerio de Educación y Formación Profesional (Dominio público) Materiales formativos de FP Online propiedad del Ministerio de Educación y Formación Profesional. Aviso Legal 1.- La shell y sus comandos. Caso práctico En el aula Iván y Marta tuvieron su primer encuentro con la shell, en un principio pensaron que no les iba a hacer falta en el mundo laboral. Nuria Barroso (Elaboración propia) En las empresas de prácticas han visto que pueden llegar a trabajar con Red Hat, Ubuntu y Knoppix. Por ello, para hacer una labor administrativa básica se ven en la dificultad de que en cada distribución tienen que estudiar el entorno gráfico, con los cambios que cada distribución tiene. Esto, lo han solucionado fácilmente, pues se han acostumbrado a trabajar con comandos de texto, y así no necesitan trabajar con el entorno gráfico, van a tiro hecho usando comandos. Vamos a entrar en el mundo de la línea de comandos de Linux, verás que es muy flexible y potente, y no tan complicado como pudiera parecer en un principio. 1.1.- Antecedentes históricos. La shell te permite interactuar con el kernel línea de comandos, o a través de los scripts. a través de la interpretación de los comandos que escribes en la Por eso, si creamos cualquier script .sh correrá perfectamente en la shell bash. Hay varias shell, la primera shell fue programada por Steven Bourne, a ésta se le llama sh o bsh, es una shell limitada y usa una sintaxis de comandos usada en los primeros sistemas UNIX. Cronológicamente, la siguiente shell fue la c-shell o csh, como su nombre indica usa comandos muy parecidos al lenguaje de programación C. En 1986, David Korn juntó lo mejor de la Bourne shell y la c-shell y programó la korn-shell o ksh. En la mayoría de los sistemas Linux, viene incorporada por defecto la shell bash de Bourne Again Shell, En referencia al inventor de la primera shell. Esta shell posee toda la funcionalidad de sh con características avanzadas de C. La shell bash fue programada por desarrolladores del proyecto GNU Iniciado por Richard Stallman). (Proyecto que potencia el software libre. Para acceder al modo texto o al terminal , a partir de Ubuntu 18.04, puedes situarte sobre el escritorio y pulsar el botón derecho para seleccionar la opción de Terminal. Si quieres saber las shells que tienes en tu distribución GNU/Linux sólo tienes que ver el contenido del fichero shells del directorio /etc. Para ello, escribe en la terminal: cat /etc/shells Autoevaluación La shell bash: Debe su nombre a Steven Bourne. Se debe a David Korn. No existe. Muy bien. Has captado la idea. Incorrecta, David Korn desarrollo la ksh. No es la respuesta correcta, la shell bash viene por defecto en la mayoría de las distribuciones de Linux. Solución 1. Opción correcta (#answer-41_66) 2. Incorrecto (#answer-41_87) 3. Incorrecto (#answer-41_90) 1.2.- Generalidades sobre introducción de comandos. La sintaxis de las órdenes es la siguiente: orden [ -modificadores] [argumentos] La orden indica al intérprete de comandos la acción a realizar. Los modificadores u opciones se introducen precedidos del carácter – guion. Los argumentos son caracteres que se utilizan como entrada del comando . El argumento puede ser un archivo o un directorio . Antes de ver los comandos básicos, te voy a enseñar distintos modos de poder ejecutar varios comandos. En secuencia. Separados por punto y coma. Se ejecuta un comando detrás de otro en primer plano o foreground: Agustín Nieto Espino (Elaboración propia) comando1 ; comando2 ; comando3 En segundo plano . Separados o el último finalizado por el carácter ampersand &. Cada comando terminado por este carácter se ejecuta en segundo plano o background, es decir, no se espera a su terminación para continuar: comando 1& comando2 & comando3 & Mezcla de comandos en primer y segundo plano. Los que acaban en punto y coma obligan a los que les siguen, a esperar a que terminen. Los que acaban en & se lanzan en segundo plano y se siguen ejecutando los siguientes. Para ver el listado de comandos, puedes escribir en la terminal el comando help . La ayuda de un comando la puedes obtener de distintas maneras con info , help o man (acrónimo de manual): comando1 ; comando2 & comando3 ; comando4 & comando5... Otra ayuda con la que cuentas es la opción de autocompletar, para ello, empiezas a escribir en la terminal y a continuación pulsas la tecla de tabulación, con la que se completará el nombre. Autoevaluación Para introducir comandos, ¿Sólo se puede introducir uno por línea? Verdadero. Falso. Incorrecto. En una misma línea se pueden escribir varios comandos separados por punto y coma. Efectivamente, hay varias maneras usando & o punto y coma. Solución 1. Incorrecto (#answer-44_66) 2. Opción correcta (#answer-44_95) 1.3.- Directorios. En el sistema operativo Windows, existe el concepto de carpetas que es la forma que existe de organizar los ficheros. En Linux, las carpetas reciben el nombre de directorios . Por lo tanto, carpeta o directorio es lo mismo. Depende del sistema operativo en el cual nos encontremos será nombrada de una manera u otra. Con los directorios puedes almacenar información de forma ordenada. Es una forma de estructurar la información almacenada en nuestro soporte de almacenamiento. Por lo tanto, los directorios son un tipo especial de ficheros que almacenan el listado de los ficheros o subdirectorios que contienen. Vas a ver una lista de comandos que te serán útiles cuando quieras ver el contenido de un fichero, copiar ficheros, eliminaros, moverles y movernos por la estructura jerárquica o árbol de directorios. Los comandos son: pwd (Acrónimo de Print Working Directory). Muestra la trayectoria absoluta del directorio de trabajo. ls (Acrónimo de list): Enumera al contenido de un directorio, mostrando el nombre y extensión de cada archivo, el tamaño en bytes, la fecha y hora en que se creó o modificó por última vez, y los subdirectorios que cuelgan de él. chdir o cd (Acrónimo de Change Directory). Con este comando podemos movernos por la estructura de directorios creada. Sirve para subir o bajar por la estructura jerárquica. Si ejecutamos el comando cd sin parámetros , nos situaremos automáticamente en el directorio de trabajo con el cual nos encontremos identificados en el sistema. mkdir (Acrónimo de Make directory). Crea directorios por debajo del actual. Por ejemplo, si queremos crear el directorio pruebas, escribiríamos la orden mkdir pruebas. Si quisiéramos crear una ruta de directorios de una sola vez. Por ejemplo, queremos crear los directorios som/ejemplos/tareas, utilizaríamos el comando mkdir pasándole el parámetro -p para que se creen todos directorios intermedios que aparecen en la ruta ya que no existen. Escribiríamos en el terminal: mkdir -p som/ejemplos/tareas rmdir (Acrónimo de Remove Directory). Con este comando podemos eliminar directorios en cualquier parte de la estructura jerárquica siempre y cuando tengamos los privilegios suficientes. Para borrar directorios hemos de tener en cuenta que sólo se puede borrar un directorio si está vacío con este comando Si quisiéramos eliminar un directorio que no se encontrara vacío debemos de utilizar el comando rm pasándole el parámetro -r. Por ejemplo, queremos eliminar el directorio pruebas que no se encuentra vacío. Escribiríamos la orden: rm -r pruebas. Por ejemplo, vas a crear dos directos: directorio1 y directorio2 en tu directorio de trabajo. El directorio de trabajo de los usuarios del sistema suele estar situado dentro del directorio /home. Al acceder a un terminal nos situamos directamente en el directorio de trabajo del usuario. Supón que el directorio de trabajo es /home/usuario. Para ello, escribe en la terminal: mkdir directorio1 directorio2 Comprueba que las has creado haciendo un listado de tu directorio de trabajo. Para ello escribes: ls Si quieres ir a la carpeta directorio2, escribe en la terminal: cd directorio2 Verás que te ha cambiado el prompt . Para volver al directorio anterior, escribe en la terminal: cd .. Debes de observar que para separar los directorios al indicar una ruta se utiliza el símbolo / en el sistema operativo Linux mientras que en los sistemas operativos Windows se utiliza, para separar las carpetas al indicar una ruta, el carácter \ El sistema operativo Linux distingue entre mayúsculas y minúsculas a la hora de ejecutar una orden. Por lo tanto, debemos de tener cuidado al escribirlas. Para Linux, una orden escrita en minúsculas no es lo mismo que una orden escrita en mayúsculas. Al contrario de lo que ocurría en el sistema operativo Windows. Debes conocer En el siguiente vídeo, puedes ver cómo utilizar los comandos esenciales para poder utilizar correctamente los directorios: Comandos para manejar directorios 0:00 Agustín Nieto Espino. Descripción textual alternativa para el vídeo "Comandos para manejar directorios". (index1.html) (Elaboración propia) Autoevaluación Relaciona los comandos con lo que muestran, escribiendo el número asociado a lo que hace el comando en el hueco correspondiente. Ejercicio de relacionar Comando Relación Resultado ls 1.- Crea directorios. cd 2.- Lista ficheros de un directorio. mkdir 3.- Borra carpetas y subcarpetas. rm -r 4.- Cambia de directorio. Enviar Son algunos de los comandos más usados sobre directorios. 1.4.- Ficheros. Vas a ver una lista de comandos que te serán útiles cuando quieras trabajar con ficheros y obtener listados de los mismos, realizar copias, reubicarles, etc. ls (acrónimo de list). Lista de ficheros del directorio (por defecto el actual). -l Con detalles, lista los atributos. Muestra por cada fichero o directorio toda la información posible. Agustín Nieto Espino (Elaboración propia) Entre la información que nos muestra destacan: - El tipo de fichero y los permisos asociados al objeto. - El propietario o dueño del objeto - El grupo de usuarios a los cuales pertenece el objeto - La fecha de la última vez que el objeto ha sido modificado. -a Incluye ficheros ocultos (Los que comienzan con el carácter punto "."). -R Lista recursivamente los contenidos de los directorios. Es decir, muestra el contenido de todos los subdirectorios que existieran. -al También puedes combinar los parámetros . Si ejecutamos el comando ls -l , se nos mostrará por cada objeto que exista, en el lugar que nos encontremos, la información indicada anteriormente. Si solo queremos ver la información posible de un fichero o de un directorio deberemos de indicar su nombre a continuación de la orden. Ejemplo: visualizar la información del directorio Descargas, escribiríamos en el terminal la orden: ls -l Descargas cat (Acrónimo de concatenate). Muestra el contenido de los ficheros. more fich1 [fich2] ... Muestra el contenido página a página. Un uso muy típico del comando more es como terminación de una tubería , para mostrar los resultados de otro comando página a página. Por ejemplo: ps -a -x -l | more cp fichOrigen fichDestino. cp es acrónimo de copy. Copia el fichero origen con el nuevo nombre destino sobrescribiendo el ya existía. Si queremos copiar un fichero en el interior de un directorio, solo es necesario indicar el nombre del fichero que queremos copiar y la ruta o path de destino. mv fichOrigen fichDestino. Mueve el fichero. Cambia el nombre y/o la localización. file fich. Indica de que tipo es el fichero (ejecutable, texto, ...). sort [fich] Ordena el fichero, o la entrada por defecto. Consulta sus opciones en la página de manual. El nombre de fichero es opcional. Si no hay fichero, busca en la entrada por defecto. Por eso, se puede utilizar como parte de una tubería (filtro). rm se utiliza para borrar ficheros. Se le debe de indicar como parámetro el nombre del fichero que deseamos eliminar. No hace falta desplazarnos al lugar en donde se encuentre el fichero a eliminar, le podemos indicar la ruta absoluta o relativa junto con el nombre del fichero que se desea eliminar. Por ejemplo, crea un fichero con la salida del comando ls. Para ello, escribe en la terminal: ls > fichero1 Para ver el contenido del fichero fichero1 que acabas de crear, escribe en la terminal: cat fichero1 Ahora si quieres copiar el fichero fichero1 en directorio1, suponiendo que directorio 1 ya existe, escribe en el terminal: cp fichero1 /home/usuario/directorio1 También sería correcto la orden: cp fichero1 /home/usuario/directorio1/fichero1 Debes conocer En el siguiente vídeo, puedes ver como se utilizan algunos comandos sobre los ficheros: Comandos para manejar los ficheros 0:00 Agustín Nieto Espino. Descripción textual alternativa para el vídeo "Comandos para manejar los ficheros". (index2.html) (Elaboración propia) 1.4.1.- Comodines. Carácter de sustitución. Durante la utilización de comandos en relación con el sistema de ficheros, puede resultar interesante filtrar la salida de nombres de ficheros con la ayuda de determinados criterios, por ejemplo con el comando ls. En vez de visualizar toda la lista de ficheros, se puede filtrar la visualización de varios criterios y caracteres especiales. Caracteres Significado * Sustituye una cadena de longitud variable, incluso vacía. ? Sustituye cualquier carácter único. [...] Una serie o un rango de caracteres. [a-b] Un carácter entre el rango indicado (de la letra a a la letra b incluida). [!...] Inversión de la búsqueda. [^...] Inversión de la búsqueda. Supongamos que tenemos la siguiente salida por consola: $ ls afic afic2 bfic bfic2 cfic cfic2 dfic dfic2 afic1 afic3 bfic1 bfic3 cfic1 cfic3 dfic1 dfic3 Veamos algunos ejemplos aplicando los caracteres comodines que acabamos de ver: 1. Obtiene todos los ficheros que empiezan con a: $ ls a* afic1 afic2 afic3 2. Todos los ficheros de cuatro caracteres que empiezan con a: $ ls a??? afic 3. Todos los ficheros de al menos tres caracteres y que empiezan con b: $ ls b??* bfic bfic1 bfic2 bfic3 4. Todos los ficheros que terminan con 1 o 2: $ ls *[12] afic1 afic2 bfic1 bfic2 cfic1 cfic2 dfic1 dfic2 5. Todos los ficheros que empiezan con las letras de a a c, que tienen al menos un segundo carácter antes de la terminación 1 o 2: $ ls [a-c]?*[12] afic1 afic2 bfic1 bfic2 cfic1 cfic2 6. Todos los ficheros que no terminan por 3: $ ls *[!3] afic afic1 afic2 bfic bfic1 bfic2 cfic cfic1 cfic2 dfic dfic1 dfic2 Debes conocer ¿Cómo interpreta la Shell los caracteres comodín? El shell es el encargado de efectuar la sustitución de estos caracteres antes de pasar los parámetros a un comando. Así, en el momento de ejecutar el comando: $ cp * Documents cp no recibe el carácter *, sino la lista de todos los ficheros y directorios del directorio activo. Los comodines pueden utilizarse dentro de todos los argumentos que representan ficheros o rutas. Así, el comando siguiente va a volver a copiar todos los ficheros README de todos los subdirectorios de Documents en la posición actual: $ cp Documents/*/README Para saber más Caracteres especiales Se deben cerrar algunos caracteres especiales como, por ejemplo, en caso de caracteres poco corrientes en un nombre de fichero. La contrabarra \ permite cerrar un carácter único. ls paga\ *.xls va a listar todos los ficheros que contienen un espacio después de paga. Las comillas "..." permiten la interpretación de los caracteres especiales, de las variables, dentro de una cadena. Los apóstrofes ’...’ cierran todos los caracteres especiales en una cadena o un fichero. 1.4.2.- Rutas Estructura y nombre de ruta Las rutas permiten definir una ubicación en el sistema de archivos. Es la lista de los directorios y subdirectorios utilizados para acceder a un sitio determinado de la estructura hasta la posición deseada (directorio o archivo). Se suele completar un nombre de archivo con su ruta de acceso. Por eso, el archivo fich1 del directorio pepito es diferente del archivo fich1 del directorio Juanito. Al ser jerárquico, el sistema de archivos de Linux tiene forma de estructura en árbol. Esta imagen representa una estructura en árbol de un sistema de archivos Linux. La / situada arriba del todo se llama raíz o root directory (no confundir con el directorio del administrador root). El nombre de la ruta o path name de un archivo es la concatenación, desde la raíz, de todos los directorios que se deben cruzar para acceder a él, que están separados cada uno por el carácter /. Es una ruta absoluta, como la siguiente: /home/pepito/fich1 Una ruta absoluta o completa: Empieza desde la raíz. Por lo tanto, comienza con una / Describe todos los directorios que hay que cruzar para acceder al sitio deseado No contiene . (punto) ni ..(doble punto) (#t4bcf84c4- (#t8914fa32Una ruta relativa: 6acd2677531eUn nombre de ruta también puede 5d13ser relativo a su posición en el directorio actual. El sistema (o el shell) recuerda la 74d4410fposición actual de un usuario en el sistema de archivos, el directorio activo. Puede acceder a otro directorio de la ad34c976a2d9) estructura desde sufc6994820cae) ubicación actual sin teclear la ruta completa, con sólo precisar la ruta más corta en relación con su posición actual dentro de la estructura. Para ello, a menudo hace falta utilizar dos entradas particulares de directorios: El punto . representa el directorio actual o activo. Suele estar implícito. Los dos puntos .. representan el directorio de nivel superior o directorio padre. Una ruta relativa: Describe una ruta relativa a una posición determinada en la estructura, en general (pero no siempre) desde la posición actual. Describe, en principio, la ruta más corta para ir de un punto a otro. Puede contener el punto . o los dos puntos .. Las tres afirmaciones anteriores no son obligatorias: /usr/local/bin es una ruta completa o absoluta; Documents/Photos es una ruta relativa: se considera que existe el directorio Documento en el directorio actual. ./Documents/Photos es una ruta relativa perfectamente idéntica a la anterior, con la salvedad de que el punto indica el directorio activo (actual) de manera explícita. "./Documents" indica de manera explícita el directorio Documents en el directorio activo; /usr/local/../bin es una ruta relativa: los .. son relativos a /usr/local y suben un nivel hacia /usr. La ruta final es, por lo tanto /usr/bin. Ejemplo con la estructura de la imagen siguiente: Suponiendo que estamos en el directorio /home/juanito podemos acceder a fich1 así: Con ruta absoluta --> /home/pepito/fich1 Con ruta relativa --> ../pepito/fich1 Siguiendo con la misma imagen y en el mismo directorio (/home/juanito), para acceder a fich2 podemos acceder de dos maneras: ./fich2 fich2 La virgulilla El bash interpreta el carácter virgulilla como un alias del directorio personal. Las rutas pueden ser relativas a la virgulilla, pero ésta no debe ir precedida por carácter alguno. Para desplazarse en el directorio tmp de su carpeta personal esté donde esté: $ cd ~/tmp ~ Si introduce esto, obtendrá un error: $ cd /~ Autoevaluación Teniendo en cuenta la imagen con la siguiente estructura de directorios y archivos: y suponiendo que nuestro directorio actual es Imágenes, ¿Cuál de las siguientes opciones para acceder al fichero apuntes.docx es correcta? Documentos/apuntes.docx home/Documentos/apuntes.docx ./apuntes.docx ../Documentos/apuntes.docx Incorrecto Incorrecto Incorrecto Opción correcta Solución 1. Incorrecto (#answer-39_144) 2. Incorrecto (#answer-39_10460) 3. Incorrecto (#answer-39_10536) 4. Opción correcta (#answer-39_10539) 1.5.- Usuarios del sistema. En el proceso de instalación del sistema operativo Linux, se crea un usuario con permisos de administrador. En algunas distribuciones de Linux, además de crear un usuario, también existe la posibilidad de asignarle una contraseña al usuario root. El usuario root es el usuario súper usuario del sistema o usuario que más privilegios tiene sobre el sistema. Tiene acceso total a todo el sistema, se encarga de la administración del mismo, actualización y mantenimiento. Si utilizamos una distribución, en cuyo proceso de instalación, no se nos ha solicitado una contraseña para el usuario root, este usuario no podrá utilizarse desde el terminal . Para ello, será obligatorio asignarle una contraseña a través del terminal. También puedes crear usuarios normales, que se conectarán al sistema introduciendo su nombre de usuario y contraseña. Son los usuarios habituales del sistema, los que utilizarán los recursos de éste. También están los usuarios del sistema, que no son usuarios en sentido físico, sino que se generan al instalar algún servicio . Recuerda que un servicio es un proceso que se ejecuta en segundo plano a la espera de ser llamado por el usuario para ofrecerle la función o utilidad para la que están programados. Los usuarios se diferencian por su número Identificador de Usuario o UID (Acrónimo de User Identificator). Algunas características son: El usuario root se identifica porque su UID es 0. Los usuarios del sistema tienen UID entre 1 y 1000. Los usuarios normales tienen asignados UID a partir de 1000. La información sobre los usuarios del sistema se almacena en /etc/passwd. Para ver su contenido puedes escribir en el terminal: cat /etc/passwd Cada línea de este fichero se corresponde con un usuario dado de alta en el sistema. En el sistema operativo Linux, existen los grupos de usuarios como hemos podido ver en la unidad anterior. La información de los grupos de usuario se almacena en el fichero /etc/group y podemos ver su contenido si en el terminal ejecutamos la orden: cat /etc/group Cada línea de este fichero se corresponde con un grupo de usuarios creado en el sistema. Es muy importante que comprendas la información que aparece en estos ficheros. En los siguientes apartados aprenderás a leer o interpretar el contenido de estos ficheros. Para saber si el sistema operativo está preparado para que escribas un comando lo puedes ver mediante un indicador de sistema o prompt . Dependiendo de la configuración establecida el prompt se puede representar con el símbolo $ o puede mostrar información, cómo: Como dónde estás. El nombre de tu máquina. El nombre de usuario. Etc. En Ubuntu el prompt del sistema muestra, por defecto, el nombre de usuario identificado y el nombre asignado al equipo a través del sistema operativo. Ambos datos se encuentran separados por el carácter @ . A continuación, aparece el símbolo $ como puedes ver en la siguiente imagen: Agustín Nieto Espino (Elaboración propia) Esta información la puedes cambiar. Si el usuario es el súper usuario, el indicador o prompt termina con el símbolo # almohadilla. En la siguiente imagen, puedes ver el prompt que se encuentra configurado por defecto para el usuario root. Aparece nombre de usuario, nombre de equipo y a continuación el path o ruta activa en la cual se encuentra situado dentro del sistema de archivos actualmente, para finalizar con el símbolo almohadilla: Agustín Nieto Espino (Elaboración propia) Siempre que realices una tarea administrativa el sistema te pedirá la contraseña del súper usuario. En Linux tienes el comando su (acrónimo de Switch User) para cambiar de usuario o el comando sudo (Acrónimo de Super User DO) para ejecutar comandos como súper usuario. Si escribes sudo su en el terminal, verás que cambia el prompt y ahora termina en almohadilla. Y puedes realizar tareas de administrador. Autoevaluación Cuando trabajas como súper usuario el prompt ¿acaba en almohadilla #? Verdadero. Falso. Correcto. Esta era sencilla Incorrecto. Creo que te falta poner más atención. Prueba a escribir en la terminal sudo su . Solución 1. Opción correcta (#answer-50_66) 2. Incorrecto (#answer-50_108) 1.5.1 Usuarios. El fichero donde se almacena la información sobre los usuarios dados de alta en el sistema se llama passwd y se encuentra en la ruta /etc/passwd Para poder ver su contenido, siempre y cuando tengamos los permisos suficientes, podremos hacerlo desde el terminal escribiendo la orden: cat /etc/passwd ,o mediante la orden, more /etc/passwd (en este caso utilizaremos la barra espaciadora para ir viendo poco a poco el contenido del fichero y si quisiéramos dejar de ver el contenido del fichero pulsaríamos la letra q). Agustín Nieto Espino (Elaboración propia) Cada línea de este fichero muestra información sobre cada usuario dado de alta en el sistema. Los valores de las propiedades aparecen separados por el carácter ":" Todas las líneas están compuestas por 6 campos en donde el último campo no finaliza con el símbolo ":" Cada línea se compones de los siguientes campos: nombre o login de usuario: contraseña: UID:GUID:descripción:carpeta o directorio_trabajo_del_usuario:intérprete de órdenes configurado para el usuario. 1-. El campo nombre o login de usuario: es el nombre de usuario que se va a utilizar para iniciar sesión en el sistema. 2-. Contraseña: normalmente aparece una x. Normalmente las contraseñas de usuario se almacenan en el fichero /etc/shadow. Pero se puede configurar el sistema para que las contraseñas se almacenen en el mismo fichero que los nombres de usuarios, en este caso, en lugar de la letra x aparecerá la contraseña cifrada del usuario. 3-. UID: número que utiliza el sistema operativo para identificar al usuario dentro del sistema. El sistema operativo no identifica al usuario a través de su nombre o login, sino que lo hace a través de este número. 4-. GUID: es el número que identifica el grupo primario al cuál puede pertenecer el usuario. Los usuarios en el sistema operativo Linux pueden pertenecer a un solo grupo primario y a la vez a uno o varios grupos secundarios. El sistema identifica a los grupos de usuarios a través de un número y no a través del nombre del grupo de usuario. 5-. Descripción: se suele usar para dejar constancia del nombre real del usuario, es decir, información personal del mismo. La información que aparece es opcional. 6-. Intérprete de órdenes: cuando se crea un usuario en el sistema se le asocia un intérprete de órdenes, como, por ejemplo, bash. Pues el último campo de cada línea almacena la ruta absoluta en donde se encuentra ubicado el intérprete asociado al usuario dentro del sistema de archivos. Observa que este campo no finaliza con el símbolo o carácter ":" Por ejemplo: si observamos la primera línea de la imagen anterior: Agustín Nieto Espino (Elaboración propia) Los campos son: 1-. El nombre de usuario sería root. 2-. La x hace referencia a la contraseña la, cuál no se encuentra almacenada en este fichero, sino que se almacena en el fichero /etc/shadow. 3: El primer 0 es el número de usuario asignado al usuario root. El usuario root es el primer usuario que se crea al instalar el sistema. 4-. Segundo 0 hace referencia al grupo principal del usuario root. El grupo principal al cual pertenece el usuario root recibe el mismo nombre que el usuario, es decir, root y es el primer grupo de usuario que se crea cuando se instala el sistema operativo. 5-. En la parte de la descripción solo aparece el texto root. 6-. El intérprete de órdenes que va a utilizar este usuario es el bash. Debes conocer En el siguiente vídeo aparece explicado en dónde y cómo se almacena la información de los usuarios dados de alta en el sistema: 0:00 Agustín Nieto Espino. propia) Descripción textual alternativa para el vídeo "Usuarios del sistema". (index3.html) (Elaboración 1.5.2 Grupos. La información de los grupos de usuarios dados de alta en el sistema se almacena en el fichero group que se encuentra situado en la ruta /etc/group Podemos ver su contenido si escribimos en un terminal órdenes: una de las dos siguientes cat /etc/group more /etc/group En cada línea de este fichero podemos encontrar la información sobre cada uno de los grupos creados en el sistema. Al igual que ocurriría con el fichero passwd , cada campo de cada línea se encuentra separado por el carácter " : " Cada línea tiene el mismo número de campos y la estructura de cada línea es: nombre del grupo de usuarios:contraseña del grupo:GID:usuarios del grupo 1-. El nombre del grupo de usuarios se corresponderá con el nombre asignado al grupo de usuario. 2-. Contraseña: cuando creamos un grupo de usuario, se le puede asignar una contraseña de administración. Normalmente, las contraseñas de los grupos de usuarios se almacenan en otro fichero y en este campo aparece el símbolo x . El fichero donde se almacenan las contraseñas de los usuarios se llama gshadow y se encuentra ubicado en la ruta /etc/gshadow. Agustín Nieto Espino (Elaboración propia) 3-. GUID: número que identifica al grupo dentro del sistema operativo. El sistema operativo no reconoce a los grupos de usuarios por su nombre, sino que lo hace por un número identificador. 4-. Usuarios del grupo: aparecen el nombre de los usuarios que pertenecen a dicho grupo. Si existen varios usuarios, estos aparecerán separados por coma. Por ejemplo: si nos encontramos con la siguiente línea: Agustín Nieto Espino (Elaboración propia) 1-. El primer campo se corresponde con el nombre del grupo de usuario. En este caso adm. 2-. El segundo campo, aparece el símbolo x, esto quiere decir que la contraseña de administración de este grupo no se encuentra almacenada en este fichero. 3-. El tercer campo es el GUID. El sistema identifica a este grupo de usuarios con el número 4. 4-. Por último, aparece syslog y alumno que son los dos usuarios miembros de este grupo. Debes conocer A través del siguiente vídeo aprenderás cómo y dónde se almacena la información de los grupos de usuarios: 0:00 Agustín Nieto Espino. Descripción textual alternativa para el vídeo "Grupos de usuarios". (index4.html) (Elaboración propia) 1.6.- Redireccionamiento y tuberías. Redirección de la salida por defecto. Los resultados de un comando en pantalla pueden redireccionarse a un fichero de dos formas distintas: Borrando el fichero si ya existía, en caso contrario, lo crea nuevo: comando > fichero Nuria Barroso (Elaboración propia) Añadiendo la información al fichero si ya existía, en caso contrario, lo crea nuevo: comando >> fichero El redireccionamiento en Linux, funciona de la misma forma que el redireccionamiento en Windows. Tuberías o pipelines Los resultados de un comando en pantalla pueden redireccionarse a la entrada de otro comando separándolos con el carácter de tubería o pipe: |. Sólo el último comando de una tubería muestra sus resultados en pantalla (que también podrían redireccionarse a un fichero) : comando1 | comando2 | ... | comandoN Situaciones en las que la salida de un comando se utiliza como la entrada de otro son muy frecuentes en la práctica. Por ejemplo, supón que deseas obtener un listado ordenado alfabéticamente con información acerca de todos los usuarios conectados actualmente en la máquina. El comando who permite obtener la información acerca de los usuarios conectados (si estamos trabajando con una distribución de Linux con entorno gráfico, el comando who nos devuelve los usuarios que han iniciado sesión a través del entorno gráfico) y el comando sort puede ordenarla alfabéticamente. Una posible solución es: who > tmp sort < tmp usuario1 :0 Sep 19 19:53 usuario2 :1 Sep 19 15:45 rm tmp En este caso el fichero tmp guarda de forma temporal la información proporcionada por who antes de usar el comando sort. Una forma simplificada de hacer esto mismo es usando tuberías. Tal y como lo ves a continuación: who | sort usuario1 :0 Sep 19 19:53 usuario2 :1 Sep 19 15:45 El efecto es similar a la creación de un archivo temporal, con la única diferencia de que el uso de las tuberías es mucho más eficiente. Autoevaluación Cuando usas el comando > fichero: Crea un fichero nuevo o sobrescribe lo que tenía. Estas añadiendo el resultado del comando a un fichero ya creado. La salida de un comando es la entrada de otro. Muy bien. Has captado la idea. Incorrecta, para añadir información hay que usar >>. No es la respuesta correcta, para eso usas tuberías. Solución 1. Opción correcta (#answer-46_66) 2. Incorrecto (#answer-46_99) 3. Incorrecto (#answer-46_102) 2.- Comandos de administración básica. Caso práctico Nuria Barroso (Elaboración propia) Desde el servidor de Linux que han instalado en la empresa, Iván va a tener que hacer labores administrativas, por ejemplo, va a tener que dar de alta a un grupo de usuarios y, además, tiene que hacer que pertenezcan al mismo grupo, para luego facilitar el poner o quitar permisos a todo el grupo. Como el servidor sólo tiene entorno de texto, esta tarea la tiene que realizar mediante comandos. 2.1.- Comandos sobre permisos. Ya sabrás que los permisos escritura (w) y ejecución (x). más frecuentes que puede tener un fichero o directorio son: de lectura (r), Permiso de lectura: Solamente se permite la lectura, no la modificación. En el caso de carpetas, no se permite la creación de archivos nuevos ni de subcarpetas. Permiso de escritura: Se permite la lectura y la modificación. En caso de carpetas, se pueden crear archivos y subcarpetas. Permiso de ejecución: Este permiso solamente tiene sentido en caso de archivos ejecutables (programas) y carpetas. Si este permiso está activo para el usuario concreto, éste podrá ejecutar el programa. Cuando ejecutas la orden ls –l en el terminal, la información de una de sus líneas cualquiera puede ser: -rwxr-xr-x 1 primero primero 4096 2011-05-12 fichero Como puedes observar, los permisos están aparecen dentro de los datos dentro de la primera columna. Si te fijas, la primera columna muestra la siguiente información: -rwxr-xr-x Cuando un objeto (fichero o directorio) tiene un permiso asignado, aparece en su lugar el carácter que representa al permiso (r,w o x). Cuando un fichero o directorio carece de un permiso aparece en su lugar un guion. El primer carácter de esta columna hace referencia al tipo de objeto del cual se trata. Es decir, si es un directorio, fichero, socket, etc. Los ficheros normales se representan con el símbolo '-'. Si fuera un directorio aparecería el carácter "d", si se tratase de un fichero de tipo socket (especiales) aparecería una "s", etc. Desde el segundo carácter, de la primera columna, hasta el final de la misma, aparecen representados los permisos para el usuario propietario del fichero, para los usuarios que pertenecen al grupo propietario del fichero o directorio y los permisos para el resto de usuarios del sistema. Propietario, son los permisos del propietario del directorio o fichero. Grupo, son permisos sobre el directorio o fichero del grupo que se indica a continuación. Otros, son permisos del resto de usuarios sobre el directorio o el fichero. Para cambiar los permisos puedes usar los siguientes comandos: chown usuario fich (chown es acrónimo de Change Owner): Cambia el propietario de un fichero. chgrp grupo fich (chgrp acrónimo de change group): Cambia el grupo al que pertenece un fichero. chmod permisos fich chmod (acrónimo de change mode): Cambia los permisos de acceso del fichero añadiendo o quitando, o según se especifica en la cadena de permisos. -u[+/-r][+/-w][+/-]x Añade o quita el permiso especificado para el usuario. -g[+/-r][+/-w][+/-]x Añade o quita el permiso especificado para el grupo. Modificadores y argumentos para la orden chmod. Quién U: es el usuario creador. G: es el grupo al que pertenece el usuario. O: es el resto de usuarios del equipo. Acción + - r=4 es el permiso de lectura. w=2 es el permiso de escritura. x=1 es el permiso de ejecución. a: todos los usuarios del sistema Otra forma de modificar los permisos es mediante un número octal de tres cifras por cada grupo de permisos, este número surge de realizar la suma de los permisos que se les quieren asignar de acuerdo a los valores. r=4, w=2 y x=1. Por ejemplo, si quieres dar al fichero fichero1 todos los permisos a todos los usuarios, es decir, al usuario creador, al grupo al que pertenece este usuario y al resto de usuarios del sistema, escribe en el terminal una de las siguientes opciones: chmod ugo + rwx fichero1. chmod 777 fichero1 . Puedes ver sus nuevos permisos escribiendo en el terminal: ls –l fichero1 En los apartados siguientes vamos a ver como asignar o quitar permisos a los ficheros o directorios utilizando el comando chmod. Como hemos visto anteriormente los permisos se pueden asignar o eliminar utilizando una representación numérica o mediante letras. Autoevaluación El archivo permisos.txt tiene 751 permisos: El usuario, el grupo y el resto de usuarios tienen permiso de lectura solamente. El usuario tiene todos los permisos, el grupo de lectura y ejecución y el resto de usuarios sólo ejecución. Tienen todos solamente permisos de ejecución. Incorrecta, ya que u=7=4+2+1=r+w+x, es decir, el usuario tiene permiso de lectura, escritura y ejecución; g=5=4+1=r+x, es decir, el grupo tiene permiso de lectura y de ejecución; o=1=x, es decir, el resto de usuarios sólo tiene permiso de ejecución. Muy bien, has captado la idea. u=7=4+2+1=r+w+x, g=5=4+1=r+x, o=1=x. No es la respuesta correcta. Ya que u=7=4+2+1=r+w+x, g=5=4+1=r+x, o=1=x. Solución 1. Incorrecto (#answer-61_66) 2. Opción correcta (#answer-61_84) 3. Incorrecto (#answer-61_87) 2.1.1-. Modificación de permisos mediante representación numérica. Los permisos se asignan, se quitan o se modifican de la misma forma a los ficheros y a los directorios. En el momento de modificar los permisos solo debemos de indicar los permisos a asignar y el nombre del objeto al cual queremos asignar o quitar permisos. Podemos modificar los permisos de un objeto (fichero o directorio) para asignarle los permisos necesarios o para quitarle permisos. El comando que utilizaremos para modificar los permisos de un objeto es el comando chmod. Si queremos modificar los permisos de un objeto utilizando la representación numérica, debemos de saber, que hay que especificar los permisos utilizando un número de tres dígitos utilizando la representación octal. Este número podrá tener un valor comprendido entre 000 y 777. Cada uno de los dígitos que forman el número tiene un significado. En este caso, la sintaxis del comando chmod es: chmod permisos fichero_o_directorio Siempre que utilicemos la representación numérica deberemos de utilizar un número que tenga tres dígitos. Cada dígito podrá tener un valor entre 0 y 7 porque son los diferentes valores que existen en el sistema de numeración octal. El número que utilizamos para asignar o quitar permisos, representa 3 tipos de permisos: permiso de lectura (r), escritura(w) y ejecución(x) en este orden. Para obtener un valor concreto utilizaremos el sistema binario. Utilizaremos 1 para indicar que SI tiene permiso (asignar) y 0 para quitar permisos (denegar), es decir, que NO tiene permisos. Cada dígito significa los permisos para un grupo de usuarios diferentes. El primer dígito significa los permisos que se le van a asignar al fichero para el propietario del fichero. El segundo dígito significa los permisos para los usuarios que pertenecen al grupo de usuarios al cual pertenece el fichero o directorio El tercer dígito son los permisos para el resto de usuario que no son ni el usuario propietario del fichero o directorio ni los usuarios que pertenezcan al grupo al cual pertenece el fichero o directorio. Agustín Nieto Espino (Elaboración propia) En el ejemplo se puede ver, que al usuario propietario. le corresponden los permisos de lectura, escritura y ejecución sobre el objeto. Le corresponde el primer 7 de los números indicados. SI convertimos 7 a binario se corresponde con el número 111. El primer 1 (empezando por la izquierda) indica que, si tiene permiso de lectura, el segundo uno indica que si tiene permiso de escritura y el tercer uno indica que si tiene permiso de ejecución. A los usuarios miembro del grupo al cual pertenece el objeto también le corresponden los permisos de lectura, escritura y ejecución. Al resto de usuarios, solo le corresponden los permisos de lectura y ejecución, por lo tanto, no podrán modificar el fichero, pero si acceder al mismo. En el ejemplo, al resto de usuarios del sistema (otros), le corresponde el valor 5. Si convertimos 5 al binario obtendremos el número 101. Por lo tanto, el primer uno indica que el resto de usuarios del sistema si tiene permisos de lectura, el cero que aparece a continuación indica que no tiene permisos de escritura y el segundo uno, indica que si tiene permiso de ejecución. Recomendación Para comprender correctamente la asignación o eliminación de permisos utilizando este método de representación, es necesario saber cómo se convierte un número de octal o decimal a binario y cómo convertir un número de binario a octal o decimal. Si no lo recuerdas, te recomendamos que repases la unidad 1 de este módulo. Ejercicio Resuelto Asigna únicamente permisos de lectura a un fichero, llamado practica1.sh pero solamente para el dueño del fichero y los usuarios del mismo grupo. Mostrar retroalimentación Asigna solo permisos de lectura y escritura para el propietario y para los usuarios que pertenecen al mismo grupo de usuarios a los cuales pertenece el fichero practica2.sh Mostrar retroalimentación Asigna permisos de lectura, escritura y ejecución para el propietario, lectura y escritura para los miembros del grupo al cual pertenece el siguiente fichero y permiso de lectura para el resto de usuarios sobre el fichero practica3.sh Mostrar retroalimentación 2.1.2-. Modificación de permisos mediante representación de caracteres. Otra forma de cambiar los permisos es especificar los tipos de acceso y los tipos de usuarios mediante una letra identificativa de cada uno de ellos. Para identificar los tipos de usuarios: IDENTIFICADOR TIPOS DE USUARIOS u Usuario propietario g Grupo propietario. o Resto de usuarios. a Todos los usuarios. Para identificar los tipos de permisos: IDENTIFICADOR TIPOS DE PERMISOS r Permiso de lectura w Permiso de escritura x Permiso de ejecución Para asignar permisos utilizaremos el símbolo + Para quitar o eliminar permisos utilizaremos el símbolo - Por ejemplo, si quisiéramos dar permisos de escritura y ejecución a todos los usuarios sobre el fichero practica2.sh, en el terminal escribiríamos la orden: chmod a+wx practica2.sh Otro ejemplo: si quisiéramos quitar los permisos de escritura y ejecución a todos los usuarios sobre el fichero practica2.sh, en el terminal escribiríamos la orden: chmod a-wx practica2.sh 2.2.- Comandos de utilidades. Hay muchos más comandos, ahora vas a ver una serie de comandos que se usan a menudo en el testeo del equipo: echo mensaje: muestra el mensaje en la pantalla. Es similar al comando echo del sistema operativo Windows. df (acrónimo de display free): Muestra la ocupación del disco. du (acrónimo de disk usage): muestra la ocupación de disco de cada uno de los ficheros. date: muestra la fecha del sistema. cal (acrónimo de calendary): muestra el calendario. grep: busca las líneas de un fichero donde aparezca la cadena especificada. Nos permite localizar un texto dentro de fichero. La sintaxis es: grep "texto a buscar" fichero . Si le pasamos el parámetro -i al hacer la búsqueda no distingue entre mayúsculas y minúsculas. lpr: manda a imprimir. shutdown: apaga el sistema. Por ejemplo, si escribes en la terminal : shutdown El sistema se apagará después de un minuto. Si escribes la orden: shutdown –h now , apaga el ordenador en este momento. reboot: reinicia el sistema uname: muestra información del sistema. logname: muestra el usuario que se ha conectado. apt-get: manipula paquetes sistema operativo Linux. . Se denomina paquetes a los ficheros de instalación de las aplicaciones en el at: programa tareas. Para saber más En este enlace, puedes ver una página muy completa con los comandos de la shell. Nos pueden servir cuando tengamos que acceder al equipo en modo seguro. Comandos del shell bash. Autoevaluación Relaciona los comandos con lo que muestran, escribiendo el número asociado a lo que hace el comando en el hueco correspondiente. Ejercicio de relacionar Comando echo Relación Resultado 1.- Imprime un fichero. du 2.- Muestra un mensaje por pantalla. df 3.- Muestra la ocupación de los ficheros en disco. lpr 4.- Muestra el espacio disponible. Enviar Son algunos de los comandos más usados. 2.3.- Comandos de red. Vas a ver unos comandos muy usados en redes que seguramente te resultan familiares: ping : sirve para verificar la respuesta de nuestro host en la red. Por ejemplo, podemos comprobar la conectividad de entre dos máquinas, si desde una máquina escribimos la orden ping seguida de la dirección del equipo destino. whois : Permite obtener información sobre un determinado dominio. Será necesario que lo instales utilizando la orden: apt-get install whois traceroute : Muestra el camino en tiempo real de un paquete Agustín Nieto Espino (Elaboración propia) hasta llegar a su destino. netstat : Proporciona información sobre nuestra red. -a : Muestra los puertos abiertos. ip address : Muestra la dirección IP del equipo. O, también en versiones anteriores, ifconfig. Por ejemplo, para activar o desactivar dispositivos de red puedes usar los siguientes comandos: ip link set nombre_interfaz_red down ip link set nombre_interfaz_red up Puedes probar también a escribir en tu terminal: whois google.com Y obtendrás información del dominio google. Autoevaluación Relaciona los comandos con lo que muestran, escribiendo el número asociado a lo que hace el comando en el hueco correspondiente. Ejercicio de relacionar Comando Relación Resultado ping 1.- Muestra la IP. ifconfig 2.- Muestra información sobre la red. traceroute 3.- Muestra el camino de un paquete. netstat 4.- Comprueba la conexión. Enviar Son algunos de los comandos más usados de redes. Para saber más En este enlace puedes ver una página muy completa con los comandos de red en Linux. Comandos de red en Linux. 2.4.- Comandos de gestión de usuarios. Vas a ver una serie de comandos muy usuales en la administración básica de un equipo. Para ejecutar estos comandos necesitaremos permisos de administrador o bien perteneciente al grupo de administradores. Agustín Nieto Espino (Elaboración propia) useradd usuario (acrónimo de user add): añade usuarios. Nos permite crear un usuario nuevo en el sistema. Si le pasamos el parámetro --group nos permite crear el usuario y añadir a un grupo de usuarios. useradd --group nombre_grupo_usuario usuario : crea el usuario usuario perteneciente al grupo indicado. Es requisito que el grupo exista previamente. Si le pasamos el parámetro -d seguido de una ruta, estaremos asignando dicha ruta como directorio de trabajo al usuario que vamos a crear. Por ejemplo, si queremos crear la usuaria rocio y asociarle el directorio /home/rocio, tendremos que escribir la orden: useradd -d /home/rocio rocio. La ruta debe de ser creada previamente. Si queremos asignarle un intérprete de comandos, por ejemplo, bash, debemos de pasarle el parámetro -s seguido de la ruta donde se encuentre el intérprete de órdenes que queramos utilizar. Suponiendo que la ruta /home/rocio existe y queramos dar de alta en el sistema a la usuaria rocio para que utilice dicha ruta como directorio de trabajo y, además, que utilice el intérprete bash cuando inicie sesión, escribiríamos en el terminal la orden: useradd -d /home/rocio -s /bin/bash rocio Cuando damos de alta un usuario en el sistema con el comando useradd, éste por defecto, no le asocia ninguna contraseña al usuario. Para poder utilizar el usuario necesitaremos asignarle una contraseña previamente. Esto lo podemos hacer una vez creado el usuario/a con el comando passwd o bien pasándole el parámetro -d en el momento de crear el usuario seguido de la contraseña. La contraseña se encontrará escrita en modo texto con lo cual puede suponer un problema de seguridad. Por esta razón, te recomendamos que, si das de alta un usuario con este comando, utilices a continuación el comando passwd para asignarle una contraseña. userdel usuario (acrónimo de usr delete): elimina usuarios. Si le pasamos el parámetro -r , borra también toda la información de su directorio personal. adduser nombre_usuario : añade un usuario nuevo al sistema, creando un directorio de trabajo con el mismo nombre de usuario dentro de la ruta /home y le asigna una contraseña. Más cómodo de utilizar que el comando useradd. passwd usuario : cambia la contraseña del usuario indicado groupadd nuevogrupo : para añadir un nuevo grupo de usuarios groupdel nombre_del_grupo : para eliminar un grupo. delgroup nombre_usuario nombre_grupo : nos permite eliminar a un usuario de un grupo de usuarios. usermod : cambia varios atributos de usuarios. Todo usuario puede pertenecer a un solo grupo principal y a varios secundarios. Si le pasamos los siguientes parámetros: -g nombre_grupo usuario: cambia el grupo principal de un usuario. -G nombre_grupo usuario: nos permite añadir un usuario un grupo secundario. id : muestra el nombre y número de usuario y grupo/s al que pertenece. whoami : muestra el nombre de usuario. who : muestra los nombres de los usuarios conectados al sistema, sus terminales y la fecha/hora de acceso. En el caso de utilizar la versión desktop de Ubuntu, mostrará los usuarios que han iniciado sesión desde el entorno gráfico. Por ejemplo, para crear un nuevo usuario, como es una tarea de administrador, escribe en la terminal: sudo useradd usuarioNuevo Puedes comprobar que se ha creado un nuevo usuario desde el entorno gráfico. En Mostrar Aplicaciones > Usuarios y Grupos, o bien, viendo el contenido del fichero passwd, escribiendo en la terminal: cat /etc/passwd Comprueba que en la última línea hay un nuevo usuario, además, que como UID asignado tiene uno mayor que 1000, ya que es un usuario normal. Para ver el número UID también puedes escribir en la terminal: id usuarioNuevo Toda la información sobre usuarios, grupos y contraseñas se guarda en los archivos: /etc/passwd: Información sobre usuarios. /etc/group: Información sobre grupos. /etc/shadow: contraseñas cifradas. En estos ficheros se almacena la información línea a línea (cada una es un usuario o un grupo). Debes conocer En el siguiente vídeo, vas a ver cómo crear y eliminar usuarios desde un terminal: Gestión de usuarios 0:00 Agustín Nieto Espino. Descripción textual alternativa para el vídeo "Gestión de usuarios". (index5.html) (Elaboración propia) Debes conocer A través del siguiente vídeo puedes ver cómo crear y administrar grupos de usuarios desde el terminal: Gestión de grupos 0:00 Agustín Nieto Espino. Descripción textual alternativa para el vídeo "Gestión de grupos". (index6.html) (Elaboración propia) 2.5.- Comandos de gestión de procesos. Tendrás la oportunidad de administrar y gestionar procesos en ejecución, mediante comandos específicos para su tratamiento. Como aplicación más interesante de las señales se estudiará la sincronización de procesos. Con los siguientes comandos podrá ver, cancelar y priorizar procesos en ejecución. ps (acrónimo de process status): muestra la lista de procesos con sus PID (Identificación del proceso) y nombre. Al ejecutarlo muestra los procesos que ha sido creado desde el terminal actual. Algunos de los parámetros Agustín Nieto Espino (Elaboración propia) que admite son: -a Muestra también procesos de otros usuarios. -x Muestra también procesos sin terminal de control (daemons). -u usuario Muestra los procesos de un usuario específico. -e Muestra todos los procesos. -F muestra toda la información de cada proceso. -l Con todos los detalles (S: estado (S - Sleep, R - Running, T - Stopped), UID: Identificación del usuario que ha lanzado el proceso, PID: Identificación del proceso PPID: identificación del padre del proceso, valor de nice, SZ: uso de memoria y CPU, etc.). kill : Termina procesos. top . Muestra en tiempo real la situación de los procesos. Por ejemplo, si escribes en la terminal, la orden: ps Obtendrás información sobre el PID, TTY, TIME y CMD, ¿y qué es eso?, pues verás: PID : Cada proceso obtiene un número de identificación único, este es el PID. TTY : Es la terminal asociada al proceso, también puede ser otro dispositivo de entrada. TIME : El tiempo que el proceso ha estado en ejecución. CMD : El nombre del comando que está siendo ejecutado. Si escribes en un terminal, la orden: ps –eF Verás todos los procesos que se están ejecutando junto con toda su información. Autoevaluación Relaciona los comandos con lo que muestran, escribiendo el número asociado a lo que hace el comando en el hueco correspondiente. Ejercicio de relacionar Comando Relación Resultado useradd 1.- Lista los procesos. ps 2.- Muestra los usuarios. who 3.- Mata procesos. kill 4.- Añade usuarios. Enviar Son algunos de los comandos más usados de administración básica. 2.6.- Editores de texto. Para ver el contenido de los ficheros puedes usar el comando cat , pero si, además, vas a querer modificarlos y cambiar algún valor en algún fichero de configuración, debes usar un editor de textos. Algunos de los editores de texto más usados en Linux son: gedit: es el editor por defecto en modo gráfico en distribuciones GNOME. nano: es el editor por defecto en modo texto. Agustín Nieto Espino (Elaboración pico: editor básico. vi (Acrónimo de visual): editor de texto característico de Linux, tiene dos modos de trabajo: propia) Modo comando o dos puntos. Modo introducción de texto. Cuando abres el editor vi desde la terminal , escribiendo vi, estás en modo comando, para poder introducir texto tienes que pasar a modo de insertar texto, para ello pulsa :i (dos puntos i). Ahora escribe el texto que quieras que contenga el fichero y para salir pulsas control + c y tecleas :wq y el nombre del archivo. Para insertar :i .Cuando estás en modo comando o dos puntos tienes una serie de parámetros como son: que puedes usar, Para borrar, pulsaremos las teclas :x Para buscar :fg Para salir sin grabar :q! Para salir y guardar los cambios :wq Para crear un fichero de texto, también puedes usar el comando cat, para ello, escribes en la consola cat > nombre_del_fichero y después escribes el texto que quieras que contenga el fichero y para salir pulsas CTRL más la tecla d. Debes conocer Los scripts son ficheros que contienen órdenes. Son muy útiles para automatizar tareas en Linux. Para poder crearlos o modificarlos, necesitarás saber cómo crear ficheros desde el terminal. En el siguiente vídeo, se muestran los editores de textos que más se utilizan: Editores de texto 0:00 Agustín Nieto Espino. Descripción textual para el vídeo "Editores de texto". (index7.html) (Elaboración propia) Autoevaluación El editor vi: Es un editor gráfico. Es equivalente a gedit. Trabaja en modo dos puntos y modo insertar texto. Incorrecta, es un editor en modo texto. Incorrecta. Correcto, es un editor de texto básico. Solución 1. Incorrecto (#answer-78_66) 2. Incorrecto (#answer-78_103) 3. Opción correcta (#answer-78_106) Para saber más En este enlace, puedes ver una página sobre los comandos y manejo del editor vi: Editor vi. 3.- Script de Linux. Caso práctico Nora e Iván han estado probando Ubuntu en una máquina virtual y han decidido instalarlo en su equipo real, ya que cuando instaló Windows 10 se dejó una partición libre. Nuria Barroso Ruiz (Elaboración propia) Ha aprovechado esta partición para ello. Ahora Nora tiene en el equipo de su casa dos sistemas operativos en la máquina real: Windows 10 y Ubuntu. Cuando enciende el equipo le aparecen muchas opciones para arrancar el equipo, y si no selecciona ninguna, carga por defecto Ubuntu y el resto de la familia quiere que por defecto arranque Windows 10. Con los conocimientos que ya tiene va a editar el gestor de arranque, que es un shell script que se ejecuta al iniciar el sistema y le va a modificar, entendiendo lo que hace el script en cada línea. En Linux hay unos archivos, llamados script o guiones de la shell, que contienen órdenes o comandos que se van ejecutando. Algunos de estos shell script se ejecutan al iniciarse el sistema, como el gestor de arranque. Otros, los puede crear el propio usuario para mecanizar tareas que ejecute con frecuencia. En este apartado vas a aprender a realizar pequeños shell scripts. 3.1.- ¿Qué es un script? Un script de comandos es un fichero de texto cuyas líneas son comandos ejecutables, tal y como las escribirías en la línea de comandos del shell. Los scripts pueden ejecutarse como si fueran un nuevo comando. Las líneas que empiezan con el carácter # son comentarios y son ignoradas por el shell al ejecutar el script. El intérprete de comandos o "shell" es también un lenguaje de programación Agustín Nieto Espino (Elaboración completo. La programación de shell se usa mucho para realizar tareas repetidas con propia) frecuencia. En Linux, cuando hagas un script, se suelen comenzar con una línea que indica la shell con la que se va a ejecutar el script. Puede ser: #!/bin/bash #!/bin/sh #!/bin/ksh Cualquier otra línea del script que comience por # es tomada como un comentario, por lo tanto, no será ejecutada. Los comentarios se añaden para facilitar la lectura del programa. Para comenzar a crear un script tienes que: Escribir los comandos en un fichero de texto (con un editor de texto simple o redireccionando con cat > nombre_script). Por ejemplo, podemos utilizar el editor nano. En el terminal, escribiríamos la orden: nano miScript.sh. A partir de ese momento ya estaríamos en disposición de insertar las órdenes en el fichero. Escribir los comandos. Grabar o guardar. Cambiar los permisos del fichero para que tenga permis