Tabla de contenidos
Aquí, describo los trucos fundamentales para configurar y gestionar sistemas, principalmente desde la consola.
Screen(1) es una herramienta muy útil para el acceso remoto a sitio con conexiones no confiables o intermitentes ya que permite conexiones con redes cuya conectividad es intermitente.
Tabla 9.1. Relación de programas que permiten conexiones de red intermitentes
paquete | popularidad | tamaño | descripción |
---|---|---|---|
screen
|
V:195, I:283 | 995 | Multiplexador de terminal con emulación de terminal VT100/ANSI |
tmux
|
V:31, I:118 | 681 | terminal multiplexer alternative (Use "Control-B" instead) |
Screen(1) no solo permite trabajar con múltiples procesos en un único terminal, si no que también que el proceso del intérprete de órdenes remoto sobreviva a la interrupción de las conexiones. Aquí está un escenario típico de utilización de screen(1).
Usted acceda a un equipo remoto.
Inici screen
en una única consola.
Ejecute múlitples programas en la ventana de screen
con
^A c
(«Control-A« seguido por «c«).
Puede cambiar entre las múltiples ventanas de screen
con
^A n
(«Control-A« seguido de «n«).
Si repentinamente necesita dejar su terminal, pero no quiere perder su trabajo activo por la mantener la conexión.
Se puede separar la sesión
screen
por cualquier método.
Desconexión forzada de su conexión de red
Pulse ^A d
(«Control-A« seguido de «d«) y cierre
manualmente la conexión remota
Pulse ^A DD
(«Control-A« seguido de «DD«) para que
screen
separe y cierre su sesión
Si inicia la sesión otra vez al mismo equipo remoto (incluso desde un terminal diferente).
Inicie screen
con «screen -r
».
Screen
magicamente reconecta con todas las ventanas anteriores de
screen
con todos los programas activos ejecutandose.
Sugerencia | |
---|---|
Puede guardar la entrada de la conexión con |
En una sesión de screen
, todas las entradas de teclado
son enviadas a la ventana actual excepto las que son combinaciones de
teclado de órdenes. Todas las combinaciones de teclas de órdenes
screen
se inician pulsando ^A
(«Control-A«) más otra tecla [más algunos parámetros]. Aquí estan algunos
importantes a recordar.
Tabla 9.2. Relación de los atajos de teclado para screen
función | significado |
---|---|
^A ?
|
muestra la ayuda de screen (muestra los atajos de teclado) |
^A c
|
crea una nueva ventana y cambia a ella |
^A n
|
ir a la siguiente ventana |
^A p
|
ir a la ventana anterior |
^A 0
|
va a la ventana 0 |
^A 1
|
va a la ventana número 1 |
^A w
|
muestra una relación de las ventanas |
^A a
|
envia un Ctrl-A a la ventana actual como entrada de teclado |
^A h
|
escribe una copia de la ventana actual a un archivo |
^A H
|
inicia/finaliza la grabación de la ventana actual a un archivo |
^A ^X
|
bloquea la terminal (protegido por contraseña) |
^A d
|
separa la sesión de screen de la terminal |
^A DD
|
separa la sesión de screen y sale |
Para más detalles consulte screen(1).
Muchos programas registran sus actividades en el directorio
«/var/log/
».
El demonio de registro del sistema: rsyslogd(8)
Consulte Sección 3.2.5, “El sistema de mensajes” y Sección 3.2.4, “Los mensajes del núcleo”.
Aquí estan los analizadores de trazas más importantes
(«~Gsecurity::log-analyzer
» en
aptitude(8)).
Tabla 9.3. Relación de analizadores de trazas del sistema
paquete | popularidad | tamaño | descripción |
---|---|---|---|
logwatch
|
V:17, I:19 | 2251 | analizador de trazas con una buena generación de salida escrito en Perl |
fail2ban
|
V:103, I:114 | 1735 | prohibición de las IPs con múltiples errores de acreditación |
analog
|
V:4, I:123 | 3529 | analizador de trazas para servidores web |
awstats
|
V:11, I:17 | 6799 | analizador de trazas para servidores web potente y con diversas funcionalidades |
sarg
|
V:4, I:4 | 429 | generador de informes de análisis de squid |
pflogsumm
|
V:1, I:4 | 111 | generador de resumenes de las trazas de postfix |
syslog-summary
|
V:0, I:3 | 30 | generador de resumenes del contenido del archivo de trazas de syslog |
fwlogwatch
|
V:0, I:0 | 474 | analizador de trazas de cortafuegos |
squidview
|
V:0, I:1 | 189 | controla y analiza los archivos access.log de squid |
swatch
|
V:0, I:0 | 101 | visor de archivos de trazas con encaje de expresiones regulares, eventos relevantes y reglas |
crm114
|
V:0, I:0 | 1119 | Filtro de spam y filtro mediante expresiones regulares programables (CRM114) |
icmpinfo
|
V:0, I:0 | 39 | intérprete de mensajes ICMP |
Nota | |
---|---|
CRM114 tiene un lenguaje que permite escribir borrosos filtros con la biblioteca de expresines regulares TRE . Su uso más común es como filtro de correos no deseados pero puede ser utilizado también como analizador de trazas. |
La utilización para el registro de la actividad del intérprete de órdenes, sin más, de script(1) (see Sección 1.4.9, “Grabación de las actividades del intérprete de órdenes”) produce un archivo con caracteres de control. Esto se puede evitar con la utilización de col(1) como se muestra.
$ script Script started, file is typescript
Haga lo que quiera ... y pulse Ctrl-D
para finalizar
script
.
$ col -bx <typescript >archivo_filtrado $ vim cleanedfile
Si no utiliza script
(por ejemplo, durante el proceso de
arranque en initramfs), puede utilizar lo siguiente.
$ sh -i 2>&1 | tee typescript
Sugerencia | |
---|---|
Algunos |
Sugerencia | |
---|---|
Puede utilizar
screen(1)
con « |
Sugerencia | |
---|---|
Puede usar
emacs(1)
con « |
Aunque las herramientas de paginación como more(1) y less(1) (consulte Sección 1.4.5, “El paginador”) y herramientas personalizadas para marcar y dar formato (see Sección 11.1.8, “Resaltando y dándole formato a información en texto plano”) pueden visualizar la información en formato texto de la forma correcta, los editores de propósito general (consulte Sección 1.4.6, “El editor de texto”) son más versátiles y personalizables.
Sugerencia | |
---|---|
En
vim(1)
y su modo de paginación conocido como
view(1),
« |
El formato de visualización del tiempo y la fecha de la orden «ls
-l
» depende de la configuración
regional (consulte sus valores en Sección 1.2.6, “Marcas de tiempo”). La variable «$LANG
» se tiene en
cuenta primero y puede ser sobreescrita por el valor de la variable
«$LC_TIME
».
El formato de visualización por defecto real para cada configuración
regional depende de la versión de la biblioteca estándar C (el paquete
utilizado libc6
). Esto es, diferentes distribuciones de
Debian tienen diferentes valores por defecto.
Si de verdad quiere personalizar el formato de visualización de la hora y la
fecha independientemente de la configuración
regional, debería asignar el valor de
estilo de tiempo por el parámetro
«--time-style
» o por el valor de
«$TIME_STYLE
» (consulte
ls(1),
date(1),
«info coreutils 'ls invocation'
»).
Tabla 9.4. Son ejemplos de hora y fecha para la orden «ls -l
» en
wheezy
valor del estilo de la hora | configuración regional | visualización de la hora y la fecha |
---|---|---|
iso
|
cualquiera |
01-19 00:15
|
long-iso
|
cualquiera |
2009-01-19 00:15
|
full-iso
|
cualquiera |
2009-01-19 00:15:16.000000000 +0900
|
configuración regional
|
C
|
Jan 19 00:15
|
configuración regional
|
en_US.UTF-8
|
Jan 19 00:15
|
configuración regional
|
es_ES.UTF-8
|
ene 19 00:15
|
+%d.%m.%y %H:%M
|
cualquiera |
19.01.09 00:15
|
+%d.%b.%y %H:%M
|
C o en_US.UTF-8
|
19.Jan.09 00:15
|
+%d.%b.%y %H:%M
|
es_ES.UTF-8
|
19.ene.09 00:15
|
Sugerencia | |
---|---|
Puede evitar escribir largas opciones en las líneas de órdenes utilizando
alias de órdenes , p. ej. « |
Sugerencia | |
---|---|
ISO 8601 se sigue los siguientes formatos iso. |
En los terminales más modernos se pueden utilizar colores utilizando secuencias de escape ANSI (consulte
«/usr/share/doc/xterm/ctlseqs.txt.gz
»).
Por ejemplo, intente lo siguiente
$ RED=$(printf «\x1b[31m«) $ NORMAL=$(printf «\x1b[0m«) $ REVERSE=$(printf «\x1b[7m«) $ echo «${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}«
Órdenes de colores son útiles para la comprobación visual de la salida en
entornos interactivos. Yo añado lo siguiente en mi
«~/.bashrc
».
if [ «$TERM« != «dumb« ]; then eval «`dircolors -b`« alias ls='ls --color=always' alias ll='ls --color=always -l' alias la='ls --color=always -A' alias less='less -R' alias ls='ls --color=always' alias grep='grep --color=always' alias egrep='egrep --color=always' alias fgrep='fgrep --color=always' alias zgrep='zgrep --color=always' else alias ll='ls -l' alias la='ls -A' fi
La utilización de alias limita los efectos del color en el uso de órdenes
interactivas. Tiene ventajas sobre las variables de entorno exportadas
«export GREP_OPTIONS='--color=auto'
» ya que el color
pueder verse en los programas de paginación como
less(1).
Si quiere eliminar el color cuando usa tuberías con otros programas, utilice
«--color=auto
» en su lugar en los ejemplos anteriores
«~/.bashrc
».
Sugerencia | |
---|---|
Puede deshabilitar los alias de color en un entorno interactivo llamando al
intérprete de órdenes con « |
Puede guardar las actividades del editor con repeticones complejas.
Para Vim, como sigue.
«qa
»: comienza a grabar los caracteres escritos en un
registro llamado «a
».
… actividades del editor
«q
»: finaliza la grabación de los caracteres escritos.
«@a
»: ejecuta el contenido del registro
«a
».
Para Emacs, como sigue.
«C-x (
»: comienza a definir una macro de teclado.
… actividades del editor
«C-x )
»: termina definir una macro de teclado.
«C-x e
»: ejecuta una macro de teclado.
Existen varias maneras de grabar una imagen gráfica de una aplicación X,
incluida una pantalla de xterm
.
Tabla 9.5. Relación de herramientas de manipulación de imágenes
paquete | popularidad | tamaño | orden |
---|---|---|---|
xbase-clients
|
I:38 | 46 | xwd(1) |
gimp
|
V:85, I:489 | 19016 | menú GUI |
imagemagick
|
V:43, I:549 | 209 | import(1) |
scrot
|
V:8, I:92 | 54 | scrot(1) |
Existen herramientas especializadas para guardar los cambios de los archivos de configuración con la ayuda de sistemas como DVCS.
Tabla 9.6. Relación de paquetes para guardar el histórico de configuraciones en VCS
paquete | popularidad | tamaño | descripción |
---|---|---|---|
etckeeper
|
V:26, I:31 | 158 | almacena los archivos de configuración y sus metadatos con Git (por defecto), Mercurial, o Bazaar (nuevo) |
changetrack
|
V:0, I:0 | 63 | almacena los archivos de configuración con RCS (antiguo) |
Recomiendo la utilización del paquete etckeeper
congit(1)
que incluye entero el directorio «/etc
» bajo control
CVS. Su guía de instalación y tutorial se puede encontrar en
«/usr/share/doc/etckeeper/README.gz
».
Fundamentalmente, ejecutando «sudo etckeeper init
» inicia
el repositorio git de «/etc
» tal como se explica enSección 10.6.5, “Git para guardar el histórico de configuraciones” pero con algunos
archivos de órdenes para una configuración más minuciosa.
Cuando cambie su configuración, puede utilizar git(1) de forma habitual para guardarla. También y de forma automática guarda los cambios cada vez que ejecuta órdenes de gestión de paquetes .
Sugerencia | |
---|---|
Puede navegar por el historial de cambios de « |
Las actividades de los programas pueden ser monitoreados y controlados utilizando herramientas especializadas.
Tabla 9.7. Relación de las herramientas de monitorización y control de las actividades de los programas
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:888, I:999 | 15719 | nice(1): ejecuta un programa modificando su prioridad de planificación |
bsdutils
|
V:866, I:999 | 293 | renice(1): cambia la prioridad de planificación de un proceso en ejecución |
procps
|
V:793, I:999 | 729 |
«/proc » utilidades del sistema de archivos:
ps(1),
top(1),
kill(1),
watch(1),
…
|
psmisc
|
V:473, I:895 | 637 |
«/proc » utilidades del sistema de archivos:
killall(1),
fuser(1),
peekfd(1),
pstree(1)
|
time
|
V:22, I:428 | 82 | time(1): ejecuta un programa para crear un informe de los recursos del sistema utilizados a lo largo del tiempo |
sysstat
|
V:144, I:165 | 1684 | sar(1), iostat(1), mpstat(1), …: herramientas de optimización del sistema en Linux |
isag
|
V:0, I:4 | 111 | Graficador Interactivo de la Actividad del Sistema para sysstat |
lsof
|
V:464, I:946 | 454 | lsof(8):
enumera la relación de archivos abiertos por un proceso en ejecución
utilizando la opción «-p »
|
strace
|
V:19, I:159 | 2051 | strace(1): registro de las llamadas del sistema y señales |
ltrace
|
V:1, I:21 | 363 | ltrace(1): registro a las bibliotecas invocadas |
xtrace
|
V:0, I:0 | 352 | xtrace(1): registra las comunicaciones entre el cliente y el servidor en X11 |
powertop
|
V:6, I:231 | 604 | powertop(1): información sobre el uso de la potencia por parte del sistema |
cron
|
V:878, I:997 | 263 | ejecuta procesos en segundo plano de acuerdo a su planificación desde el dominio cron(8) |
anacron
|
V:447, I:521 | 99 | planficador de tareas similar a cron para los sistemas que no están activos 24 horas al dia |
at
|
V:260, I:453 | 157 | at(1) or batch(1): ejecuta un trabajo at en un momento determinado o por debajo de cierto nivel de carga |
Sugerencia | |
---|---|
El paquete |
Muestra el tiempo utilizado por un proceso invocado por la orden.
# time alguna_órden >/dev/null real 0m0.035s # timepo de reloj (tiempo real transcurrido) user 0m0.000s # tiempo en modo usuario sys 0m0.020s # tiempo en modo núcleo
Un valor de «nice« se utiliza para determinar la prioridad de planificación de los procesos.
Tabla 9.8. Relación de valores de nice para la prioridad de planificación
Valor de nice | prioridad de planificación |
---|---|
19 | proceso de menor prioridad (nice) |
0 | proceso de muy alta prioridad para el usuario |
-20 | proceso de superusuario (no nice) de muy alta prioridad |
# nice -19 top # muy nice # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # muy rápido
Algunas veces un valor extremo de nice produce más mal que bien al sistema. Utilice esta orden con cuidado.
La orden ps(1) en un sistema Debian aportan tanto las funcionalidades de SystemV y BSD y ayuda a identificar la actividad estática del proceso.
Tabla 9.9. Lista de estilo de la orden ps
estilo | orden típica | funcionalidad |
---|---|---|
BSD |
ps aux
|
muestra %CPU %MEM |
System V |
ps -efH
|
visualiza PPID |
Para los procesos hijos zombies (muertos) , los puede eliminar mediante el
identificador del proceso padre que corresponde al campo
«PPID
».
La orden pstree(1) muestra el árbol de procesos.
top(1) en el sistema Debian es rico desde el punto de vista funcional y ayuda a identificar que procesos actuan de forma extraña puntualmente.
It is an interactive full screen program. You can get its usage help press by pressing the "h"-key and terminate it by pressing the "q"-key.
Puede enumerar los archivos abiertos por un proceso con el identificador de proceso (PID), p. ej. 1, con lo siguiente.
$ sudo lsof -p 1
PID=1 generalmente es del programa init
.
Puede trazar la actividad de un programa, invocaciones al sistema, señales, invocaciones a bibliotecas o comunicaciones entre el cliente y servidor X11, con strace(1), ltrace(1), o xtrace(1).
Puede seguir las invocaciones del sistema de la orden ls
con se muestra.
$ sudo strace ls
También puede identificar procesos utilizando archivos mediante
fuser(1),
p. ej. para «/var/log/mail.log
» como se muestra.
$ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND /var/log/mail.log: root 2946 F.... rsyslogd
Puede ver que el archivo «/var/log/mail.log
» esta abierto
en escritura por la orden
rsyslogd(8).
También puede identificar un proceso por la utilización de sus conexiones
(sockets) mediante
fuser(1),
p. ej. para «smtp/tcp
» como se muestra.
$ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4
Ahora sabe que su sistema ejecuta exim4(8) con el fin de gestionar las conexiones TCP del puerto SMTP (25).
watch(1) ejecuta un programa de forma reiterada a un intervalo constante mientras muestra la salida del programa a pantalla completa.
$ watch w
Esto muestra quién está acreditado en el sistema y lo actualiza cada 2 segundos.
Existen varias formas de repetir una orden sobre los archivos que cumplan
una condición, p. ej, encajan en un patrón «*.ext
».
Método del bucle for del intérprete de órdenes (consulte Sección 12.1.4, “Bucles del intérprete de órdenes”):
for x in *.ext; do if [ -f «$x«]; then orden «$x« ; fi; done
Combinación de find(1) y xargs(1):
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 orden
find(1)
con la opción «-exec
» y una orden:
find . -type f -maxdepth 1 -name '*.ext' -exec orden '{}' \;
find(1)
con la opción «-exec
» con un archivo de órdenes pequeño:
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c «orden '{}' && echo 'successful'« \;
Los ejemplos anteriores están escritos para asegurar el correcto tratamiento de los nombres de archivos que contienen caracteres raros como los espacios. Para usos avanzados de find(1) consulte Sección 10.1.5, “Formas de selección de archivos”.
Para el interfaz de órdenes en línea
(CLI), el programa ejecutado será el primero que encaja el nombre en
el directorio especificdo por la variable de entorno
$PATH
. Consulte Sección 1.5.3, “La variable «$PATH
»”.
Para el interfaz gráfico de usuario
(GUI) que cumple con el estándar de freedesktop.org, los archivos
*.desktop
en el directorio
/usr/share/applications/
proporciona los atributos
necesarios para la visualización de cada programa en el menú del interfaz
gráfico de usuario. Consulte Sección 7.2.2, “Menú de Freedesktop.org”.
Por ejemplo, el archivo chromium.desktop
define los
atributos para el «Navegador Web Chromium« como «Name« para el nombre del
programa, «Exec« para la ruta de ejecución del programa y parámetros, «Icon«
para el icono utilizado, etc. (consulte la Especificación de Entradas del Escritorio
(Desktop Entry Specification)) como sigue:
[Desktop Entry] Version=1.0 Name=Chromium Web Browser GenericName=Web Browser Comment=Access the Internet Comment[fr]=Explorer le Web Exec=/usr/bin/chromium %U Terminal=false X-MultipleArgs=false Type=Application Icon=chromium Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https; StartupWMClass=Chromium StartupNotify=true
Esta es una descripción muy simplificadao. Los archivos
*.desktop
son revisados como sigue.
El entorno de escritorio asigna las variables del entorno
$XDG_DATA_HOME
and $XDG_DATA_DIR
. Por
ejemplo, en GNOME 3:
$XDG_DATA_HOME
esta sin asignar. (El valor por defecto
que se utiliza es $HOME/.local/share
.)
$XDG_DATA_DIRS
se le asigna el valor
/usr/share/gnome:/usr/local/share/:/usr/share/
.
Así los directorios base (consulte XDG Base Directory
Specification) y los directorios de aplicaciones
quedan como sigue.
$HOME/.local/share/
→
$HOME/.local/share/applications/
/usr/share/gnome/
→
/usr/share/gnome/applications/
/usr/local/share/
→
/usr/local/share/applications/
/usr/share/
→ /usr/share/applications/
Los archivos *.desktop
se comprueban en estos
directorios de aplicaciones
siguiendo este orden.
Sugerencia | |
---|---|
Se puede crear una entrada personalizada al menú del interfaz gráfico de
usuario (GUI) añadiendo un archivo |
Sugerencia | |
---|---|
Igualmente, si se crea un archivo |
Sugerencia | |
---|---|
De igual manera, si un archivo |
Algunos programas inician otros programa de forma automática. Aquí estan los puntos a compribar para la personalización de este proceso.
Menú de configuración de aplicaciones:
Escritorio GNOME3: «Configuración« → «Sistema« → «Detalles« → «Aplicaciones por defecto«
Escritorio KDE: «K« → «Centro de Control« → «Componenetes KDE« → «Selección de componentes«
Navegador Iceweasel: «Editar→ «Preferencias« → «Aplicaciones«
mc(1):
«/etc/mc/mc.ext
»
Variables de entorno como «$BROWSER
»,
«$EDITOR
», «$VISUAL
» y
«$PAGER
» (consulte
eviron(7))
El sistema
update-alternatives(1)
para los programas como «editor
»,
«view
», «x-www-browser
»,
«gnome-www-browser
», and «www-browser
»
(consulte Sección 1.4.7, “Configuración del editor de texto por defecto”)
El contenido de los archivos «~/.mailcap
» y
«/etc/mailcap
» que asocia los tiposMIME con los programas (consulte
mailcap(5))
El contenido de los archivos «~/.mime.types
» y
«/etc/mime.types
» el cual se asocia con la extensión del
nombre del archivo con los tipos MIME (consulte
run-mailcap(1))
Sugerencia | |
---|---|
update-mime(8)
actualiza el archivo « |
Sugerencia | |
---|---|
El paquete |
Sugerencia | |
---|---|
Con el fin de ejecutar una aplicación de consola como
|
# cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e «mutt \$@« EOF chmod 755 /usr/local/bin/mutt-term
Utilice kill(1) para matar (o enviar una señal a) un proceso mediante su identificador de proceso.
Utilice killall(1) o pkill(1) para hacer lo mismo mediante otros atributos como el nombre de la orden del proceso.
Tabla 9.10. Relación de las señales más usadas con la orden kill
valor de la señal | nombre de la señal | función |
---|---|---|
1 | HUP | reinicio del demonio |
15 | TERM | finalización normal |
9 | KILL | finalización obligada |
Ejecute al orden at(1) para planificar una única ejecución de un trabajo mediente lo siguiente.
$ echo 'command -args'| at 3:40 monday
Utilice cron(8) para planificar las tareas de forma regular. Consulte crontab(1) y crontab(5).
Puede planificar la ejecución de procesos como un usuario normal,
p. ej. foo
creando un archivo
crontab(5)
como «/var/spool/cron/crontabs/foo
» con la orden
«crontab -e
».
Aquí esta un ejemplo de un archivo crontab(5).
# utilice /bin/sh para ejecutar órdenes ,sin importar lo que diga /etc/passwd SHELL=/bin/sh # enviar la salida por correo a paul, sin importar a quién pertenece el crontab MAILTO=paul # Min Hora DiaDelMes Mes DiaDeLaSemana orden (Dia... es ordenado) # se ejecuta a las 00:05, cada dia 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # se ejecuta a las 14:15 el primer día de cada mes -- salida se envía por correo a paul 15 14 1 * * $HOME/bin/monthly # ejecuta a las 22:00 en días entre semana(1-5), avisando a Joe. % para nueva línea, el último % para copiar en el correo: 0 22 * * 1-5 mail -s «It's 10pm« joe%Joe,%%WDonde están los niños?%.%% 23 */2 1 2 * echo «Se ejecuta en el minuto 23 en las horas pares el 1 de Febrero« 5 4 * * sun echo «ejecuta a las 04:05 cada domingo« # se ejecuta a las 03:40 el primer Lunes de cada mes 40 3 1-7 * * [ «$(date +%a)« == «Mon« ] && orden -args
Sugerencia | |
---|---|
En los sistemas que no están en funcionamiento ininterrumpido, instale el
paquete |
Sugerencia | |
---|---|
Para los archivos de órdenes de mantenimiento del sistema, puede ejecutarlos
de forma periódica desde la cuenta de superusuario ubicando esos archivos de
órdenes en « |
La cobertura del riesgo frente al mal funcionamiento del sistema se aporta por la opción de compilación del núcleoon «Magic SysRq key« (tecla SAK key) el cual está por defecto en el núcleo que proporciona Debian. Pulsando Alt-SysRq seguido por una de las siguientes teclas rescata mágicamente el control del sistema.
Tabla 9.11. Relación de las órdenes de las teclas SAK
tecla seguida de Alt-SysRq | descripción de la acción |
---|---|
r
|
recupera el teclado del modo crudo después de que las X fallen |
0
|
cambia el nivel de registro de la consola a0 para reducdir los mensajes de error |
k
|
k mata todos los procesos de la consola virtual actual |
e
|
envia una señal SIGTERM a todos los procesos, excepto init(8) |
i
|
envia una señal SIGKILL a todos los procesos, excepto a init(8) |
s
|
sincroniza todos los sistemas de archivos montados para evitar la corrupción de datos |
u
|
remonta todos los sistemas de archivos montados como de solo lectura (desmonta) |
b
|
reinicia el sistema sin sincronizar ni desmontar |
Sugerencia | |
---|---|
Lee las páginas de manual de signal(7), kill(1) y sync(1) para entender la descripción anterior. |
La combinación de «Alt-SysRq s«, «Alt-SysRq u«,y «Alt-SysRq r« es bueno para salir de una situación desagradable y recuperar acceso a un teclado utilizable sin para el sistema.
Consulte
«/usr/share/doc/linux-doc-3.*/Documentation/sysrq.txt.gz
».
Atención | |
---|---|
La funcionalidad Alt-SysRq puede considerarse un riesgo de seguridad al
permitir acceso a los usuarios a funciones de superusuarios. Ubicando
« |
Sugerencia | |
---|---|
Desde terminales SSH etc., puede utilizar la funcionalidad Alt-SysRq
resribiendo « |
Puede comprobar quién esta en el sistema como se muestra.
who(1) muestra quién está acreditado.
w(1) muestra quién esta acreditado y que está haciendo.
last(1) muestra una relación de las últimas sesiones de usuario.
lastb(1) muestra una relación de los últimos intentos fallidos de acceso a una sesión.
Sugerencia | |
---|---|
« |
Puede enviar mensajes a cualquiera que esté acreditado en el sistema con wall(1) como se muestra.
$ echo «Apagaremos el equipo en una hora« | wall
El punto de inicio para la identificación de los dispositivos tipo PCI (AGP, PCI-Express, CardBus, ExpressCard, etc.) es la orden
lspci(8)
(preferentemente con la opción «-nn
»).
Otra forma en la que puede identificar el hardware es leyendo el contenido
de «/proc/bus/pci/devices
» o navegando por el árbol de
directorios que cuelga de «/sys/bus/pci
» (consulte Sección 1.2.12, “procfs y sysfs”).
Tabla 9.12. Relación de las herramientas para la identificación de hardware
paquete | popularidad | tamaño | descripción |
---|---|---|---|
pciutils
|
V:158, I:994 | 1220 | Utilidades de Linux para PCI: lspci(8) |
usbutils
|
V:94, I:866 | 312 | Utilidades de Linux para USB: lsusb(8) |
pcmciautils
|
V:18, I:30 | 105 | Utilidades Linux para PCMCIA: pccardctl(8) |
scsitools
|
V:0, I:3 | 365 | colección de herramientas para la gestión de hardware SCSI: lsscsi(8) |
procinfo
|
V:0, I:15 | 123 |
información del sistema obtenida de «/proc »:
lsdev(8)
|
lshw
|
V:10, I:89 | 763 | información sobre la configuración hardware: lshw(1) |
discover
|
V:39, I:945 | 90 | sistema de identificación hardware: discover(8) |
Aunque la mayor parte de la configuración del hardware en los sistemas de escritorio con interfaz gráfico de usuario como GNOME y KDE se puede realizar mediante herramientas de configuración con interfaz gráfico de usuario, es una buena idea conocer algunos métodos básicos para su configuración.
Tabla 9.13. Relación de herramientas de configuración hardware
paquete | popularidad | tamaño | descripción |
---|---|---|---|
console-setup
|
V:280, I:951 | 417 | Utilidades de teclado y tipos de letra para consolas |
x11-xserver-utils
|
V:354, I:575 | 511 | Utilidades de servidor X: xset(1), xmodmap(1) |
acpid
|
V:262, I:484 | 146 | demonio que gestiona los eventos que llegan del Interfaz de Fuerza y Configuración Avanzada (Advanced Configuration and Power Interface, ACPI) |
acpi
|
V:23, I:463 | 45 | utilidad para visualizar información de dispositivos ACPI |
sleepd
|
V:0, I:0 | 86 | demonio que «duerme« el portátil si deja de tener actividad |
hdparm
|
V:435, I:653 | 255 | optimización de acceso al disco duro (consulte Sección 9.5.9, “Optimización del disco duro”) |
smartmontools
|
V:127, I:191 | 1846 | control y monitoreo de sistemas de almacenamiento utilizando S.M.A.R.T. |
setserial
|
V:5, I:10 | 117 | colección de herramientas para la gestión del puerto serie |
memtest86+
|
V:1, I:33 | 2391 | colección de herramientas para la gestión de la memoria hardware |
scsitools
|
V:0, I:3 | 365 | colección de herramientas para la gestión de hardware SCSI |
setcd
|
V:0, I:1 | 35 | optimización de acceso a la unidad de discos compactos |
big-cursor
|
I:1 | 27 | cursores grandes del ratón para X |
Aquí, ACPI es un marco más nuevo para el sistema de gestión de fuerza que APM.
Sugerencia | |
---|---|
La frecuencia de funcionamiento de la CPU de los sistemas modernos esta
gestionada por módulos en el núcleo como |
Lo siguiente asigna al sistema y hardware la hora y fecha a MM/DD hh:mm CCYY.
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
La hora habitualmente se visualiza en la hora local en el sistema Debian pero el hardware y el sistema usa generalmente la hora en UTC(GMT).
Si la hora del hardware (BIOS) esta asiganda en UTC, cambie la configuración
a «UTC=yes
» en «/etc/default/rcS
».
Lo siguiente reconfigura la zona horaria utilizada por el sistema Debian.
# dpkg-reconfigure tzdata
Si desea actualizar el tiempo del sistema a través de la red, piense en
utilizar el servicio NTP con paquetes como
ntp
, ntpdate
y
chrony
.
Sugerencia | |
---|---|
En systemd para la sincronización de la hora
a través de la red utilice |
Consulte lo siguiente.
Sugerencia | |
---|---|
ntptrace(8)
del paquete |
Existen diferentes componentes para configura la consola de caracteres y las funcionalidades del sistema ncurses(3) system features.
El archivo «/etc/terminfo/*/*
»
(terminfo(5))
La variable de entorno «$TERM
»
(term(7))
setterm(1), stty(1), tic(1) y toe(1)
Si la entrada terminfo
de xterm
no
funciona con una xterm
que no es de Debian, cambie el
tipo de terminal cambiando «$TERM
» de
«xterm
» a una versión con funcionalidades limitadas como
«xterm-r6
» al autenticarse en el sistema Debian de forma
remota. Para mayor información consulte
«/usr/share/doc/libncurses5/FAQ
».
«dumb
» es el mínimo común denominador para
«$TERM
».
La Arquitectura Avanzada de Sonido para Linux (Advanced Linux Sound Architecture, ALSA) proporciona los controladores de dispositivos de tarjetas de sonido en el actual Linux. ALSA tiene un modo de emulación para ser compatible con el anterior Open Sound System (OSS).
Sugerencia | |
---|---|
Para comprobar el altavoz (speaker) utilice « |
Sugerencia | |
---|---|
Si no obtiene sonido, su altavoz puede estar conectado a una salida en
silencio.
Alsamixer(1)
en el paquete |
E software de aplicación puede ser configurado no solo para acceder directamente a los dispositivos de sonido si no también para acceder a estos a través de un sistema servidor de sonido.
Tabla 9.14. Relación de paquetes de sonido
paquete | popularidad | tamaño | descripción |
---|---|---|---|
alsa-utils
|
V:393, I:519 | 2253 | utilidades para configurar y usar ALSA |
oss-compat
|
V:2, I:35 | 20 |
La compatibilidad de ALSA con OSS evita errores como «/dev/dsp no
se encuentra »
|
jackd
|
V:3, I:27 | 9 | servidor Conjunto de Conexiones de Audio JACK (JACK Audio Connection Kit, JACK) (baja latencia) |
libjack0
|
V:0, I:14 | 337 | biblioteca del Conjunto de Conexión de Audio JACK (JACK Audio Connection Kit, JACK) (baja latencia) |
nas
|
V:0, I:0 | 239 | servidor delSistema de Audio en Red (Network Audio System, NAS) |
libaudio2
|
I:541 | 161 | biblioteca del Sistema de Audio de Red (Network Audio System, NAS) |
pulseaudio
|
V:387, I:504 | 6411 | servidor PulseAudio, reemplazo de ESD |
libpulse0
|
V:278, I:646 | 968 | biblioteca del cliente PulseAudio, reemplazo de ESD |
libgstreamer1.0-0
|
V:256, I:549 | 5063 | GStreamer: motor de sonido GNOME |
libphonon4
|
I:192 | 680 | Phonon: motor de sonido KDE |
Generalmente existe un motot de sonido común para los entorno de escritorio más populares. Cada motor de sonido utilizado por la aplicación puede elegir conectarse a diferentes servidores de sonido.
Para deshabilitar el salvapantallas, utilice las siguientes órdenes.
Tabla 9.15. Relación de las órdenes para deshabilitar el salvapantallas
entorno | orden |
---|---|
La consola de Linux |
setterm -powersave off
|
Las Ventanas X (deshabilitando el salvapantallas) |
xset s off
|
Las Ventanas X (deshabilitando dpms) |
xset -dpms
|
Las Ventanas X (configuración por GUI del salvapantallas) |
xscreensaver-command -prefs
|
Siempre puede desenchufar el altavoz del PC para deshabilitar los
pitidos. Eliminando el módulo del núcleo pcspkr
realiza
ese trabajo por usted.
Lo siguiente impide que el programa readline(3) utilizado por bash(1) pite cuando encuentre un carácter de alerta (ASCII=7).
$ echo «set bell-style none«>> ~/.inputrc
Existen dos recursos disponibles para determinar el uso de la memoria.
El mensaje de arranque del núcleo en «/var/log/dmesg
»
contiene el tamaño exacto de memoria disponible.
free(1) y top(1) visualiza la información de los recursos de memoria en el sistema en ejecución.
Aquí hay un ejemplo.
# grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total used free shared buffers cached Mem: 997184 976928 20256 0 129592 171932 -/+ buffers/cache: 675404 321780 Swap: 4545576 4 4545572
Se puede sorprender que «dmesg le diga que existen 990 MB libres y free -k dice que solo hay 320 MB libres. Más de 600 MB de diferencia …«.
No se preocupe por el gran tamaño de memoria «utilizada
»
y el pequeño tamaño de memoria «libre
» en la línea
«Mem:
», pero leea lo que hay debajo (675404 y 321780 en
el ejemplo anterior) y relajese.
Para mi MacBook con 1GB=1048576k DRAM (el sistema de video usa algo de esto), tengo lo siguiente.
Tabla 9.16. Relación de informes de tamaño de la memoria
informe | tamaño |
---|---|
Tamaño total en dmesg | 1016784k = 1GB - 31792k |
Memoria libre en dmesg | 990528k |
Total en el intérprete de órdenes | 997184k |
Libre en el intérprete de órdenes | 20256k (pero de forma efectiva 321780k) |
Un mantenimiento inadecuado de su sistema puede exponerlo a ser atacado desde el exterior.
Para la seguridad y las comprobaciones de intergridad, debe comenzar con lo que se muestra.
Para el paquete debsums
, consulte
debsums(1)
y Sección 2.5.2, “Archivo «Release» del nivel superior y autenticación”.
Para el paquete chkrootkit
consulte
chkrootkit(1).
Para la familia de paquetes clamav
consulte
clamscan(1)
y
freshclam(1).
Tabla 9.17. Relación de las herramientas de seguridad del sistema y comprobación de la integridad
paquete | popularidad | tamaño | descripción |
---|---|---|---|
logcheck
|
V:10, I:12 | 102 | demonio que envía por correo anomalías en los registros del sistema al administrador |
debsums
|
V:6, I:40 | 120 | utilidad para verificar los archivos de los paquetes instalado mediante sumas MD5 |
chkrootkit
|
V:6, I:26 | 934 | detector de rootkit |
clamav
|
V:14, I:65 | 727 | utilidad anti-virus para Unix - interfaz de línea de órdenes |
tiger
|
V:3, I:3 | 2485 | informa de vulnerabilidades de seguridad del sistema |
tripwire
|
V:2, I:3 | 12055 | comprobador de integridad de archivos y directorios |
john
|
V:2, I:13 | 449 | herramienta para descifrar contraseñas |
aide
|
V:2, I:2 | 2063 | Entorno de Detección Avanzado de Intrusión - binario estático |
integrit
|
V:0, I:0 | 329 | programa de verificación de la integridad del archivo |
crack
|
V:0, I:1 | 128 | programa que adivina contraseñas |
Aquí esta un archivo de órdenes para comprobar el permiso de escritura incorrecto para todos.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
Atención | |
---|---|
Ya que el paquete |
El arranque de su sistema Linux con «live CDs« o CDs de instalación de debian en modo rescate hace que sea fácil reconfigurar la información de almacenamiento en su dispositivo de arranque.
El uso de espacio en disco puede ser evaluado por los programas
proporcionados por los paquetes mount
,
coreutils
y xdu
:
mount(8) muestra todos los sistemas de archivos (=discos) montados.
df(1) muestra el espacio de disco utilizado por el sistema de archivos.
du(1) informa del espacio de disco utilizado por el árbol de un directorio.
Sugerencia | |
---|---|
Puede utilizar la salida de
du(8)
como entrada de
xdu(1x)
para tener una presentación gráfica e interactiva con « |
Para la configuración de la partición del disco , a pesar de que fdisk(8) fue considerado en el pasado el estándar, parted(8) merece nuestra atención. Las expresiones «datos del particionado del disco«, «tabla de partición«, «mapa de particiones« y «marcado del disco« son todas ellas sinónimos.
La mayor parte de los PCs utilizan el esquema clásico Registro de Arranque Primario (Master Boot Record, MBR) para guardar los datos del particionado del disco en el primer sector, a saber, LBA sector 0 (512 bytes).
Nota | |
---|---|
Algunos PCs nuevos con Interfaz Firmware Extensible (Extensible Firmware Interface, EFI), includios los Macs basados en Intel, utilizan el esquema Tabla de Particiones GUID(GPT) para mantener la informaciñon del particionado del disco en otro sector diferente del primero. |
Aunque fdisk(8) fue la herramienta estándar para el particionado del disco, ha sido sustituida por parted(8).
Tabla 9.18. Relación de paquetes para la gestión del particionado del disco
paquete | popularidad | tamaño | GPT | descripción |
---|---|---|---|---|
util-linux
|
V:891, I:999 | 4327 | No soportado | las utilidades varias del sistema incluyen fdisk(8) y cfdisk(8) |
parted
|
V:391, I:579 | 286 | Soporte | Programa de modificación del tamaño de las particiones de disco GNU Parted |
gparted
|
V:22, I:144 | 7537 | Soporte |
Editor GNOME del particionado basado en libparted
|
gdisk
|
V:71, I:515 | 811 | Soporte | editor del particionado para discos GPT |
kpartx
|
V:15, I:26 | 89 | Soporte | programa para crear mapeos entre dispositivos y particiones |
Atención | |
---|---|
Aunque parted(8) afirma que crea y también modifica el tamaño de los sistemas de archivos, es más seguro realizar estas tareas con herramientas especializadas de mantenimiento como mkfs(8) (mkfs.msdos(8), mkfs.ext2(8), mkfs.ext3(8), mkfs.ext4(8), …) y resize2fs(8). |
Nota | |
---|---|
Para realizar el cambio entre GPT y MBR, necesita eliminar el contenido de unos cuantos
bloques ubicados al principio (consulte Sección 9.7.6, “Limpieza del contenido de los archivos”) y utilice « |
A pesar de que la reconfiguración de su partición u orden de activación de los medios de almacenamiento no permanentes sus particiones pueden tener diferentes nombres, puede acceder a ellos de forma consistente. Esto es de ayuda, incluso, varios discos y su BIOS no le asigna nombres consistentes.
Mount(8)
con la opción «-U
» permite montar dispositivos de bloque
utilizando UUID, en lugar de sus nombres de
archivo como «/dev/sda3
».
«/etc/fstab
» (consulte
fstab(5))
puede utilizar UUID.
Los gestores de arranque (Sección 3.1.2, “Fase 2: el cargador de arranque”) pueden utilizar también UUID.
Sugerencia | |
---|---|
Puede determinar el UUID de un dispositivo especial de bloque con blkid(8). |
Sugerencia | |
---|---|
Los nodos de los dispositivos como de los medios de almacenamiento no permanentes pueden hacerse estáticos con la utilización de las reglas udev, si es necesario. Consulte Sección 3.3, “El sistema udev”. |
LVM2 es un gestor de volumenes lógicos del núcleo de Linux. Con LVM2 las particiones de disco se pueden crear en volumenes lógicos en vez de discos duros físicos.
LVM necesita lo siguiente.
soporte de device-mapper en el núcleo Linux (por defecto en los núcleos de Debian)
el soporte de la biblioteca device-mapper en el espacio de usuario (paquete
libdevmaper*
)
herramientas LVM2 del espacio de usuario (paquete lvm2
)
Por favor, para comenzar a aprender LVM2 lea las siguiente páginas de manual.
lvm(8): Fundamentos del mecanismo LVM2 (relación de todas las órdenes LVM2)
lvm.conf(5): archivo de configuración de LVM2
lvs(8): crea un informe sobre los volúmenes lógicos
vgs(8): crea un informe sobre los grupos de volúmentes
pvs(8): crea un informe sobre los volúmenes físicos
Para el sistema de archivos ext4, el paquete
e2fsprogs
aporta lo siguiente.
mkfs.ext4(8) para crear un nuevo de sistema de archivos ext4
fsck.ext4(8) para comprobar y reparar un sistema de archivos ext4 preexistente
tune2fs(8) para configurar el superbloque de ext4 filesystem
debugfs(8)
para depurar en modo interactivo el sistema de archivos ext4. (Existe la orden undel
para
recuperar los archivos borrados.)
Las órdenes
mkfs(8)
y
fsck(8)
esta en el paquete e2fsprogs
como interfaz de varios
programas especificos del sistema de archivos
(mkfs.fstype
y fsck.fstype
). Para el
sistema de archivos ext4 existen
mkfs.ext4(8)
y
fsck.ext4(8)
(esta enlazado a
mke2fs(8)
y
e2fsck(8)).
Las siguientes órdenes están disponibles para cada sistema de archivos que soporta Linux.
Tabla 9.19. Relación de paquetes para la gestión del sistema de archivos
paquete | popularidad | tamaño | descripción |
---|---|---|---|
e2fsprogs
|
V:598, I:999 | 1419 | utilidades para el sistema de archivos ext2/ext3/ext4 |
reiserfsprogs
|
V:13, I:26 | 923 | utilidades para el sistema de archivos Reiserfs |
dosfstools
|
V:114, I:556 | 235 | utilidades para el sistema de archivos FAT. (Microsoft: MS-DOS, Windows) |
xfsprogs
|
V:18, I:92 | 3349 | utilidades para el sistema de archivos XFS. (SGI: IRIX) |
ntfs-3g
|
V:273, I:548 | 1471 | utilidades para el sistema de archivos NTFS. (Microsoft: Windows NT, …) |
jfsutils
|
V:1, I:13 | 1561 | utilidades para el sistema de archivos JFS. (IBM: AIX, OS/2) |
reiser4progs
|
V:0, I:4 | 1325 | utilidades para el sistema de archivos Reiser4 |
hfsprogs
|
V:0, I:8 | 303 | utilidades para el sistema de archivos HFS y HFS Plus. (Apple: Mac OS) |
btrfs-progs
|
V:32, I:48 | 3314 | utilidades para el sistema de archivos Btrfs |
zerofree
|
V:2, I:74 | 25 | programa de cero bloques libres para sistemas de archivos ext2/3/4 |
Sugerencia | |
---|---|
Ext4 es el sistema de archivos por defecto para el sistema Linux y es muy recomendable su uso a menos que tenga una razón concreta para no hacerlo. |
Sugerencia | |
---|---|
El sistema de archivos Btrfs filesystem esta
disponible desde el núcleo de Linux 3.2 (Debian |
Aviso | |
---|---|
No debería utilizar el sistema de archivos Btrfs para sus datos críticos hasta que fsck(8) no tenga las funcionalidad de espacio de nñucleo vivo y soporte del gestor de arranque. |
Sugerencia | |
---|---|
Algunas herramientas permiten el acceso al sistema de archivos sin soporte del núcleo de Linux (consulte Sección 9.7.2, “Manipular archivos sin el montaje de discos”). |
La orden mkfs(8) crea el sistema de archivos en el sistema Linux. La orden fsck(8) aporta la comprobación de integridad al sistema de archivos y la capacidad de reparación al sistema Linux.
El Debian actual no ejecuta periódicamente fsck
después
de la creación del sistema de archivos.
Atención | |
---|---|
Normalmente no es seguro ejecutar |
Sugerencia | |
---|---|
Puede ejecutar la orden
fsck(8)
de forma segura en todos los sistemas de archivos incluido el sistema de
archivos raíz en el arranque activando
« |
Sugerencia | |
---|---|
Para comprobar la ejecución de la orden
fsck(8)
del archivo de órdenes del arranque compruebe los archivos en
« |
La configuración estática básica del sistema de archivos se realizan en
«/etc/fstab
». Por ejemplo,
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 UUID=709cbe4c-80c1-56db-8ab1-dbce3146d2f7 / ext4 noatime,errors=remount-ro 0 1 UUID=817bae6b-45d2-5aca-4d2a-1267ab46ac23 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Sugerencia | |
---|---|
UUID (consulte Sección 9.5.3, “Acceso al particionado utilizando UUID”) puede utilizarse para
identificar los dispositovos de bloque en lugar de los nombres de los
dispositivos de bloque como « |
La personalización y la caracterización del sistema de archivos se puede optimizar a través de la utilización de las opciones de montaje (consulte fstab(5) y mount(8)). Los más relevantes son los siguientes.
La opción «defaults
» conlleva las siguientes opciones:
«rw,suid,dev,exec,auto,nouser,async
». (Uso general)
La opción «noatime
» o «relatime
» es
muy efectiva para mejorar los accesos de lectura. (Uso general)
La opción «user
» permite un usuario normal el montaje de
sistemas de archivos. Esta opción conlleva la combinación de opciones
«noexec,nosuid,nodev
» . (Utlizado generalmente en CDs o
dispositivos de almacenamiento USB)
La combinación de opciones «noexec,nodev,nosuid
» se
utiliza para la mejora de la seguridad. ( Uso general)
La opción «noauto
» solo permite el montaje de forma
explícita. (Uso general)
La opción «data=journal
» de ext3fs puede mejorar la
integridad de la información ante caidas de fuerza y pierde algo de
velocidad de escritura.
Sugerencia | |
---|---|
Necesita aportar parámetros de arranque al núcleo (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”),p.
ej. « |
La caracterización del sistema de archivos puede ser optimizado a través de su superbloque utilizando la orden tune2fs(8).
La ejecución de «sudo tune2fs -l /dev/hda1
» muestra el
contenido del sistema de archivos del superbloque de
«/dev/hda1
».
La ejecución de «sudo tune2fs -c 50 /dev/hda1
» cambia la
frecuencia de comprobaciones del sistema de archivos
(fsck
durante el arranque) cada 50 arranques en
«/dev/hda1
».
La ejecución de «sudo tune2fs -j /dev/hda1
» añade la
capacidad del registro de operaciones al sistema archivos, a saber
conversión del sistema de archivos de ext2 a
ext3 en «/dev/hda1
». (Para
ello se necesita que el sistema de archivos este desmontado.)
La ejecución de «sudo tune2fs -O extents,uninit_bg,dir_index
/dev/hda1 && fsck -pf /dev/hda1
» lo convierte de ext3 a ext4 en
«/dev/hda1
». (Realice esto con el sistema de archivos
desmontado.)
Aviso | |
---|---|
Por favor, compruebe su hardware y lea las páginas de manual de hdparam(8) antes de probar las configuraciones del disco duro ya que puede ser peligroso para la integridad de los datos. |
Puede comprobar la velocidad de acceso al disco duro,
p. ej. «/dev/hda
» con «hdparm -tT
/dev/hda
». Algunos discos conectados mediante (E)IDE se puede
mejorar su velocidad con «hdparm -q -c3 -d1 -u1 -m16
/dev/hda
» activando el «soporte I/O (E)IDE 32-bit«, activando la
«bandera using_dma«, asignando la «bandera interrupt-unmask« y activando
«multiple 16 sector I/O« (¡peligroso!).
Puede comprobar la funcionalidad de la escritura de caché del disco duro ,
p. ej. «/dev/sda
», con «hdparm -W
/dev/sda
». Para deshabilitar esta funcionalidad ejecute
«hdparm -W 0 /dev/sda
».
Puede intentar leer CDROMs dañados en dispositivos de lectura de alta
velocidad modernos haciendo que funcionen a menor velocidad con
«setcd -x 2
».
El desempeño y el desgaste de un disco de estado sólido (SSD) puede optimizarse de la siguiente manera.
Utilice el núcleo de Linux más reciente. (>= 3.2)
Reduzca las escrituras al disco para accesos de lectura.
Asigne la opción «noatime
» o
«relatime
» en el montaje de
/etc/fstab
.
Active la orden TRIM.
Asigne la opción de montaje «discard
» en
/etc/fstab
para los sistemas de archivos ext4 , partición
de intercambio, Btrfs, etc. Consulte
fstab(5).
Asigne la opción «discard
» en
/etc/lvm/lvm.conf
para LVM. Consulte
lvm.conf(5).
Asigne la opción «discard
» en
/etc/crypttab
para dm-crypt. Consulte
crypttab(5).
Active el esquema de asignación de espacio de disco optimizado SSD,
Asigne la opción de montaje «ssd
» en
/etc/fstab
para btrfs.
Haga que el sistema sincronice los datos cada 10 minutos al disco si utiliza un portátil.
Asigne la opcińo de montaje «commit=600
» en
/etc/fstab
. Consulte
fstab(5).
Active pm-utils a modo-portátil incluso si está conectado a la corriente. Consulte Debian BTS #659260.
Aviso | |
---|---|
Cambiar la cadencia de la sincronización de datos del valor por defecto de 5 segundos a 10 miuntos hace que sus datos sean vulnerables a fallos de corriente. |
Puede monitorear y registrar el cumplimiento de su disco duro con SMART con el demonio smartd(8).
Instale el paquete smartmontools
.
Identifique los dispositivos que son discos duros enumerándolos con df(1).
Asumamos que el dispositivo de disco duro a controlar es
«/dev/hda
».
Compruebe la salida de «smartctl -a /dev/hda
» para
verificar que la funcionalidad SMART está
activada realmente.
Si no es así, activelo con «smartctl -s on -a /dev/hda
».
Active el demonio smartd(8) ejecutando lo siguiente.
descomente «start_smartd=yes
» en el archivo
«/etc/default/smartmontools
».
reinicie el demonio
smartd(8)
mediante «sudo /etc/init.d/smartmontools restart
».
Sugerencia | |
---|---|
El demonio
smartd(8)
daemon se puede personalizar mediante el archivo
|
Las aplicaciones habitualmente crean los archivos temporales en el
directorio de almacenamiento temporal «/tmp
». Si
«/tmp
» no proporciona suficiente espacio, puede
especificar el directorio de almacenamiento temporal por medio de la
variable $TMPDIR
para obtener el comportamiento adecuado
de las aplicaciones.
Las particiones creadas mediante el Gertor de Volumenes Lógicos (Logical Volume Manager, LVM) (funcionalidad de Linux) en el momento de la instalación, pueden ser redimensionadas de forma sencilla mediante la concatenación o la extensión de estas sobre varios dispositivos de almacenamiento sin necesitar otras reconfiguraciones del sistema.
Si tiene una partición vacia (p. ej. «/dev/sdx
»), puede
darle formato con
mkfs.ext4(1)
y
montarlo(8)
en un directorio donde necesite más espacio. (Necesitará copiar el contenido
de los datos originales.)
$ sudo mv work-dir old-dir $ sudo mkfs.ext4 /dev/sdx $ sudo mount -t ext4 /dev/sdx work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
Sugerencia | |
---|---|
También puede montar un archivo de imagen de disco vacio (consulte Sección 9.6.5, “Haciendo un archivo de imagen de disco vacio”) como un dispositivo «loop« (consulte Sección 9.6.3, “Montaje del archivo de la imagen del disco”). La utilización de disco real crece con el almacenamiento de datos. |
Si tiene un directorio vacio (p. ej. «/path/to/emp-dir
»)
en otra partición con espacio utilizable, puede montar(8)lo con la opción
«--bind
» a un directorio (p. ej.,
«work-dir
») donde necesite más espacio.
$ sudo mount --bind /ruta/al/directorio_de_trabajo_vacio
If you have usable space in another partition (e.g.,
"/path/to/empty
" and "/path/to/work
"),
you can create a directory in it and stack that on to an old directory
(e.g., "/path/to/old
") where you need space using the
OverlayFS for Linux kernel 3.18 or newer
(Debian Stretch 9.0 or newer).
$ sudo mount -t overlay overlay \ -olowerdir=/ruta/al/directorio_antiguo,upperdir=/ruta/al/directorio_vacio,workdir=/ruta/al/directorio_de_trabajo
Aquí, «/ruta/al/directorio_vacio
» y
«/ruta/al/directorio_de_trabajo
» deben ser una partición
con permisos de lectura y escritura para escribir en
«/ruta/al/directorio_antiguo
».
Atención | |
---|---|
This is a deprecated method. Some software may not function well with "symlink to a directory". Instead, use the "mounting" approaches described in the above. |
Si tiene un directorio vacio (p. ej., «/path/to/emp-dir
»)
en otra partición con espacio utilzable, puede crear un enlace simbólico a
el directorio con
ln(8).
$ sudo mv directoro_actual directorio_antiguo $ sudo mkdir -p /ruta/a/directorio_vacio $ sudo ln -sf /ruta/a/directorio_vacio directorio_actual $ sudo cp -a directorio_antiguo/* directorio_actual $ sudo rm -rf directorio_antiguo
Aviso | |
---|---|
No utilice «enlaces simbólicos a directorios« que son gestionados por el
sistema como « |
Aquí hablaremos de la manipulación de imágenes de disco.
El archivo de imagen de disco «disk.img
», de un
dispositivo desmontado, p. ej. el segundo disco SCSI o serial ATA
«/dev/sdb
», puede hacerse utilizando
cp(1)
o
dd(1)
como se muestra.
# cp /dev/sdb disk.img # dd if=/dev/sdb of=disk.img
La imagen de disco de un PC tradicional Registro de Arranque Maestro(MBR) (consulte Sección 9.5.2, “Configuración del particionado de disco”) el cual está en el primer sector del disco primario IDE puede hacerse mediante dd(1) lo siguiente.
# dd if=/dev/hda of=mbr.img bs=512 count=1 # dd if=/dev/hda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/hda of=mbr-part.img skip=446 bs=1 count=66
«mbr.img
»: MBR con la tabla de particiones
«mbr-nopart.img
»: MBR sin la tabla de particiones
«mbr-part.img
»: Unicamente la tabla de particiones MBR
Si su disco de arranque es SCSI o serial ATA, cambie
«/dev/hda
» por «/dev/sda
».
Si ha hecho una imagen del disco de la partición del disco original, cambie
«/dev/hda
» por «/dev/hda1
» etc.
El archivo de la imagen del disco «disk.img
» puede ser
escrito como un dispositivo sin montar, p. ej., el dispositivo SCSI
secundario «/dev/sdb
» con el tamaño adecuado como se
muestra.
# dd if=disk.img of=/dev/sdb
De forma parecida, el archivo de la imagen de la partición del disco,
«partition.img
» puede ser escrito a una partición
desmontada, p. ej., la primera partición del segundo dispositivo SCSI
«/dev/sdb1
» con el tamaño correcto, como se muestra.
# dd if=partition.img of=/dev/sdb1
La imagen del disco «partition.img
» que contiene la
imagen de una única partición puede ser montada y desmontada utilizandolo
como dispositivo «loop« como se muestra.
# losetup -v -f partition.img Dispositivo «loop« es /dev/loop0 # mkdir -p /mnt/loop0 # mount -t auto /dev/loop0 /mnt/loop0 ...hack...hack...hack # umount /dev/loop0 # losetup -d /dev/loop0
Este se puede simplificar como se muestra.
# mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img
Cada partición de una imagen de disco «disk.img
» que
contiene varias particiones pueden ser montadas utilizando los dispositivos «loop«. Ya que el dispositivo
«loop« no gestiona particiones por omisión, necesitamos iniciarlo como se
muestra.
# modinfo -p loop # comprueba la funcionalidad del núcleo max_part: número máximo de particiones por dispositivo «loop« max_loop: número máximo de dispositivos «loop« # losetup -a # comprueba que nadie utiliza el dispositivo «loop« # rmmod loop # modprobe loop max_part=16
Ahora, el dispositivo «loop« puede gestionar hasta 16 particiones.
# losetup -v -f disk.img Dispositivo «loop« es /dev/loop0 # fdisk -l /dev/loop0 Disco /dev/loop0: 5368 MB, 5368709120 bytes 255 cabezas, 63 sectores/pista, 652 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes Identificador de disco: 0x452b6464 Device Boot Start End Blocks Id System /dev/loop0p1 1 600 4819468+ 83 Linux /dev/loop0p2 601 652 417690 83 Linux # mkdir -p /mnt/loop0p1 # mount -t ext4 /dev/loop0p1 /mnt/loop0p1 # mkdir -p /mnt/loop0p2 # mount -t ext4 /dev/loop0p2 /mnt/loop0p2 ...hack...hack...hack # umount /dev/loop0p1 # umount /dev/loop0p2 # losetup -d /dev/loop0
De forma, los mismos efectos pueden conseguirse utilizando el mapeo de dispositivos de los dispositivos
creados por
kpartx(8)
del paquete kpartx
como se muestra.
# kpartx -a -v disk.img ... # mkdir -p /mnt/loop0p2 # mount -t ext4 /dev/mapper/loop0p2 /mnt/loop0p2 ... ...hack...hack...hack # umount /dev/mapper/loop0p2 ... # kpartx -d /mnt/loop0
Nota | |
---|---|
Puede montar una única partición como imagen del disco con dispositivos «loop« utilizando el desplazamiento para evitar el MBR etc., también. Pero es más propenso a errores. |
Un archivo de imagen de disco, «disk.img
» puede ser
limpiado de archivos borrados en una imagen dispersa limpia
«new.img
» como se muestra.
# mkdir old; mkdir new # mount -t auto -o loop disk.img old # dd bs=1 count=0 if=/dev/zero of=new.img seek=5G # mount -t auto -o loop new.img new # cd old # cp -a --sparse=always ./ ../new/ # cd .. # umount new.img # umount disk.img
Si «disk.img
» es ext2, ext3 or ext4, también puede
utilizar
zerofree(8)
del paquete zerofree
como se muestra.
# losetup -f -v disk.img El dispositivo «loop« es /dev/loop3 # zerofree /dev/loop3 # cp --sparse=always disk.img new.img
La imagen de disco vacio «disk.img
» el cual puede crecer
hasta 5GiB, pude hacerse mediante
dd(1)
como se muestra.
$ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G
Puede crear un sistema de archivos ext4 en la imagen de disco
«disk.img
» utilizando el dispositivo «loop« como se muestra.
# losetup -f -v disk.img El dispositivo «loop« es /dev/loop1 # mkfs.ext4 /dev/loop1 ...hack...hack...hack # losetup -d /dev/loop1 $ du --apparent-size -h disk.img 5.0G disk.img $ du -h disk.img 83M disk.img
Para «disk.img
», su tamaño de archivo es 5.0 GiB y su
utilización real de disco es de sólo 83MiB. Esta discrepancia es posible ya
que ext4 se puede representar mediante un archivo disperso.
Sugerencia | |
---|---|
La utilización real de discos que utiliza un archivo disperso crece con los datos que son escritos en el. |
Utilizando la misma operación en dispositivos creados por el dispositivo «loop« o el dispositivo mapeador de dispositivos como Sección 9.6.3, “Montaje del archivo de la imagen del disco”, puede particionar esta imagen de
disco «disk.img
» utilizando
parted(8)
o
fdisk(8)
y puede crear el archivo de sistemas en el utilizando
mkfs.ext4(8),
mkswap(8),
etc.
El archivo de imagen ISO9660,
«cd.iso
», utilizando como origen el árbol de directorios
de «directorio_origen
» se puede hacer utilizando
genisoimage(1)
aportado por cdrkit como se muestra.
# genisoimage -r -J -T -V volume_id -o cd.iso directorio_origen
De igual manera, el archivo imagen ISO9660 arrancable,
«cdboot.iso
», se puede realizar desde el
instalador debian
como el árbol de directorios del
«directorio_origen
» como se muestra.
# genisoimage -r -o cdboot.iso -V volume_id \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table directorio_origen
Aquí el cargador de arranque Isolinux (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”) se utiliza para el arranque.
Puede calcular el valor md5sum y hace la imagen ISO9660 directamente desde el dispositivo CD-ROM como se muestra.
$ isoinfo -d -i /dev/cdrom CD-ROM is in ISO 9660 format ... Logical block size is: 2048 Volume size is: 23150592 ... # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror | md5sum # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror > cd.iso
Aviso | |
---|---|
Debe evitar cuidadosamente el sistema de archivos ISO9660 debido al problema de lectura adelantada de Linux para obtener el resultado correcto. |
Sugerencia | |
---|---|
DVD es unicamente un CD de mayor tamaño que utiliza wodim(1) que es proporcionado por cdrkit. |
Puede encontrar un dispositivo utilizable como se muestra.
# wodim --devices
Entonces se inserta el CD-R vacio en el dispositivo CD,y el archivo de
imagen ISO9660 , «cd.iso
» se escribe en el dispositivo,
p. ej. «/dev/hda
», utilizando
wodim(1)
como se muestra.
# wodim -v -eject dev=/dev/hda cd.iso
Si se utiliza un CR-RW enlugar de un CD-R, hago lo siguiente en su lugar.
# wodim -v -eject blank=fast dev=/dev/hda cd.iso
Sugerencia | |
---|---|
Si su sistema de escritorio monta automaticamente los CD, desmontelo con
« |
Si «cd.iso
» contiene una imagen ISO9660, entonces lo
siguiente sirve para montarlo de forma manual en
«/cdrom
».
# mount -t iso9660 -o ro,loop cd.iso /cdrom
Sugerencia | |
---|---|
Los sistemas de escritorio modernos pueden montar los medios extraibles como un CD con formato ISO9660 de forma automática (consulte Sección 10.1.7, “Dispositivos de almacenamiento extraibles”). |
Aquí discutiremos la manipulación directa de datos binarios en medios de almacenamiento.
El método más básico de visualización de datos binarios es la orden
«od -t x1
».
Tabla 9.20. Relación de paquetes para la visualización y edición de datos binarios
paquete | popularidad | tamaño | descripción |
---|---|---|---|
coreutils
|
V:888, I:999 | 15719 | paquete básico que tiene od(1) para volcar archivos (HEX, ASCII, OCTAL, …) |
bsdmainutils
|
V:861, I:999 | 587 | paquete de utilidades que tiene hd(1) para volcar archivos (HEX, ASCII, OCTAL, …) |
hexedit
|
V:1, I:12 | 71 | visor y editor binario (HEX, ASCII) |
bless
|
V:0, I:5 | 1028 | editor hexadecimal con funcionalidad completa (GNOME) |
okteta
|
V:1, I:18 | 1446 | editor hexadecimal con funcionalidad completa (KDE4) |
ncurses-hexedit
|
V:0, I:2 | 132 | visor y editor binario (HEX, ASCII, EBCDIC) |
beav
|
V:0, I:0 | 133 | visor y editor binario (HEX, ASCII, EBCDIC, OCTAL, …) |
Sugerencia | |
---|---|
HEX es un acrónimo del formato hexadecimal con radix 16. OCTAL se utiliza para formato octal con radix 8. ASCII se utiliza para Codificación Americana Estándar para el Intercambio de Información (American Standard Code for Information Interchange), a saber, codificación del inglés normal. EBCDIC es para Extended Binary Coded Decimal Interchange Code utilizado en sistemas operativos de IBM mainframe. |
Existen herramientas para leer y escribir archivos sin montar el disco.
Los sistemas de software RAID del núcleo Linux aportan redundancia en el nivel del sistema de archivos de datos del núcleo con la finalidad de alcanzar alta fiabilidad en el almacenamiento.
Existen herramientas para añadir datos redundados a archivos al nivel de aplicación de programas para conseguir también alta fiabilidad en el almacenamiento.
Tabla 9.22. Relación de herramientas para añadir redundancia de datos a los archivos
paquete | popularidad | tamaño | descripción |
---|---|---|---|
par2
|
V:1, I:9 | 246 | Paridad del conjunto de volúmenes de archivo, para comprobar y reparar archivos |
dvdisaster
|
V:0, I:2 | 1737 | Protección contra pérdida/rotura/vejez de medios CD/DVD |
dvbackup
|
V:0, I:0 | 412 | herramienta de copia de seguridad para MiniDV (aportada por rsbep(1)) |
vdmfec
|
V:0, I:0 | 97 | recuperación de bloques perdidos utilizando Corrección de Error hacia Adelante |
Existen herramientas para la recuperación de archivos y análisis forense.
Tabla 9.23. Relación de paquetes para la recuperación de archivos y análisis forense
paquete | popularidad | tamaño | descripción |
---|---|---|---|
testdisk
|
V:3, I:39 | 1339 | utilidades para el escaneado de particiones y recuperaciones de disco |
magicrescue
|
V:0, I:3 | 254 | utilidades para la recuperación de archivos y búsqueda de bytes mágicos |
scalpel
|
V:0, I:4 | 87 | Divisor de archivos ligero y alto rendimiento |
myrescue
|
V:0, I:3 | 82 | recuperación de datos de discos duros dañados |
extundelete
|
V:1, I:11 | 148 | utilidad para recuperar archivos borrados en sistemas de archivos ext3/4 |
ext4magic
|
V:0, I:4 | 233 | utilidad para recuperar archivos borrados en sistemas de archivos ext3/4 |
ext3grep
|
V:0, I:3 | 281 | herramienta de ayuda a la recuperación de archivos borrados en sistemas de archivos ext3 |
scrounge-ntfs
|
V:0, I:3 | 49 | programa de recuperación de datos en sistemas de archivos NTFS |
gzrt
|
V:0, I:0 | 57 | conjunto de herramientas de recuperación gzip |
sleuthkit
|
V:2, I:18 | 1212 | herramientas de análisis forense (Sleuthkit) |
autopsy
|
V:0, I:2 | 1021 | interfaz gráfico para SleuthKit |
foremost
|
V:0, I:7 | 100 | aplicación forense para la recuperación de datos |
guymager
|
V:0, I:1 | 1067 | herramienta para el análisis forense de imágenes basado en Qt |
dcfldd
|
V:0, I:5 | 95 |
versión mejorada de dd para análisis forense y seguridad
|
Sugerencia | |
---|---|
Puede recuperar archivos borrados en sistemas de archivos ext2 utilizando la
|
Cuando los datos son demasiado grandes para guardalos en un único archivo, puede obtener una copia de seguridad de su contenido dividiendolo en, p. ej. trozos de 2000MiB y juntarlos más tarde para obtener el archivo original.
$ split -b 2000m archivo_grande $ cat x* >archivo_grande
Atención | |
---|---|
Por favor, aseguresé que no tiene ningún archivo que comienza por
« |
Para limpiar el contenido de los archivos como los archivos de registro, no utilice rm(1) para borrarlo y crear uno nuevo vacio, ya que puede intentar ser accedido entre ambas operaciones. La forma segura de limpiar el contenido de un archivo es la que se muestra.
$ :>archivo_a_limpiar
Las órdenes siguientes crean archivos «vacíos».
$ dd if=/dev/zero of=5kb.file bs=1k count=5 $ dd if=/dev/urandom of=7mb.file bs=1M count=7 $ touch zero.file $ : > alwayszero.file
Encontrará lo siguiente tras ejecutar lo anterior.
«5kb.file
» que contiene 5KB de ceros.
«7mb.file
» que contiene 7MB de datos aleatorios.
«zero.file
» puede tener 0 bytes. Si existiera con
anterioridad, su mtime
es actualizado y su contenido y su
longitud permanecen sin cambios.
«alwayszero.file
» es siempre un archivo de 0 bytes. Si
existía con anterioridad, su mtime
es actualizado y su
contenido borrado.
Existen diferentes modos de borrar completamente la información de un disco
duro como dispositivo, p. ej. una memoria USB ubicada en
«/dev/sda
».
Atención | |
---|---|
Antes de ejecutar las órdenes que le vamos a mostrar, compruebe la ubicación
de su memoria USB por medio de
mount(8).
El dispositivo que indica « |
Borre todo el contenido del disco poiendo a 0 toda la información como se muestra.
# dd if=/dev/zero of=/dev/sda
Borrelo todo escribiendo datos aleatorios como sigue.
# dd if=/dev/urandom of=/dev/sda
Borrelo todo sobreescribiendolo con datos aleatorios de forma eficiente como se muestra.
# shred -v -n 1 /dev/sda
Ya que
dd(1)
esta disponible en el intérprete de órdenes de muchos CDs de Linux
arrancables como el CD instalador de Debian, puede borrar el sistema
instalado completamente ejecutando una de las órdenes anteriores desde
dicho medio sobre el disco duro del sistema,
p. ej.«/dev/hda
», «/dev/sda
», etc.
Las áreas en deshuso del disco duro (o de la memoria USB),
p. ej. «/dev/sdb1
» todavái pueden contener datos borrados
ya que solo han sido desligados del sistema de archivos. Estos pueden ser
limpiados sobreescribiendolos.
# mount -t auto /dev/sdb1 /mnt/foo # cd /mnt/foo # dd if=/dev/zero of=junk dd: escribiendo en `junk': No hay espacio disponible en el dispositivo. # sync # umount /dev/sdb1
Aviso | |
---|---|
Esto es generalmente suficiente para las memorias USB. Pero no es perfecto. La mayor parte de los nombres de archivo borrados y sus atributos pueden estar ocultos y permanecer en el sistema de archivos. |
Incluso en el caso de que accidentalmente haya borrado un archivo, mientras que ese archivo sea utilizado por alguna aplicación (en modo lectura o escritura), es posible recuperar dicho archivo.
Por ejemplo, intente lo siguiente
$ echo foo > bar $ less bar $ ps aux | grep ' less[ ]' bozo 4775 0.0 0.0 92200 884 pts/8 S+ 00:18 0:00 less bar $ rm bar $ ls -l /proc/4775/fd | grep bar lr-x------ 1 bozo bozo 64 2008-05-09 00:19 4 -> /home/bozo/bar (borrado) $ cat /proc/4775/fd/4 >bar $ ls -l -rw-r--r-- 1 bozo bozo 4 2008-05-09 00:25 bar $ cat bar foo
Ejecute en otro terminal (cuando tenga el paquete lsof
instalado) como se muestra.
$ ls -li bar 2228329 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:02 bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar $ rm bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar (borrado) $ cat /proc/4775/fd/4 >bar $ ls -li bar 2228302 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:05 bar $ cat bar foo
Los archivos con enlaces duros pueden identificarse mediante «ls
-li
».
$ ls -li total 0 2738405 -rw-r--r-- 1 root root 0 2008-09-15 20:21 bar 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 baz 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 foo
Tanto «baz
» y «foo
» tiene una cuenta
de «2« (>1) de forma que tiene enlaces duros. Sus números de inodos son comunes «2738404«. Esto significa que son
el mismo archivo mediante un archivo duro. Si no quiere encontrar todos los
enlaces duros mediante la suerte, puede buscarlos mediante el inodo, p. ej. «2738404« como se muestra.
# find /ruta/al/punto/de/montaje -xdev -inum 2738404
Con acceso físico a su PC, cualquiera puede acceder como superusuario y acceder a todos los archivos en él (consulte Sección 4.7.4, “Asegurando la contraseña de root”). Esto significa que el sistema de acceso por contraseña puede no securizar sus datos delicados y privados contra posibles ladrones de su PC. Para hacerlo debe desplegar alguna tecnología de cifrado de información. Aunque GNU privacy guard (consulte Sección 10.3, “Infraestructura de seguridad de la información”) puede cifrar archivos , necesita de los esfuerzos del usuario.
dm-crypt y eCryptfs ayudan al cifrado automático de la información de forma nativa por medio de módulos del núcleo Linux con el mínimo esfuezo por parte del usuario.
Tabla 9.24. Relación de utilidades para el cifrado de información
paquete | popularidad | tamaño | descripción |
---|---|---|---|
cryptsetup
|
V:32, I:80 | 67 | utilidades para cifrar dispositivos de bloque (dm-crypt / LUKS) |
cryptmount
|
V:3, I:5 | 228 | utilidades para cifrar dispositivos de bloque (dm-crypt / LUKS) centrado en el montaje/desmontaje por usuarios normales |
ecryptfs-utils
|
V:5, I:8 | 396 | utilidades para cifrar sistemas de archivos apilados (eCryptfs) |
Dm-crypt es un sistema de archivos criptográfico utilizando mapeo de dispositivos. El mapeo de dispositivos relaciona un dispositivo de bloques a otro.
eCryptfs es otro sistema de archivos criptográfico que utiliza el sistema de archivos apilado. Los sistemas de archivos apilados se apilan a si mismos en lo alto de un directorio existente del sistema de archivos que esta montado.
Atención | |
---|---|
El cifrado de información requiere tiempo de CPU etc. Por favor evalue costes y beneficios. |
Nota | |
---|---|
El sistema Debian entero puede instalarse en el disco cifrado por el instalador debian (lenny o más nuevo) utilizando dm-crypt/LUKS y initramfs. |
Sugerencia | |
---|---|
Consulte Sección 10.3, “Infraestructura de seguridad de la información” para la utilización del cifrado del espacio de usuario: GNU Privacy Guard. |
Puede cifrar el contenido de los dispositivos masivos extraibles,
p. ej. memoria USB en «/dev/sdx
», utilizando dm-crypt/LUKS.
Simplemente formateelo como se muestra.
# badblocks -c 1024 -s -w -t random -v /dev/sdx # fdisk /dev/sdx ... «n« «p« «1« «return« «return« «w« # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup open --type luks /dev/sdx1 sdx1 ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2008-10-04 18:44 control brw-rw---- 1 root disk 254, 0 2008-10-04 23:55 sdx1 # mkfs.vfat /dev/mapper/sdx1 ... # cryptsetup luksClose sdx1
Entonces, se puede montar de forma habitual en
«/media/<etiqueta_del_disco>
», excepto por la
pregunta de la contraseña (consulte Sección 10.1.7, “Dispositivos de almacenamiento extraibles”) en el entorno de escritorio moderno,
como GNOME utilizando
gnome-mount(1).
La diferencia es que cada dato escrito en él está cifrado.
Alternativamente puede formatear el medio en un sistema de archivo
diferente, p. ej. ext4 con «mkfs.ext4 /dev/mapper/sdx1
».
Nota | |
---|---|
Si de verdad es un paranoico de la seguridad, puede necesitar
sobreescribirlos varias veces (con la orden « |
Asumamos que su «/etc/fstab
» original contiene lo que se
muestra.
/dev/sda7 swap sw 0 0
Puede activar el cifrado de la partición de intercambio utilizando dm-crypt según se muestra.
# aptitude install cryptsetup # swapoff -a # echo «cswap /dev/sda7 /dev/urandom swap« >> /etc/crypttab # perl -i -p -e «s/\/dev\/sda7/\/dev\/mapper\/cswap/« /etc/fstab # /etc/init.d/cryptdisks restart ... # swapon -a
Una partición de disco cifrado creado con dm-crypt/LUKS en
«/dev/sdc5
» se puede montar en «/mnt
»
como se muestra:
$ sudo cryptsetup open /dev/sdc5 ninja --type luks Enter passphrase for /dev/sdc5: **** $ sudo lvm lvm> lvscan inactive '/dev/ninja-vg/root' [13.52 GiB] inherit inactive '/dev/ninja-vg/swap_1' [640.00 MiB] inherit ACTIVE '/dev/goofy/root' [180.00 GiB] inherit ACTIVE '/dev/goofy/swap' [9.70 GiB] inherit lvm> lvchange -a y /dev/ninja-vg/root lvm> exit Exiting. $ sudo mount /dev/ninja-vg/root /mnt
Puede cifrar los archivos escritos en «~/Private/
»
automaticamente utilizando eCryptfs y el
paquete ecryptfs-utils
.
Ejecute
ecryptfs-setup-private(1)
y configure «~/Private/
» siguiendo las instrucciones.
Active «~/Private/
» ejecutando
ecryptfs-mount-private(1).
Mueva los archivos con información sensible a
«~/Private/
» y cree los enlaces simbólicos que necesite.
Candidatos: «~/.fetchmailrc
»,
«~/.ssh/identity
», «~/.ssh/id_rsa
»,
«~/.ssh/id_dsa
» y otros archivos con permisos
«go-rwx
»
Mueva los directorios sensibles al subdirectorio en
«~/Private/
» y cree los enlaces simbólicos que necesite.
Candidatos: «~/.gnupg
» y otros directorios con
«go-rwx
»
Para una operativa más fácil del escritorio cree el enlace simbólico desde
«~/Desktop/Private/
» a «~/Private/
».
Deshabilite «~/Private/
» ejecutando
ecryptfs-umount-private(1).
Active«~/Private/
» utilizando
«ecryptfs-mount-private
» cunado necesite los datos
encriptados.
Sugerencia | |
---|---|
Debido a que eCryptfs cifra unicamente los
archivos sensibles, el coste para el sistema es mucho menor que utilizar
dm-crypt sobre el dispositivo que contiene el
árbol de directorios entero o « |
Su utiliza una contraseña de paso para utilizar las claves de cifrado, puede automatizar el montaje de eCryptfs por medio de PAM (Pluggable Authentication Modules).
Inserte la siguiente línea justo antes de «pam_permit.so
»
en «/etc/pam.d/common-auth
».
auth required pam_ecryptfs.so unwrap
Inserte la siguiente línea en la última línea de
«/etc/pam.d/common-session
».
session optional pam_ecryptfs.so unwrap
Inserte la siguiente línea en la primera línea activa en
«/etc/pam.d/common-password
».
password required pam_ecryptfs.so
Lo cual es bastante conveniente.
Aviso | |
---|---|
Los errores de configuración de PAM puede bloquear el acceso a su propio sistema. Consulte Capítulo 4, Acreditación. |
Atención | |
---|---|
Su utiliza su contraseña de acceso para acceder a las claves de cifrado, sus datos cifrados son tan seguras como su contraseña de acceso de usuario (consulte Sección 4.3, “Buenas contraseñas”). Al menos que sea cuidados al elegir una contraseña fuerte, sus datos estarán en riesgo cuando alguien ejecute algún software para reventar su contraseña trás robar su portátil (consulte Sección 4.7.4, “Asegurando la contraseña de root”). |
Debian distribuye el núcleo de Linux modularizado en paquetes para soportar las arquitecturas.
Existen unas cuantas funcionalidades importantes en los núcleos de Linux 2.6/3.x comparado con la versión 2.4.
Los dispostivos son creados por el sistema udev (see Sección 3.3, “El sistema udev”).
El acceso de lectura/escritura a los dispositivos CD/DVD IDE no utilizan el
módulo ide-scsi
.
Las funciones de flitrados de paquetes de red utilizan el módulo del núcleo
iptables
.
El salto de versión entre Linux 2.6.39 a Linux 3.0 no es como consecuencia de cambios tecnológicos importantes sino por su 20 aniversario.
Muchas funcionalidades de Linux son configurables por medio de parámetros del núcleo como se muestra.
Los parámetros del núcleo son inicializados por el cargador de arranque (consulte Sección 3.1.2, “Fase 2: el cargador de arranque”)
Los parámetros del núcleo cambian mediante sysctl(8) en tiempo de ejecución por aquellos accesibles por medio de sysfs (consulte Sección 1.2.12, “procfs y sysfs”)
Los parámetros de modprobe(8) se asignan como parámetros del módulo cuando se activa el módulo (consulte Sección 9.6.3, “Montaje del archivo de la imagen del disco”)
Consulte «kernel-parameters.txt(.gz)
» y otros documentos
relacionados en la documentación del núcleo de Linux
(«/usr/share/doc/linux-doc-3.*/Documentation/filesystems/*
»)
que están en los paquetes linux-doc-3.*
.
La mayor parte de los programas normales
no necesitan las cabeceras del núcleo y de hecho puede producir errores si
se utiliza directamente para compilar. Estos deben ser compilados con las
cabeceras en «/usr/include/linux
» y
«/usr/include/asm
» que están en el paquete
libc6-dev
(creado por el paquete fuente
glibc
) en el sistema Debian.
Nota | |
---|---|
Para compilar algunos programas especificos del núcleo como módulos del
núcleo de origen externo y el demonio automonter ( |
Debian tiene su propio método para compilar el núcleo y los módulos asociados.
Tabla 9.25. Relación de los paquetes fundamentales para la recompilación del núcleo en los sistemas Debian
paquete | popularidad | tamaño | descripción |
---|---|---|---|
build-essential
|
I:454 | 20 |
paquetes fundamentales para la construcción de paquetes Debian:
make , gcc , …
|
bzip2
|
V:178, I:953 | 196 | utilidades de compresión y decompresión de archivos bz2 |
libncurses5-dev
|
V:13, I:139 | 6 | bibliotecas de desaroollo y documentación de ncurses |
git
|
V:301, I:458 | 35266 | git: sistema de control de versiones distribuido utilizado por el núcleo de Linux |
fakeroot
|
V:31, I:501 | 215 | aporta el entorno fakeroot para la construcción de paquetes sin ser «root« |
initramfs-tools
|
V:367, I:990 | 111 | herramienta para contruir initramfs (propio de Debian) |
dkms
|
V:89, I:214 | 278 | soporte del núcleo para módulos dinámico (DKMS, dynamic kernel module support) (genérico) |
devscripts
|
V:8, I:62 | 2485 | archivos de órdenes para el mantenimiento de Paquetes Debian (específico de Debian) |
Si utiliza initrd
in Sección 3.1.2, “Fase 2: el cargador de arranque”, asegurese de leer la documentación
asociada en
initramfs-tools(8),
update-initramfs(8),
mkinitramfs(8)
y
initramfs.conf(5).
Aviso | |
---|---|
No cree enlaces simbólicos en el árbol de directorios del código fuente
(p. ej. « |
Nota | |
---|---|
Cuando compile el núcleo de Linux en el sistema Debian
|
Nota | |
---|---|
El soporte del núcelo a módulos dinámicos (dynamic kernel module support, DKMS) es un marco nuevo de distribución independiente diseñado para permitir la actualización de módulos sueltos sin cambiar el núcleo completo. Esto es utilizado para mantener módulos externos. Esto también facilita la reconstrucción de módulos cuando actualice su núcleo. |
Para la construcción de paquetes binarios personalizados del núcleo desde el
código fuente del núcleo, podría utilizar el objetivo
«deb-pkg
» que se proporciona para ello.
$ sudo apt-get build-dep linux $ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v3.11/linux-<version>.tar.bz2 $ tar -xjvf linux-<version>.tar.bz2 $ cd linux-<version> $ cp /boot/config-<version> .config $ make menuconfig ... $ make deb-pkg
Sugerencia | |
---|---|
El paquete linux-source-<version> package contiene el código fuente
del núcleo de Linux con los parches de Debian como
« |
Para la contrucción de paquetes binarios concretos desde el paquete de
código fuente del núcleo de Debian, puede utilizar los objetivos
«binary-arch_<architecture>_<featureset>_<flavour>
»
en «debian/rules.gen
».
$ sudo apt-get build-dep linux $ apt-get source linux $ cd linux-3.* $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
Compruebe la información adicional:
Debian Wiki: KernelFAQ
Debian Wiki: DebianKernel
Debian Linux Kernel Handbook: https://kernel-handbook.debian.net
El controlador de hardware es el código que se ejecuta en el sistema
correspondiente. La mayor parte de los controladores de hardware están
disponibles como software libre actualmente se incluyen en los paquetes
normales del núcleo de Debian en el área main
.
El firmware es el código o datos ubicados en e propio dispositivo (p. ej. CPU microcode, código ejecutable para el «rendering« en GPU, o FPGA / datos CPLD , …). Algunso paquetes con firmware están disponibles como software libre pero no la mayoría ya que contienen información binaria sin su código fuente.
firmware-linux-free (main
)
firmware-linux-nonfree (non-free
)
firmware-linux-* (non-free
)
*-firmware (non-free
)
intel-microcode (non-free
)
amd64-microcode (non-free
)
Tenga en cuenta que los paquetes de non-free
y
contrib
no son parte del sistema Debian. El acceso a la
configuración que permite la activación y desactivación de las áreas
non-free
y contrib
está explicado en
Sección 2.1.4, “Fundamentos del archivo de Debian”. Debería ser consciente de las
consecuencias negativas que conlleva la utilización de paquetes de
non-free
y contrib
según se explica en
Sección 2.1.5, “Debian es 100% software libre”.
La utilización de sistemas virtualizados nos permite la ejecución de varias instancias del sistema a la vez sobre un único hardware.
Sugerencia | |
---|---|
Existen varios sistemas de virtualización y de emulación con sus paquetes correspondientes en Debian más allá del sencillo chroot. Algunos paquetes además, le ayudarán a configurar estos sistemas.
Tabla 9.26. Relación de herramientas de virtualización
paquete | popularidad | tamaño | descripción |
---|---|---|---|
schroot
|
V:7, I:10 | 2728 | herramientas especializadas para la ejecución de paquetes binarios en «chroot« |
sbuild
|
V:1, I:4 | 298 | herramientas para la construcción de paquetes binarios desde el código fuente de Debian |
pbuilder
|
V:1, I:16 | 966 | contructor de paquetes personales Debian |
debootstrap
|
V:6, I:63 | 283 | sistema de arranque como sistema Debian mínimo (escrito en sh) |
cdebootstrap
|
V:0, I:3 | 116 | sistema de arranque de un sistema Debian (escrito en C) |
virt-manager
|
V:9, I:34 | 6770 | Gestor de Máquinas Virtuales: aplicación de escritorio para la gestión de máquinas virtuales |
libvirt-clients
|
V:30, I:51 | 2139 | programas para la biblioteca libvirt |
bochs
|
V:0, I:1 | 6706 | Bochs: emulador de PC IA-32 PC |
qemu
|
I:35 | 95 | QEMU: emulador rápido de un procesador genérico |
qemu-system
|
I:32 | 96 | QEMU: binarios para la emulación de un sistema completo |
qemu-user
|
V:2, I:30 | 84481 | QEMU: binarios para la emulación en modo usuario |
qemu-utils
|
V:9, I:97 | 5536 | QEMU: utilidades |
qemu-kvm
|
V:16, I:70 | 105 | KVM: virtualización completa de harsware x86 con la virtualización asistida por hardware |
virtualbox
|
V:33, I:41 | 127956 | VirtualBox: solución de virtualización x86 en i386 y amd64 |
xen-tools
|
V:0, I:5 | 704 | herramientas para la gestión de debian del servidor virtual XEN |
wine
|
V:21, I:95 | 189 | Wine: Implementación de la API Windows (suite estándar) |
dosbox
|
V:2, I:19 | 2778 | DOSBox: emulador x86 con gráficos Tandy/Herc/CGA/EGA/VGA/SVGA , sonido y DOS |
dosemu
|
V:0, I:3 | 4891 | DOSEMU: el Emulador de Linux de DOS |
vzctl
|
V:1, I:2 | 1112 | OpenVZ solución de virtualización de servidor - herramientas de control |
vzquota
|
V:1, I:2 | 236 | OpenVZ Solución para la virtualización de servidores - Herramientas de cuota |
lxc
|
V:9, I:14 | 2412 | Contenedores Linux herramientas del espacio de usuario |
Consulte el artículo de Wikipedia Comparison of platform virtual machines para obtener detalles de la comparación entre diferentes plataformas y soluciones de virtualización.
Nota | |
---|---|
Algunas funcionalidades que comentaremos aquí están únicamente disponibles
en |
Nota | |
---|---|
El núcleo de Debian por defecto soporta KVM desde
|
El flujo de trabajo de la virtualización conlleva varios pasos.
Crear un sistema de archivos vacio (un árbol de directorios o una imágen de disco).
El árbol de directorios puede ser creado mediante «mkdir -p
/ruta/al/entorno//chroot
».
El archivo de la imagen de disco en crudo puede ser creado con dd(1) (consulteSección 9.6.1, “Creando un archivo de imagen de disco” y Sección 9.6.5, “Haciendo un archivo de imagen de disco vacio”).
qemu-img(1) puede ser utilizado para crear y convertir archivos de imagen de disco utilizados por QEMU.
Los formatos de archivo crudos y VMDK se pueden utilizar como formato común entre diferentes herramientas de virtualización.
Monte la imágen de disco con mount(8) en el sistema de archivos (opcional).
Para el archivo de imágen de disco crudo, montelo como un dispositivo «loop« o mapeo de dispositivo (consulte Sección 9.6.3, “Montaje del archivo de la imagen del disco”).
Para el soporte de imágenes de disco por QEMU, montelos como dispositivo de bloque de red (consulte Sección 9.10.3, “Montando el archivo de imagen de disco virtual”).
Llene el sistema de archivos objetivo con la información del sistema.
La utilización de programas como debootstrap
y
cdebootstrap
ayudan en este proceso (consulte Sección 9.10.4, “Sistemas chroot”).
Utilización de instaladores de los sistemas operativos en la emulación del sistema completo.
Ejecute un programa en un entorno virtualizado.
chroot ofrece un entorno de virtualización básico para compilar programas , ejecutar aplicaciones de consola y ejecutar demonios en él.
QEMU ofrece emulación de CPU independiente de la plataforma.
QEMU con KVM ofrece un sistema de emulación completo por medio de la virtualización asistida por hardware.
VirtualBox ofrece un sistema completo de emulación en i386 y amd64 con o sin la virtualización asistida por hardware.
Para un archivo de imágen de disco crudo, consulte Sección 9.6, “La imagen de disco”.
Para otros archivos de imágenes de disco virtuales, puede utilizar
qemu-nbd(8)
para exportarlos utilizando el protocolo de dispositivos de bloque de red y montarlos
utilizando el módulo del núcleo nbd
.
qemu-nbd(8) soporta los formatos de disco soportados por QEMU: QEMU que soporta los siguientes formato de disco: crudo, qcow2, qcow, vmdk, vdi, bochs, cow (copia al escribir en modo usuario de Linux), parallels, dmg, cloop, vpc, vvfat (virtual VFAT) y «host_device«.
Los dispositivos de bloque de red
pueden soportar particiones de la misma manera que los dispositivos «loop« (consulte Sección 9.6.3, “Montaje del archivo de la imagen del disco”). Puede montar la primera
partición de «disk.img
» como se muestra.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
Sugerencia | |
---|---|
Puede exportar únicamente la primera partición de
« |
Chroot(8) ofrece la manera más básica de ejecutar diferentes instancias de un entorno GNU/Linux en un solo sistema de forma simultanea sin reiniciar.
Atención | |
---|---|
En los ejemplos siguientes se asume que tanto el sistema padre como el sistema chroot comparten la misma arquitectura CPU. |
Puede aprender como crear , configurar y utilizar chroot(8) ejecutando el programa pbuilder(8) en script(1) como se muestra.
$ sudo mkdir /sid-root $ sudo pbuilder --create --no-targz --debug --buildplace /sid-root
Puede ver como
debootstrap(8)
o
cdebootstrap(1)
completa la información del sistema con un entorno sid
en
«/sid-root
».
Sugerencia | |
---|---|
Tanto debootstrap(8) como cdebootstrap(1) se utilizan para instalar Debian por parte del Instalador Debian. Estos también puede ser utilizado para instalar Debian en un sistema sin utilizar el disco de instalación de Debian en lugar de otra distribución GNU/Linux. |
$ sudo pbuilder --login --no-targz --debug --buildplace /sid-root
Puede ver como un intérprete de órdenes del sistema en entornos
sid
se crean como se muestra.
Copia la configuración local («/etc/hosts
»,
«/etc/hostname
», «/etc/resolv.conf
»)
Monte el sistema de archivos «/proc
»
Monte el sistema de archivox «/dev/pts
»
Cree «/usr/sbin/policy-rc.d
» el cual siempre finaliza con
101
Ejecute «chroot /sid-root bin/bash -c 'exec -a -bash
bin/bash'
»
Nota | |
---|---|
Algunos programas para operar en entornos chroot oueden necesitar acceso a
más ficheros del sistema huésped de los que ofrece
|
Nota | |
---|---|
El archivo « |
Sugerencia | |
---|---|
El fin original del paquete de chroot especializado,
|
Sugerencia | |
---|---|
El paquete similar |
Le recomiendo que utilice QEMU o VirtualBox en un sistema Debian
estable
para ejecutar varios sistemas de escritorio de
forma segura por medio de la virtualización. Esto le permite ejecutar
aplicaciones de escritorio de «inestable»
y «en
pruebas»
sin los riesgos habituales asociados a ello.
Ya que un QEMU puro es muy lento, se recomiendo acelerarlo mediante KVM cuando el sistema del equipo lo permita.
La imágen de disco virtual «virtdisk.qcow2
» que contiene
una imágen del sistema Debian para QEMU se
puede crear utilizando el instalador
debian: en pequeños CDs como se muestra.
$ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
Para más consejos consulte Debian wiki: QEMU.
VirtualBox se proporciona con herramientas de interfaz gráfico de usuario Qt y es bastante intuitivo. Su GUI y herramietnas en línea de órdenes se explican en e Manual de Usuario de VirtualBox y el Manual de Usuario de VirtualBox (PDF).
Sugerencia | |
---|---|
Ejecutar otra distribución GNU/Linux como Ubuntu y Fedora de forma virtualizada es un gran manera de aprender formas de configuración. También se pueden ejecutar correctamente SS.OO. propietarios virtualializado sobre GNU/Linux. |