Professional Documents
Culture Documents
E L S I S T E M A O P E R A T I V O L I N U X
Linux es un Unix libre, es decir, un sistema operativo, que fue creado inicialmente
como un hobbie por un estudiante, Linus Torvalds, en la universidad de Helsinki en
Finlandia, con asistencia por un grupo de hackers a través de Internet.
Linux tiene todas las prestaciones que se pueden esperar de un Unix moderno y
completamente desarrollado: multitarea real, memoria virtual, bibliotecas compartidas,
carga de sistemas a-demanda, compartimiento, manejo de debido de la memoria y
soporte de redesTCP/IP.
Arquitecturas de Hardware
CentOS soporta (casi) todas las mismas arquitecturas que el original Red Hat
Enterprise Linux.
Intelx86-compatible (32 bit) (Intel Pentium I/II/III/IV/Celeron/Xeon, AMD K6/II/III, AMD
Duron, Athlon/XP/MP).
Intel Itanium (64 bit).
H I S T O R I A D E L I N U X
Aparición de Linux
ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles
it somewhat (same physical layout of the file-system (due to practical reasons) among
other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies
that I'll get something practical within a few months, and I'd like to know what features
most people would want. Any suggestions are welcome, but I won't promise I'll
implement them :-)
PS. Yes – it's free of any minix code, and it has a multi-threaded fs. It is NOT portable
(uses 386 task switching etc), and it probably never will support anything other than
AT-harddisks, as that's all I have :-(.
Linus Torvalds
Traducción:
Hola a todos aquellos que usan Minix –
Estoy haciendo un sistema operativo (gratuito) (solamente una afición, no será grande
ni profesional como el GNU) para clones 386(486) AT. Este ha estado gestándose
desde abril, y está comenzando a estar listo. Me gustaría recibir cualquier comentario
sobre las cosas que gustan/disgustan en minix, ya que mi SO (Sistema Operativo) se
le parece un poco (la misma disposición física del sistema de archivos, debido a
motivos prácticos, entre otras cosas).
El nombre
Para dar a otra gente la capacidad de cooperar en el sistema o sugerir mejoras, los
archivos fueron colocados en el servidorftp (ftp.funet.fi) de la Universidad de
Tecnología de Helsinki (Helsinki University of Technology) (HUT), en septiembre de
1991. Ari Lemmke, colega de Torvalds en la HUT, que en ese entonces responsable
de los servidores, no estuvo de acuerdo con el nombre Freax, prefiriendo el nombre
Linux. Él simplemente llamó los archivos colocados sobre el servidor "Linux" sin
consultar a Torvalds. Más tarde, sin embargo, Torvalds accedió a usar el nombre
"Linux":
" Después de muchas discusiones, él finalmente admitió que Linux era simplemente el
mejor nombre. En el código original de la versión 0.01 de Linux, el nombre Freax fue,
sin embargo, usado en el makefile. Sólo después fue usado el nombre Linux. Así el
nombre, en realidad, no planificado en absoluto se hizo generalmente aceptado por
todo el mundo. "
Torvalds primero publicó el núcleo Linux bajo su propia licencia, la cual fue casi una
licencia de código fuente compartida (en inglés, share source) y que tenía una
restricción contra la actividad comercial. En 1992, él sugirió cambiar a la GNU GPL.
Primero anunció este cambio en las notas de lanzamiento de la versión 0.12.6 A
mediados de diciembre de 1992 él publicó la versión 0.99 usando la GNU GPL.
Más tarde, Torvalds dijo en una entrevista, "registrar a Linux bajo la GPL fue
definitivamente la mejor cosa que alguna vez hice".
GNU/Linux
La designación "Linux" al principio fue usada por Torvalds sólo para el núcleo. El
núcleo fue, sin embargo, con frecuencia usado junto con otro software, especialmente
con el del proyecto de GNU. Esta variante de GNU rápidamente se hizo la más
popular, ya que no había ningún otro núcleo libre que funcionara en ese tiempo.
Cuando la gente comenzó a referirse hacia esta recopilación como "Linux", Richard
Stallman, el fundador del proyecto de GNU, solicitó que se usara el nombre
GNU/Linux, para reconocer el rol del software de GNU.9 En junio de 1994, en el
boletín de GNU, Linux fue mencionado como un "clonlibre de UNIX", y el Proyecto
Debian comenzó a llamar a su producto GNU/Linux. En mayo de 1996, Richard
Stallman publicó al editor Emacs 19.31, en el cual el tipo de sistema fue renombrado
de Linux a Lignux. Esta "escritura" fue pretendida para referirse expresamente a la
combinación de GNU y Linux, pero esto pronto fue abandonado en favor de
"GNU/Linux".
Kernel / Núcleo.
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
juntos.
Las funciones más importantes del mismo, aunque
no las únicas, son:
Versión de desarrollo: Esta versión era experimental y era la que utilizaban los
desarrolladores para programar, comprobar y verificar nuevas características,
correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin
saber lo que se hacía.
Como interpretar los numeros de las versiones de las series por debajo de la 2.6:
AA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este
número cambiaba cuando la manera de funcionamiento del kernel había sufrido un
cambio muy importante.
BB: Indicaba si la versión era de desarrollo ó de producción. Un número impar,
significaba que era de desarrollo, uno par, que era de producción.
CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se
había modificado eran fallos de programación.
ej1: versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4
(BB=4 par), primera versión de la serie 2.4 (CC=0)
ej2: versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han
corregido errores de programación presentes en la versión 2.4.0 (CC=1)
ej3: versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.
Con la serie 2.6 del núcleo, el sistema de numeración así como el modelo de
desarrollo han cambiado. Las versiones han pasado a numerarse con 4 dígitos y no
existen versiones de producción y desarrollo.
Las versiones del núcleo se numeran hoy en día con 4 dígitos, de la siguiente
forma: AA.BB.CC.DD.
Hoy en día se suele usar el núcleo distribuido con la distribución que el usuario utiliza.
Son las distribuciones las encargadas de distribuir núcleos estables a sus usuarios y
estos núcleos se basan en el núcleo ("vanilla") distribuido por Linus Torvalds y el
equipo de programadores del núcleo.
DISTRIBUCIONES.
Además del núcleo Linux, las distribuciones incluyen habitualmente las bibliotecas y
herramientas del proyecto GNU y el sistema de ventanas X Window System.
Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye
también otro tipo de software como procesadores de texto, hoja de cálculo,
reproductores multimedia, herramientas administrativas, etcétera. En el caso de incluir
herramientas del proyecto GNU, también se utiliza el término distribución GNU/Linux.
Existen distribuciones que están soportadas comercialmente, como Fedora (Red Hat),
open SUSE (Novell), Ubuntu (Canonical Ltd.), Mandriva, y distribuciones mantenidas
por la comunidad como Debian y Gentoo. Aunque hay otras distribuciones que no
están relacionadas con alguna empresa o comunidad, como es el caso de Slackware.
Red Hat Enterprise Linux se compone de software libre y código abierto, pero se
publica en formato binario usable (CD-ROM o DVD-ROM) solamente a suscriptores
pagados. Como es requerido, Red Hat libera todo el código fuente del producto de
forma pública bajo los términos de la Licencia Pública GNU y otras licencias. Los
desarrolladores de CentOS usan ese código fuente para crear un producto final que es
muy similar al Red Hat Enterprise Linux y está libremente disponible para ser bajado y
usado por el público, pero no es mantenido ni soportado por Red Hat. Existen otras
distribuciones también derivadas de las fuentes de Red Hat.
CentOS usa yum para bajar e instalar las actualizaciones, herramienta también
utilizada por FedoraCore.
Acceso al sistema
En linux no todo el mundo tiene posibilidad de hacer todo lo que quiera en el sistema.
Existe una jerarquía de privilegios que se le asigna a cada usuario (muy útil cuando el
ordenador es utilizado por muchos usuarios o dentro de una familia)
Los otros usuarios son eso precisamente, usuarios del sistema, pueden realizar las
tareas que designa el superusuario, incluso éste puede delimitar el visualizado del
contenido de carpetas y archivos del usuario seleccionado.
Además, se pueden definir grupos de privilegios (vídeo para ver vídeo; juego para
jugar, internet para navegar) con lo cual el control de privilegios es sencillo, fácil y
rápido.
Modos de inicio:
Por defecto Linux en el laboratorio está configurado para iniciar en el modo gráfico.
(Aunque también podría trabajar en modo consola).Para conmutar el modo grafico
delmodo consola pulsamos:
# logout
Ó
# exit
COMANDOS BASICOS
id
Muestra el UID (User ID) y GID (Group ID) del usuario
hostname
Muestra el nombre del equipo.
uname
Muestra la versión del kernel.
tty
Imprime el nombre de la terminal en la que se está.
W
[root@linux-p01 ~]# w
15:56:38 up 2:06, 4 users, load average: 0,07, 0,04, 0,00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 15:48 5:15 0.00s 0.00s -bash
root :0 - 14:09 ?xdm? 36.20s 0.26s /usr/bin/gnome-
root pts/1 :0.0 15:52 0.00s 0.17s 0.14s ssh 172.17.1.12
root pts/2 172.17.1.121 15:55 0.00s 0.03s 0.01s w
who
[root@linux-p01 ~]# who
root tty1 2010-01-12 15:48
root :0 2010-01-12 14:09
root pts/1 2010-01-12 15:52 (:0.0)
COMANDOS DE FECHA
Para obtener la fecha y la hora
[root@linux-p01 ~] # date
mar ene 12 16:00:28 PET 2010
Ejemplo:
Mostrar la fecha y hora con el siguiente formato:
cal
Despliega un calendario.
clear
PARA LIMPIAR LA PANTALLA
[root@linux-p01 ~] # clear
history
# history
!Número de línea:
Ejemplo:
#!10
Llama al comando listado en la línea diez de history.
last
Con este comando podemos ver los últimos usuarios que se han logueado en el
sistema y que terminales usaron, asi como también los últimos reinicios del sistema.
Su sintaxis es tan simple como:
Apagar el Servidor
# shutdown now
Reiniciar el Servidor
# init 6
# reboot
Manejo de Ficheros
Ejemplo:
[root@localhostetc]# cat > /root/file.txt
LINUX ADMINISTRACION
HORARIO: LU - MI - VI 7 -10
Prof: Luis Palomino Z
email: lpalomino@solucioneslinux.pe
Verificando:
[root@localhostetc]# ls /root
anaconda-ks.cfg Desktop install.log install.log.syslog file1.txt
Ejercicio:
Crear texto2.txt dentro del directorio root.
Contenido: sus Nombres, Apellidos, Distrito, Provincia, Pais
head
MUESTRA LAS 10 PRIMERAS LINEAS DE UN FICHERO
# head file3.txt fichero
EJEMPLO:
[root@localhost ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
Nota:
passwd --- contiene las cuentas de los usuarios. (Nombres, contraseña, rutas del home
directory, burn shell)
head -5 /etc/passwd
tail
MUESTRA LAS 10 ÚLTIMAS LINEAS DE UN FICHERO
tail [NOMBRE DEL FICHERO]
Ejemplo:
Ejercicio:
# tail -F /var/log/messages
Ejercicio:
Mostrar de las 15 primeras las 10 últimas del archivo passwd.
Ejercicio:
Ejemplo:
Extraer las lineas que tengan como mes a enero (ene)
Ejercicio:
Mostrar todas las líneas del archivo passwd que contengan root
Ejercicio:
Ejercicio:
Crear el archivo reporte1.txt con el resultado de un ping hecho a : google.com
SORT
sort es uno de los comandos que utilizamos mucho a la hora de realizar scripts.
Veamos una lista de los parámetros que pueden resultarnos más útiles a la hora de usar
este comando:
-f : Este parámetro nos sirve para indicar que las mayúsculas y las minúsculas se van a
tratar de forma diferente y que por tanto se va a seguir un ordenamiento alfabético.
-n : Este parámetro nos sirve para ordenar los campos numéricos por su valor numérico.
+número : Este parámetro nos sirve para indicar la columna o campo por el que vamos
hacer la ordenación. Esta sintaxis está en desuso y se va a eliminar. En su lugar se
utilizará la siguiente sintaxis:
-k numero : De este modo especificaremos por qué columna o campo vamos a realizar la
ordenación en las versiones más recientes de Linux.
-u : Nos permite suprimir todas las líneas repetidas después de realizar la ordenación.
Obtener un listado de los ficheros del directorio actual, ordenado por tamaño de archivo:
$ ls -l | sort +4n
Obtener un listado de los ficheros del directorio actual, ordenado de mayor a menor por
tamaño de archivo:
$ ls -l | sort -r +4n
Obtener un listado de los ficheros del directorio actual, ordenado por nombre del archivo:
$ ls -l | sort +7
Ordenar un fichero eliminando las líneas repetidas:
$ sort -u fichero
Ordenar un fichero pen el que los campos están separados por comas, por el campo
número 3:
$ sort -t, +3
Veamos un ejemplo en el que ordenemos usando la sintaxis actual para ordenar por
columnas: Imaginemos que queremos ver un listado de usuarios del fichero /etc/passwd
ordenado por uid:
$ cat /etc/passwd| sort -t":" -k3n
Con -k3 le indicamos a sort que queremos ordenar por la columna 3. Y, al añadir la opción
-n le indicamos que ordene por orden numérico.
Un ejemplo que uso mucho, cuando quiero eliminar las líneas repetidas de un archivo y
dejar el contenido en el mismo archivo:
$ sort -o fichero -u fichero
FILE
Ejemplos:
[root@localhost ~]# file /etc/hosts
/etc/hosts: ASCII English text
A D M I N I S T R A C I O N D E P R O C E S O S
La más simple definición de un proceso podría ser que es una instancia de un programa
en ejecución (corriendo). A los procesos frecuentemente se les refiere como tareas. El
contexto de un programa que está en ejecución es lo que se llama un proceso. Este
contexto puede ser más procesos hijos que se hayan generado del principal (proceso
padre), los recursos del sistema que este consumiendo, sus atributos de seguridad (tales
como su propietario y permisos de archivos así como roles y demás de SELinux), etc.
Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir
que múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros.
Cada proceso tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso
exclusivo a todos los servicios del sistema operativo.
ps
El comando ps es el que permite informar sobre el estado de los procesos. ps está basado
en el sistema de archivos /proc, es decir, lee directamente la información de los archivos
que se encuentran en este directorio.
Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas
se mostrarán en el listado de procesos que resulte, estas columnas pueden ser entre
muchas otras, las siguientes (y principales):
Las opciones completas de ps las encuentras en las páginas del manual (man ps), o
escribiendo en la terminal ps L, y para ver un resumen de sus opciones más comunes usa
ps --help:
#> ps ax (formato BSD sin guión, a muestra todos, x sin mostrar tty)
PID TTY STAT TIME COMMAND
1? Ss 0:01 init [5]
2? S< 0:00 [kthreadd]
3? S< 0:00 [migration/0]
4? S< 0:00 [ksoftirqd/0]
#> ps aux (formato BSD sin guión, u muestra usuarios y demás columnas)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1648 556 ? Ss 16:59 0:01 init [5]
root 2 0.0 0.0 0 0? S< 16:59 0:00 [kthreadd]
root 3 0.0 0.0 0 0? S< 16:59 0:00 [migration/0]
root 4 0.0 0.0 0 0? S< 16:59 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0? S< 16:59 0:00 [migration/1]
#> ps -eo user,pid,tty (-o output personalizado, se indican los campos separados por
coma, ver ps --help o ps L)
USER PID TT
root 1?
root 2?
sergon 8570 tty 1
root 8876 pts/1
kill
El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar
procesos sino principalmente para enviar señales (signals) a los procesos. La señal por
default (cuando no se indica ninguna es terminar o matar el proceso), y la sintaxis es kill
PID, siendo PID el número de ID del proceso. Asi por ejemplo, es posible enviar una señal
#> kill -l (lista todas las posibles señales que pueden enviarse a un proceso)
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
La lista previa presenta una lista de todas las posibles señales que pueden mandarse a un
proceso y estas pueden ser invocadas a través del número de la señal o de su código, por
ejemplo:
#> kill -9 11428 (termina, mata un proceso completamente)
#> kill -SIGKILL 11428 (Lo mismo que lo anterior)
killall
El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez
de indicar un PID se indica el nombre del programa, lo que afectará a todos los procesos
que tengan ese nombre. Asi por ejemplo si se tienen varias instancias ejecutándose del
proxy server squid, con killall squid eliminará todos los procesos que se esten ejecutando
con el nombre 'squid'
#> killall -l (lista de posibles señales)
#> killall -HUP httpd (manda una señal de "colgar", detenerse releer sus archivos de
configuración y reiniciar)
#> killall -KILL -i squid (manda señal de matar a todos los procesos squid pero pide
confirmación en cada uno)
nice
Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una
prioridad igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso)
con la prioridad modificada, más alta o más baja según se requiera. Las prioridades van de
-20 (la más alta) a 19 la más baja. Solo root o el superusuario puede establecer
prioridades negativas que son más altas. Con la opción -l de ps es posible observar la
columna NI que muestra este valor.
#> nice (sin argumentos, devuelve la prioridad por defecto )
0
#> nice -n -5 comando (inicia comando con una prioridad de -5, lo que le da más tiempo
de cpu)
jobs
Si por ejemplo, se tiene acceso a una única consola o terminal, y se tienen que ejecutar
varios comandos que se ejecutarán por largo tiempo, se pueden entonces como ya se vió
previamente con nohup y el operador '&' mandarlos a segundo plano o background con el
objeto de liberar la terminal y continuar trabajando.
Pero si solo se está en una terminal esto puede ser difícil de controlar, y para eos tenemos
el comando jobs que lista los procesos actuales en ejecución:
#> yes > /dev/null &
[1] 26837
#> ls -laR > archivos.txt &
[2] 26854
#> jobs
[1]- Running yes >/dev/null &
[2]+ Running ls --color=tty -laR / >archivos.txt &
Obsérvese como al traer en primer plano al 'job' o proceso 1, este adquirió el símbolo [+]
que indica que esta al frente. Lo mismo sería con bg que volvería a reinicar el proceso
pero en segundo plano. Y también es posible matar los procesos con kill indicando el
número que devuelve jobs: kill %1, terminaría con el proceso en jobs número 1.
top
Monitoreo en tiempo real del estado de los procesos y de otras variantes del sistema es el
programa llamado top, se ejecuta desde la línea de comandos, es interactivo y por defecto
se actualiza cada 3 segundos.
Estando adentro de la aplicación, presionando 'h' muestra una ayuda de los posibles
comandos que permiten configurar top, por ejemplo, al presionar 's' pregunta por el tiempo
en segundos de actualización, etc.
E L S I S T E M A S D E A R C H I V O S
CONFIGURACIÓN DE DISCOS
En Linux, los discos físicos son listados y representados dentro de la carpeta
/dev
Recordemos: Para ser identificados, el kernel les agrega un identificador el cual
comienza con hd para el caso de discos IDE o sd para el caso de discos PATA o
SCSI. Adicionalmente a cada uno de estos identificadores se les agrega una letra del
alfabeto para identificar los discos maestros de los esclavos.
CONFIGURACIÓN DE PARTICIONES
Asi como los discos duros son listados y representados, tambien las particiones
correspondientes a cada disco duro son representadas y listadas. Para ser
identificados, el kernel le agrega un número al final de cada identificador para
diferenciar de una particion primaria, lógica o extendida.
NOTA: Los discos duros ATA y SATA permiten 4 particiones primarias, de las cuales 1
puede ser extendida.Las particiones extendidas pueden ser divididas en particiones
logicas y estas pueden tener un maximo de 64 particiones para discos ATA/SATA y 16
particiones para discos SCSI
• dd
• fdisk
• mkfs
El proceso puede variar dependiendo del tamaño de almacenamiento del disco duro o
del tipo de interfaz (IDE o SATA), por lo que tendrá que ser paciente.
sda,b,c Hace referencia al número de disco duro al que se le aplicara esta herramienta
-l Este parametro listara la tabla de particiones que contiene el Disco duro
Prueba tecleando la letra 'm', esto desplegara un menú con las utilidades de esta
aplicación:
Orden Acción
a Conmuta el indicador de iniciable
p
Solohabrá que especificar si la partición a añadir será primaria (p) o extendida (e).
NOTA: Los discos duros ATA y SATA permiten 4 particiones primarias, de las cuales 1
puede ser extendida. Las particiones extendidas pueden ser divididas en particiones
logicas y estas pueden tener un máximo de 64 particiones para discos ATA/SATA y 16
particiones para discos SCSI*
El sistema de archivos:
- Características:
- Estructura jerárquica.
- Existen derechos de accesos sobre los ficheros.
- Los dispositivos periféricos son tratados como ficheros.
- La asignación del espacio en el disco para los ficheros es dinámica.
- Nombres de ficheros:
UNIX permite formar nombres de hasta 14 caracteres. Se puede incluir cualquier conjunto
de caracteres dentro del nombre, sin embargo, hay ciertos caracteres que significan algo
para la shell y es mejor evitarlos.
Estos caracteres son: *, ?, <, >, | y &.
Tipos de ficheros:
- Regulares u ordinarios:
Son los que consisten en una secuencia de bytes. Se pueden incluir dentro de los ficheros
regulares los ficheros de texto, programas, ficheros encriptados, ficheros de datos, etc.
- Ficheros de directorio:
Son ficheros que contienen referencias a otros ficheros o directorios. El primer directorio es
el raíz (root) que se representa por el símbolo “/”. De él cuelgan los directorios etc, home,
bin, lib, etc.
Para movernos por los directorios podemos usar el path absoluto o relativo. Cuando el
path es absoluto comenzaremos por el directorio raíz. Cuando es relativo, estamos dando
el camino referido a la posición donde se encuentra el usuario.
. Referencia al directorio actual
- Ficheros FIFO:
Se suelen utilizar por ciertos programas de aplicación como un fichero temporal en el cual
los datos de escriben por un lado y se leen por otro. Típicamente no suelen tener un
tamaño mayor que 0, ya que en cuanto los datos son leídos se eliminan del fichero.
- Ficheros especiales:
Representan a dispositivos periféricos (ej: partición de disco, terminal, impresora,...).
Existen dos tipos:
- Bloque de arranque:
Es el primer bloque (bloque 0) y ocupa 512 bytes. Contiene una referencia al sistema
de inicialización.
- Super bloque:
Segundo bloque (bloque 1). Ocupa 512 bytes. En este bloque se almacenan datos
administrativos sobre el sistema de ficheros (ej: número de bloques libres, lista de esos
bloques, etc.).
- Lista de i-nodos:
Consiste en una serie de estructuras continuas de 64 bytes denominadas
i-nodos. Los i-nodos almacenan información sobre los ficheros del sistema; existe un i-
nodo por fichero. El tamaño de la lista de i-nodos es determinado en el momento de la
creación del sistema de ficheros. Comienza en el tercer bloque (bloque 2).
- Bloque de almacenamiento:
No se sabe exactamente donde comienza; se encuentra a continuación de la lista de i-
nodos. Se extiende hasta el final del espacio disponible. Suelen contener los datos de los
ficheros.
- Descripción de un i-nodo:
Por cada fichero tenemos la siguiente información:
- Modo:
Son dos bytes que incluyen el tipo de fichero y los permisos de acceso.
- Contador de enlaces:
Cuenta los enlaces.
- Identificación de usuario:
Contiene el UID del propietario del fichero.
- Identificación de grupo:
Contiene el valor decimal GID del grupo asignado al fichero.
- Tamaño del fichero:
Contiene el tamaño del fichero en bytes.
- Direcciones del bloque:
Son 40 bytes que contienen 13 punteros a bloques de almacenamiento. De los 13
punteros, los 10 primeros (0 a 9) son punteros directos a bloques de almacenamiento. El
puntero 10 es un puntero indirecto a un bloque lógico que contiene a su vez punteros a
bloques de almacenamiento con datos del fichero. El puntero 11 es un doble
indireccionamiento. El puntero 12 es un triple indireccionamiento.
- Fecha de acceso:
Fecha y hora en que el fichero fue accedido por última vez.
- Fecha de modificación:
Fecha y hora en que el fichero fue modificado por última vez.
- Fecha de cambio:
Fecha y hora en que el i-nodo del fichero fue modificado. (ej: al cambiar los permisos).
- Bloque de arranque:
Es el único bloque que no se repite.
- Superbloque:
Contiene datos administrativos sobre el sistema de ficheros.
- Lista de i-nodos:
Contiene una lista de i-nodos ufs.
- Bloques de almacenamiento:
Contienen bloques de datos.
Los bloques lógicos en este sistema tienen un tamaño entre 4006 a 8192 bytes.
Los primeros 12 punteros (0 a 11) son punteros directos. Los punteros 12 y 13 son
punteros de indireccionamiento doble.
El Árbol de Directorios:
EL DIRECTORIO RAÍZ
Además, es deseable que se mantenga los más razonablemente pequeño como sea
posible por cuestión de funcionamiento y de seguridad.
Por último, este debe que ser el único directorio en el nivel superior del árbol jerárquico
de archivos y, tiene que ser imposible moverse más allá del mismo.
Es el último origen.
/bin
En este directorio se ubica el código binario o compilado de los programas y
comandos que pueden utilizar todos los usuarios del sistema.
La denominación es clara, bin de BINARY (binario en castellano).
No debe haber subdirectorios en /bin.
Estos son, por ejemplo, algunos comandos contenidos en /bin.
*El núcleo tiene la capacidad de crear dos entornos o modos de ejecución totalmente
separados.
Uno de ellos está reservado para el propio kernel, denominado el “modo núcleo”; y el
otro está reservado para el resto de programas, llamado el “modo usuario”.
Realmente se crean dos entornos totalmente separados, es decir, cada uno tiene su
propia zona de memoria y procesos independientes.
Démonos cuenta que esta técnica ofrece mucha seguridad y estabilidad al sistema.
Cuando un proceso del “modo usuario” necesita recursos del “modo kernel” (por
ejemplo, acceder a la memoria USB) se hacen uso de las “famosas” llamadas al
sistema (interface que ofrece el núcleo para la comunicación del modo usuario con el
modo kernel).
Vemos su contenido:
/dev
Este directorio almacena las definiciones de todos los dispositivos. Como se ha
mencionado, cada dispositivo tiene asociado un archivo especial.
Por ejemplo, el contenido de la sexta partición del disco duro será /dev/hda5.
El fichero asociado al ratón tipo PS/2 será /dev/psaux.
Además, es importante saber que los dispositivos pueden ser de bloque o de carácter.
Normalmente los dispositivos de bloque son los que almacenan datos y, los de
carácter los que transfieren datos.
/dev. De momento nos basta con saber que Linux lo utiliza para asociar dispositivos
(devices) con ficheros.
NOTA: El subdirectorio /dev/null es como un “agujero negro”. Esto es así, puesto que
cualquier dato que se almacena aquí, desaparece. Es muy útil para re direccionar los
errores por ejemplo:
yupanqui@yupanquiCentos# find / name julio –print 2>/dev/null
/etc
El directorio /etc contiene archivos necesarios para configuración del sistema.
Archivos que son propios del ordenador y que se utilizan para controlar el
funcionamiento diversos programas.
Deben ser ficheros estáticos y nunca pueden ser archivos binarios y/o ejecutables.
Algunos subdirectorios contenidos en /etc:
o X11. Subdirectorio para la configuración del sistema de ventanas. Es opcional.
o SGML. Subdirectorio para la configuración de SGML. Es opcional.
o Xml. Subdirectorio para la configuración de XML. Es opcional.
X11 – Sistema de ventanas graficas originario de UNIX en su versión 11. Este sistema
tiene la peculiaridad de ser totalmente independiente del sistema operativo. Es una
estructura cliente-servidor.
XML - eXtensibleMarkupLanguage (lenguaje de marcas extensible). Es un
metalenguaje de etiquetas.
SGML - Standard GeneralizedMarkupLanguage (Lenguaje de Marcación
Generalizado). Sistema para la organización y etiquetado de documentos.
/home
Directorio que contiene los subdirectorios de los usuarios del sistema.
Cada subdirectorio /home/user de cada usuario proporciona el lugar para almacenar
sus ficheros, así como los archivos de configuración propios de cada uno.
Es importante saber que también algunos servicios, y no solo usuarios, crean aquí su
directorio origen, por ejemplo: el servicio de transferencia de ficheros (FTP).
El administrador tiene su propio directorio home, que es /root.
/lib
El directorio /lib contiene librerías compartidas (similar a las dll’s para los usuarios de
Windows) necesarias para arrancar el sistema y para los ficheros ejecutables
contenidos en, por ejemplo, /bin.
Normalmente las librerías son ficheros binarios escritos en lenguaje C *.
También contiene módulos del kernel esenciales que permiten el funcionamiento de
muchos elementos Hardware. Se ubicarán normalmente en /lib/modules/versión-del-
kernel/.
*En el apartado “/usr/include” se explica que son y como funcionan las “librerías” y los
archivos cabecera.
/media Este directorio contiene los subdirectorios que se utilizan como puntos del
montaje para los medios de almacenamiento, tales como disquetes, CD-ROM y
memorias USB’s.
/mnt Este directorio contiene sistemas de archivos externos que hayan sido
montados.
Las entidades que aparecen dentro de /mnt representan recursos externos a los que
se puede acceder a través de este directorio.
/root Este directorio es el directorio /home del administrador del sistema o (root).
/sbin Los programas y comandos que se utilizan para la administración del sistema
se almacenan en /sbin, /usr/sbin y /usr/local/sbin.
/sbin únicamente contiene los ejecutables esenciales para el arranque, recuperación y
reparación del sistema.
Todos estos directorios (/sbin, /usr/sbin y /usr/local/sbin) se utilizan con fines
administrativos, por tanto, sólo puede ejecutar su contenido el administrador.
/srv
Contiene los archivos de datos específicos para cada servicio instalado en el sistema.
/tmp
En este directorio se guardan los archivos temporales.
El directorio /usr
Es la segunda sección más grande o estructura jerárquica (después del directorio raíz)
del sistema de ficheros.
Este directorio está pensado para almacenar datos que se puedan compartir con otros
hosts.
Estos datos además deben ser inalterables, es decir, sólo de lectura.
Normalmente, este directorio tiene su partición propia.
Comúnmente, se almacena aquí el software instalado en el sistema.
Vemos su contenido:
Estructura de /usr
o /usr/bin
Éste es el directorio primario de comandos ejecutables del sistema.
/usr/bin alberga los archivos ejecutables vinculados al software instalado en el sistema.
o /usr/include
Linux está escrito en lenguaje C.
En C es posible utilizar funciones que ya estén predefinidas (como otros muchos
lenguajes de programación) para incluirlas en el programa que estemos haciendo.
Esta técnica se denomina programación modular.
Estas funciones se llaman comúnmente archivos cabecera (.h de header) y contienen
las declaraciones externas de una librería.
La manera de incluir estos archivos cabecera en nuestro programa, es haciendo uso
de la directiva include; de ahí la denominación del subdirectorio.
Ejemplo programa C:
#include
main()
{
unsigned intnum,masc;
char resp;
clrscr();
do{
……
o /usr/lib
Este directorio incluye librerías compartidas y ficheros binarios pensados para no ser
ejecutados directamente por los usuarios del sistema.
o /usr/local/
/usr/local/ es para uso del administrador del sistema cuando instala software
localmente. Puede usarse para programas y datos que son compartibles entre un
grupo de máquinas
Este subdirectorio tiene una estructura similar a la del directorio /usr.
o /usr/sbin
Este directorio contiene comandos y programas no esenciales usados exclusivamente
por el administrador de sistema.
Como se ha comentado, los comandos necesarios para la reparación, recuperación y
otras funciones esenciales del sistema, se almacenan en /sbin.
o /usr/src
El directorio /var
Vemos su contenido:
Un ejemplo claro puede ser los trabajos que guarda la impresora para, posteriormente,
ejecutarlos por un orden de llegada y/o prioridad.
o /var/tmp
Algunos datos temporales se almacenan aquí y que, posiblemente, pueden aparecer
en nuestra distribución GNU/Linux para no “saturar” el directorio /tmp.
Existen otra serie de directorios que no especifica el estándar FSH, pero que son
importantes. Los vemos
Directorio /proc
MONTAJE Y DESMONTAJE
Montar un sistema de ficheros/dispositivo a nivel usuario no es más que hacerlo
disponible en el árbol de directorios de nuestro sistema. En en Linux vemos todos los
sistemas de ficheros/dispositivos en un sólo árbol de directorios, no existen letras a:,
c:, etc., de esta manera podríamos hablar de que el contenido de un directorio sea un
sistema de ficheros msdos, vfat, ext2, se encuentre en diferentes discos/particiones,
esté en una máquina remota, etc. Esta abstracción tiene un inconveniente, hay que
montarlo, es decir, indicarle al kernel de Linux que a través del directorio XXXX,
accedemos al sistema de ficheros/dispositivo yyy. Esto se hace con el comando mount
(man mount, para detalles).
El fichero /etc/fstab de nuestro ejemplo nos permitiría hacer lo siguiente para montar
un disquete , CD-Rom, USB:
mount /mnt/cdrom
mount /mnt/floppy
mount -t vfat /dev/sdb1 /mnt (Simpre y cuando el sdb1 sea la
memoria usb – verificar con fdisk –l )
Ejemplo:
Montar un directorio compartido a través del servicio NFS. (NFS – Sistema de archivos
de red).
Sintaxis:
Ejemplo:
El Directorio: /data se encuentra en la pc 192.168.20.236
El directorio data esta compartido mediante el servidor nfs (NFS – Sistema de
archivos de red).
Desmontar
umount [punto de montaje]
Ejemplo
# umount /mnt
MONTANDO PARTICIONES
Sistemas de Archivos:
MONTANDO PARTICIONES
TIPOS DE ARCHIVOS
Sintaxis:
ln [nombre del archivo origen] [ nombre del archivo destino - de enlace]
Ejemplo:
Crear enlace entre el archivo hosts (dentro de etc) , al directorio /data con el nombre
hosts.
# ln /etc/hosts /data/hosts
Se debe notar que los inodos en los enlaces duros son iguales.
Práctica:
# ln /etc/resolv.conf /data/resolv.conf
Ejemplo:
Crear un enlace simbólico del directorio /etc al directorio /data con el mismo nombre
Práctica:
Crear el enlace simbólico entre del directorio media al directorio root con el nombre
usb
# ln -s /media /root/Desktop/usb
- Archivos especiales. Suelen representar dispositivos físicos como unidades de
almacenamiento, impresoras, terminales, etc. Unix/Linux trata los archivos especiales
como archivos ordinarios. De esta forma, un usuario puede abrir un archivo vinculado
a una unidad de disquete, modificarlo, etc. Con ello consigue leer del disquete, escribir
en el disquete, etc. Unix/Linux transforma las operaciones básicas y ordenes básicas
de archivos ordinarios o regulares en comandos que interactúan con el hardware a
través de los archivos especiales
PERMISOS
Esta es una de las características que ayudan a que Linux sea casi inmune a los Virus
de computadora, los virus deben ser capaces de escribir sobre un archivo para poder
infectarlo y ejecutarse de alguna manera para poder infectar mas archivos, con el
sistema de permisos de Linux los virus no pueden copiarse a cualquier archivo, si el
usuario carece de permisos el virus no podrá infectar más archivos y por lo tanto no
podrá reproducirse.
Todos los archivos y directorios en Linux tienen permisos que verifican quien puede
hacer o no alguna acción con él.
Ejemplo 1:
1er. Propietario
2do Grupo
3er Resto de usuarios (Que no son ni el propietario ni el grupo)
Responder:
...............................................................................................
......................................................................................................
chmod
ESTABLECE PERMISOS SOBRE FICHEROS (usando números)
Ejemplo 1:
Usando chmod
Ejemplo:
-rw-r--r-- 1 gerente1 root 51 ene 14 21:42 texto1.txt
Se requiere:
Cambiar el permiso al archivo /root/texto1.txt
de tal manera que :
El propietario tenga acceso total.
Resultado:
Escenario:
drwxr-xr-x 1 root root 3 ene 14 21:42 data1
Solución:
Resultado:
Ejercicio:
Asignar el permiso.
#chmod 770 /data/ventas
NOTA:
Probando el acceso:
Asigne una contraseña a vendedor1 y vendedor2
#passwd [nombre usuario]
#passwd vendedor1
Ingrese contraseña:
reingrese contraseña:
P R Á C T I C A :
Nota:
1.-Los usuarios que no sean del área no tendrán ningún acceso.
2.- Dar acceso total a los usuarios:
user1, user2 --- gerencia
user9 ----- soporte
a todas las áreas.
Vamos a practicar con el comando chmod, para ello lo primero que haremos será
crear el archivo foto1.png para ver los cambios de permisos, así que les recomiendo
seguir la secuencia:
$ chmod u+rwx
foto1.png añadimos todos los permisos para el propietario rwx------
$ chmod g+x
foto1.png añadimos el permiso de ejecución para el grupo rwx—x---
umask
umask (abreviatura de user mask, máscara de usuario) es una orden que establece
los permisos por defecto para los nuevos archivos y directorios creados por el proceso
actual.
Los sistemas Unix modernos permiten que las máscaras se especifiquen de dos
modos:
Un permiso por defecto, también llamado máscara simbólica. Por ejemplo,
u=rwx,g=rwx,o=
Un número en octal que controla qué permisos se enmascararán (no se establecerán)
para cualquier nuevo archivo, por ejemplo, 007.
Ejemplos:
# umask
0022
El cálculo del umask se realiza restando de 666 el valor del permiso a asignar:
Ejemplo:
666
644--- Permiso por defecto para los archivos
022
Ejemplo:
Se requiere asignar una máscara (umask) para que los ficheros tengan como permiso
640
Solucion:
666
640
026
777
755
022
MANEJO DE DIRECTORIOS:
Ejemplo:
# cd / (Sale a la raiz)
# cd /etc (Cambia al directorio etc)
ls listar al directorio
Algunos modificadores de ls
Ejemplos:
Mostrar el conteniendo del directorio, incluidos los ficheros ocultos.
ls -la
Tabla de inodos.
En informática, un inodo, nodo-i o nodo índice es una estructura de datos propia de los
sistemas de archivos tradicionalmente empleados en los sistemas operativos tipo
UNIX como es el caso de Linux. Un inodo contiene las características (permisos,
fechas, ubicación, pero NO el nombre) de un archivo regular, directorio, o cualquier
otro objeto que pueda contener el sistema de ficheros.
Cada inodo queda identificado por un número entero, único dentro del sistema de
ficheros, y los directorios recogen una lista de parejas formadas por un número de
inodo y nombre identificativo que permite acceder al archivo en cuestión: cada archivo
tiene un único inodo, pero puede tener más de un nombre en distintos o incluso en el
mismo directorio para facilitar su localización.
CREACIÓN DE DIRECTORIOS.
Ejemplo:
# mkdir /data
Crear:
cp copiar ficheros
Archivos
# cp [Nombre archivo origen] [ruta destino]
Ejemplo
# cp /etc/hosts /data/conf
Directorios
# cp -r [nombre del directorio origen] [nombre y ruta destino]
Ejemplo:
Copiar el directorio /data como data1
# cp -r /data /data1
Ejercicios:
rm Borrando Ficheros
Ejemplo:
Borrar el archivo hosts que se encuentra en /data/conf
# rm /data/conf/hosts
Ejercicio:
Mover y renombrar
Ejemplo:
Renombrando
# mv /data /data3
Moviendo.
Mover el directorio /data/conf dentro de /data2/enlaces/
# mv /data2/conf /data3/enlaces
A P L I C A C I O N E S
EDITOR DE TEXTO VI
El editor vi es un editor de texto de pantalla completa que maneja en memoria el texto
entero de un archivo. Puede usarse en cualquier tipo de terminal con un mínimo de
teclas; esto lo hace difícil de usar hasta que uno se acostumbra.
Existe un editor vi ampliado llamado vim que contiene facilidades adicionales, así
como diversas versiones del vi original. En todos los casos, el conjunto de comandos
básicos es el mismo.
Guardar:
:w
Guardar como:
Pulsar: :w /ruta/nombrearchivo
Ejemplo:
:w /root/datos1.txt
Salir:
Pulsar: :q (permite salir después de guardar)
Salir Guardando: :wq Salir sin guardar: :q! Guardar solo: :w
Regresar:
#exit
Invocación de vi.
vi
abre la ventana de edición sin abrir ningún archivo.
vi arch1
edita el archivo arch1 si existe; si no, lo crea.
vi arch1 arch2
edita sucesivamente los archivos arch1 y luego arch2.
vi +45 arch1
edita el archivo arch1 posicionando el cursor en la línea 45.
vi +$ arch1
edita el archivo arch1 posicionando el cursor al final del archivo.
vi +/sistemas arch1
edita el archivo arch1 en la primera ocurrencia de la palabra "sistemas".
CONTROL DE PANTALLA.
Ctrl-f una pantalla adelante
Ctrl-b una pantalla atrás
Ctrl-l redibujar la pantalla
Ctrl-d media pantalla adelante
Ctrl-u media pantalla atrás
BORRAR
x borrar caracter bajo el cursor
dd borrar línea, queda guardada
D borrar desde cursor a fin de línea
dw borrar desde cursor a fin de palabra
d$ borrar desde cursor a fin de línea
d0 borrar desde cursor a principio de línea
COPIAR Y PEGAR
Y o yy copiar línea
P pegar antes del cursor
p pegar después del cursor
yw copiar palabra
y$ copiar de cursor a fin de línea
"ayy o "aY copiar línea en buffer llamado 'a'
'a' "ayw copiar palabra en buffer llamado
"ap pegar desde buffer 'a', a la derecha del cursor
"aP pegar desde buffer 'a', a la izquierda del cursor
"bdd borrar línea y guardar en buffer 'b'
"bdw borrar palabra y guardar en buffer 'b'
BÚSQUEDA
/str buscar hacia adelante cadena de caracteres 'str'
?str buscar hacia atrás cadena de caracteres 'str'
n repetir último comando / o ?
N repetir último comando / o ? para el otro lado
fc buscar el siguiente caracter 'c' en la línea
Fc buscar el anterior caracter 'c' en la línea
tc ir al caracter anterior al siguiente 'c'
Tc ir al caracter posterior al precedente 'c'
; repetir el último comando f, F, t, o T
, último comando f, F, t, o T para el otro lado
REEMPLAZO
Estos comandos admiten multiplicadores: un número delante del comando. Al dar un
comando de reemplazo el editor coloca un símbolo $ en donde termina el pedido de
reemplazo. El usuario escribe normalmente, sobreescribiendo, hasta donde necesite, y
sale con ESC. Estos comandos admiten multiplicadores: 3cw abre un área de
reemplazo para 3 palabras.
c reemplaza caracteres
cw reemplaza palabras
C o c$ reemplaza hasta el fin de línea
c0 reemplaza desde el comienzo de línea
OTROS
J unir dos líneas en una
ZZ grabar cambios si los hubo y salir
u deshacer última acción
U deshacer todos los cambios en una línea
Modo Texto.
BS borrar caracter hacia la izquierda
ESC pasar a modo comando
MOVER
:1 mueve a línea 1
:15 mueve a línea 15
:$ mueve a última línea
OPCIONES
:set cambio de opciones
:set nu mostrar números de línea
:set nonu no mostrar números de línea
:set showmode mostrar modo actual de vi
:set noshowmode no mostrar modo actual de vi
REEMPLAZO
La sintaxis del comando de búsqueda y reemplazo es la siguiente:
:<desde>,<hasta>s/<buscar>/<reemplazar>/g
<desde>, <hasta> indican líneas en el archivo; <buscar> y <reemplazar> son
cadenas de caracteres o expresiones regulares; / es un separador, s (sustituir) y g
(global) son letras de comando para el manejo de expresiones regulares.
P R A C T I C A I N S T A L A C I O N D E P A Q U E T E S
Nota:
Requiere agregar repositorios, en su defecto descargarlo de la internet e instalar.
Instalar:
samba
samba-client
samba-common
samba-swat
RPM Package Manager (o RPM, originalmente llamado Red Hat Package Manager,
pero se convirtió en acrónimo recursivo ) es una herramienta de administración de
paquetes pensada básicamente para GNU/Linux. Es capaz de instalar, actualizar,
desinstalar, verificar y solicitar programas. RPM es el formato de paquete de partida
del Linux Standard Base.
Originalmente desarrollado por Red Hat para Red Hat Linux, en la actualidad muchas
distribuciones GNU/Linux lo usan, dentro de las cuales las más destacadas son
Fedora Linux, Mandriva Linux y SuSE Linux. También se ha portado a otros sistemas
operativos.
Instalación:
# rpm -ivh nombrepaquete.rpm
-i --- Instalación
-v --- verificar el paquete
-h --- Muestra almohadillas
Ejemplo1:
Ejemplo2:
Nota:
webmin: Interfaz gráfica para administrar los servicios de linux a través de un entorno
web.
Acceso al webmin.
http://ip:10000
Ejemplo:
Luego de Accesar:
Ejemplo:
Desinstalar:
Ejemplo:
# rpm -e webmin
M A N E J O D E F I C H E R O S D E C I N T A Y
F I C H E R O S E M P A Q U E T A D O S
Ejemplo:
# tar -xvf squirreloutloock-1.0.3.tar
Los archivos tar también se pueden presentar comprimidos, en tal sentido también se
le spuede descomprimir:
Tar opción descompresión.
# tar –xvzf squirreloutloock-1.0.3.tar.gz
Ejemplo:
# gunzip squirreloutloock-1.0.3.tar.gz
Un usuario también puede ser anónimo si no posee una cuenta de usuario, por ejemplo, al
navegar por un sitio web sin registrase el usuario puede considerarse parcialmente
anónimo (parcialmente porque puede ser identificado por su dirección IP). La navegación
anónima sólo puede lograrse utilizando un proxy anónimo (sólo es más seguro, no es
100% anónimo). También se puede acceder a un servicio de forma anónima, por lo
general se poseen menos opciones y posibilidades que un usuario registrado. Los usuarios
anónimos a veces son referidos simplemente como "invitados".
Ejemplo:
root
Para cualquier usuario creado por el administrador el sistema el número que se asignara
es un correlativo iniciando desde 500
Ejemplo:
user1 ---UID --- 500
user2 ---UID ---501
user3 -----UID -- 502
LOS GRUPOS.
Ejemplo:
La empresa: Natural Travel SAC. , tiene las siguientes áreas de trabajo:
gerencia: gerente1
contabilidad : contador1 , contador2
ventas: vendedor1 vendedor2
Nota:
cada usuario creado pertenece a un grupo.
archivo /etc/passwd contiene una relación de los usuarios.
archivo /etc/group contiene una relación de los grupos creados..
CREACION DE USUARIOS:
Ejemplo:
#adduser gerente1
NOTA:
LA APLICACION DE LA REGLA NOMBRE APELLIDO.
Ejemplo:
Juan Perez ----------------->jperez Nota: Al iniciar sesión como usuario,
usando el comando su, el usuario
Ejercicio: puede iniciar sesión como root:
Crear el usuario: Ejemplo:
SUNOmbreSUApellido. ------- $su –
Ejemplo: Pasword root: (luego pulsar enter)
Julio Yupanqui
# adduser jyupanqui
Password:
Retipee el Password:
Ejercicio :
Crear la siguiente cuenta: Usuario: Juan Perez
# adduser jperez
Verificar:
# tail /etc/passwd
NOTA:
Eliminar Usuarios:
# userdel [ nombreusuario ]
# userdel -rf [ nombreusuario]
CREA GRUPOS
Ejemplo:
#groupadd gerencia
jperez:x:502:
gerencia:x:503:
Borrar Grupos:
Práctica:
Crear los grupos:
gerencia
contabilidad
ventas
NOTA:
CADA USUARIO CREADO TENDRA UN DIRECTORIO PERSONAL (HOME
DIRECTORY) DENTRO DE home
# ll /home
total 24
drwx------ 3 gerente1 gerente1 4096 ene 16 20:30 gerente1
drwx------ 3 jperezjperez 4096 ene 16 20:31 jperez
drwx------ 3 jyupanquijyupanqui 4096 ene 16 20:30 jyupanqui
Ejemplo:
# adduser -g contabilidad contador1
#Ejercicio:
Ejemplo:
Verificar:
# tail /etc/passwd
gerencia: gerente1
contabilidad : contador1 , contador2, gerente1
ventas: vendedor1 vendedor2,gerente1
Ejemplo:
Ejemplo:
#usermod -G gerencia,contabilidad,ventas gerente1
---------------------------------------------------------------------
mostrar una relación de los usuarios creados por el administrador:
contador1:x:503:504::/home/contador1:/bin/bash
# ls -l
total 80
-rw-r--r-- 1 root root 4386 ene 14 20:33 install.log.syslog
-rw-r--r-- 1 rootroot 51 ene 14 21:42 texto1.txt
[root@localhost ~]# chown gerente1 texto1.txt
[root@localhost ~]# ls -l
total 80
-rw-r--r-- 1 root root 4386 ene 14 20:33 install.log.syslog
-rw-r--r-- 1 gerente1 root 51 ene 14 21:42 texto1.txt
Ejemplo:
ADMINISTRACION DE SERVICIOS
para cargar el sistema de archivos del espacio de usuario principal y cargarlos desde
un sistema de archivos temporal.
GRUB por el contrario comprende los sistemas de archivos comunes ext2 , ext3 y
ext4.Debido a que GRUB almacena sus datos en un archivo de configuración en vez
de en el MBR y a que contiene un interfaz de línea de comandos, a menudo es más
fácil rectificar o modificar GRUB si está mal configurado o corrupto.
GRUB
GRUB soporta métodos de arranque directo, arranque chain-loading, LBA, ext2, ext3,
ext4 y hasta "un pre-sistema operativo en máquinas x86 totalmente basado en
comandos". Contiene tres interfaces: un menú de selección, un editor de
configuración, y una consola de línea de comandos.
LILO
Por lo tanto, el núcleo inicializa los dispositivos, monta el sistema de archivos raíz
especificado por el gestor de arranque como de sólo lectura , y se ejecuta Init
(/sbin/init), que es designado como el primer proceso ejecutado por el sistema
(PID=1). También puede ejecutar opcionalmente initrd para permitir instalar y cargar
dispositivos relacionados (disco RAM o similar), para ser manipulados antes de que el
sistema de archivos raíz está montado.
En este punto, con las interrupciones habilitadas, el programador puede tomar el
control de la gestión general del sistema, para proporcionar multitarea preventiva, e
iniciar el proceso para continuar con la carga del entorno de usuario en el espacio de
usuario.
El proceso de inicio
El trabajo de Init es "conseguir que todo funcione como debe ser" una vez que el
kernel está totalmente en funcionamiento. En esencia, establece y opera todo el
espacio de usuario. Esto incluye la comprobación y montaje de sistemas de archivos,
la puesta en marcha los servicios de usuario necesarios y, en última instancia, cambiar
al entorno de usuario cuando el inicio del sistema se ha completado. Es similar a los
procesos Init de Unix y BSD, de la que deriva, pero en algunos casos se ha apartado o
se hicieron a la medida. En un sistema Linux estándar, Init se ejecuta con un
parámetro, conocido como nivel de ejecución, que tiene un valor entre 1 y 6, y que
determina que subsistemas pueden ser operacionales. Cada nivel de ejecución tiene
sus propios scripts que codifican los diferentes procesos involucrados en la creación o
salida del nivel de ejecución determinado, y son estas secuencias de comandos los
necesarios en el proceso de arranque. Los scripts de Init se localizan normalmente en
directorios con nombres como "/etc/rc...". El archivo de configuración de más alto nivel
para Init es /etc/inittab.
consola del sistema. Después se procede a ejecutar todos los scripts relativos al nivel
de ejecución especificado.
Después de que se han dado lugar todos los procesos especificados, Init se aletarga,
y espera a que uno de estos tres eventos sucedan:- que procesos comenzados
finalicen o mueran; un fallo de la señal de potencia (energía); o una petición a través
de /sbin/telinit para cambiar el nivel de ejecución.
SERVICIOS DE SISTEMA
Los servicios del sistema pueden ser configurados para inicar o no de manera
automática en el siguiente inicio del sistema operativo.
# setup
Paso 2:
Marcar con un asterisco, a los servicios que van a iniciar durante el arranque.
Paso 3:
Al terminar salir y guardar. Los servicios iniciaran la próxima vez que inicie el sistema
operativo.
Ejemplo:
1.- Configurar el inicio automático del servicio named (Servidor DNS)
# chkconfig named on
# chkconfig smb on
Nota:
Durante la carga del sistema se inicia el script /etc/rc.local, el cual puede ser
aprovechado, para iniciar un programa.
Ejemplo:
La siguiente configuración corresponde a la del cortafuego (Reglas del iptables). Este
conjunto será nuestro script.
Desde el editor vi crear:
# INIT
#!bin/bash
#CLEAN ALL
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
#DEFAULT POLICY
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#DENEGAR SSH
iptables -A INPUT -p tcp --dport 22 -j DROP
Ejemplo:
Cargando las reglas del cortafuegos:
# sh /root/firewall
Para que el cargue automáticamente debemos:
#vi /etc/rc.local
Luego agregue:
sh /root/firewall
C O M P A R T I C I O N D E A R C H I V O S
Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de
archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran
montados localmente. Esto permite a los administradores de sistemas consolidar los
recursos en servidores centralizados en la red.
Practica:
Compartiendo Directorios
Luego escribir:
* Todos los usuarios, En caso de ser algún determinado usuario: [nombre del usuario]
(ro) – Permiso en la compartición: (ro) --- read only (rw) – Lectura y escritura
sync --- Sincroniza los cambios realizados entre el servidor y
cliente…Ejemplo:(ro,sync)
Testear lo compartido
# exportfs
# exportfs
/data <world>
/root <world>
NOTA:
Al compartir con permisos de lectura y escritura, no olvide asignar permisos al
fichero.
Ejercicios:
1.
Compartir /data con solo lectura:
Pasos:
1ro . Editar el archivo exports, agregar las líneas.
2do. Reiniciar el servicio nfs
3ro Testear.
4to Los usuarios ya pueden conectar
Nota:
1.- Descarga las líneas del cortafuego.
# iptables -F
Para mostrar lo que hay compartido en otros servidores:
E L S E R V I D O R D E A R C H I V O S
EL SERVIDOR SAMBA
Samba es una implementación libre del protocolo de archivos compartidos deMicrosoft
Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para
sistemas de tipo UNIX. De esta forma, es posible que computadores con GNU/Linux,
Mac OS X o Unix en general se vean como servidores o actúen como clientes en
redes de Windows. Samba también permite validar usuarios haciendo de Controlador
Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio
Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas
de impresión, directorios compartidos y autentificar con su propio archivo de usuarios.
Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las
distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que
podemos encontrar el Mac OS X Server de Apple.
Características:
Para poder intercambiar ficheros con Windows debemos tener instalados los
siguientes paquetes:
Paquetes a instalar:
samba.i386 (Servidor )
samba-common.i386 (dependencia )
samba-client.i386 (Cliente samba para conectar de linux a windows)
samba-swat.i386 (Interfaz grafica de samba)
Instalando:
# yum -y install samba samba-common samba-client samba-swat
/etc/samba/smb.conf.
Nota:
Donde: smb - script de inicio.
En el ejemplo anterior reiniciamos el servicio, si fuese la primera ves tendríamos
un mensaje de error al apagar. (Esto es algo normal puesto que nunca estuvo
encendido).
P R A C T I C A N ° 1
COMPARTIENDO EN SAMBA
Paso1.-
Editar el archivo:
# vi /etc/samba/smb.conf
--------------------------------------------------------------------------
71 # Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
72 # specifiy it as a per share option as well
73 #
74 workgroup = MYGROUP
75 server string = Samba Server Version %v
76
77 ; netbios name = MYSERVER
78
79 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
80 ; hosts allow = 127. 192.168.12. 192.168.13.
Paso2.-:
Dice:
247
[data] (Nombre del recurso compartido)
path=/data (Ruta a compartir)
writable=yes (Permiso de escritura sobre el directorio
browseable=yes (Directorio se muestra al abrir el equipo)
guest ok=yes (Acceso para el invitado)
Paso4.-
Luego
P R A C T I C A N ° 2
AUTENTICANDO USUARIOS
Paso1.-
Cambiarla por:
security= user
Paso 2:
En la compartición modificar :
Paso 3.-
Paso 4:
Reiniciar el servici para que los cambios se realicen.
#service smb restart
Nota:
Para cambiar la contraseña solamente digitar (usuario samba):
# smbpasswd nombreusuario
Paso 5.-
P R A C T I C A N ° 3
Paso1:
Comparta el directorio en Windows con el nombre: dirwin
Paso 2:
Para montar directorios compartidos en Windows desde Linux:
# mount.cifs //172.17.1.177/dirwin /mnt
Donde:
dirwin -- nombre del recurso compartido en windows
Nota: Para la práctica N°3 se uso Windows xp (sin dominio), en otros sistemas
operativos será necesario dar el parámetro de nombre de usuario y contraseña.
Para Testear la compartición de cualquier servidor con SAMBA (Windows).
I N D I C E
Práctica: ......................................................................................................................52
Tambien es posible asignar permisos con letras:............................................53
COMANDOS DEL SISTEMA DE ARCHIVOS .....................................................55
manejo de directorios: ......................................................................................55
Archivos, directorios y enlaces .........................................................................55
cambiar el directorio actual. .............................................................................55
Tabla de inodos. ...................................................................................................57
Creación de directorios.....................................................................................58
APLICACIONES..........................................................................................................61
EDITOR DE TEXTO VI ............................................................................................61
Modos de acceso al editor: ..............................................................................61
Invocación de vi. .....................................................................................................62
Movimiento del cursor: .....................................................................................62
Control de pantalla. ..........................................................................................63
Ingreso en modo texto: .....................................................................................63
Borrar ................................................................................................................63
Copiar y pegar ..................................................................................................63
Búsqueda ..........................................................................................................63
Reemplazo ........................................................................................................64
Otros .................................................................................................................64
Modo Texto...........................................................................................................64
Modo ex o última línea. ........................................................................................64
Mover ................................................................................................................64
Opciones ...........................................................................................................64
Reemplazo ........................................................................................................64
Practica instalacion de paquetes ............................................................................66
Manejo de ficheros de cinta y ficheros empaquetados ........................................70
GRUPOS, USUARIOS, ARCHIVOS, PROPIEDADES Y PERMISOS ...................70
ADMINISTRACION DE USUARIOS Y GRUPOS. ..............................................70
LOS GRUPOS. .................................................................................................71
CREACION DE USUARIOS:............................................................................71
ADMINISTRACION DE SERVICIOS ...................................................................76
Arranque del sistema:.......................................................................................76
Descripción general del proceso típico ............................................................77
GRUB ...................................................................................................................78
LILO ......................................................................................................................79
Fase del kernel.........................................................................................................79
Fase de carga del kernel......................................................................................79
Fase de inicio del kernel ......................................................................................80
El proceso de inicio ..................................................................................................80
Servicios de sistema.........................................................................................81
COMPARTICION DE ARCHIVOS ..............................................................................85
IMPLEMENTACION DEL SERVIDOR NFS ............................................................85
EL SERVIDOR DE ARCHIVOS ..................................................................................87
EL SERVIDOR SAMBA ...........................................................................................87
Características: ....................................................................................................88
Instalando el servidor y Cliente SAMBA ..........................................................88