Capítulo 8. Administración de sistema

8.1. ?Dónde están los archivos de configuración de arranque del sistema?
8.2. ?Cómo añado un usuario facilmente?
8.3. ?Cómo puedo añadir mi nuevo disco a FreeBSD?
8.4. Tengo un nuevo disco removible, ?como lo uso?
8.5. ?Cómo monto una partición secundaria DOS?
8.6. ?Puedo montar otros sistemas de archivos bajo FreeBSD?
8.7. ?Cómo puedo usar el "NT loader" para arrancar FreeBSD?
8.8. ?Cómo arranco FreeBSD y Linux desde LILO?
8.9. ?Cómo arranco FreeBSD y Linux usando BootEasy?
8.10. ?Puede un disco "dedicado" provocar problemas?
8.11. ?Cómo puedo añadir más espacio de swap?
8.12. Tengo problemas para poner en marcha mi impresora.
8.13. Mi teclado no coincide con los carácteres de pantalla.
8.14. Las cuotas de usuario no funcionan correctamente.
8.15. Mi ccd no funciona correctamente
8.16. ?Porqué no puedo editar el disklabel en mi ccd?
8.17. ?Soporta FreeBSD primitivas IPC System V?
8.18. ?Cómo uso sendmail para envio de mail UUCP?
8.19. ?Cómo configuro el correo para conexiones NO permanentes a Internet?
8.20. Olvidé el password de Root!!
8.21. ?Cómo mantengo el control sobre Control-Alt-Delete?
8.22. ?Cómo reformateo archivos de texto DOS a UNIX?
8.23. ?Cómo puedo hace "kill" de procesos por nombre?
8.24. ?Porque el su no me dejar ser root al no estar en el ACL?
8.25. ?Cómo desinstalo Kerberos?
8.26. ?Cómo añado pseudoterminales a mi sistema?
8.27. ?Cómo puedo releer el archivo /etc/rc.conf y relanzar /etc/rc sin tener que hacer un reboot?
8.28. ?Qué es un sandbox?

8.1.

?Dónde están los archivos de configuración de arranque del sistema?

De la versión 2.0.5R a la 2.2.1R, el archivo principal de configuración es /etc/sysconfig. Todas las opciones son especificadas en este archivo y otros como /etc/rc y /etc/netstart.

Mira en el archivo /etc/sysconfig y cambia los valores para tu sistema. Este archivo está comentado para ayudar en la configuración

En versiones posteriores a la 2.2.1 y 3.0 el archivo /etc/sysconfig fue renombrado como rc.conf. La sintaxis también fue retocada para ser más descriptiva. El archivo /etc/netstart también fue renombrado como /etc/rc.network para que todos los archivos de configuración puedan ser copiados con el comando cp /usr/src/etc/rc* /etc.

/etc/rc.local existe como siempre y debería ser usado para arrancar servicios locales adicionales como INN o programas propios.

El archivo /etc/rc.serial es para la inicialización de puertos serie.

El archivo /etc/rc.i386 es para especificaciones propias de Intel, como la emulación iBCS2 o la configuración de la consola del sistema.

A partir de la versión 2.1.0R, también puedes tener un directorio en el que instalar archivos de arranque locales especificado en /etc/sysconfig (o /etc/rc.conf):

        # Localización de los archivos de arranque locales.
        local_startup=/usr/local/etc/rc.local.d
        

Cada archivo acabado en .sh será ejecutado en orden alfabético.

Si quieres asegurarte de un cierto orden en la ejecución sin tener que cambiar todos los nombres de los archivos, puedes usar un esquema similar al siguiente con dígitos al principio del nombre de cada archivo:

        10news.sh
        15httpd.sh
        20ssh.sh
        

Puede ser visto como "malo" (o SysV :-)) pero nos provee de un esquema regular para programas añadidos localmente sin tener que hacer ediciones complicadas del archivo /etc/rc.local. Muchos de los ports/packages asumen que /usr/local/etc/rc.d es un directorio de arranque local.

8.2.

?Cómo añado un usuario facilmente?

Usa el comando adduser. Para opciones más avanzadas, usa el comando pw

Para borrar a un usuario, usa el comando rmuser.

8.3.

?Cómo puedo añadir mi nuevo disco a FreeBSD?

Consultar el Tutorial de Formateo de Discos en www.FreeBSD.org.

8.4.

Tengo un nuevo disco removible, ?como lo uso?

Se trate de un disco removible como un ZIP o EA (o un floppy, si quieres usarlo de esta manera), o un nuevo disco duro, una vez instalado y reconocido por el sistema, y tengas tu cartridge/floppy/etc en su interior, las cosas son como para la mayoría de dispositivos.

(esta sección esta basada en Mark Mayo's ZIP FAQ)

Si es un disco ZIP o floppy, y está formateado en DOS, puedes usar el comando:


mount -t msdos /dev/fd0c /floppy
        

Si es un floppy, o este:


mount -t msdos /dev/da2s4 /zip
        

para un disco ZIP con la configuración de fábrica.

Para otros discos, mira como configurarlos usando fdisk o /stand/sysinstall.

El resto de ejemplos serán para un disco ZIP en da2, el tercer disco SCSI.

A no ser que se trate de un floppy o disco removible, lo que planeas compartir con otros usuarios, es aconsejable convertir el formato de archivos a BSD. Obtendrás nombre de archivos largos, como mínimo doblarás la velocidad de acceso del disco, y mucha más estabilidad. Antes, necesitas rehacer las particiones. Puedes usar el comando fdisk o la utilidad /stand/sysinstall. Si es un disco pequeño que quieres dedicar enteramente a FreeBSD, solo tienes que eliminar la FAT y tabla de particiones, y usar el sistema de particiones de FreeBSD:


dd if=/dev/zero of=/dev/rda2 count=2
disklabel -Brw da2 auto
        

Puedes usar el comando disklabel o /stand/sysinstall para crear múltiples particiones BSD.

Finalmente, crea un nuevo sistema de archivos:


newfs /dev/rda2c
        

y montalo:


mount /dev/da2c /zip
        

Sería una buena idea añadir una línea como esta en el archivo /etc/fstab para que solo tengas que teclear "mount /zip" las siguientes veces.


/dev/da2c /zip ffs rw,noauto 0 0
        

8.5.

?Cómo monto una partición secundaria DOS?

Las particiones DOS secundarias se encuentran después de TODAS las particiones primarias. Por ejemplo, si tienes una partición "E" como la segunda partición DOS en el segundo disco SCSI, necesitas crear los archivos especiales para el dispositivo 5 en /dev, y después montar /dev/da1s5:


# cd /dev
# ./MAKEDEV da1s5
# mount -t msdos /dev/da1s5 /dos/e
        

8.6.

?Puedo montar otros sistemas de archivos bajo FreeBSD?

Digital UNIX UFS CDROMs pueden ser montados directamente en FreeBSD. Montar particiones de disco de Digital UNIX y otros sistemas que soportan UFS puede ser más complejo, dependiendo de los detalles de la partición de disco del sistema operativo en cuestión.

Linux: 2.2 y posteriores soportan particiones ext2fs. Mira mount_ext2fs para más información.

NT: Existe un driver de solo lectura de NTFS para FreeBSD. Para más información, mira este tutorial de Mark Ovens en http://www.users.globalnet.co.uk/~markov/ntfs_install.html.

8.7.

?Cómo puedo usar el "NT loader" para arrancar FreeBSD?

La idea general es que copies el primer sector de la partición root nativa de FreeBSD en un archivo en la partición DOS/NT. Asumiento que nombras a ese archivo como c:\bootsect.bsd puedes editar el archivo c:\boot.ini para conseguir algo como esto:


[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
        

Este proceso asume que DOS, NT, FreeBSD o cualquier otro sistema ha sido instalado en sus respectivas particiones en el mismo disco. En nuestro caso, DOS y NT están en la primera partición y FreeBSD en la segunda. Instalamos FreeBSD para arrancarlo desde su partición nativa y no desde el disco MBR.

Monta un floppy formateado en DOS bajo la partición /mnt.


dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1
        

Rearranca en DOS o NT. Copia el archivo bootsect.bsd y/o el archivo bootsect.lnx del floppy a C:\. Modifica los atributos a boot.ini con:


attrib -s -r c:\boot.ini
        

Edita y añade las líneas apropiadas del boot.ini mostrado enteriormente de ejemplo, y vuelve a poner los atributos originales:


attrib +s +r c:\boot.ini
        

Si FreeBSD está arrancando desde el MBR, restauralo desde el comando fdisk después de reconfigurarlos para arrancar desde sus particiones nativas.

8.8.

?Cómo arranco FreeBSD y Linux desde LILO?

Si tienes FreeBSD y Linux en el mismo disco, solo tienes que seguir las instrucciones de instalación de LILO para arrancar un sistema operativo no Linux. Brevemente, son estas:

Arranca Linux, y añade las siguientes líneas en el archivo /etc/lilo.conf:


other=/dev/hda2
table=/dev/hda
label=FreeBSD
        

(Asumiendo que tu partición FreeBSD es conocida por Linux como /dev/hda2). A continuación, ejecuta lilo como root y ya debería estar.

Si FreeBSD está en otro disco, necesitas añadir ``loader=/boot/chain.b'' al archivo lilo.conf. Por ejemplo:


other=/dev/sdb4
table=/dev/sdb
loader=/boot/chain.b
label=FreeBSD
        

En algunos casos necesitarás especificar el número de disco en BIOS para que el cargador del boot funcione correctamente desde el segundo disco. Por ejemplo, si tu disco SCSI con FreeBSD es visto por el BIOS como disco 1, en el prompt del cargador de arranque necesitarás especificar:


Boot: 1:da(0,a)/kernel
        

En FreeBSD 2.2.5 y posteriores, puedes configurar boot(8) para que haga esto automaticamente.

El Linux+FreeBSD mini-HOWTO es una buena referencia para las opciones de interoperabilidad entre FreeBSD y Linux.

8.9.

?Cómo arranco FreeBSD y Linux usando BootEasy?

Instala el LILO al inicio de la partición de arranque del Linux en lugar de hacerlo en el "Master Boot Record". Así podrás arrancar el LILO desde BootEasy.

Si estas usando Windows-95 y Linux, también es recomendable hacer esto para simplificar el arranque de Linux en caso de que sea necesaria una reinstalación del Windows-95 (ya que no quiere convivir con otros sistemas operativos en el mismo Master Boot Record).

8.10.

?Puede un disco "dedicado" provocar problemas?

El proceso de instalación nos permite elegir dos métodos diferentes de particionar un disco. El sistema por defecto hace que el disco sea compatible con otros sistemas operativos en la misma máquina, usando las tablas de entrada de fdisk (llamadas "slices" en FreeBSD). Opcionalmente, podemos instalar un boot-selector que nos permite seleccionar el sistema operativo con el que queremos arrancar.

Mientras este es el caso más com&ún para gente proveniente del mundo de PC, para la gente proveniente del mundo Unix y quienes quieren instalar una máquina para funcionar con FreeBSD y solo FreeBSD, es más habitual usar el sistema de reservar todo el espacio del disco para un solo sistema operativo. Si seleccionas "A)ll FreeBSD" en el editor de fdisk de la utilidad sysinstall, y respondes la siguiente pregunta con "No", usarás este último sistema. Ten en cuenta que usando este sistema no te permitirá la instalación de ningún otro sistema operativo o selector de arranque (boot manager).

Entonces, ?por qué se llama "peligroso"?. Un disco en este modo no contiene lo que las utilidades normales de un PC considerarían una tabla de partición de archivos válida. Dependiendo del diseño de estas aplicaciones, puede que dañen el sector de arranque una vez entren en contacto con el disco. Por lo menos una BIOS Award usada por máquinas HP Netservers (pero no sólo por ellos) es concocida por ignorar los disco duros que no contengan lo que el BIOS entiende por una tabla de archivos válida.

Para volver un disco "peligrosamente dedicado" a formato estándar de PC, hay básicamente dos opciones. La primera es, escribes suficientes bytes NULL sobre el MBR para hacer que las siguientes instalaciones crean que están en un disco sín usar. Puedes hacer esto así:


dd if=/dev/zero of=/dev/rda0 count=15
        

Alternativamente, puedes hacer:


fdisk /mbr
        

que instalará un nuevo master boot record.

8.11.

?Cómo puedo añadir más espacio de swap?

La mejor manera es incrementar el tamaño de tu partición de swap, o usar esta excusa para añadir un otro disco nuevo.

Añadir swap en discos separados hace las cosas más rápidas que simplemente añadir swap en el mismo disco. Como ejemplo, si estás compilando código fuente en un disco, y el swap está en otro disco, es mucho más rápido que si el swap y la compilación se realizaran en el mismo disco. Esto es cierto específicamente para discos SCSI.

Los discos IDE no son capaces de permitir el acceso a ambos discos en el mismo canal al mismo tiempo (FreeBSD no soporta el modo 4, ya que todas las I/O de discos IDE son "programadas").

Es realmente muy mala idea instalar el swap sobre NFS a no ser que trabajes en una red muy rápida con un muy buen servidor.

Aquí hay un ejemplo para un archivo de swap de 64Mb /usr/swap0, piensa que puedes usar el nombre que quieras).

Asegurate que el kernel está compilado con la línea


pseudo-device   vn 1   #Vnode driver (turns a file into a device)
        

en tu archivo de configuración. El kernel GENERIC la contiene.

  1. crea un vn-device


    cd /dev
    sh ./MAKEDEV vn0
                

  2. crea un swapfile (/usr/swap0)


    dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
                

  3. activa el archivo de swap en /etc/rc.conf


    swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired.
                

  4. rearranca la máquina.

Para activar el archivo de swap inmediatamente teclea


vnconfig -ce /dev/vn0c /usr/swap0 swap
        

8.12.

Tengo problemas para poner en marcha mi impresora.

Por favor, revisa la sección de impresoras del manual. Cubre la mayoría de posibles problemas. Pásate por esta sección.

8.13.

Mi teclado no coincide con los carácteres de pantalla.

El programa de control de teclado tiene una opción para cargar el mapa de teclado. En el directorio /usr/share/syscons/keymaps hay diferentes archivos de mapas de teclado. Selecciona el que corresponde a tu sistema y cárgalo.


kbdcontrol -l uk.iso
        

Tanto el directorio /usr/share/syscons/keymaps como la extensión .kbd son asumidas por la orden kbdcontrol.

Esto puede ser configurado en /etc/sysconfig (o rc.conf). Mira los comentarios correspondientes en el propio archivo.

En la versión 2.0.5R y posteriores, todo lo referente a fuentes, teclado, etc está en /usr/share/examples/syscons.

Actualmente se soportan los siguientes mapas de teclado:

  • Belgian ISO-8859-1

  • Brazilian 275 keyboard Codepage 850

  • Brazilian 275 keyboard ISO-8859-1

  • Danish Codepage 865

  • Danish ISO-8859-1

  • French ISO-8859-1

  • German Codepage 850

  • German ISO-8859-1

  • Italian ISO-8859-1

  • Japanese 106

  • Japanese 106x

  • Latin American

  • Norwegian ISO-8859-1

  • Polish ISO-8859-2 (programmer's)

  • Russian Codepage 866 (alternative)

  • Russian koi8-r (shift)

  • Russian koi8-r

  • Spanish ISO-8859-1

  • Swedish Codepage 850

  • Swedish ISO-8859-1

  • Swiss-German ISO-8859-1

  • United Kingdom Codepage 850

  • United Kingdom ISO-8859-1

  • United States of America ISO-8859-1

  • United States of America dvorak

  • United States of America dvorakx

8.14.

Las cuotas de usuario no funcionan correctamente.

  1. No actives las cuotas en '/',

  2. Pon el archivo de cuotas en el sistema de archivos en el que se vayan a forzar las cuotas de usuario:


    FS      QUOTA FILE
    /usr    /usr/admin/quotas
    /home   /home/admin/quotas
              ...
                

8.15.

Mi ccd no funciona correctamente

El síntoma es:


# ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
#
        

Esto actualmente ocurre cuando estás intentando concatenar las particiones c'. El driver ccd requiere que la partición sea del tipo FS_BSDFFS. Edita la etiqueta del disco (disklabel) que estás intentando concatenar y cambia el tipo de partición a '4.2BSD'.

8.16.

?Porqué no puedo editar el disklabel en mi ccd?

El síntoma es:


# disklabel ccd0
(it prints something sensible here, so let's try to edit it)
# disklabel -e ccd0
(edit, save, quit)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label
#
        

Esto es porque el disklabel retornado por el ccd es actualmente uno que no corresponde con el real. Puedes resolver este problema escribiendo explícitamente:


# disklabel ccd0 > /tmp/disklabel.tmp
# disklabel -Rr ccd0 /tmp/disklabel.tmp
# disklabel -e ccd0
(ahora funcionara)
        

8.17.

?Soporta FreeBSD primitivas IPC System V?

Sí, FreeBSD las soporta. Estas incluyen memoria compartida, mensajes y semáforos. Necesitas añadir las siguientes líneas en la configuración de tu kernel para activarlas.


options    SYSVSHM
options    "SHMMAXPGS=64"   # 256Kb of sharable memory
options    SYSVSEM          # enable for semaphores
options    SYSVMSG          # enable for messaging
        

Recompila e instala.

NOTA: Quizás necesites incrementar SHMMAXPGS a un número como 4096 (16M) si quieres usar GIMP. 256K es suficiente para la memoria compartida en X11R6.

8.18.

?Cómo uso sendmail para envio de mail UUCP?

La configuración de sendmail incluida en FreeBSD está preparada para sistemas que conectan directamente con Internet. Los sistemas que quieran usar UUCP para el envío de mail deben utilizar otro archivo de configuración.

Retocar /etc/sendmail.cf manualmente está considerado algo para puristas. La versión 8 de sendmail incluye un nuevo sistema de configuración llamado m4, en el cual la configuración se realiza en un nivel más alto. Deberías usar los archivos de configuración situados en


/usr/src/usr.sbin/sendmail/cf
        

Si no instalaste tu sistema con el código fuente completo, el paquete de configuración de sendmail está en una distribución aparte. Asumiendo que tienes tu CD-ROM montado, haz:


cd /usr/src
tar -xvzf /cdrom/dists/src/ssmailcf.aa
        

No te preocupes, solo son unos cientos de kilobytes de tamaño. El archivo README en el directorio cf puede servir como introducción a la configuración del m4.

Para envío y recepción va UUCP, te aconsejamos usar la opción mailertable. Se basa en una base de datos que sendmail puede usar como base para tomar las decisiones de enrutado del mail.

Primero tienes que crear tu archivo .mc. Estos archivos se encuentran en el directorio /usr/src/usr.sbin/sendmail/cf/cf. Si miras, encontrarás algunos ejemplos. Asumiendo que tu archivo se llama foo.com, todo lo que necesitas hacer para convertirlo en un archivo sendmail.cf válido es:


cd /usr/src/usr.sbin/sendmail/cf/cf
make foo.cf
cp foo.cf /etc/sendmail.cf
        

Un archivo típico .mc sería algo como:


          include(`../m4/cf.m4')
          VERSIONID(`Your version number')
          OSTYPE(bsd4.4)

          FEATURE(nodns)
          FEATURE(nocanonify)
          FEATURE(mailertable)

          define(`UUCP_RELAY', your.uucp.relay)
          define(`UUCP_MAX_SIZE', 200000)

          MAILER(local)
          MAILER(smtp)
          MAILER(uucp)

          Cw    your.alias.host.name
          Cw    youruucpnodename.UUCP
        

Las opciones nodns y nocanonify previenen del uso del DNS durante el tráfico de correo. La cláusula UUCP_RELAY se necesita por razones imperiosas, no preguntes :). Simplemente pon un nombre de máquina de Internet que sea capaz de gestionar pseudo-dominios .UUCP; más sencillo, entrarás el mail relay de tu ISP.

Una vez hayas hecho esto, necesitas el archivo llamado /etc/mailtertable. Un ejemplo típico sería:


          #
          # makemap hash /etc/mailertable.db < /etc/mailertable
          #
          horus.interface-business.de   uucp-dom:horus
          .interface-business.de        uucp-dom:if-bus
          interface-business.de         uucp-dom:if-bus
          .heep.sax.de                  smtp8:%1
          horus.UUCP                    uucp-dom:horus
          if-bus.UUCP                   uucp-dom:if-bus
          .                             uucp-dom:sax
        

Como puedes ver, esto es parte de un archivo real. Las tres primeras líneas manejan casos especiales donde el correo dirigido a un dominio no debe ser enviado a través de la ruta por defecto, si no a través de un UUCP vecino para acortar el path de envío. La siguiente línea gestiona el mail del dominio local para que sea enviado vía SMTP. Finalmente, los vecinos UUCP son anotados en la parte .UUCP pseudo-domains, para poder sobreescribir las reglas por defecto. La última línea es siempre un punto, que indica el mail gateway hacia el resto del mundo. Todos los nombres de nodos detrás de uucp-dom: deben ser vecinos válidos UUCP.

Como recordatorio de que este archivo debe ser convertido a una base de datos DBM antes de ser usada, la línea de comandos para realizar esta operación esta puesta como un comentario al inicio del archivo. Siempre tienes que ejecutar este comando cada vez que realices algún cambio en tu mailtertable.

Si no tienes la seguridad de que una ruta de correo vaya a funcionar correctamente, recuerda la opción -bt de sendmail. Esta opción arranca el sendmail en modo test; simplemente entra 0, seguido por la dirección de mail sobre la que quieres testear la ruta. La última línea te indica el agente interno, el host de destino y la dirección (posiblemente traducido). Sal de este modo tecleando Control-D.


          j@uriah 191% sendmail -bt
          ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
          Enter <ruleset> <address>
          > 0 foo@interface-business.de
          rewrite: ruleset  0   input: foo @ interface-business . de
          ...
          rewrite: ruleset  0 returns: $# uucp-dom $@ if-bus $: foo \
          < @ interface-business . de >
          > ^D
          j@uriah 192%
        

8.19.

?Cómo configuro el correo para conexiones NO permanentes a Internet?

Si tienes una dirección IP fija en la conexión, no necesitarás ajustar nada de lo que ya viene por defecto. Configura tu hostname como el nombre asignado a tu IP de Internet y sendmail hará el resto.

Si tienes direcciones IP asignadas dinamicamente y usas una conexión ppp a Internet, probablemente tendrás un buzón en el servidor de correo de tu proveedor. Supongamos que el dominio de tu proveedor es myisp.com, y tu nombre de usuario es user. Supongamos también que has llamado a tu máquina bsd.home y que tu proveedor te ha indicado que uses la máaquina relay.myISP.com como mail realy (gateway).

Para poder recoger el correo de tu buzón necesitarás instalar un agente de recogida de correo. Fetchmail es una buena opción ya que soporta diferentes protocolos. Normalmente se usa POP3. Puedes recoger automaticamente tu correo al realizar la conexión añadiendo la siguiente línea en el archivo /etc+ppp/ppp.linkup:


            MYADDR:
            !bg su user -c fetchmail
        

Asumimos que tienes una cuenta para user en bsd.home. En el home directory de user en bsd.home, crea el archivo .fetchmailrc:


          poll myISP.com protocol pop3 fetchall pass MySecret;
        

No hace falta decir que este archivo no debe ser "leible" por nadie excepto user ya que contiene el password MySecret.

Para enviar el correo con la cabecera from: correcta, debes decirle al sendmail que use en lugar de . También deberías decirle al sendmail que envie todo el correo saliente a traves de relay.myISP.com, para una transmisión mucho más rápida.

El siguiente archivo .mc debe ser suficiente:


          VERSIONID(`bsd.home.mc version 1.0')
          OSTYPE(bsd4.4)dnl
          FEATURE(nouucp)dnl
          MAILER(local)dnl
          MAILER(smtp)dnl
          Cwlocalhost
          Cwbsd.home
          CwmyISP.com
          MASQUERADE_AS(`myISP.com')dnl
          FEATURE(allmasquerade)dnl
          FEATURE(masquerade_envelope)dnl
          FEATURE(nocanonify)dnl
          FEATURE(nodns)dnl
          define(SMART_HOST, `relay.myISP.com')
          DmmyISP.com
          define(`confDOMAIN_NAME',`myISP.com')dnl
          define(`confDELIVERY_MODE',`deferred')dnl
       

Mira en la sección anterior para los detalles de como convertir este archivo .mc en un sendmail.cf. No te olvides de rearrancar sendmail después de cada actualización del archivo sendmail.cf.

8.20.

Olvidé el password de Root!!

Tranquilo!!!. Simplemenre rearranca tu sistema, teclea -s en el prompt de arranque para entrar en modo monousuario. En la pregunta sobre el shell a usar, pulsa ENTER. Aparecerá un prompt #. Teclea mount -u / para remontar tu sistema de archivos en modo de lectura/escritura y a continuación teclea mount -a para montar todos los sistemas de archivos. Ejecura passwd root para cambiar el password de root. Teclea exit para continuar normalmente con el arranque.

8.21.

?Cómo mantengo el control sobre Control-Alt-Delete?

Edita el mapa de teclado que estás usando para la consola y reemplaza las palabras boot por nop. El mapa de teclado por defecto es /usr/share/syscons/keymaps/us.iso.kbd. Por supuesto si usas otro mapa de teclado adecuado a tu país, tendrías que editarlo.

8.22.

?Cómo reformateo archivos de texto DOS a UNIX?

Simplemente usando este comando de perl:


          perl -i.bak -npe 's/\r\n/\n/g' file ...
        

file es el archivo a procesar. La modificación se hace en el propio archivo dejando el original grabado con extensión .bak.

Alternativamente puedes usar el comando tr(1)

tr -d '\r' < dos-text-file > unix-file

dos-text-file es el archivo que contiene el texto DOS mientras que unix-file contendrá la salida convertida. Este sistema puede ser más rápido que usar perl.

8.23.

?Cómo puedo hace "kill" de procesos por nombre?

Usa killall(1).

8.24.

?Porque el su no me dejar ser root al no estar en el ACL?

El error proviene de sistema del autentificación distribuida Kerberos. El problema no es fatal pero si molesto. Puedes ejecutar el comando su con la opcion -K, o desinstalar Kerberos como se describe en la siguiente sección.

8.25.

?Cómo desinstalo Kerberos?

Para eliminar Kerberos del sistema, reinstala la distribución bin de la release que estés usando. Si tienes el CDROM, puedes montar el cd (asumiremos que esta en /cdrom) y ejecutar:


          cd /cdrom/bin
          ./install.sh
        

8.26.

?Cómo añado pseudoterminales a mi sistema?

Si tienes muchos usuarios de telnet, ssh, X, o de consola, probablemente terminarás desbordando el número de pseudoterminales del sistema. Aquí tienes como añadir más:

  1. Compila e instala un nuevo kernel com la línea


                  pseudo-device pty 256
                

    en el archivo de configuración.

  2. Ejecuta el comando


                  # cd /dev
                  # ./MAKEDEV pty{1,2,3,4,5,6,7}
                

    para crear 256 nodos de dispositivo para los nuevos terminales.

  3. Edita el archivo /etc/ttys y añade una línea para cada uno de los 256 terminales. Estas líneas deben seguir la estructura de las entradas existentes, algo como esto:


                  ttyqc none network
                

    El órden de la designación de letras es tty[pqrsPQRS][0-9a-v], usando una expresión regular.

  4. Rearranca el sistema con el nuevo kernel, y lo tendrás listo para funcionar.

8.27.

?Cómo puedo releer el archivo /etc/rc.conf y relanzar /etc/rc sin tener que hacer un reboot?

Entra en modo monousuario y a continuación vuelve a modo multiusuario.

En la consola haz:


          # shutdown now
          (Nota: sin -r o -h)

          # return
          # exit
        

8.28.

?Qué es un sandbox?

Sandbox es un término de seguridad. Puede significar dos cosas:

  • Un proceso que es situado en el interior de una serie de muros virtuales diseñados como prevención e imposibilitar el acceso al sistema principal en caso de que alguien comprometa la seguridad de ese proceso.

    Se dice que el proceso es capaz de "jugar" entre los muros. Esto significa que se supone que nada de lo que haga el proceso referente a la ejecución de código, puede ser capaz de romper los muros, así no es necesario hacer auditorías detalladas de su código para poder conocer todo lo referente a los riesgos de seguridad del proceso.

    Los muros pueden, por ejemplo, un userid. Esta es la definición usada en las páginas man de seguridad y del programa named.

    Veamos como ejemplo el servicio 'ntalk' (consultar /etc/inetd.conf). Este servicio solía ejecutarse con el userid de root. Ahora se ejecuta con el userid tty. El usuario tty esta diseñado para ser usado como usuario sandbox, dificultando así la tarea de un intruso que haya conseguido penetrar en el sistema a través del servicio ntalk. De esta manera, el intruso solo puede afectar a los servicios, programas o procesos propiedad del usuario tty.

  • Un proceso que se ha situado en el interior de una simulación de la máquina. Esto es más hard-core. Básicamente, significa que alguien que sea capaz de penetrar en el proceso, creerá que ha penetrado en el sistema principal, pero de hecho, ha penetrado en una simulación de esa máquina y no puede modificar ningún dato real.

    El sistema más común de conseguir esto es crear un entorno simulado en un subdirectorio y ejecutar los procesos en ese subdirectorio mediante chroot (la raiz "/" para ese proceso es este directorio, no la raiz "/" real del sistema).

    Otro sistema habitual es montar un sistema de archivos de solo lectura y a continuació,n crear un nivel de sistema de archivos por encima del anterior que dé al proceso la sensación de encontrarse en un sistema de archivos de lectura/escritura. El proceso creerá que es capaz de escribir esos archivos, pero sólo el proceso ve los efectos; otros procesos del sistema no ven absolutamente nada.

    Se intenta crear este tipo de sandbox totalmente transparentes para que el usuario (o intruso) no se de cuenta que está en él.

UNIX implementa dos tipos de sandboxes. Uno es a nivel de procesos, y el otro es a nivel de usuarios (userid).

Cada proceso UNIX es totalmente independiente de cualquier otro proceso UNIX. Un proceso no puede modificar el espacio de direcciones de otro. Es diferente a los sistemas Windows en los que un proceso puede sobreescribir facilmente el espacio de direcciones de otro proceso, probocando una caida de la máquina.

Un proceso UNIX es propiedad de un userid determinado. Si el userid no es el usuario root, éste solo podrá acceder a los procesos de su propiedad, evitando la intrusión en procesos ajenos. El userid también se usa como sistema de protección para datos grabados en disco.

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.

Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.