trabajo y nueva plataforma. Contenido temático Instalación Configuración Control de Acceso y Permisos Comandos Programación en scripts Samba Servicios UNIX UNIX es un sistema operativo multitarea, multiusuario, creado en 1969 por los investigadores Thompson y Ritchie de los Laboratorios Bell, en los Estados Unidos. Las primeras versiones fueron escritas en assembler, pero muy pronto fue re-escrito en lenguaje C. GNU La sigla GNU significa GNU is Not Unix. En 1984, Richard Stallman fundó el Proyecto GNU con el objetivo de conseguir un sistema operativo libre y abierto. Esto es, un sistema operativo tal que los usuarios puedan usarlo, leer el código fuente, modificarlo, y redistribuirlo. Linux Linux es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del resto de sistemas: Es libre. Acompañado del código fuente. Características de Linux Multitarea. Multiusuarios. Multiplataforma. Multiprocesador. Protección de la memoria entre procesos. Política de copia en escritura para la compartición de páginas entre ejecutables. Todo el código fuente está disponible. Kernel/Nucleo El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar junto. Kernel/Nucleo Cuando un nuevo núcleo aparece, puede ser por las siguientes causas: Nuevas características se han añadido. Fallos de programación se han corregido Fallos de seguridad se han corregido. Nuevo hardware es soportado. Distribuciones Linux es un sistema de libre distribución por lo que puedes encontrar todos los ficheros y programas necesarios para su funcionamiento en multitud de servidores conectados a Internet. Distribuciones Distribuciones Una distribución no es otra cosa, que una recopilación de programas y ficheros, organizados y preparados para su instalación. Casi todos los principales distribuidores de Linux, ofrecen la posibilidad de bajarse sus distribuciones, vía FTP (sin cargo alguno). Distribuciones DEBIAN Otra distribución con muy buena calidad. El proceso de instalación es quizás un poco mas complicado, pero sin mayores problemas. Gran estabilidad antes que últimos avances. Distribuciones UBUNTU Distribución basada en Debian, con lo que esto conlleva y centrada en el usuario final y facilidad de uso. Muy popular y con mucho soporte en la comunidad. El entorno de escritorio por defecto es GNOME. Distribuciones KUBUNTU Distribución basada en Ubuntu, con lo que esto conlleva y centrada en el usuario final y facilidad de uso. La gran diferencia con Ubuntu es que el entorno de escritorio por defecto es KDE Distribuciones REDHAT ENTERPRISE Esta es una distribución que tiene muy buena calidad, contenidos y soporte a los usuarios por parte de la empresa que la distribuye. Es necesario el pago de una licencia de soporte. Enfocada a empresas. Distribuciones MANDRIVA Esta distribución fue creada en 1998 con el objetivo de acercar el uso de Linux a todos los usuarios, en un principio se llamó Mandrake Linux. Facilidad de uso para todos los usuarios. Distribuciones 'LiveCD' Un "LiveCD" no es otra cosa que una distribución de Linux que funciona al 100%, sin necesidad de instalarla en el ordenador donde la probamos. Utiliza la memoria RAM del ordenador para 'instalar' y arrancar la distribución en cuestión. DISTRIBUCION UBUNTU DESKTOP LIVECD. DISTRIBUCION GNOPPIX – LIVECD. DISTRIBUCION KNOPPIX - LIVECD Requerimientos Procesador: 1 GHz Memoria: 512 MB Espacio libre en disco: 2 GB Instalación Conectiva Linux incluye tres clases o tipos de instalación diferentes: Estación de Trabajo Servidor Personalizada Particiones Es el nombre genérico que recibe cada división presente en una sola unidad física de almacenamiento de datos. Esquema de las particiones Dos Letras Iniciales - las primeras dos letras del nombre de la partición indican el tipo de dispositivo donde reside la partición. Normalmente serán hd (para discos IDE) o sd ( para discos SCSI). Tercera Letra - esta letra indica que dispositivo contiene la partición. Por ejemplo /dev/hda (el primer disco duro IDE) o /dev/sdb (segundo disco SCSI). Número - indica la partición. Las primeras cuatro (primarias o extendidas) particiones son numeradas de 1 a 4. Particiones lógicas empiezan en 5. Por ejemplo /dev/hda3 es la tercera primaria o extendida en el primer disco IDE; /dev/sdb6 es la segunda partición lógica del segundo disco duro SCSI. Particiones Partición de Cambio (Swap) , El tamaño de la partición debe ser de, como mínimo, de 16 Mb o igual a la cantidad de la memoria del equipo. El mayor tamaño de una partición de cambio es de 127 Mb. Particiones Partición Raíz Una partición root o raíz, será montada como /
(directorio inicial) cuando Conectiva Linux
inicia, y contiene los items necesarios al arranque del sistema y archivos de configuración. Un tamaño entre 50 a 100 Mb en media es suficiente para esta partición. Particiones Partición /usr Esta partición contendrá la mayor parte de los softwares que Conectiva Linux pone a disposición. Debe tener entre 300 a 700 Mb, dependiendo de cuantos paquetes se pretenda instalar. Si es posible, intente ser generoso con la partición /usr. Cualquier instalación vía RPM intentará en general utilizar más espacio de esta partición que de cualquier otra. Particiones Partición /home Esta partición contiene los directorios personales de los usuarios. Su tamaño depende principalmente de cuantos usuarios utilizarán el sistema y del volumen de datos que almacenen. Particiones Partición /tmp Destinada al almacenaje de archivos
temporales. Bastante indicada para sistemas con
muchos usuarios o servidores de red. Particiones Partición /usr/src Destinada al almacenaje de grandes cantidades de códigos fuente incluidos en Conectiva Linux. Partición /usr/local Destinada al almacenaje de objetos, por separado, del restante del Conectiva Linux, tales como softwares no disponibles como un paquete RPM Particiones Partición /var El sistema Conectiva Linux irá crear diversos archivos de históricos y mensajes en /var/log. Normalmente residen en el directorio /var/spool los archivos en colas de impresión Partición /opt Algunos softwares de terceros son diseñados para que se instalen bajo el directorio /opt GNOME y KDE KDE GNOME Descripción Navegadores de Konqueror Nautilus direcctorios e Internet Kmail Evolution Gestores de correo Kpresenter -- Editor de presentaciones Kpackage gnome-apt Instalación de paquetes -- Dia Editor de diagramas Kspread Gnumeric Hojas de Cálculo -- Gnucash Administrador económico varios applets Monitores del sistema Konsole gnome-terminal emuladores de terminales Panel de control Panel de control configuradores del entorno Korganizer Agenda Agendas de usuario Modalidades Modo gráfico. Modo consola o texto LILO LILO (LInux LOader) es el método más común usado para inicializar Conectiva Linux en el sistema Intel. Siendo un cargador de sistema operativo, LILO opera independiente de cualquier sistema operativo, usando apenas el Basic I/O System (o BIOS) del propio ordenador. Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Configuración Practica # 1 Instalar en el VMWare o en una partición de un disco duro el sistema operativo Linux, distribución Mandriva. Control de Acceso y Permisos En GNU/Linux los permisos sobre los programas y los archivos del sistema son bastante más específicos que en sistemas como Windows. Existen los conceptos de propiedad y permisos. Propiedad: los usuarios son propietarios de archivos. Todos los archivos que un usuario crea son su propiedad. Permisos: se refiere a lo que un usuario puede hacer con un determinado archivo, sea o no el dueño de ese archivo. Mediante los permisos, se controla quien puede visualizar, editar o ejecutar archivos en el sistema Control de Acceso y Permisos El control de acceso se hace a través de restricciones al sistema de archivos. Para cada archivo o directorio, se consideran tres categorías de usuarios: Dueño: Quien ha creado el archivo. Grupo: Grupo que hace parte el dueño del archivo. Otros: Usuarios que no se encuadren en las catego- rías anteriores. Control de Acceso y Permisos Códigos de Protección Todo archivo determina que usuarios tienen acceso a él y con cuál finalidad. Cada categoría de usuarios posee un conjunto distinto de permisos de acceso al archivo. Cada conjunto de permisos de acceso significa presencia o ausencia de permisos para: lectura (r); escritura (w); ejecución (x). Control de Acceso y Permisos Verificando Permisos Cada usuario del sistema posee tres conjuntos (rwx) de permiso para cada archivo. El sistema de permisos da más seguridad al usuario, pues permite que tenga un mayor control del acceso a sus archivos y directorios. Esto da más seguridad, no sólo al usuario, como también a todo el sistema. Control de Acceso y Permisos Modo de Acceso Archivo común/especial Directorio examinar contenido de listar archivos del Lectura ``r'' archivo directorio alterar el contenido del Escritura ``w'' escribir en el directorio archivo ejecutar el archivo como Ejecución ``x'' pesquisar el directorio comando crea máscaras en la crea máscaras en la Umask creación creación Control de Acceso y Permisos Chgrp Cambia el grupo dueño de los archivos/directorios. El parámetro group puede ser tanto un número (gid - identificador de grupo), como un nombre de grupo encontrado en el archivo de grupos del sistema /etc/group. El usuario debe ser miembro del grupo especificado y dueño del archivo (o el superusuario). Control de Acceso y Permisos El comando chgrp grupo archivo nos permite cambiar el grupo de un archivo. Solamente podemos cambiar el grupo a otro grupo que también pertenezcamos Control de Acceso y Permisos chown Cambia el dueño de los archivos y directorios para dueño, que puede ser un nombre de acceso o la identificación de usuario (número asociado al nombre del usuario). Nota: El comando chown tanto puede cambiar el dueño de los archivos, como el propio grupo de archivos. Control de Acceso y Permisos Chmod Permite que sea alterado el permiso de los archivos de acuerdo con el modo informado. El modo puede ser representado simbólicamente o a través del patrón de bits del permiso (octal). chmod u+r archivo le estamos agregando permiso de lectura al usuario. chmod o-w archivo le quitamos permiso de lectura a los demás. Línea chmod a+x,go-w archivo le agregamos permiso de ejecución a todos los usuarios, y le quitamos el de escritura a todos los que no son el dueño. Control de Acceso y Permisos chmod 644 archivo asigna permisos de lectura y escritura para el usuario y sólo de lectura para los demás. chmod 755 archivo asigna permisos de lectura, escritura y ejecución al usuario y de lectura y ejecución a los demás. Práctica # 2 1. Indicar los comandos a utilizar para otorgarle a un archivo cualquiera permisos de: lectura y escritura solamente para el dueño del archivo; lectura y ejecución para todos los usuarios; lectura para todos los usuarios, y escritura solamente para el dueño del archivo. Práctica # 2 2. Crear un directorio (por ejemplo pruebadir), y algunos archivos dentro (por ejemplo, arch1 arch2 arch3). Cambiarle los permisos de lectura, ejecución y escritura al directorio y probar diversos comandos: echo prueba/*, cd prueba, touch prueba/arch4, rm prueba/arch3, ls prueba, etc. De este modo se puede apreciar que significan realmente los permisos de lectura, escritura y ejecución en un directorio. Consolas virtuales En GNU/Linux y en sistemas UNIX modernos en general, es normal que nuestra computadora funcione como muchas terminales a un mismo tiempo. Para cambiar de una terminal a otra, normalmente se utiliza la combinación de teclas Alt-F1, Alt-F2, etc. O bien, Ctrl-Alt-F1, Ctrl-Alt-F2, etc. Dentro de una consola podemos movernos hacia arriba o hacia abajo, utilizando la combinación de teclas Shift-PgUp y Shift-PgDn Procesos Siempre que se activa un utilitario o un programa en Linux, el sistema inicia un proceso. Este es el nombre oficial de un programa que está siendo ejecutado. Siendo un sistema multitarea, Linux es capaz de ejecutar varios procesos simultáneamente. El kernel del Linux controla el tiempo y las prioridades de ejecución de los procesos, permitiendo que ellos sean creados y encerrados. Existen dos tipos, o niveles, de procesos: los del usuario y los del sistema (o kernel). Procesos Podemos colocar un proceso en background, esto es, el proceso continua la ejecución mientras que el shell se libera para otras actividades. Para colocarse un comando en background, se utiliza la señal ``&'' al final de la línea de comando. También se puede colocar un proceso en background a través de la utilización de las teclas Ctrl+z (z) seguido del comando bg. Para retornar el proceso al shell principal, utilizamos el comando fg [N*], de esta forma el proceso vuelve a shell inicial. Procesos Ps Relata el estado de los procesos en ejecución. kill, killall Finaliza uno o más procesos en ejecución a través de la información de su número o nombre. Mount Monta sistemas de archivos. Apagando el sistema Linux Shutdown. Apaga el sistema Sintáxis /sbin/shutdown [-t sec] [-rkhncfF] time [ mensaje de alerta] Comandos passwd . Actualizaciones y autentificaciones de contraseñas. Sintáxis: passwd [-u] [username] Comandos informativos Man. Enseña las páginas de manual on-line Who. Enseña quien está en la máquina en el momento. Date. Enseña la fecha y la hora del sistema. Solamente el administrador podrá alterar la fecha y hora del sistema. Uptime. Podemos ver cuanto tiempo hace que se ha iniciado el sistema de nuestra computadora Clear. Sirve para limpiar la pantalla. Pipes Conectores o Pipes ( | ) Se utiliza como conexión de utilitarios. Es una manera de dar una nueva orientación a las entradas y salidas, de modo que la salida de un comando se torna la entrada del comando siguiente. Directorios Pwd. Exhibe el nombre del directorio de trabajo actual. Cd. Cambia el directorio corriente. Mkdir. Crea directorios. Rmdir. Elimina directorios. ls . Lista archivos y directorios. Archivos Cat podremos ver el contenido de un archivo. Puede recibir una serie de archivos, y el resultado será que nos mostrará un archivo a continuación del otro. More Exhibe el contenido de un archivo, página por página. Sintaxis: more [-dlfpcsu] [-num] [+/ pattern] [+ linenum] [archivo ...] Head Exhibe el inicio de un archivo. Tail Exhibe el final de un archivo. Archivos Wc Cuenta líneas, palabras y caracteres de archivos. Cp Copia archivos. Mv Mueve archivos. Rm Elimina archivos. Type Enseña la ubicación de un archivo. Diff Compara dos archivos en formato texto, línea por línea. Grep Busca por un patrón en un archivo. Archivos Find. permite encontrar archivos, utilizando diversas técnicas. find . -name "hola.txt" encuentra todos los archivos llamados hola.txt que se encuentren a partir del directorio actual. find . -size 50k busca los archivos que ocupan 50 kilobytes a partir del directorio actual. find /home/user -empty busca todos los archivos que se encuentran vac´ıos, a partir del directorio /home/user. Compresores y Empaquetadores Tar Comando designado para creación de archivos que contienen, internamente, diversos otros archivos. Sintaxis: tar zxpvf (nombre_del_archivo) (origen) OPCIONES -c crea un nuevo archivo tar. -t lista el contenido del archivo tar. -x extrae el contenido del archivo tar. -v enseña más mensajes. -f archivo de origen/destino. -z filtra el archivo con gzip. Compresores y Empaquetadores Zip Programa para comprimir archivos. Filtros Son utilitarios que reciben una entrada, realizan algunas operaciones y presentan el resultado procesado como salida. O sea, los filtros utilizan una entrada (en general la entrada predeterminada, a menos que sea especificada otra) para procesar una información y convertirla en otra, que será presentada en la salida (que también normalmente es la predeterminada), pero sin cambiar el contenido original de la información. Filtros Tee Lee de la entrada predeterminada y escribe en la salida predeterminada o en archivos. Sort Ordena las líneas de archivos texto. Tr Convierte o elimina caracteres. Práctica # 3 Copiar de manera gráfica al directorio Documentos, un archivo y renombrarlo archivo1 y cambiarle sus permisos a dueño como rwx, grupo como rw y a otros que no tenga nada. Copiar con el mc un archivo en el directorio Documentos y renombrarlo como archivo2 y cambiarle sus permisos de dueño como rw, grupo como r y otros como r. Copiar un archivo con el comando cp a Documentos y renombrarlo como archivo3 y cambiarle los permisos como dueño rwx, grupo como rw y otros sin permisos. Listar en forma gráfica, con el mc y línea de comando. Práctica # 3 Cambiarse de directorio de manera gráfica, con el mc y con línea de comando. Crear una nueva cuenta en modo gráfico y línea de comando. Mostrar quienes están en la máquina en este momento. Mostrar la fecha del sistema y cambiarla. Práctica # 3 Mostrar el contenido de un archivo Mostrar las líneas, palabras y caracteres Mostrar la ubicación de un archivo Crear dos archivos de texto iguales y modificar uno una o dos caracteres y luego compararlo para ver la diferencia. Buscar una palabra dentro de un archivo Práctica # 3 Buscar un archivo usando find y locate. Comprimir un archivo Empaquetar varios archivos, copiarlo en otro directorio y desempaquetarlo. Listar un directorio ordenadamente Metacaracteres * Todos ? Un carácter [] rango [^] no están en el rango Ejemplos: ls * ls a* ls a??? ls [af]* ls [^0-9]* Metacaracteres ‘…’ Cadena `…` no es cadena \ el siguiente carácter no es un metacaracter # comentario Ambiente de Trabajo (Shell) El shell es un interpretador de comandos. El actúa con el sistema operativo, haciendo la conexión entre los comandos que tu tecleas y las actividades que el kernel puede realizar. El propósito del shell es tornar el sistema operativo más amigable, por ser mucho más fácil para el usuario acordarse del nombre del comando que el conjunto de llamadas de sistema que están por tras de él Ambiente de Trabajo (Shell) Csh (C-shell) es al mismo tiempo interpretador de comandos y lenguaje de programación (basada en C), tiene variables shell y variables de usuario. Bash (Bourne Again Shell) es el Shell de la GNU. Incorpora funcionalidades del Korn shell y C-shell. Ksh (korn shell) tiene como ventaja manejar un historial de comandos, es el ksh. Está basado en sh, con algunos agregados muy básicos para hacerlo más amigable.