linux_basico1

Download Report

Transcript linux_basico1

Curso de Introducción a
GNU/Linux
Índice del Curso
•Tema 1 – Introducción
•Tema 2 – Distribuciones e Instalación
•Tema 3 – Repaso
•Tema 4 – Administración en Linux
•Tema 5 – Entorno gráfico
•Tema 6 – Kernel de Linux
•Tema 7 – Instalación y Configuración de
servidores
•Tema 8 – Conceptos básicos de seguridad
Introducción
2 de 31
Introducción
• Que es GNU/Linux
• Unix: El comienzo
• Historia de GNU/Linux
• Situación actual
• Sistema multiusuario y multitarea
• Usuarios y permisos
• Sistema de ficheros
• Entrando en Linux
Introducción
3 de 31
Qué es GNU/Linux
•
Linux es un sistema operativo creado inicialmente como
un hobby por Linus Torvalds, un estudiante de la
Universidad de Helsinki. Linus estaba interesado en
Minix, un pequeño sistema UNIX, y decidió desarrollar un
sistema que superara los estándares de Minix.
• Comenzó su trabajo en 1991 cuando divulgo la versión 0.0.2 y trabajó
firmemente hasta 1994 fecha en la que se divulgó la versión 1.0 del kernel
Linux. La versión actual es la 2.4 y el desarrollo continua.
• Linux se desarrolla bajo la Licencia Publica General GNU y su código
fuente esta disponible para cualquiera. Aun así, esto no significa que Linux y
las diferentes distribuciones sean gratuitas -- las compañías y los
desarrolladores pueden cobrar por ello siempre y cuando el código fuente este
disponible. Linux puede utilizarse para un amplio rango de propósitos
incluyendo networking, desarrollo de software y como plataforma para el
usuario final. Linux se considera frecuentemente una alternativa excelente y
de bajo coste a otros Sistemas Operativos más caros.
Introducción
4 de 31
Qué es GNU/Linux
• GNU/Linux es un Sistema Operativo multiplataforma,
multiusuario y multitarea con compatibilidad POSIX.
• Esta compuesto por software libre. Podemos descargarlo
gratuitamente o comprarlo a una compañía junto con el soporte
técnico.
• Hoy día se puede instalar GNU/Linux en casi cualquier
plataforma existente, desde 386 hasta superordenadores Cray.
• La gran mayoría del software que puede necesitar un usuario
domestico o uno profesional están disponibles para GNU/Linux
• A pesar de que Unix ha sido tradicionalmente poco amigable,
GNU/Linux se acerca cada vez más al entorno domestico.
• Se estima que actualmente hay más de 18 millones de usuarios de
GNU/Linux en el mundo
Introducción
5 de 31
UNIX: El comienzo
• Años 60: en los Laboratorios Bell se comienza el desarrollo de
Multics, un SO multiusuario, multitarea, multicomplicado.
Nunca se terminó.
• Años 70: Thompson y Ritchie empiezan a escribir un sistema
operativo, deciden llamarlo Unix. Kernigan y Ritchie crean el
lenguaje C. En 1972 Unix se reescribe en C, con lo que puede
ejecutarse en cualquier maquina que tenga un compilador de C.
Se convierte en el primer SO realmente portable. AT&T pone a
disposición del público el código fuente.
• Años 80: Unix se extiende y aparecen variantes (BSD). AT&T
decide no seguir con Unix y las variantes comerciales toman el
mercado. El código fuente no se distribuye y los programas no
pueden modificarse ni compartirse.
Introducción
6 de 31
GNU (I)
• Esta situación desagrada a la mayoría de los usuarios, las
abusivas licencias comerciales rompían el espíritu de
colaboración.
• Richard Stallman, del MIT se decide a cambiar las cosas y
comienza a escribir un SO libre, que pudiera ser copiado y
modificado por quien quisiera. Se basa en Unix intentando
mejorarlo donde pudiera. Elige el nombre para recalcar la
diferencia entre Unix (mayoritariamente comercial) y su sistema
(que será libre): GNU (Gnu’s Not Unix).
• Para administrar los recursos disponibles del proyecto GNU crea
la Free Software Fundation y esta desarrolla la licencia GPL
Introducción
7 de 31
GNU (II)
FSF
“Free as in ‘free speech’ not ‘free beer’”
• La Free Software Fundation es la
principal responsable del proyecto
GNU.
• Actualmente se encuentran disponibles
2068 paquetes de software. Los más
conocidos: Bash, gcc, Emacs, gdb,
Glibc, Gnome, GnuPG, sin olvidar
Hurd: el kernel del sistema GNU aun
en desarrollo.
• Existen muchos más programas distribuidos bajo licencia
GPL
Introducción
8 de 31
GNU (III)
GPL
• Licencia Pública General (http://www.gnu.org/copyleft/gpl.html)
• Garantiza al usuario del programa la libertad para copiar,
compartir, intercambiar y/o modificar el programa a su antojo.
• Si el usuario distribuye el programa a otra persona debe dar a
ésta los mismos derechos que tenía el usuario original. Es decir,
no se puede impedir que el software que es libre siga siendo libre
para siempre.
• No existe ninguna garantía sobre el programa, el usuario es el
único responsable de todas las consecuencias que el uso del
programa pudiera acarrear.
Introducción
9 de 31
GNU (IV)
GPL (II)
• No obstante, usuarios o compañías podrían optar por ofrecer
garantía sobre un programa GNU a los usuarios a cambio de un
precio.
• Libre no es lo mismo que gratuito, las empresas tienen derecho a
vender el software, y a ofrecer garantías o soporte técnico a
cambio de un precio. Naturalmente, no pueden eliminar al
usuario sus derechos a intercambiar y modificar el programa.
• La licencia establece que si se utilizan partes de un programa
GPL en otro programa, entonces el programa resultante debe
estar también protegido por la GPL (para evitar que el software
deje de ser libre).
Introducción
10 de 31
Linux (I)
• A finales de los 80 la FSF ya tenía gran cantidad de los
programas necesarios implementados pero les faltaba una parte
importante: el kernel. Su propio kernel, llamado Hurd, tardaría
bastante en estar listo (a día de hoy todavía no lo está).
• En 1990 el IEEE publico un estandar sobre Sistemas Operativos,
que especificaba como debía ser el interfaz externo de las
diversas áreas de un Sistema Operativo. Se llamó POSIX:
Portable Operating System Interface.
• En aquellos momentos uno de los núcleos más conocidos era
Minix, desarrollado como un proyecto educativo por Andrew
Tanenbaum y distribuido con su libro sobre diseño de Sistemas
Operativos.
Introducción
11 de 31
Linux (II)
• En 1991 en el grupo de noticias comp.os.minix, un estudiante de
la Universidad de Helsinki, Linus Benedict Torvalds, anunció
que estaba trabajando en un Sistema Operativo basado en
Minix. Decidió hacerlo libre y accesible para todos y pronto
empezó a desarrollarse rápidamente gracias a colaboradores de
todo el mundo.
“Do you pine for the nice days of minix-1.1, when men were
men and wrote their own device drivers? [...] I'm working on
a free version of a minix-lookalike for AT-386 computers. It
has finally reached the stage where it's even usable, [...] and I
am willing to put out the sources for wider distribution. It is
just version 0.02, but I've successfully run bash/gcc/gnumake/gnu-sed/compress etc under it.“
Introducción
12 de 31
Situación actual (I)
• Hoy día (Marzo de 2003), Linux va ya por la versión estable 2.4.
Posee todas las características que tienen los Unix modernos,
incluyendo: multitarea real, memoria virtual, librerías
compartidas, carga bajo demanda, ejecutables compartidos,
administración de memoria eficiente, y redes TCP/IP.
• GNU/Linux es usado por multitud de empresas y organismos por
su reconocida estabilidad y escalabilidad. Es el sistema operativo
más usado en servidores de Internet.
• El futuro se presenta prometedor para GNU/Linux. Cada vez
más empresas y particulares confían en él como sistema
operativo. En los últimos tiempos ha ido ganando terreno como
ordenador de sobremesa para aplicaciones personales. La
orientación de Linux hacia aplicaciones de escritorio no le ha
hecho perder su estabilidad y capacidad para aplicaciones
críticas.
Introducción
13 de 31
Situación actual (II)
• Busqueda en Google:
– Windows: 63.200.,000
– Linux: 59.600.000
– Microsoft: 33.100.000
– Unix: 15.900.000
– Mac OS: 3.570.000
– BSD: 3.530.000
Introducción
14 de 31
Sistema multiusuario y multitarea
• Un sistema operativo multitarea y multiusuario permite que
varias personas puedan estar ejecutando programas al mismo
tiempo en un mismo ordenador.
• Generalmente, los sistemas corrientes tienen un único
procesador. Éste se las apaña para repartir el tiempo entre los
diversos PROCESOS (programas en ejecución) que corren en él,
de manera que parezcan ejecutarse "a la vez", como si cada uno
tuviera una CPU a su disposición.
• Por otro lado, cada proceso corresponde a un usuario,
normalmente el que lo ejecuta, y no puede acceder sino a las
zonas del sistema a las que el propio usuario tiene acceso. Así, los
procesos ejecutados por un usuario no se mezclan con los
ejecutados por otro y tampoco pueden acceder, en principio, a
datos ajenos.
Introducción
15 de 31
Usuarios y permisos (I)
• Cuando un sistema es utilizado por diferentes personas es
necesario un método para poder diferenciarlas. A cada
usuario se le asigna un nombre de usuario (login) diferente
que será el que utilice para entrar al sistema.
• Una cuenta es más que un nombre. Son todos los ficheros,
recursos e información correspondientes al usuario. El
termino se ha heredado del entorno bancario y aparece
debido a la necesidad de cobrar por los servicios prestados.
• Además de las cuentas personales, existen otros usuarios
definidos para tareas administrativas, como el root o
administrador, y también cuentas que no pertenecen a
ningún usuario ‘real’ sino que son utilizadas por los
demonios del sistema.
Introducción
16 de 31
Usuarios y permisos (II)
• La forma de definir que puede y que no puede hacer
un usuario es a través de los permisos de los ficheros.
• Cada fichero tiene asociados TRES tipos de permisos
diferentes:
– Permiso de lectura: permite ver el contenido del
fichero.
– Permiso de escritura: permite alterar el contenido del
fichero.
– Permiso de ejecución: permite ejecutar el fichero (en un
directorio permite acceder a él).
• Los permisos de un fichero solo pueden ser alterados
por su propietario y por al administrador.
Introducción
17 de 31
Usuarios y permisos (III)
• Pero solo estos permisos no son suficientes, queremos
otorgar diferentes permisos a diferentes grupos de
usuarios.
• Cada usuario estará asociado a un grupo, compuesto
por usuarios con características comunes.
• Se definen TRES conjuntos de usuarios:
– El propietario del fichero
– Los miembros del grupo del propietario del fichero
– El resto de usuarios.
• Para cada uno de estos grupos definiremos los tres
permisos diferentes.
Introducción
18 de 31
Usuarios y permisos (IV)
• Ejemplo 1: comando ls
-rwxr-xr-x
root
root
ls
El propietario puede leer, modificar y ejecutar el fichero.
Su grupo y el resto solo leerlo y ejecutarlo.
• Ejemplo 2: directorio personal
drwx-----jtpfevaa profesores jtpfevaa
El propietario puede ver, modificar y acceder al contenido
del directorio. Su grupo y el resto no pueden hacer nada.
• Ejemplo 3: directorio tmp
drwxrwxrwx
root
root
tmp
Todo el mundo puede ver, modificar y acceder al
Introducción
19 de 31
directorio.
Sistema de ficheros (I)
Todo es un fichero
• En el sistema de ficheros de los Unix, todo, absolutamente
todo, está representado por un fichero.
• No existe el concepto de extensiones, un programa es un
fichero que tiene permisos para ser ejecutado.
• Tampoco
existen
diferentes
unidades
lógicas
correspondientes a los diferentes sistemas de archivos.
Todo lo que hay en el sistema cuelga del directorio raíz /.
Introducción
20 de 31
Sistema de ficheros (II)
Árbol de directorios
• El árbol de directorios de UNIX tiene una estructura
bastante rígida, que hace fácil la búsqueda de ficheros de
configuración, ayuda, etc. cuando hace falta.
Introducción
21 de 31
Sistema de ficheros (III)
Directorio /bin
• /bin: Abreviación de la palabra binaries (del inglés,
ejecutables). Aquí se guardan muchos de los programas
básicos y esenciales para el funcionamiento del sistema como
los comandos ls, cp, etc.
Directorio /boot
• /boot: En este directorio se encuentran los ficheros del núcleo
del sistema, los que ejecuta al arrancar.
Introducción
22 de 31
Sistema de ficheros (IV)
Directorio /dev
• /dev: Viene del ingles device (dispositivo). Este directorio
contiene ficheros que representan los dispositivos del sistema.
Estos ficheros son fundamentales para que el sistema funcione
correctamente.
Directorio /etc
• /etc: Aquí se encuentran ficheros relativos a la configuración
local del sistema, y de los programas, por ejemplo:
/etc/passwd guarda información de cada uno de los usuarios
Introducción
23 de 31
Sistema de ficheros (V)
Directorio /home
• /home: De este directorio cuelgan los los directorios de inicio
(home directory) de los usuarios “normales” (todos excepto el
root y las cuentas que no pertenecen a un usuario real).
Directorio /lib
• /lib: En este directorio se encuentran las bibliotecas del
sistema, ya sean bibliotecas de funciones, de imágenes,
sonidos, iconos, etc..
Introducción
24 de 31
Sistema de ficheros (VI)
Directorio /man
• /man: Aquí se encuentran la mayoría de las paginas del
manual de cada prograam. Para acceder a los manuales se
utiliza el comando man seguido del nombre del programa.
Otras veces están en /usr/man o /usr/local/man.
Directorio /mnt
• /mnt: Generalmente de este directorio cuelgan los ficheros de
los dispositivos “montados” en el sistema, es decir, ficheros
que son accesibles desde el sistema en ese momento.
Introducción
25 de 31
Sistema de ficheros (VII)
Directorio /proc
• /proc: En este directorio se encuentran ficheros virtuales, que
no existen realmente. Al intentar verlos obtendremos
información acerca del sistema. Cada proceso en ejecución
tiene asociado un directorio.
Directorio /root
• /root: Este es el directorio home del usuario root,
tradicionalmente el administrador del sistemas. Recibe este
nombre por ser el propietario del directorio / (directorio raíz
o root directory en ingles).
Introducción
26 de 31
Sistema de ficheros (VIII)
Directorio /sbin
• /sbin: Aquí, al igual que en /bin se guardan muchos
programas pero estos solo son usados por el administrador del
sistema, por ejemplo: el comando exit, el comando halt, el
comando reboot, etc.
Directorio /tmp
• /tmp: En el directorio /tmp se guardan archivos de carácter
temporal, es decir, si un programa necesita mantener cierta
información guardada, pero que no será necesaria en otro
momento, la guardara en el directorio /tmp.
Introducción
27 de 31
Sistema de ficheros (IX)
Directorio /usr
• /usr: En /usr están la mayoría de los programas, las
bibliotecas de funciones, las fuentes del kernel, etc.. De /usr
cuelgan otros directorios lib y bin, que tienen las bibliotecas y
los ejecutables que utilizan normalmente los usuarios, pero
que no son imprescindibles para el sistema, como awk, diff,
grep,
Directorio /var
• /var: Este directorio guarda los ficheros “variables”, como los
ficheros donde se guardan los errores, los logs del sistema, los
directorios del SPOOL de la impresora (el buffer de la
impresora por decirlo de algún modo).
Introducción
28 de 31
Entrando en Linux
Login
• Lo primero que hay que hacer para entrar en el sistema es
identificarse como un usuario concreto (introducir el
nombre de usuario o login) y probar que, efectivamente, se
es dicho usuario (introducir la clave asociada o password).
Shell
• Una vez autenticados, el sistema cargará el interprete de
comandos (también llamado shell) asociado a nuestro
usuario en el fichero /etc/passwd. A partir de este momento
y hasta que desconectemos (logout, a través del comando
exit) podremos introducir comandos que el interprete
ejecutara (si tenemos los permisos adecuados), arrancar
Introducción
29 de 31
programas, etc..
Links
•
•
•
•
•
•
•
Linux: www.linux.org
Linux kernel: www.kernel.org
Proyecto GNU: www.gnu.org
Linux Counter: counter.li.org
Proyecto de Documentación de Linux: tldp.org
Proyecto LuCAS: es.tldp.org
Distribuciones: www.redhat.com, www.debian.org,
www.suse.com
• BSD: www.freebsd.org, www.openbsd.org,
www.netbsd.org
Introducción
30 de 31
Preguntas
¿
?
Introducción
31 de 31