-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathadministracion.tex
734 lines (570 loc) · 27.3 KB
/
administracion.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
%Autor: faraox & _ese
%faraox: 6 (confirmar)
%_ese: 6 (confirmar)
\chapter{Administración básica}
\label{administracion.tex}
\index{administracion}
\section{Paquetes de instalación}
Un paquete es un archivo que contiene varios ficheros que permiten la
instalación de un programa. En linux existen varios tipos de paquetes:
\begin{description}
\item[RPM:] \index{Administracion!RPM, paquetes} es el tipo de
paquetes más popular. Creada por Red Hat y que utilizan la mayoría de
las las distribuciones.
\item[DEB:] \index{Administracion!DEB, paquetes} creada por el grupo
Debian.
\item[TARBALLS:] \index{Administracion!TARBALLS, paquetes} éstos son
ficheros comprimidos que contienen el código fuente del programa y
pueden instalarse en cualquier distribución.
\end{description}
Una parte importante y muy delicada de un sistema de paquetes son las
dependencias. Cada paquete necesita que estén instalados en el
sistemas otros paquetes que son necesarios para su funcionamiento, los
paquetes necesarios para su instalación se llaman dependencias. Si
esto no funciona, no se puese asegurar que el sistema funcione con
estabilidad y fiabilidad al sistema GNU/Linux.
% Continuar con lo de dependencias.
%Esto es de Félix
\subsection{Sistema de paquetes RPM}
\index{RPM}
Este sistema de paquetes fue creado por la compañía \index{Red Hat} Red Hat. De ahí
viene el nombre RPM, {\bf Red Hat Package Manager}. Con el tiempo
otras distribuciones han ido adoptando este sistema de empaquetado de
ficheros. Las principales distribuciones que lo adotan son: Red Hat,
SuSE \index{SuSE} y Mandrake. \index{Mandrake}
Un paquete de software construido con RPM es un conjunto de ficheros e
información asociada a ello, como un nombre, una versión y una
descripción. que terminan con la extensión {\tt .rpm}. A diferencia de
el sistema de Debian, cuando queremos instalar un paquete rpm,
hemos de bajárnoslo nosotros mismos y efectuar las operaciones de
instalación. La aplicación que se utiliza para la instalar estos
paquetes es {\tt rpm}. Ésta es su forma de utilización:
\subsubsection{Instalación de paquetes RPM}
\index{RPM!instalación}
RPM se utiliza principalmente para instalar de paquetes software. La
sintaxis general de una orden de instalación {\tt rpm} es:
\begin{verbatim}
rpm [opciones] [paquetes]
\end{verbatim}
\noindent donde {\tt opciones} puede ser alguna de las siguientes:
\begin{description}
\item [{\tt -v}:] Muestra por pantalla el trabajo que está realizando
RPM.
\item [{\tt -h o --hash}:] Imprime en pantalla el carácter {\bf \#}
muchas veces seguidas mientras se está instalando el paquete para marcar el proceso de instalación.
\item [{\tt --percent}:] Muestra en pantalla el porcentaje realizado
mientras se extraen los ficheros de un paquete.
\item [{\tt --test}:] Realiza el proceso de instalación de un paquete,
pero no instala nada. Se utiliza más bien para detectar problemas que
pudieran surgir en la instalación.
\item [{\tt --nodeps}:] No se realizan verificaciones de dependencias
antes de la instalación de un paquete.
\item [{\tt --force}:] Fuerza la instalación de un paquete aunque
surjan problemas de conflictos.
\end{description}
Cuando se le pasan opciones a RPM, independientemente del modo, todas
las opciones indicadas por una sola letra se pueden unir formando un
único bloque. Así, si se hace:
\begin{verbatim}
rpm -i -v -h vim-4.5-2.i386.rpm
\end{verbatim}
\noindent sería equivalente a
\begin{verbatim}
rpm -ivh vim-4.5-2.i386.rpm
\end{verbatim}
Observemos que este paquete sigue el convenio de nomenclatura:
\begin{verbatim}
nombre-versión-emisión.arquitectura.rpm
\end{verbatim}
Puede ocurrir que se intenta instalar el paquete ``dosemu''
\begin{verbatim}
# rpm -ivh dosemu-0.66.2-1.i386.rpm
failed dependences: kernel >= 2.2.16 is needed by dosemu-0.66.2-1
dosemu = 0.64.1 is needed by xdosemu-0.64.1-1
\end{verbatim}
Estos mensajes indican dos cosas: Es necesario actualizar a la versión
2.2.16 del kernel y, si se instala, una versión más moderna de {\tt
dosemu}, también habrá queinstalar una versión más moderna de {\tt
xdosemu}. Aunque no suele ser una buena idea ignorar estos errores, en
caso de que se quiera instalar sin atender a estos mensajes, sólo hay
que usar la opción {\tt --nodeps}.
\subsubsection{Actualización de paquetes RPM}
\index{RPM!actualización}
El modo de actualización de RPM proporcina un método sencillo renovar
paquetes ya instalados a versiones más modernas. Su uso es similar al
de la instalación:
\begin{verbatim}
rpm -U [opciones] [paquetes]
\end{verbatim}
\subsubsection{Desinstalación de paquetes RPM}
\index{RPM!desinstalación}
El modo de desinstalación de RPM proporciona un método limpio para
eliminar los archivos que pertenecen a un determinado paquete y que se
encuentran en diferentes lugares.
Muchos paquetes instalan ficheros en {\tt /etc}, {\tt /usr} y {\tt
/lib}, por lo que puede ser complicado eliminarlos, pero con RPM, se
puede desinstalar un paquete completo con la orden:
\begin{verbatim}
rpm -e [opciones] [paquetes]
\end{verbatim}
Hay que tener en cuenta que para desinstalar sólo hay que indicar el
nombre de la aplicación, no el del paquete, como se hace en el proceso
de instalación.
\subsubsection{Pidiendo ayuda a RPM}
Como es obvio, RPM tiene muchísimas opciones y también puede ocurrir
que no nos acordemos de alguna. Entonces podemos pedirle ayuda a RPM:
\begin{verbatim}
rpm -h
\end{verbatim}
Con esto tenemos para saber manejar el RPM de forma básica. El resto
son horas y ganas.
%Esto es de faraox
\subsection{Sistema de paquetes Deb}
\index{DEB}
Todos los paquetes deb tienen el siguiente formato:
{\tt nombre-del-paquete\_version(1.3.34-5).deb}
La distribución Debian tiene diversas utilidades para la instalación
de paquetes, entre ellas, APT, que permite la instalación de
paquetes de forma fácil y rápida, advirtiendo de las dependencias y
recomendando paquetes. El sistema APT engloba varios comandos como
apt-get, apt-cache, apt-cdrom,...
\subsubsection{El fichero /etc/apt/sources.list}
\index{DEB!sources.list}
Este fichero es imprescindible para la instalación de paquetes con
APT. En él se guardan las direcciones de donde APT se descarga los
paquetes. Los medios por los que se pueden descargar los paquetes son
varios: file(podemos elegir un directorio albitrario de donde bajarnos
los paquetes, esto es útil para mirrors locales o carpetas NTFS),de un
cdrom,de un servidor web(http), de un ftp, por rsh/ssh.
Vamos a ver un ejemplo:
\begin{verbatim}
deb http://http.us.debian.org/debian woody main contrib non-free
deb http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free
deb-src http://http.us.debian.org/debian woody main contrib non-free
\end{verbatim}
La diferencia entre {\tt deb} y {\tt deb-src} es que el primero
indica la descarga de paquetes .deb, que son ficheros binarios, es
decir, preparados para ejecutarse, mientras que con el segundo
podemos descargarnos el código fuente del paquete(usando el comando
apt-get source).
La siguiente parte de la línea es el {\tt URI}, es decir,
el tipo de sistema para la descarga, recordemos que existen
varios(file,cdrom,ftp,http,rsh/ssh). En este caso es de un servidor
web.
Seguidamente escribimos la {\tt localización} del mirror de paquetes,
este caso tenemos varias líneas con diferente localización, esto se
debe a que en los Estados Unidoas es ilegal utilizar aplicaciones
de encriptación, así que para bajar esos programas, existen
líneas especiales que contienen la palabra non-US. Después de la
localización, separado por un espacio, se escribe la {\tt versión de
debian}, es válido tanto el alias de la version como en qué estado se
encuentra (stable, unstable,testing).
Por último se escriben las {\tt secciones de software} que usaremos
(main, contrib, non-free). Debian organiza los paquetes en varias
carpetas segun su licencia.
\begin{itemize}
\item La sección {\tt main} agrupa los paquetes en los que su licencia
cumple con los criterios de la DGFS(``Guías de Debian del Software
libre'').
\item La sección {\tt contrib} agrupa paquetes que tiene una licencia
libre pero que sin embargo dependen de otros paquetes que no cumple
con las normas del DGFS.
\item Y por último, la sección {\tt non-free} contienen paquetes que
son de libre distribución pero que sin embargo no cumplen las
directrices de la DGFS (no distribuye el código, no se permite
redistribuir el código,etc).
\end{itemize}
\subsubsection{Apt-get}
\index{DEB!apt-get}
El comando {\bf apt-get} se utiliza para la manipulación de paquetes
deb. Permite la instalación de paquetes, borrado, \dots
%probar a hacer tabla
\begin{description}
\item[{\tt apt-get install paquete1 paquete2 ...}] Instala paquetes.
\item[{\tt apt-get remove paquete1 paquete2 ...}] Borra paquetes.
\item[{\tt apt-get source paquete1 paquete2 ...}] Descarga el código
fuente de los paquetes.
\item[{\tt apt-get update }] Actualiza la lista de paquetes
disponibles para instalar.
\item[{\tt apt-get upgrade }] Instala las nuevas versiones de los
diferentes paquetes disponibles.
\item[{\tt apt-get dist-upgrade}] Función adicional de la opción
upgrade que modifica las dependencias por la de las nuevas versiones
de los paquete.
\item[{\tt apt-get build-dep paquete1 paquete2 ...}] Instala los
paquetes necesarios para la compilación del código fuente de los
paquetes.
\item[{\tt apt-get clean}] Elimina los ficheros que se encuentran
en /var/cache/apt/archives y /var/cache/apt/archives/partial. Ahí se
encuentran los paquetes que hemos descargado para instalar.
\end{description}
\begin{description}
\item[{\tt -d,--download-only}] Sólo descarga el paquete, no lo
instala.
\item[{\tt -f,--fix-broken}] Esta opción es importante, intenta
arreglar problemas de dependencias que tengamos en el sistema.
\item[{\tt -s,--simulate}] Nos muestra los resultados de la
instalación de un paquete.
\item[{\tt -b,--build}] Compila el paquete de código fuente que
hayamos bajado.
\end{description}
\subsubsection{Apt-cache}
\index{DEB!apt-cache}
El comando apt-cache trabaja con la caché de los paquetes. Este
comando no manipula el estado del sistema, así que lo pueden usar
usuarios normales. Es de gran utilidad ya que nos muestra información
valiosa sobre los paquetes.
Algunas opciones más importantes:
\begin{description}
\item [apt-cache show paquete1:] Este comando muestra la cabecera de
los paquetes. Muestra el desarrollador, las dependencias, una breve
descripción del mismo, su tamaño, el nombre del fichero donde se
encuentra, entre otros.
\item [apt-cache search texto:] Muestra una lista de todos los paquete y
una breve descripción relacionado con el texto que hemos buscado.
\item [apt-cache depends paquete:] Muestra las dependencias de dicho
paquete.
\item [apt-cache stats:] Muestra la estadística de el cache.
\end{description}
\subsubsection{El fichero {\tt /etc/apt/apt.conf}}
\index{DEB!apt.conf}
El fichero apt.conf sirve para la configuración por defecto de APT. En
el fichero podemos, por ejemplo, darle las órdenes al APT para el uso
de un proxy. Podemos encontrar un ejemplo del fichero en {\tt
/usr/share/doc/apt/examples/configure-index.gz}
\subsubsection{Apt-cdrom}
\index{DEB!apt-cdrom}
El comando apt-cdrom permite añadir nuevos CD-ROM's al sources.list.
Para añadir un cdrom la orden es {\tt apt-cdrom add}
\section{La gestión de los procesos.}
\index{Procesos}
Un proceso es cualquier instrucción o programa que en ese momento se
está ejecutando en nuestro sistema. Todo proceso tiene un PID (Process
IDentifier), es decir, un número que le identifica y le diferencia de
todos los demás. Una característa importante es que todo proceso tiene
un estado: corriendo, durmiendo, zombie o parado.
\subsection{El comando kill}
\index{Procesos!kill}
El comando kill nos permite interactuar con cualquier proceso mandando
señales (signal). Cuando ejecutamos {\tt kill pid} lo que hacemos es
mandar la señal de TERM(terminar) con lo cual se termina ese proceso.
Podemos usar cualquier otro tipo de señal, para ello utilizamos {\tt
kill signal pid}. Podemos conseguir una lista de señales usando {\tt
kill -l}. Una señal útil para alunas ocasiones es {\tt -9}, esta señal
fuerza a terminar cualquier proceso. Como su nombre indica, estamos
matando el proceso.
También podemos utilizar el comando {\tt killall} con el que podemos
mandar señales a un proceso utilizando el nombre, en vez del PID.
Entre los procesos diferenciamos los que se están ejecuntando en
$1^{er}$ o 2º plano. Los que se ejecutan en primer plano son los que
interactúan con el usuario en ese momento, mientras que los procesos
en segundo plano se ejecutan pero están ocultos, y muy posiblemente el
usuario no tenga constancia de que se esté ejecutando.
Sólo puede haber un proceso en primer plano por consola. Eso nos deja
las manos atadas si no estamos en el entorno gráfico. Para poder
ejecutar varios comandos, lo que podemos hacer es ejecutar los
comandos en segundo plano. Para ello solo tenemos que añadir \verb.&.
al final del comando. Vamos a poner un ejemplo:
\begin{verbatim}
$ls -R / > /dev/null &
\end{verbatim}
En el anterior ejemplo listamos todos los ficheros de todos los
directorios del sistema. Enviamos la salida a /dev/null para que su
salida no nos moleste. El carácter \verb.&. manda el proceso a segundo
plano.
El comando {\tt jobs} nos muestra los procesos que se están ejecutando
en segundo plano:
\begin{verbatim}
$ls
[1]+ Running ls --color -R / >/dev/null &
\end{verbatim}
Aquí estamos ejecutando el comando anterior. El elemento {\tt [1]} nos
indica el número del proceso que se están ejecutando en segundo
plano y cuál es su estado. En este caso {\tt Running}(corriendo).
Seguidamente nos muestra cuál es el proceso Podemos utilizar también
el comando {\tt fg} para mandar un proceso al primer plano y el
comando {\tt bg} para mandar el proceso al segundo plano.
\begin{verbatim}
$fg
ls --color -R / >/dev/null
\end{verbatim}
{\tt fg} manda el proceso al primer plano y nos muestra el programa
que ha mandado. Si tenemos varios procesos en segundo plano añadimos
el número del proceso.
El comando {\tt bg} se utiliza cuando tenemos, por ejemplo, procesos
suspendidos. Estos procesos son programas que están ``parados'', es
decir, no consumen ni CPU ni memoria, y que podemos volver a poner en
archa en cualquier momento. Para suspender un proceso utilizamos la
combinación de teclas {\tt C-z}, al igual que para interrumpir un
proceso utilizamos {\tt C-c}.
\begin{verbatim}
$jobs
[1]+ Stopped ls --color -R / >/dev/null
\end{verbatim}
Esta tarea está parada(Stopped).
\subsection{El comando ps}
El comando {\tt ps} permite mostrar todos los procesos que están
corriendo en nuestro sistema. Veamos una parte de una salida del
comando ps:
\begin{verbatim}
$ps -aux
faraox@menut:~/doc/glup_0.6-1.1-html-1.1$ ps xau
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 1272 436 ? S 16:00 0:04 init [2]
root 2 0.0 0.0 0 0 ? SW 16:00 0:01 [keventd]
root 3 0.0 0.0 0 0 ? SW 16:00 0:00 [kapmd]
faraox 1363 0.0 0.8 2740 1564 pts/2 S 18:57 0:00 -bash
\end{verbatim}
Los parámetros xau nos permiten ver todos los procesos que se están
ejecutando. El parámetro {\tt a} muestra lo que se está ejecutando en
las tty conocidas, el parámetro {\tt x} añade los procesos que no se
conece la tty en la que se están ejecutando y {\tt u} muestra los
usuarios que están ejecutando esos procesos.
Algunas partes de la salida le serán conocidas. La columna ``USER''
nos dice que usuario está ejecutando el proceso,``PID'' es su número
de proceso, ``\%CPU'' es el porcentaje de CPU que está utilizando al
igual que ``\%MEM'' es el porcentaje de memoria. También incluye la
cantidad de memoria en kylobytes que ha utilizado dicho proceso, se
muestra en la columan ``RSS''.La columna ``TTY'' muestra la consola
desde la que se está ejecutando. ``STAT'' nos muestra el estado del
proceso:S(drmiendo), R(corriendo), T(parado), Z(zombie). Las opciones
``W'' y ``N'' son especiales para procesos del kernel. La columna
``START'' muestra la hora a la que empezó el proceso, y la columna
``TIME'' muestra el tiempo de CPU que ha usado el proceso desde que se
inició y ``COMMAND'' muestra el nombre del comando que se está
ejecutando.
\subsection{El comando top}
\index{Procesos!top}
El comando top es una utilidad que permite la monitorización de los
procesos de la CPU. También muestra el estado de la memoria. Es una
mezcla del comando uptime, free y ps.
\begin{verbatim}
20:07:54 up 4:07, 5 users, load average: 0.07, 0.05, 0.05
60 processes: 58 sleeping, 1 running, 0 zombie, 1 stopped
CPU states: 0.4% user, 0.6% system, 0.0% nice, 99.0% idle
Mem: 182900K total, 172404K used, 10496K free, 35064K buffers
Swap: 96352K total, 14284K used, 82068K free, 43228K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
1565 faraox 14 0 1040 1040 820 R 0.5 0.5 0:00 top
300 root 9 -10 24736 9.9M 1524 S < 0.1 5.5 2:47 XFree86
1541 faraox 10 0 3148 3148 2184 S 0.1 1.7 0:00 Eterm
1 root 8 0 480 436 416 S 0.0 0.2 0:04 init
\end{verbatim}
\begin{table}[htbp]
\centering
\begin{tabular}{|c|p{0.7\textwidth}|}
\hline
{\tt espacio} & Actualiza la pantalla \\
{\tt C-l} & Borra y reescribe la pantalla \\
{\tt k} & Mata un proceso(kill) \\
{\tt r} & Cambia la prioridad de cualquier proceso \\
{\tt s} & Cambia el intervalo de refresco(por defecto es cada 5 segundos) \\
{\tt o} & Cambia el orden de los elementos \\
{\tt N} & Ordenar procesos por PID \\
{\tt P} & Mostrar procesos por el uso de la CPU(por defecto)\\
{\tt M} & Mostrar procesos por el uso de memoria \\
{\tt T} & Mostrar procesos por tiempo \\
{\tt W} & Guarda la configuración en ~/.toprc\\
\hline
\end{tabular}
\caption{Teclas para la interactuación con el top}
\end{table}
\subsection{{\bf Nice}: prioridad en procesos}
\index{Procesos!nice}
Una CPU tiene que compartir su tiempo de cálculo con varios procesos.
{\tt Nice} es un programa que permite cambiar la prioridad de un
proceso en nuestro sistema. La prioridad tiene un rango desde -20 a
20. Un usuario normal tiene prioridad 0 cuando ejecuta cualquier
comando desde la consola. Con el comando nice, ese usuario normal sólo
puede bajar la prioridad del proceso, nunca subirlo, sólo root es
capaz de ello. El esquema de utilización sería: {nice -n prioridad
comando} o también podemos utilizar el comando {\tt rnice} para
cambiar la prioridad de un proceso: {\tt renice prioridad PID}
\section{Los servicios en Debian}
\index{Administracion!servicios}
Los servicios o demonios son procesos que se ejecutan automáticamente
al arrancar el sistema o al llamarlos y que esperan cualquier
petición. Es el caso por ejemplo de Apache, Qmail, SSH, etc. Los
servicios normalmente se inician al iniciar el sistema, pero podemos
iniciarlo(start), pararlo(stop) o reiniciándolo, sería así: {\tt
/etc/init.d/servicio opción}.
Para que el servicio no se inicie cuando arrancamos el sistema,
podemos usar el comando update-rc.d. Este comando crea enlaces a
los diferentes directorios de runlevels. Para que no se inicie
automáticamente: {\tt update-rc.d -f servicio remove}. Para añadir un
servicio, simplemente creamos el script de nuestro servicio en Bourne
Shell Script y lo copiamos al directorio /etc/init.d/. Si queremos que
se inicie automáticamente al arrancar escribimos: {\tt update-rc.d
servicio defaults}
\section{Los archivos de registro}
\index{Administracion!registro, ficheros}
Los ficheros de registro (logging files) se almacenan los resultados e
información útil de algunos programas. Éstos son muy importantes para
conocer el estado de nuestra máquina. Los ficheros de registro más
importantes se encuentran en la carpeta {\tt /var/log/}. Normalmente,
estos ficheros se pueden visualizar con cualquier editor de texto ya
que están guardados en un fichero ASCII.
\begin{description}
\item [{\tt syslog}:] El fichero syslog es el resultado de los mensajes del
demonio Syslogd. Este demonio se encarga de la organización de los
mensajes del kernel, así que en el fichero syslog podemos enontrar
toda la información sobre lo que ocurre en nuestra máquina.
\item [{\tt messages}:] Este fichero es igual al syslog, pero muestra
información más simple. En el podemos controlar, por ejemplo, la
información del demonio pppd.
\item [{\tt \~{}/.bash\_history}:] Estos ficheros muestran los comandos
que han sido ejecutados por los usuarios desde la consola.
\item [{\tt wtmp}:] En el hay un listado de todas las conexiones que
ha tenido la máquina mientras ha permanecido encendida. Se puede leer
con el comando {\tt last}.
\end{description}
Normalmente cada demonio tiene un fichero de registro al igual que
otros muchos programas. Sólo hay que mirar la documentación. Los
ficheros de registro de nuestro servidor de correo se encuentran
en /var/log/mail.log, así como los del Apache se encuentran en
/var/log/apache,etc.
\section{Otras utilidades para la administración}
\subsection*{uptime}
\index{Administracion!uptime}
El comando {\tt uptime} nos indica el tiempo que ha estado corriendo
la máquina.
\begin{verbatim}
$ uptime
17:56:33 up 1:55, 8 users, load average: 0.05, 0.01, 0.01
\end{verbatim}
El primer elemento es la hora actual. El siguiente elemento, seguido
de la palabra ''up'' es el tiempo que la máquina está encendida.
Seguidamente nombra el número de usuarios que se encuentran en el
sistema. Por último muestra la carga media de la máquina, en tres
tiempos, 1,5 y 15 minutos.
\subsection*{w}
\index{Administracion!w}
Muestra los usuarios que se encuentran en el sistema. Veamos un ejemplo:
\begin{verbatim}
$w
18:00:59 up 2:00, 8 users, load average: 0.01, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
faraox tty1 - 16:01 1:58m 2.69s 0.00s w
\end{verbatim}
La primera línea que muestra el comando {\tt w} es la salida de el
comando {\tt uptime}. Por orden, la información que muestra es el
nombre de usuario, la consola desde donde ha entrado, desde donde se
conecta, la hora de entrada, el tiempo que ha permanecido inactivo
(idle), el tiempo usado por todos los procesos de esa consola(tty), el
tiempo usado por los procesos actuales y lo que está haciendo el
usuario.
\subsection*{free}
\index{Administracion!free}
El comando {\tt free} muestra información sobre el estado de la
memoria del sistema. Muestran tanto el estado de la memoria física
como de la swap. También muestra el búffer utilizado por el kernel.
Una salida del comando {\tt free}
\begin{verbatim}
$free
total used free shared buffers cached
Mem: 182900 173300 9600 0 11796 66588
-/+ buffers/cache: 94916 87984
Swap: 96352 448 95904
\end{verbatim}
Este comando lee la información del fichero /proc/meninfo.
\subsection*{dmesg}
\index{Administracion!dmesg}
Este comando muestra los mensajes del kernel durante el inicio del
sistema.
%%Esta parte es de -ese
\section{Grupos y usuarios}
Como es sabido, Linux es un sistema multiusuario. Eso no sólo
significa que cada uno puede tener su cuenta y trabajar en él sino
además puede hacerlo al mismo tiempo que otro usuario que esté
trabajando en ese instante.
Una de las competencias del administrador es gestionar la parte de
usuarios y englobarlos dentro de grupos de trabajo.
\subsection{Gestión de usuarios}
\index{Administracion!usuarios, gestión}
Para la gestión de usuarios hay dos operaciones: Adición y
eliminación.
\subsubsection{Añadiendo nuevos usuarios}
En Debian, para añadir un usuario, se utiliza el comando {\tt adduser
nombre}. En ese momento, no sólo se creará la cuenta del usuario sino
también su directorio de trabajo, un nuevo grupo de trabajo que se
llamará igual que el usuario y añadirá una serie de ficheros de
configuración al directorio de trabajo del nuevo usuario:
\begin{verbatim}
root@cila:/home# adduser pepe
Adding user pepe...
Adding new group pepe (1000).
Adding new user pepe (1000) with group pepe.
Creating home directory /home/pepe.
Copying files from /etc/skel
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for pepe
Enter the new value, or press return for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct?
[y/n] y
\end{verbatim}
En ese momento, el usuario ya puede trabajar en el sistema.
\subsubsection{Eliminando usuarios}
Para eliminar la cuenta de un usuario, emplearemos el comando
{\tt deluser nombre}. La pega de este comando es que no elimina
automáticamente el directorio de trabajo del usuario.
\begin{verbatim}
root@cila:/home# deluser pepe
Removing user pepe...
done.
\end{verbatim}
Una vez realizado este proceso, es responsabilidad del administrador
decidir si elimina el directorio de trabajo del antiguo usuario.
Si tratáramos de eliminar un usuario que no existe en el sistema,
recibiremos el siguiente aviso:
\begin{verbatim}
root@cila:/home# deluser pepe
/usr/sbin/deluser: `pepe' does not exist.
\end{verbatim}
\subsection{Gestión de grupos}
\index{Administracion!grupos, gestión}
Cuando creamos un usuario, siempre lo vamos a incluir en algún grupo
de trabajo, ya sea el suyo propio o bien, en uno común.
\subsubsection{Añadiendo nuevos grupos}
La forma de hacerlo es bien fácil:
\begin{verbatim}
root@cila:/home# addgroup usuarios
Adding group usuarios (105)...
Done.
\end{verbatim}
El número ``105'' nos indica que ése el identificador numérico que se
le asigna al nuevo grupo en el momento de su creación.
\subsubsection{Eliminando grupos}
De forma similar, la eliminación de un grupo se hace de esta forma:
\begin{verbatim}
root@cila:/home# delgroup usuarios
Removing group usuarios...
done.
\end{verbatim}
¿Qué puede pasar si tratamos de eliminar un grupo inexistente? El
sistema nos avisará con el siguiente mensaje:
\begin{verbatim}
root@cila:/home# delgroup usuarios
/usr/sbin/delgroup: `usuarios' does not exist.
\end{verbatim}
\subsubsection{Añadiendo y eliminando usuarios de los grupos}
Para añadir un usuario {\bf pepe} a un grupo {\bf usuarios} haremos:
\begin{verbatim}
root@cila:/home# adduser pepe usuarios
Adding user pepe to group usuarios...
Done.
\end{verbatim}
Y para eliminarlo de ese grupo:
\begin{verbatim}
root@cila:/home# deluser pepe usuarios
Removing user pepe from group usuarios...
done.
\end{verbatim}
Con esto queda por terminada esta introducción a la administración en
Linux.