Capítulo 10. Administración del sistema

10.1. ¿Cuáles son los archivos de configuración para el arranque del sistema?
10.2. ¿Como agrego fácilmente un usuario?
10.3. ¿Por qué recibo constantemente mensajes del estilo root: not found luego de editar /etc/crontab?
10.4. ¿Por qué tengo el error you are not in the correct group to su root cuando intento hacer su a root?
10.5. Cometi un error en rc.conf, u otro archivo de inicio, y ahora no puedo editarlo porque el sistema de archivos es de solo lectura. ¿Qué debo hacer?
10.6. ¿Por qué tengo problemas para configurar mi impresora?
10.7. ¿Como puedo corregir los mapeos del teclado para mi sistema?
10.8. ¿Por qué no consigo que las quotas de usuario funcionen adecuadamente?
10.9. ¿Soporta FreeBSD primitivas IPC de SystemV?
10.10. ¿Qué otro software de servidor de correo puedo usar en lugar de Sendmail?
10.11. ¡He olvidado la contraseña de root! ¿Qué hago?
10.12. ¿Como prevengo que Control+Alt+Delete borre el sistema?
10.13. ¿Como reformateo archivos de texto de DOS a archivos UNIX®?
10.14. ¿Como releo /etc/rc.conf y rearranco /etc/rc sin reiniciar?
10.15. ¡Intente actualizar mi sistema al último -STABLE, pero obtuve -BETAx, -RC o -PRERELEASE! ¿Qué esta pasando?
10.16. He intentado instalar un nuevo kernel y las chflags(1) fallaron. ¿Como soluciono esto?
10.17. ¡No puedo cambiar el tiempo en mi sistema por más de un segundo! ¿Como soluciono esto?
10.18. ¿Por que rpc.statd esta usando 256 MB de memoria?
10.19. ¿Por qué no puedo borrar la bandera de archivo schg?
10.20. ¿Qué es vnlru?
10.21. ¿Qué significan los varios estados de memoria mostrados por top?
10.22. ¿Cuánta memoria libre esta disponible?
10.23. ¿Qué es /var/empty?
10.24. Acabo de cambiar /etc/newsyslog.conf. ¿Como puedo verificar si hace lo que yo espero?
10.25. ¿Mi hora esta mal, como puedo cambiar la zona del tiempo?

10.1.

¿Cuáles son los archivos de configuración para el arranque del sistema?

El archivo de configuración principal es /etc/defaults/rc.conf el cual se describe en rc.conf(5). Los scripts de arranque del sistema tales como /etc/rc y /etc/rc.d, los cuales son descritos en rc(8), incluyen este archivo. ¡No edite este archivo! En su lugar, para editar una entrada en /etc/defaults/rc.conf, copie la línea a /etc/rc.conf y cámbiela allí.

Por ejemplo, para arrancar named(8), el servidor de DNS incluido

# echo 'named_enable="YES"' >> /etc/rc.conf

Para arrancar servicios locales, coloque los scripts de shell en el directorio /usr/local/etc/rc.d. Los scripts de shell deben ser ejecutables, el modo de archivo por defecto es 555.

10.2.

¿Como agrego fácilmente un usuario?

Use el comando adduser(8), o el comando pw(8) para situaciones más complicadas.

Para remover el usuario, use el comando rmuser(8)o, si es necesario, pw(8).

10.3.

¿Por qué recibo constantemente mensajes del estilo root: not found luego de editar /etc/crontab?

Esto usualmente esta provocado por editar el crontab del sistema. Esta no es la manera correcta de hacer las cosas, dado que el crontab del sistema tiene un formato distinto para los crontabs por usuario. El crontab del sistema tiene un campo extra, especificando como que usuario se debe correr el comando. cron(8) asume que este usuario es la primera palabra del comando a ejecutar. Dado que no existe tal comando, aparece este mensaje de error.

Para borrar el contrab extra e incorrecto:

# crontab -r

10.4.

¿Por qué tengo el error you are not in the correct group to su root cuando intento hacer su a root?

Esta es una característica de seguridad. Para hacer su a root, o cualquier otra cuenta con privilegios de superusuario, la cuenta de usuario debe ser miembra del grupo wheel. Si esta característica no estuviera, cualquiera con una cuenta en el sistema que haya adivinado la contraseña de root podría ganar acceso de superusuario al sistema.

Para permitir que alguien haga su a root, póngalo(s) en el grupo wheel usando pw:

# pw groupmod wheel -m lisa

El ejemplo anterior agregara al usuario lisa al grupo wheel.

10.5.

Cometi un error en rc.conf, u otro archivo de inicio, y ahora no puedo editarlo porque el sistema de archivos es de solo lectura. ¿Qué debo hacer?

Reinicie el sistema usando boot -s en el indicador de arranque para entrar en el modo de un solo usuario. Cuando se le pida un nombre de ruta para el shell, presione Enter y corra mount -urw / para re-montar el sistema de archivos raíz en modo de lectura/escritura. Quizas también tenga que correr mount -a -t ufs para montar el sistema de archivos donde esta definido su editor favorito. Si ese editor esta en un sistema de archivos de red, configure la red manualmente antes de montar sistemas de archivos en red, o use un editor que redia en el sistema de archivos local, como ed(1).

Para usar un editor de pantalla completa tal como vi(1) o emacs(1), corra export TERM=xterm en FreeBSD 9.0+ de manera que estos editores puedan cargar correctamente los datos desde la base de datos de termcap(5).

Luego de realizar estos pasos, edite /etc/rc.conf para arreglar el error de sintaxis. El mensaje de error que se muestra inmediatamente luego de los mensajes de arranque del kernel debería indicar que número de línea en el archivo tiene el problema.

10.6.

¿Por qué tengo problemas para configurar mi impresora?

Vea la entrada del manual acerca de imprimir para consejos sobre como solucionar el problema.

10.7.

¿Como puedo corregir los mapeos del teclado para mi sistema?

Vea la sección del manual acerca de utilizar localización, específicamente la sección acerca de configuración de la consola.

10.8.

¿Por qué no consigo que las quotas de usuario funcionen adecuadamente?

  1. Es posible que el kernel no este configurado para usar quotas. En este caso, añada la siguiente línea al archivo de configuración de kernel y recompile el kernel:

    options QUOTA

    Vea la entrada de manual acerca de quotas para más detalles.

  2. No ponga quotas sobre /.

  3. Agregue el archivo de quota en el sistema de archivo en que se van a aplicar las quotas:

    Sistema de archivosArchivo de quota
    /usr/usr/admin/quotas
    /home/home/admin/quotas
    ......

10.9.

¿Soporta FreeBSD primitivas IPC de SystemV?

Si, FreeBSD soporta IPC de tipo System V, incluyendo memoria compartida, mensajes y semáforos, en el kernel GENERIC. Con un kernel personalizado, el soporte puede cargarse con los módulos de kernel sysvshm.ko, sysvsem.ko y sysvmsg.ko, o habilitado en el kernel por defecto agregando las siguientes líneas al archivo de configuración del kernel:

options    SYSVSHM          # enable shared memory
options    SYSVSEM          # enable for semaphores
options    SYSVMSG          # enable for messaging

Recompile e instale el kernel.

10.10.

¿Qué otro software de servidor de correo puedo usar en lugar de Sendmail?

El servidor Sendmail es el software servidor de correo por defecto para FreeBSD, pero puede ser reemplazado con otro MTA instalado desde la colección de ports. Los ports disponibles incluyen mail/exim, mail/postfix, y mail/qmail. Busque en las listas de correo para discusiones sobre las ventajas y desventajas de los MTAs disponibles.

10.11.

¡He olvidado la contraseña de root! ¿Qué hago?

¡No se desespere! Reinicie el sistema, escriba boot -s en el indicador Boot: para entrar en modo de un solo usuario. Cuando se le pregunte que shell usar, presione Enter lo cual mostrara el símbolo #. Ingrese mount -urw / para remontar el sistema de archivos raíz como lectura/escritura, luego corra mount -a para remontar todos los sistemas de archivos. Corra passwd root para cambiar la contraseña de root luego corra exit(1) para continuar con el arranque.

Nota:

Si todavía se le pide la contraseña de root al ingresar en modo de un solo usuario, significa que la consola ha sido marcada como insegura en /etc/ttys. En este caso, se requerirá que arranque desde un disco de instalación de FreeBSD, elija Live CD o Shell al inicio del proceso de instalación y corra los comandos mencionados anteriormente. Monte la partición específica en este caso y luego haga chroot en ella. Por ejemplo, reemplace mount -urw / con mount /dev/ada0p1 /mnt; chroot /mnt para un sistema en ada0p1.

Nota:

Si la partición raíz no puede ser montada en modo de un solo usuario, es posible que las particiones se encuentren encriptadas y es imposible montarlas sin las llaves de acceso. Para más información vea la sección acerca de discos encriptados en el manual de FreeBSD.

10.12.

¿Como prevengo que Control+Alt+Delete borre el sistema?

Cuando use syscons(4), el controlador por defecto dela consola, compile e instale un nuevo kernel con esta línea en el archivo de configuración:

options SC_DISABLE_REBOOT

Esto también puede hacerse ajustando el siguiente sysctl(8) que no requiere un reinicio o una recompilación de kernel:

# sysctl hw.syscons.kbd_reboot=0

Nota:

Los dos métodos anteriores son exclusivos: el sysctl(8) no existe si el kernel se compila con SC_DISABLE_REBOOT.

10.13.

¿Como reformateo archivos de texto de DOS a archivos UNIX®?

Use este comando de perl(1):

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

donde file(s) es uno o más archivos a procesar. La modificación se hace en el lugar, con el archivo original guardado con la extensión .bak.

Alternativamente, use tr(1):

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

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

Otra forma de reformatear archivos de texto de DOS es usar el port converters/dosunix de la colección de ports. Consulte su documentación para más detalles.

10.14.

¿Como releo /etc/rc.conf y rearranco /etc/rc sin reiniciar?

Vaya al modo de un solo usuario y luego vuelva al modo multiusuario:

# shutdown now
# return
# exit

10.15.

¡Intente actualizar mi sistema al último -STABLE, pero obtuve -BETAx, -RC o -PRERELEASE! ¿Qué esta pasando?

Respuesta corta: es solo un nombre. RC significa Release Candidate. Esto quiere decir que un lanzamiento es inminente. En FreeBSD, -PRERELEASE típicamente significa el congelamiento de código antes de un lanzamiento. (Para algunos lanzamientos, la etiqueta -BETA fue usada en la misma manera que -PRERELEASE.)

Respuesta larga: FreeBSD deriva sus lanzamientos actuales de uno de dos lugares. Las versiones mayores, punto cero, tales como 9.0-RELEASE se ramifican del punto mas adelantado del torrente de desarrollo, comúnmente denominado -CURRENT. Versiones menores, tales como 6.3-RELEASE o 5.2-RELEASE, fueron snapshots de la rama -STABLE activa. A partir de 4.3-RELEASE, cada versión ahora también tiene su propia rama que puede ser seguida por gente que requiera una velocidad de desarrollo extremadamente conservadora (típicamente solo avisos de seguridad).

Cuando esta a punto de hacerse un lanzamiento, la rama desde la cual sera derivada debe pasar por un cierto proceso. Parte de este proceso es un congelamiento de código. Cuando el mismo se inicia, el nombre de la rama se cambia para reflejar que esta a punto de convertirse en una versión. Por ejemplo, si la rama se solía llamar 6.2-STABLE, su nombre sera cambiado a 6.3-PRERELEASE para indicar el congelamiento de código y remarcar que habrá un testo extra pre-lanzamiento. Las correcciones de errores pueden seguir siendo commiteadas para formar parte del lanzamiento. Cuando el código fuente esta en forma para ser lanzado el nombre sera cambiado a 6.3-RC para indicar que se esta por hacer un lanzamiento a partir del mismo. Una vez en la fase de RC, solo los errores más críticos serán reparados. Una vez que el lanzamiento (6.3-RELEASE en este ejemplo) y la rama de la versión se hayan hecho, la rama sera renombrada a 6.3-STABLE.

Para más información acerca de números de version y varias ramas de Subversion, vea el artículo de Ingenieria de lanzamientos .

10.16.

He intentado instalar un nuevo kernel y las chflags(1) fallaron. ¿Como soluciono esto?

Respuesta corta: el nivel de seguridad es mayor a 0. Reinicie directamente al modo de un solo usuario para instalar el kernel.

Respuesta larga: FreeBSD deshabilita cambiar las banderas del sistema cuando los niveles de seguridad son mayores a 0. Para verificar el nivel actual de seguridad:

# sysctl kern.securelevel

El nivel de seguridad no puede ser bajado en modo multiusuario, de manera que reinicie al modo de un solo usuario para instalar el kernel, o cambie el nivel de seguridad en /etc/rc.conf y luego reinicie. Vea la pagina de manial de init(8) para más detalles acerca de securelevel, y vea /etc/defaults/rc.conf y la página de manual de rc.conf(5) para más información acerca de rc.conf.

10.17.

¡No puedo cambiar el tiempo en mi sistema por más de un segundo! ¿Como soluciono esto?

Respuesta corta: el sistema esta en un nivel de seguridad mayor a 1. Reinicie directamente a modo de un solo usuario para cambiar la fecha.

Respuesta larga: FreeBSD deshabilita cambiar el tiempo por más de un segundo a niveles de seguridad mayores que 1. Para verificar el nivel de seguridad:

# sysctl kern.securelevel

El nivel de seguridad no puede ser reducido en modo multiusuario. Reinicie a modo de un solo usuario para cambiar la fecha o cambie el nivel de seguridad en /etc/rc.conf y reinicie. Vea la página de manual de init(8) para detalles acerca de securelevel, y vea /etc/defaults/rc.conf y la página de manual de rc.conf(5) para más información acerca de rc.conf.

10.18.

¿Por que rpc.statd esta usando 256 MB de memoria?

No, no hay ningún desbordamiento de memoria, y no esta usando 256 MB de memoria. Para comodidad, rpc.statd mapea una cantidad obscena de memoria a su espacio de direcciones. No hay nada horriblemente malo con esto desde un punto de vista técnico; solo desorienta a procesos como top(1) y ps(1).

rpc.statd(8) mapea su archivo de estado (residente en /var) a su espacio de direcciones; para evitar preocuparse acerca de remapearlo luego cuando necesite crecer, lo mapea con un tamaño generoso. Esto es muy evidente en el código fuente, donde es posible ver que el argumento de longitud de mmap(2) es 0x10000000, o un dieciseisavo del espacio de direcciones en IA32, o exactamente 256 MB.

10.19.

¿Por qué no puedo borrar la bandera de archivo schg?

El sistema esta corriendo con un securelevel mayor a 0. Baje el securelevel e inténtelo de vuelta. Para mayor información vea la entrada de FAQ de securelevel y la página de manual de init(8).

10.20.

¿Qué es vnlru?

vnlru limpia y libera vnodes cuando el sistema llega al límite de kern.maxvnodes. Este hilo de kernel esta ocioso, y solo se activa cuando hay una cantidad enorme de RAM y los usuarios están accediendo a miles de archivos pequeños.

10.21.

¿Qué significan los varios estados de memoria mostrados por top?

  • Active: páginas recientes estadísticamente usadas.

  • Inactive: páginas recientes estadísticamente sin uso.

  • Cache: (la mayor parte del tiempo) páginas que se cuelan del estado inactivo a un estado en donde mantienen sus datos, pero pueden con frecuencia ser inmediatamente reusadas (tanto con su vieja asociación, o reusadas con una nueva asociación). Puede haber ciertas transiciones inmediatas desde el estado active a cache si se sabe que la página esta limpia (sin modificar), pero esta transición es un asunto de políticas, dependiendo de la elección del algoritmo del mantenedor del sistema de VM.

  • Free: páginas sin contenido de datos, y que pueden ser usadas inmediatamente en ciertas circunstancias donde las páginas de cache puedan no ser elegibles. Las páginas libres pueden ser reusadas en un estado de proceso o interrupción.

  • Wired: páginas que están fijas en memoria, usualmente para propósitos del kernel, pero a veces también para su uso especial en los procesos.

Las páginas con frecuencia se escriben a disco (una especie de sincronización de VM) cuando están en el estado inactivo, pero las paginas activas también pueden sincronizarse. Esto depende del rastreo que haga CPU de la disponibilidad del bit de modificación, y en ciertas situaciones puede haber una ventaja para un bloque de páginas de VM al ser sincronizadas, tanto si están activas como inactivas. En la mayoría de los casos comunes, es mejor pensar de la cola inactiva como una cola de páginas relativamente sin usar que pueden o no estar en proceso de ser escritas a disco. La paginas en cache pueden estar ya sincronizadas, no mapeadas, pero disponibles para su uso inmediato por un proceso con su vieja asociación o con una nueva asociación. Las páginas libres están disponibles al nivel de interrupción, pero las páginas en cache o libres pueden ser usadas en el estado de proceso para ser reusadas. Las páginas en cache no se bloquean adecuadamente para estar disponibles al nivel de interrupción.

Hay algunas otras banderas There are some other flags (e.g., busy flag or busy count) que pueden modificar algunas de las reglas descritas.

10.22.

¿Cuánta memoria libre esta disponible?

Hay varios tipos de memoria libre. Un tipo es la cantidad de memoria directamente disponible sin paginar nada a disco. Esto es aproximadamente el tamaño de una cola de cache + el tamaño de la cola libre (con un factor de reducción de potencia, dependiendo de como se configure el sistema). Otro tipo de memoria libre es la cantidad total de espacio VM. Esto puede ser complejo, pero depende de la cantidad de espacio de intercambio y memoria. Otros tipos de descripciones de memoria libre también son posibles, pero es relativamente inútil definirlos, en su lugar es importante asegurarse de mantener el rango de paginación bajo, para evitar que se agote el espacio de intercambio.

10.23.

¿Qué es /var/empty?

/var/empty es un directorio que el programa sshd(8) usa al realizar la separación de privilegios. El directorio /var/empty esta vació, su dieño es root y tiene la bandera schg habilitada. Este directorio no debería ser borrado.

10.24.

Acabo de cambiar /etc/newsyslog.conf. ¿Como puedo verificar si hace lo que yo espero?

Para ver lo que haría newsyslog(8), use lo siguiente:

% newsyslog -nrvv

10.25.

¿Mi hora esta mal, como puedo cambiar la zona del tiempo?

Use tzsetup(8).

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>.