Mostrando las entradas con la etiqueta servidor. Mostrar todas las entradas
Mostrando las entradas con la etiqueta servidor. Mostrar todas las entradas

martes, 15 de octubre de 2019

Servidor OpenSuSE en modo consola

                               (P) Hugo Napoli, 2019                              

Imagen: https://www.networkworld.com/article/3334781/suse-releases-enterprise-linux-for-all-major-arm-processors.html

Esta instalación fue concebida para una máquina portátil convencional, de prestaciones básicas.
También fue muy importante que el tiempo invertido en la concreción de este proyecto no fuera excesivamente "largo".
La idea, es presentar una guía rápida y útil, y a su vez, también rápidamente, poner un servidor Linux a funcionar, sin mucho trámite ni burocracia.
Para la preparación de un servidor de mayor "potencia", habría que hacerle un montón de ajustes a este artículo, o bien, escribir otro, únicamente para ello.

Hemos tenido en cuenta a aquellos procedimientos que representan un trabajo muy tedioso al ser realiozados desde la consola, y para alivianar la carga laboral, los realizaremos sirviéndonos del entorno gráfico que facilita OpenSuSE durante la fase de instalación.

Es importante aprovechar el entorno gráfico, sin desmerecer al resto de las herramientas disponibles. Luego, todo se reducirá a una pantalla negra y un teclado.

Dejaremos para después, entonces, únicamente aquello que sea más o menos sencillo de realizar en modo consola.


Parte I/III: preparación de OpenSuSE.

                  MODO "GRÁFICO"                 

Particionado.

Considerando que el servidor poseerá una partición especialmente dedicada a datos (fuera de "home"), reduciremos el tamaño de home a un mínimo aceptable, cuando en realidad debería ser mucho más grande en una instalación estandarizada.

Tamaños para las particiones:

boot:  512 MB,
root:  20 GB,
tmp:   10 GB,
swap:  4 GB (o igual de "grande" que la cantidad de memoria RAM instalada en el equipo),
home:  8 GB,
datos: todo el espacio restante libre.

La partición "datos", deberá ir montada en "/datos", con la opción "el usuario puede montar la partición".


Arranque.


Marcaremos la opción en Grub2 acerca de proteger con contraseña el cargador de arranque (es recomendable utilizar una contraseña diferente a la del usuario root, para aumentar la seguridad del sistema).
Si este paso no se realiza en este momento (durante la instalación), será bastante difícil llevarlo a cabo después, puesto que no habrá escritorio ni ventanas en donde hacer clic, buscar información, etc.

Desmarcaremos la opción de "buscar sistemas operativos foráneos", ya que OpenSuSE será el único en este ordenador.

Repositorios.


Repositorios no oficiales y no open source se han desestimado.
Por consiguiente, únicamente se han utilizado los dos oficiales y de código abierto (no packman, ni libdvdcss, ni ningún otro).


Puertos y servicios.


Puerto y servicio SSH: abiertos

Red.

Podemos configurar la IP estática del servidor durante esta fase, así también como el encaminamiento y los distintos atributos del nombre de "host", pero lo explicaremos breve y detalladamente más abajo, en "modo consola".

Software adicional.

Marcar para instalar mysql-workbench
Los servicios más utilizados, probablemente sean samba y este que acabamos de citar.

Finalizar la instalación.


                  MODO "CONSOLA"                 

          Iniciar sesión como usuario root antes de proseguir         

Más ajustes en el cargador de arranque.

Reducción del tiempo de espera para la carga del sistema.

El tiempo "por omisión" del cargador de arranque (Grub) en OpenSuSE es de 8 segundos.
Durante este tiempo (y si no se pulsa Enter) Grub espera a que el usuario pulse la tecla "e" para pasarle parámetros de inicio al sistema.
Esto puede ser útil una vez cada cierto tiempo, o bien puede no ser necesario en absoluto.
Lo cierto, es que no es útil para el día a día, por lo tanto, lo reduciremos a 1 segundo.
A partir de ahora, si alguien necesita pasarle parámetros a Grub, será mejor que se preocupe por estar muy atento a la pantalla de arranque.

Escribiremos, entonces:

nano /etc/default/grub (y daremos "Enter")

Cambiaremos GRUB_TIMEOUT=8 por GRUB_TIMEOUT=1

CTRL + O y ENTER para confirmar los cambios y guardar, y
CTRL + X para finalizar la edición del archivo de arranque.

No buscar sistemas operativos foráneos.

Cuando hay más de 1 sistema instalado en la misma máquina, es correcto mantener esta configuración tal como viene por omisión, pero, tratándose de la búsqueda de la reducción máxima de los tiempos de arranque del servidor, cambiaremos la línear GRUB_DISABLE_OS_PROBER="false" por GRUB_DISABLE_OS_PROBER="true"
Con esto, nos aseguraremos que OpenSuSE será el único sistema que Grub "verá"; por lo tanto, no "perderá tiempo" buscando a otros.

Adicional.

Se puede emitir un pitido al iniciarse Grub (muy recomendable para máquinas que no van a tener conectado un monitor para poder comprobar visualmente su estado), activando la línea GRUB_INIT_TUNE="480 440 1".
Para ello, simplemente debemos quitarle (a dicha línea) el símbolo # (y posiblemente el espacio) que la misma posee al inicio.

Al finalizar con estos cambios, debemos escribir en la consola lo siguiente:

grub2-mkconfig -o /boot/grub2/grub.cfg

Pulsaremos "Enter", entonces, para terminar de reconfigurar Grub.

Creación de usuarios del sistema.

Se puede crear un usuario, darle nombre, directorios personales y descripción, todo en una sola línea.
El comando necesario para ello, es "useradd". Los parámetros "-m" y "-d", hacen que el usuario sea creado con directorio home incluido (y, por consecuencia, con sus directorios personales "Descargas", "Documentos", Escritorio", "Imágenes", etc.). A la misma línea, puede agregársele un comentario (atributo --comment), el cual será el "nombre fantasía" del usuario en cuestión.
Así se escribe:

useradd -m -d /home/estudiante estudiante --comment "Estudiante Liceo IEP"

Inmediatamente, habrá que establecer una contraseña para el inicio de sesión en OpenSuSE, y para ello, ejecutaremos lo siguiente:

passwd estudiante

Crearemos, de este modo, todos los usuarios de sistema que sean necesarios.

Al finalizar, será necesario registrar la contraseña de cada usuario del sistema en Samba, para permitir a los usuarios del sistema conectarse con equipos de la intranet (o red a la cual ya estén conectados), o a equipos "remotos" (hacia y desde Internet).

Para esto, escribiremos lo siguiente y pulsaremos "Enter":

smbpasswd -a estudiante

Y así haremos con todos los usuarios del sistema (OpenSuSE) que queramos que posean las capacidades que acabamos de comentar, es decir, que puedan conectarse desde y hacia otras máquinas (Samba), ya sean estas "cercanas" o "remotas".

Dar nombre al equipo.

En Linux, el "nombre de host" o "nombre de equipo", puede poseer más de una denominación.
Lo que generalmente se considera, es el "host name" (o "static name"), pero existen también el "pretty name", el "icon name" (o "transient name") y otros.

El "host name", es el clásico "nombre de red" del equipo: es el nombre por el cual la máquina será identificada en la red.

hostnamectl set-hostname "servidor-linux" --static

El "pretty name" es mas bien la descripción del equipo, es decir, una idea del uso que se le da a ese ordenador (o del tipo de trabajo que en él se desempeña), expresada en pocas palabras.

hostnamectl set-hostname "Máquina del proyecto ITEX" --pretty

El "icon name" es el nombre de... no sé, pero existe XD
Generalmente, se utiliza para indicar el tipo de computadora, por ejemplo: servidor de datos, servidor http, servidor dhcp, máquina de escritorio, etc.
También, generalmente, no se dejan espacios al crear este nombre. Los mismos se sustituyen por guiones (signos de "menos").

hostnamectl set-icon-name "servidor-local-de-datos"

Para ver los cambios (o para consultar todos los nombres de un equipo), podemos ejecutar el comando:

hostnamectl



Conectar a través de la terminal a redes inalámbricas.

A través del servicio wicked (el que ya se está ejecutando en OpenSuSE):

* * * PROCESO PENDIENTE * * *

A través de Gnome Network Manager:

nmcli d wifi connect <SSID> password <CONTRASEÑA> iface <INTERFAZ_DE_RED>

Dar IP estática al equipo.

Para ver las conexiones físicas de red (es decir: ver con qué nombres lógicos OpenSuSE identifica a las conexiones físicas), ejecutaremos:

ip link show (o ip link)

Con esto, obtendremos algo parecido a lo que aparece aquí:


lo = loopback.

El dispositivo de red loopback es una interfaz de red virtual. La (...) dirección (...) [que] se utiliza, de forma mayoritaria, [es] la '127.0.0.1' (...), [añadiéndose] '::1' para el caso de IPv6 ('127.0.0.1::1').
Las direcciones de loopback pueden ser redefinidas (...), y son usualmente utilizadas para probar la capacidad de la tarjeta interna [y ver] si se están enviando datos BGP [Border Gateway Protocol]. 
[BGP] es un protocolo mediante el cual se intercambia información de encaminamiento entre sistemas autónomos. (...) Los proveedores de servicio registrados en Internet [,] suelen componerse de varios sistemas (...) [de este tipo].

Texto tomado de Wikipedia, con modificaciones del autor del post.

eth0 = ethernet 0

Conexión física tipo "RJ45" (cableada común).

wlan0 = wireless lan 0

Conexión física tipo "wifi" (inalámbrica común).

Una vez que sepamos a qué dispositivo (lo, eth0, wlan0, etc.) queremos asignarle una dirección IP fija, ejecutaremos:

ip addr add xxx.xxx.xxx.xxx/yy dev zzz

Siendo:

xxx.xxx.xxx.xxx = bits de la dirección de red, tales como 192.168.6.100

yy equivale a la máscara de red, y normalmente es "/24" (por "8 x 3 = 24"), lo cual equivale a los 3 primeros bit "encendidos" (en 255) y el último "apagado" (en 0): 255.255.255.0.

zzz es uno de los nombres que aparece cuando ejecutamos ip link show, y responde al dispositivo físico con el cual queremos trabajar.

Ejemplo general:

ip addr add 192.168.6.100/24 dev eth0

Luego de esto, habrá que apagar y encender la conexión de red, a los efectos de actualizarla:

ip link set eth0 down
ip link set eth0 up

Para visualizar esta información y comprobar que todo está bien, podemos ejecutar:


ip addr show zzz

Ejemplo:

ip addr show eth0

También es útil el comando ip route para esto mismo.

Habilitar e iniciar demonios Samba y NetBios.

Generalmente, los protocolos "Server Message Block" (smb) y "NetBios Message Block" (nmb), no están habilitados al inicio del sistema (y por consiguiente, tampoco están encendidos).

Lo que debemos hacer, es correr los siguientes comandos, para habilitarlos:

systemctl enable smb
systemctl enable nmb

Ahora que están habilitados, hay que encenderlos:

systemctl start smb
systemctl start nmb

Para comprobar el estado de actividad de ambos protocolos:

service smb status
service nmb status

Imagen de salida de consola de los comandos "service smb status" y "service nmb status", en un equipo al cual no se le habían habilitado ni activado los protocolos smb y nmb previamente:


Imagen de salida de consola de los comandos "service smb status" y "service nmb status", en un equipo al cual se le acaban de habilitar (pero no de activar) los protocolos smb y nmb:


Imagen de salida de consola de los comandos "service smb status" y "service nmb status", en un equipo al cual se le acaban de habilitar y activar los protocolos smb y nmb. Ahora sí, el sistema está listo para comenzar a actuar como servidor de datos:



Parte II/III: preparación de Samba y NFS.

Creación y preparación de directorios.

Anteriormente, habíamos creado un directorio en el directorio raíz del sistema:

/datos

Algo bien importante es tener en claro que los permisos de acceso debería otorgarlos samba, según la información dentro de "smb.conf", no el sistema (OpenSuSE).
Imaginemos los casos siguientes:

Linux permite acceder a /datos, pero Samba no. Resultado: fracaso.
Linux no permite acceder a /datos, pero Samba sí. Resultado: fracaso.
Linux permite acceder a /datos, y Samba también. Resultado: éxito.
Evidentemente, quien obligatoriamente debe permitir el acceso es Samba, ya que los equipos que se conectarán al servidor, lo harán a traves de su protocolo.
Se pueden establecer credenciales de acceso a través de permisos de Linux y Samba, conjuntamente, pero eso implicaría un trabajo más pormenorizado que tendría que ver con la asignación de permisos diversos (lectura, ejecución, escritura) por usuario y por grupo en Linux, que no veremos en este artículo.
Por consiguiente, dejaremos "via libre" (en Linux) al directorio "/datos", y controlaremos su acceso únicamente a través de Samba, solo por temas de practicidad.

Como solamente el usuario "root" puede escribir en el mencionado directorio, haremos:

chmod 777 /datos

chmod = change mode.

Luego de esto, crearemos los directorios "00_info" y "datos_de_usuario", dentro de /datos:

cd /datos
md 00_info
md datos_de_usuario

cd = change directory.
md = make directory.

De nuevo, daremos via libre (en Linux) a los directorios recientemente creados, para que Samba controle totalmente el acceso al mismo:

chmod 777 00_info
chmod 777 datos_de_usuario


Respaldo y modificación del archivo Samba.

Conviene -siempre antes de manipular un archivo esencial para el sistema- realizar una copia del mismo (con otro nombre, lógicamente).
Haremos una copia, entonces, de "smb.conf", y la llamaremos "smbANT.conf":

cd /etc/samba
cp smb.conf smb_ANT.conf

cp = copy

Ahora que estamos trabajando sobre seguro, utilizaremos el editor "nano" para editar el archivo Samba:

nano smb.conf

Traduciremos los encabezados al español.

Cambiaremos [homes] por [directorios_home].

Cambiaremos [profiles] por [perfiles], y así con todos los encabezados.
Luego, continuamos con la primera línea de cada encabezado:

workgroup = WORKGROUP, por workgroup = aula (puede ser cualquier palabra, no precisamente debe ser "aula").
comment = Home Directories, por comment = Directorios 'home'.
comment = All users, por comment = Usuarios, y así con todas las líneas "comment" que haya.


Al final de todo, agregaremos:

[00_info]
          comment = Reglamentación e información del uso del servidor.
          path = /datos/00_info
          readonly = yes
          valid users = root,estudiante,sololectura

[datos_de_usuario]
          comment = Directorio de datos del servidor OpenSuSE Linux.
          path = /datos/datos_de_usuario
          readonly =no
          valid users = root,estudiante,sololectura

CTRL + O     ENTER
CTRL + X

Ahora es momento de ejecutar systemctl restart nmb (reinicio de NetBios), puesto que hemos alterado información en el encabezado [global] y hay que informárselo a toda la intranet (o a la red).

debido a que todos los demás encabezados también han sido editados, también debemos ejecutar systemctl restart smb para el reinicio de Samba. 

Ahora, pondremos un archivo de texto dentro del directorio 00_info (opcional).

cd /datos/00_info

Con "echo" escribiremos cada línea, y con ">>" nos aseguraremos de que lo que previamente existía en el archivo, no sea borrado por lo que estemos escribiendo a continuación.

Ejemplos.

I

echo "Hola." > info.txt
echo "¿Qué tal?" > info.txt

Resultado:

El archivo "info.txt" posee el contenido "¿Qué tal?", el cual sobreescribió (y por lo tanto, borró) al contenido "Hola." que existía previamente. ">", implica "sustituír".

II

echo "Hola." >> info.txt
echo "¿Qué tal?" >> info.txt

Resultado:

El archivo "info.txt" posee el contenido

Hola.
¿Qué tal?

Esto es así, porque el indicador ">>" implica "agregar".

Para crear un archivo con varias líneas de texto dentro, escribiremos cada una de las líneas siguientes, pulsando ENTER al final de cada una de ellas.


echo "Reglamentación e información importante." >> info.txt
echo "---------------------------------------- >>" info.txt
echo "Al utilizar este servidor de datos, ud se compromete a no alojar archivos" >> info.txt
echo "que no sean de trabajo, tales como películas, álbumes musicales, respaldos" >> info.txt
echo "personales, etc." >> info.txt
echo "Ud. también entiende que este es un servicio que no posee garantía, ya que" >> info.txt
echo "se brinda únicamente para la seguridad y flexibilidad del usuario." >> info.txt
echo "La no lectura de este documento, no es causa para que se efectúen reclamos" >> info.txt
echo "por falta del servicio, pérdida o alteración de datos, etc." >> info.txt
echo "Por otra parte, le aseguramos que mantendremos en condiciones el servidor." >> info.txt
echo "Al mismo, se le realizarán tareas de mantenimiento y respaldo de la información," >> info.txt
echo "de ser posible. Se lo protegerá de ataques externos, pero no del mal uso" >> info.txt
echo "de los usuarios habilitados." >> info.txt
echo "Disfrute a Linux. Sea bienvenido, and have a lot of fun!" >> info.txt





Parte III/III: configuración del cortafuegos.

Cortafuegos o firewall.


Habilitar e inhabilitar el cortafuegos.

systemctl enable firewalld
systemctl disable firewalld

Iniciar y detener el cortafuegos.

systemctl start firewalld
systemctl stop firewalld



Algunos comandos más a tener en cuenta.

init 6: reiniciar equipo
init 0: apagar el equipo

Este artículo está dedicado al grupo de 3er. año de Informática (egreso 2019) de Liceo IEP.

1era. actualización: 22/10/2019.
2a. actualización: 24/10/2019.
3a. actualización: 28/10/2019.



Fuentes consultadas:

Centro Linux

https://cubiclenate.com/linux/system-configuration/simple-samba-setup/

https://www.freedesktop.org/software/systemd/man/hostnamectl.html

https://doc.opensuse.org/documentation/leap/reference/html/book.opensuse.reference/cha.grub2.html

https://unix.stackexchange.com/questions/422104/make-grub-boot-on-default-without-waiting

https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-samba-daemons.html

https://www.linuxbabe.com/command-line/ubuntu-server-16-04-wifi-wpa-supplicant

https://www.initpals.com/suse/how-to-enable-or-disable-firewall-in-sles-15/

https://upcloud.com/community/tutorials/troubleshoot-network-connectivity-linux-server/

https://www.tecmint.com/linux-networking-commands/

https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-samba-servers.html

https://www.sergio-gonzalez.com/doc/10-ldap-samba-cups-pykota/html/samba-configuracion-estructura-smb.conf.html

https://es.wikipedia.org/wiki/Loopback

https://es.wikipedia.org/wiki/Border_Gateway_Protocol

https://www.howtogeek.com/177621/the-beginners-guide-to-iptables-the-linux-firewall/



martes, 14 de agosto de 2018

Creación de un servidor Linux de impresoras.

Hay personas que piensan que un servidor de impresión está constituido por un sistema operativo Windows, con una impresora compartida en él, pero eso no sería un servidor de impresión, sino un sistema de escritorio que comparte una impresora y no maneja los trabajos de impresión con la presteza necesaria. Si quieres imprimir más que unos pocos documentos al día, querrás que un servidor dedicado haga el trabajo.

Haremos esto con la ayuda de Linux, Samba y CUPS, por lo cual no se necesitará el hardware que se necesitaría para un sistema Windows Server moderno.
No se ejecutará una interfaz gráfica, por lo cual es muy probable que ya poseas a mano el hardware necesario.
En este tutorial, se supone que el lector ya tiene un sistema Linux configurado y funcionando correctamente.
El artículo originario estaba basado únicamente en Ubuntu, pero aquí se indicará cómo proceder, tanto para Opensuse como para Ubuntu, a modo de ser consecuentes con el motivo que nos llevó a traducir y modificar este documento, como también para respetar la intención del autor original.

Puedes usar cualquier distribución de Linux para esto, pero deberás modificar las instrucciones que aquí se brindan, para que se ajusten a tus necesidades.

Instalando "CUPS".

Lo más probable es que tu sistema ya posea el software CUPS instalado y ejecutándose; sino, su instalación será muy fácil de realizar.
Puedes abrir una terminal y escribir el comando correspondiente para la distribución Linux que poseas, o bien instalar CUPS (Common Unix Printer System) desde el gestor de software del sistema. Para Opensuse, sería sudo zypper install cups. Para Ubuntu, sudo apt-get install cups. Esto instalará todas las dependencias necesarias, así como algunos de los otros paquetes importantes asociados a CUPS (tales como los controladores Gutenberg).

Instalando "Samba".

Para instalar Samba, debes ejecutar el comando sudo zypper install samba (o sudo apt-get install samba). Todas las dependencias deben ser recogidas y atendidas por ese único comando.

Después de la instalación de las dos herramientas anteriores, cada "daemon" ("demonio" o proceso interno generado por estos programas) ya debería estar iniciado. Si no fuese así, o bien para referencia futura, el inicio de cada uno se puede hacer de este modo:

sudo service samba start

Ahora, comenzaremos la configuración real de ambos servicios.

Configuración de "CUPS".

Recomiendo instalar las impresoras desde archivos "ppd" (PostScript Printer Description) utilizando directamente CUPS, más allá de que si estás trabajando sobre un escritorio gráfico (KDE, Gnome, XFCE, LXDE, etc.), ya tendrás a mano alguna práctica herramienta para agregar tu impresora.
La herramienta de administración CUPS basada en la web, también funcionará si estás trabajando en un servidor sin consola. Para acceder a esta herramienta, dirige un navegador web a
Una vez que estés en esa página, haz clic en el botón "Agregar impresora" bajo el menú "Administración".



Puedes gestionar todos los aspectos de un servidor CUPS desde esta ubicación.

Después de completar los pasos en el "Asistente para agregar impresoras", asegúrate de ejecutar una impresión de prueba para asegurarte de que la impresora realmente está imprimiendo; de lo contrario, el trabajo que a continuación deberás realizar con Samba, no te será útil en este momento.

Configuración de Samba.

Ahora nos adentraremos en los aspectos prácticos de configurar el servidor de impresión. Lo creas o no, a menos que realmente estés ingresando a un servidor de impresión complejo, configurar Samba para que atienda a tus impresoras no es difícil. A continuación, te mostramos cómo compartir impresoras para que todos puedan usarlas (especialmente en un ambiente empresarial).

Primero, abre el archivo /etc/samba/smb.conf en tu editor de texto favorito -necesitarás privilegios de usuario root (o administrador) para editar y guardar este archivo-. Una vez que poseas el archivo abierto, busca estas dos secciones:

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

La primera sección es la entrada básica para compartir impresoras con Samba. Vamos a desglosar esto:

[printers]: nombre de la sección.
comment = All Printers: comentario visible desde la red.
browseable = no: Controla si este recurso es visualizable en la lista de recursos compartidos disponibles en "vista de red" y en la lista de navegación. Establezca esto en "sí" para que los usuarios puedan ver las impresoras enumeradas.
path = /var/spool/samba: ruta de la cola de impresión.
printable = yes: establézcalo en "sí" para permitir que los usuarios impriman.
guest ok = no: Seleccione "sí" para permitir que los usuarios invitados (cualquiera) impriman en la impresora.
read only = yes: si se establece en "no", los usuarios podrán crear y modificar archivos en el directorio del servicio.
create mask = 0700: cómo se manejan los permisos de la acción "crear archivo".

Para un servidor de impresión que permita a todos los usuarios (invitados) imprimir en las impresoras CUPS configuradas, lo único que necesitaría cambiar en la sección anterior son las entradas "navegable" e "invitado correcto".

La segunda sección de impresión que se muestra a continuación, debe incluir los controladores necesarios para que las máquinas Windows "cliente" que se conecten al servidor, puedan instalar las impresoras existentes en él.

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

La sección anterior debería estar bien tal como está, pero puede haber un problema dependiendo de su configuración: debe copiar todos los archivos del controlador en el directorio configurado anteriormente (en el ejemplo es /var/lib/samba/printers/). Si no configura "guest ok" en "yes", los usuarios pueden tener que utilizar obligatoriamente un nombre de usuario y contraseña de Samba para obtener acceso a los archivos necesarios. Si no puede abrir ese directorio para todos (estableciendo "guest ok" en "yes"), es posible que deba agregar usuarios a Samba utilizando el comando "smbpasswd". Si tiene muchos usuarios, podría ser mejor alojar esos archivos en una ubicación como /opt/printdrivers/ y luego establecer "guest ok" en "yes".

Después de realizar los cambios en el archivo smb.conf y haberlo guardado correctamente, debes reiniciar Samba con el comando "sudo service samba restart". Ahora, tu servidor Linux de impresión, debería estar administrando todas las impresoras conectadas con la ayuda del hardware (computadora) que probablemente ya tenías armado y funcionando.
No olvides instalar todas las impresoras que vayas a conectar al servidor. Esto, por más evidente que parezca, solo funciona con las que ya están instaladas, y con las que instales a partir de ahora, no con las que simplemente "conectes".

Artículo original escrito en enero de 2012 por Jack Wallen, de TechRepublic, y traducido, modificado y adaptado por Hugo Napoli en agosto de 2018.

miércoles, 16 de diciembre de 2015

Montar directorios remotos en directorios locales en Linux (válido para Opensuse y otros Sistemas GNU/Linux)

                    (P) Hugo Napoli, 2015                   

Después de montar nuestro servidor Puppy (ver entrada paso a paso), o bien luego de compartir carpetas en algún Sistema GNU/Linux o Windows de nuestra red local, necesitaremos el tan ansiado streaming: la capacidad de ver una película o escuchar una canción que está en otra máquina, con la misma agilidad que nos brinda ella, pero desde nuestro ordenador.
Dicho más claramente: no queremos copiarnos una película desde el servidor o carpeta compartida a nuestro Escritorio (por ejemplo) y reproducirla desde allí, sino que necesitamos reproducirla directamente desde el servidor, utilizando para ello la máquina que ya estamos utilizando.

Opensuse es un excelente Sistema para hacer streaming (en Español, "transmisión contínua" o "ininterrumpida").

Aquí dejo una guía paso a paso (fácil de comprender y seguir), después de haber intentado hasta (casi) el cansancio un modo de generar un método para realizar esto, que a su vez fuese sencillo de poder recordar.

También era necesario que funcionara (¡obviamente!), puesto que no hay tanta información sobre uno de los parámetros más importantes del comando mount.cifs que utilizaremos para todo esto, el cual se ocupa de indicarle al Sistema Operativo qué modo de seguridad utilizaremos para comunicarnos con el servidor (es la última opción que aparece en la última línea de comandos que aparece en el punto 7).

Sobre esto, mucho se puede decir, pero lo cierto es que, investigando, he aprendido que hay varias maneras de comunicarse con el servidor (empleando distintos protocolos de seguridad), y que ninguno parece ser el mejor por mayoría absoluta: todos estarían bastante equilibrados a nivel de ganancias/pérdidas, ventajas/desventajas, etc.
He elegido el modo ntlm en este caso (¡sí!, ¡NT Lan Manager!... ¡Sí! ¡Windows!), porque al compartir archivos en red, es sabido que hoy en día -en una misma red- podemos encontrarnos con Windows XP, Windows 7, Windows 8.1 y Windows 10... ¡al mismo tiempo!
Además, y con algo de suerte a nuestro favor, en esa red, encontraremos también algún servidor Linux, o al menos alguna máquina Linux "cliente" (¿Fedora? ¿Debian? ¿Ubuntu?) de toda esa diversidad de Microsoft que aún sobrevive. ¡Solo por esa razón he utilizado ntlm!, puesto que existen otros modos que tal vez sean más recomendables, como el ntlm2 u otros que incluso nada tengan que ver con Microsoft.
También he pensado que este artículo está orientado a un servidor de red LAN, no a un servidor que esté permanentemente conectado a Internet haciendo "stream" hacia cualquier cliente en cualquier parte del mundo...

Por mas información, ver este enlace de Wikipedia (en Inglés), prestando especial atención al apartado "Vulnerabilities": https://en.wikipedia.org/wiki/NT_LAN_Manager

Es muy importante poder recordar asociando, comprendiendo lo que se está haciendo; de otro modo, los comandos Linux terminan siendo una colección de ingredientes en una receta difícilmente realizable sin el libro de cocina.




1. En primer lugar, necesitaremos crear un directorio en el sistema local de archivos para poder montar en él los directorios externos que queramos.
Elegí el directorio preexistente "/mnt" para ello, ya que el propio Sistema Operativo lo utiliza para propósitos similares.
Dentro de "/mnt", entonces, crearemos un directorio llamado "montaje".
Podemos hacer esto con el siguiente comando:
sudo mkdir /mnt/montaje
El nombre "montaje", puede ser cambiado por cualquier otro, pero los ejemplos que siguen, ya están pensados para este nombre. No olvides de adaptar las líneas que siguen, si es que decides cambiar el nombre "montaje" por cualquier otro.

También se puede utilizar otro directorio en lugar de /mnt para montar nuestros directorios remotos. Por ejemplo, se podría introducir en la terminal o consola "mkdir /home/cristina/montaje", y los archivos montados resultantes, quedarían disponibles dentro del entorno de trabajo del usuario común, en este caso, el usuario "cristina".
Además, de este modo, no serían necesarios los atributos del usuario root (sudo...) para crear las ubicaciones para nuestra futura estructura de archivos y directorios remotos tratados como locales.

2. Ahora, necesitaremos asignar permisos de lectura, escritura y ejecución a "/mnt/montaje", y lo haremos con el siguiente comando:
sudo chmod 777 /mnt/montaje

3. Dentro de montaje, crearemos a su vez los directorios que sean necesarios.
Por ejemplo:
sudo mkdir /mnt/montaje/DIR_EXT_1_LOC

4. Observaremos que los paquetes "smbfs", "samba-client" y "cifs-utils", estén instalados.
De no ser así, podemos instalarlos ejecutando en la terminal:
sudo zypper install smbfs samba-client cifs-utils

5. Para ir asegurándonos de que todo marcha bien, podemos intentar listar los recursos compartidos en el servidor con el siguiente comando, el cual, si lo anterior viene dando sus frutos, nos mostrará una lista de todos los directorios compartidos:
smbclient -L [Dirección IP del servidor] -U [nombre_de_usuario_en_el_servidor]

o bien, por ejemplo,

smbclient -L 192.168.60.200 -U rodolfo

Al llegar a este punto, es posible que el Sistema responda con una de estas dos posibilidades, o bien con ambas:

WARNING: The "idmap gid" option is deprecated
WARNING: The "idmap uid" option is deprecated

Esto estaría haciendo referencia a desajustes en la fecha u hora del servidor respecto a la del ordenador que estamos usando, pertenencia a dominios Samba-Windows diferentes, u otras razones. Para mayor referencia, consulta este debate en Inglés en el foro Toolbox.com para Linux, si lo deseas.
No tenemos por qué alarmarnos. El comando "smbclient -L" funcionará, de todos modos.

6. En este momento, ingresaremos al servidor y a los directorios que van a ser montados antes de correr los comandos del siguiente paso, a los efectos de que el Sistema Operativo vaya reconociendo los subdirectorios y los archivos que están dentro de éste. Así, la espera será mucho menor tras ejecutar el comando de montaje que sigue.

7. Ya estamos listos para ejecutar el siguiente comando cada vez que se necesite montar un directorio remoto como si fuese local:
sudo mount.cifs //192.168.60.200/DIR_EXT_1 /mnt/montaje/DIR_EXT_1_LOC -o user=rodolfo,sec=ntlm

Algunas versiones de OpenSuse, necesitan escribir este comando de un modo ligeramente diferente (ver alteraciones en verde):

sudo mount -t cifs //192.168.60.200/DIR_EXT_1 /mnt/montaje/DIR_EXT_1_LOC -o user=rodolfo,sec=ntlm

La explicación del comando es la siguiente:
  
sudo mount.cifs //[Dirección IP del servidor]/[Directorio dentro del servidor] /mnt/montaje/[Directorio creado manualmente dentro de "montaje"] -o user=[nombre de usuario en el servidor],[modo de seguridad]

La contraseña que habrá que introducir en la terminal (además de la contraseña de root), será la del usuario "rodolfo" en el servidor, no la de ningún usuario local.

También es posible introducir la contraseña de dicho usuario en la misma línea, en este orden y de este modo:

sudo mount -t cifs //192.168.60.200/DIR_EXT_1 /mnt/montaje/DIR_EXT_1_LOC -o user=rodolfo,password=#RoDoLfO45#,sec=ntlm

En este caso, estamos suponiendo que la contraseña del usuario "rodolfo", es "#RoDoLfO45#"-

NOTA: tras un reinicio del Sistema, deberemos ejecutar únicamente el paso 7, o bien, para un mejor rendimiento en el acceso a los archivos, repetiremos los pasos 6 y 7 conjuntamente.




Aquí dejo un script en bash (llamado "Jinete", por lo de "montar archivos") creado por mí. Puedes modificarlo a tu gusto, mencionando siempre (así como lo hago yo mismo) de dónde obtuviste el material.
El script es muy útil si lo modificas según tus necesidades.
Al ejecutarlo, monta dos directorios en /mnt/montaje, solicitando para ello dos contraseñas: la de root, claro está, y la del usuario con el que accedes al servidor.
Finalmente, el mismo abre el navegador de archivos, mostrando los directorios montados.




jueves, 17 de septiembre de 2015

Crea tu propio servidor GNU-Linux en unos instantes con Puppy Linux

          (P) Hugo Napoli, 2015 - Actualizado en 2016          

Toda la información que aquí figura, ha sido comprobada exitosamente en la distribución Puppy Slacko, versión 5.7.

Puedes ir haciendo lo siguiente, mientras lees este artículo:
- Ir a la página de descarga de Slacko y comenzar a descargarlo:
http://slacko.01micko.com/download.html
- Entrar directamente a alguno de los servidores disponibles para la descarga de Puppy Slacko:
Ibiblio o VCU Richmond (Estados Unidos)
Aarnet o Internode (Australia)
Nluug (Países Bajos)
Universidad de Creta (Grecia)
- Ir descargando Puppy vía torrent:
http://www.murga-linux.com/puppy/viewtopic.php?p=763681#763681
- También puedes, claro está, dejar de leer el artículo y conocer más sobre Puppy Slacko en su página web oficial:
http://slacko.01micko.com/index.html 

¡Woof, woof!



Requerimientos de hardware

Aunque hay demostraciones efectivas de funcionamiento con hardware obsoleto y muy poco potente, veremos los requerimientos mínimos indispensables para Puppy Slacko 5.7, en virtud de la tarea que le encomendaremos: la de correr un servidor.

El mínimo hardware aconsejable, a nuestro entender, es el siguiente:

- Espacio en disco para la instalación de Puppy: entre 3 y 4 GB.
- Memoria RAM: 512 MB
- Procesador: Pentium III (entre 900 MHz y 1 GHz) o AMD K7 (entre 900 MHz y 1,2 GHz).
El ordenador en donde se ha instalado y configurado el servidor Puppy, y que ha servido de fundamento para todo lo que aquí se ha escrito, posee las siguientes características de hardware:

Disco duro: 260 GB
Memoria RAM: 2 GB
Procesador: Intel dual core de 2,4 GHz
Puppy funciona con hardware antiguo tanto como con hardware de última generación. Posee soporte para discos IDE, SATA y SSD.

NOTA IMPORTANTE: un servidor, usualmente no necesita teclado, ratón ni monitor, así como tampoco entorno gráfico de ningún tipo. Entendiendo esto como una realidad muy frecuente, y tal vez la más deseable en cuanto a seguridad y funcionalidad, nos basaremos en estos principios para la construcción del artículo.




Configuración de hardware para un servidor: el sistema BIOS

Hay algunos aspectos importantes a considerar cuando se monta un servidor.
Este es un tipo de máquina que estará funcionando las 24 horas del día, los 365 días del año, y en el caso de un eventual corte de energía, no debe quedar apagado hasta que alguien se de cuenta y quiera ir a encenderlo.
No olvidemos que generalmente, los servidores, son máquinas aisladas físicamente de los usuarios, y deben estar programadas para autorecuperarse de algunas situaciones desfavorables, como por ejemplo, los cortes de energía.
Si bien un servidor debe estar conectado siempre a una UPS, al igual que los módem, enrutadores, conmutadores, concentradores, etc. (modems, routers, switches, hubs, etc.), también hay que prever que tal vez esto no sea así, o que, tras un corte de energía prolongado, la UPS se quede sin carga y el servidor se termine apagando.
Hay una configuración dentro del sistema BIOS que se puede ajustar para que al recibir energía, el servidor encienda solo.

Para esto, entraremos en la BIOS pulsando durante el arranque la tecla correspondiente (suele ser F2 o SUPR, pero esto varía según el fabricante y el modelo de la placa madre).


Nos desplazamos hasta la sección de configuración de eventos de energía.


Como vemos, la opción "Encendido luego una falla de energía" (Power on after power fail) está en "Apagado" (off). Por defecto, esto casi siempre es así, como se puede observar en la imagen.


Debemos cambiar el estado de "off" (apagado) a "on" (encendido).


De ahora en adelante, si el suministro de corriente se interrumpiera, al reanudarse, la máquina se encendería, y con ella, también nuestro querido Puppy Linux.


NOTA IMPORTANTE #1: para evitar errores en el arranque, hay otra opción que es la de "funcionar sin teclado". Es importante configurar esta opción, ya que, al encender, las máquinas buscan un teclado, y de no encontrarlo, se interrumpirá el arranque, mostrando en pantalla un mensaje de error referente a que no se ha encontrado el teclado.

NOTA IMPORTANTE #2: por motivos de seguridad, y para que nadie instale otro sistema, formatee los discos, cambie la hora, el orden de arranque, las opciones de energía, seguridad, etc., es recomendable colocar una contraseña de ingreso a la BIOS.


Luego seleccionaremos la opción "Guardar y salir" (save and exit setup).



Ahora es el momento de colocar el pen drive conteniendo a Puppy Linux, reiniciar la máquina y pulsar la tecla correspondiente para arrancar desde Puppy. Las teclas que hacen posible esta acción, suelen ser F9, F11 o F12, pero esto también es variable, como se explicó más arriba para el ejemplo de acceso a la BIOS.


En segundos, arrancará Puppy Linux. Lo más complicado, ya pasó.


Preparación de discos y particiones en donde será instalado Puppy Linux

Una vez más, el programa que utilizaremos para dicho fin, será gParted.
Puedes visitar su página web oficial y descargarlo libremente haciendo clic aquí.

Puppy ocupa muy poco espacio en un pen drive arrancable (bootable). Actualmente, puedes crear un pen drive de estas características con una unidad de tan solo... ¡500 MB o menos!
Luego de haber sido instalado, el Sistema podría ocupar poco más que eso, lo que hace que aún puedan utilizarse viejos discos IDE de 4 GB solo para la instalación de Puppy, y un disco adicional de tamaño mucho mayor para los datos de terceros que serán alojados en el servidor.

En el ejemplo que sigue, utilizaremos un solo disco SATA de 260 GB, y lo particionaremos en 2, asignando así una partición para Puppy (de 4 GB), y el resto, para datos de usuarios.

En primer lugar, crearemos las dos particiones mencionadas, ambas con el sistema de archivos ext4 nativo de Linux.




SECCIÓN DE LA ENTRADA EN CONSTRUCCIÓN



Impedir que se inicie el escritorio (iniciar en modo consola o terminal):


Para remover el inicio automático del usuario root, y así evitar que el entorno gráfico encienda y esté disponible "por defecto", haremos lo siguiente:

localizar y abrir el archivo /etc/inittab, el cual contendrá la siguiente información (puede haber pequeñas variaciones):


::sysinit:/etc/rc.d/rc.sysinit
tty1::respawn:/sbin/getty -n -l /bin/autologinroot 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
tty3::respawn:/sbin/getty 38400 tty3
::ctrlaltdel:/sbin/reboot

Sustituír la línea resaltada con fucsia -la cual le indica a Puppy que el usuario root posee registro e inicio automáticos (autologinroot)- por esta:

tty1::respawn:/sbin/getty 38400 tty1

Guardar los cambios.

A partir de este momento, cada vez que inicie Puppy Linux, mostrará la terminal a pantalla completa (no estará disponible de forma automática el Escritorio). Para acceder al modo gráfico, habrá que ingresar el nombre de al menos un usuario con privilegios de root, seguido de su contraseña. Inmediatamente, el servidor "x" (o entorno gráfico) se iniciará.

Luego de haber trabajado en (o con) el servidor "x", podemos, en lugar de cerrar la sesión o apagar el ordenador, "salir a consola" (exit to prompt).

Obtendremos entonces una pantalla negra esperando a la introducción de nuestras órdenes.

Si queremos volver a ver el Escritorio, entorno gráfico o servidor x, bastará con volver a identificarnos con privilegios de root (usuario y contraseña), e iniciar el motor gráfico "a mano" con el comando:

startx



 

Cambiar las contraseñas de los usuarios:


El comando que se utiliza para esto, es "passwd", seguido del usuario al cual queramos cambiarle la contraseña. Por ejemplo, si quisiésemos cambiar la contraseña woofwoof que tiene por defecto el usuario root en Puppy Linux, introduciremos el siguiente comando en la consola o terminal:

passwd root

El Sistema, mostrará el mensaje

changing password for root

lo cual indica que nuestra orden está siendo procesada, y a continuación, nos pedirá que ingresemos la nueva contraseña 2 veces. Generalmente, los caracteres que estemos introduciendo, no serán visibles (tendremos la sensación que no estamos escribiendo nada, o que el teclado no está funcionando... pero sí que funciona, y muy bien).




Impedir que se borren archivos o directorios desde las terminales remotas:


En casi cualquier Sistema Operativo, pueden otorgarse permisos de lectura o escritura sobre directorios enteros, carpetas individuales, o archivos.
Esto es necesario, para que, ya sea por accidente o mala intención, nadie pueda eliminar el contenido de un directorio entero, o una carpeta, o algún/os archivo/s.

He redactado un artículo que muestra cómo hacer esto mismo. Consúltalo, si es de tu interés, siguiendo este enlace dentro de mi blog:

http://hugonapoli.blogspot.com.uy/2015/07/importancia-del-comando-chattr-en.html




Instalación del paquete "Samba", para que Puppy se comunique con cuanta máquina esté a su alcance.


Existen muchos modos de configurar Samba, ya sea gracias a un paquete con entorno gráfico, o bien configurando un archivo de texto plano que será el que lea Samba cada vez que lo necesite, y hasta por consola. ¡Quién sabe si existen más modos!
Pero lo cierto es que en el mundo "Linux", cada maestrito parece tener su librito.
Y esto es válido, si llegamos a los mismos objetivos por distintos caminos.
Este es mi método. No digo que no existan otros, o que no me falte conocimiento, o que este sea el mejor, ni mucho menos. Solo digo que funciona.
Veamos cómo.

En primer lugar, la distribución Puppy Linux, si bien hoy es independiente en su funcionamiento del resto de los sistemas operativos de su propia familia, no ha sido escrita totalmente desde cero, ni deriva exclusivamente de un solo gran Sistema "padre" dentro de los Sistemas GNU-Linux.

Existen varias ediciones de Puppy, y su grado de compatibilidad con ciertos paquetes, a veces es muy bajo. Puppy toma paquetes de varias distribuciones, siendo sus proveedores más importantes los Sistemas GNU-Linux Slackware, Debian, Ubuntu y Arch Linux, entre otros posibles.
Por este mismo motivo, es que hay que prestar especial atencoión al paquete Samba a instalar, en función de la distribución Puppy que vayamos a utilizar.

Para Puppy Slacko 5.7, uno de los paquetes que funciona a la perfección es
samba_full-3.6.3-s.pet
el cual se puede descargar desde varios servidores (aquí dejo 4 sitios de descarga):

#1: http://distro.ibiblio.org/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet
#2: http://ftp.vim.org/ibiblio/distributions/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet
#3: http://mirror.vcu.edu/pub/gnu_linux/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet
#4: http://ftp.nl.freebsd.org/pub/pub/ibiblio/distributions/puppylinux/pet_packages-slacko/samba_full-3.6.3-s.pet






Creación de usuarios para ingresar al servidor Puppy desde otras máquinas.


Una vez instalado y configurado Samba (posee interfaz gráfica y es muy intuitivo, siendo poco y opcional lo que hay que configurar), iremos a la consola o terminal del Sistema, y crearemos los usuarios.

Nota importante: para crear un usuario Samba, primero hay que crear dicho usuario en el Sistema.
Es decir, que el usuario que queramos crear con Samba, previamente debe existir en Puppy.
Samba y Puppy son dos cosas bien diferentes, pero necesitan de los mismos usuarios para comunicarse entre sí, y con otros ordenadores.

De modo que, primero que nada, procederemos a crear un usuario en Puppy, y luego lo volveremos a crear para Samba.

En la terminal introduciremos el siguiente comando para crear al usuario pepe

adduser pepe

el Sistema contestará:

adduser: /home/pepe: No such file or directory

Esto significa que aún no ha sido creado el directorio para el usuario pepe dentro de /home. Es algo normal en Puppy, por su constitución interna. Este sistema no es multiusuario, pero aún así, no estaremos impedidos de crear usuarios para Samba, tal como estamos viendo.

El Sistema, también nos dirá:

Changing password for pepe
New password:

Esto indica que nos está pidiendo que creemos una contraseña para pepe, la cual introduciremos, y al pulsar Enter, nos la volverá a pedir:

Retype password:

Al finalizar, nos dará el mensaje

Password for pepe changed by root

lo cual indicará que todo ha salido bien, y el usuario pepe ya es un usuario de Puppy. Ahora, solo resta añadirlo a la lista Samba, para poder entrar al servidor desde otras máquinas (no importa si son sistemas GNU-Linux, Apple o Windows) con el usuario pepe.

Nuevamente en la terminal, introduciremos otro comando similar:

smbpasswd -a pepe

Ahora, quien nos contestará, será Samba:

New SMB password:

Introduciremos entonces la misma contraseña que ya le asignamos a pepe para Puppy. Samba pedirá una vez más la contraseña de pepe:

Retype new SMB password:

introduciremos nuevamente la misma contraseña que antes, y finalmente el reporte de Samba será la siguiente línea:

Added user pepe

mostrando así que pepe está habilitado como usuario Samba, además de ser un usuario Puppy.





Configuración del teclado en Español.

Si bien el artículo está encarado pensando en una máquina remota, independiente, siempre en línea y aislada de los usuarios, la tarea de configuración del teclado en Español no deja de tener sus pequeñas (que pueden convertirse en grandes) complicaciones.

Para evitar esto a quien tenga este problema, indicaremos los pasos a seguir para que Puppy Linux reconozca a la perfección, tanto los caracteres más usuales de este idioma, como las teclas exactas que los reproducen.

1.  Abriremos el asistente general de configuraciones desde Menu / Setup / Puppy Setup.
Allí, seleccionaremos "Language / Country", y
como primera opción, "es_UY Spanish, Uruguay",
como segunda opción "America/Montevideo",
y como tercera opción "es (Spain)".
Pulsamos el botón "Ok".

2. En el mismo asistente, elegiremos ahora la opción "Mouse / Keyboard", y luego "Advanced configuration". El sistema nos mostrará cierta información que siempre es bueno leer, y después presionaremos "Ok".
Dentro de la opción "Keyboard model", seleccionaremos "pc102 Generic 102-key (Intl) PC".
Dentro de la opción "Layouts", a la pregunta que nos hará el sistema acerca de si queremos reemplazar el mapa existente o añadir más mapas, pulsaremos "Change", puesto que no queremos añadir más mapas de teclado, sino eliminar todos lo que haya y dejar uno solo, que será el único útil para nosotros.
Entonces, buscaremos "latam Latin American", lo marcaremos y pulsaremos "Ok".

3. Entraremos también en la sección "Layout Variants", y dentro de ella, seleccionaremos "2: sun dead keys latam: Sun dead keys" y presionaremos "OK".

4. Presionaremos el botón "Exit" en la ventana más pequeña, el botón "Quit" en la siguiente, y procederemos a reiniciar el servidor X (el motor gráfico), siempre y cuando no haya aplicaciones corriendo en segundo plano, como descargas en curso o programas procesando datos. Haremos el reinicio del servidor X desde "Menu / Leave / Restart graphical server".


Creación de accesos directos a las aplicaciones que están instaladas.

Puppy Linux no es un sistema que permita arrastrar iconos de aplicaciones desde su menú hacia el Escritorio (o hacia cualquier otra ubicación). Sí está permitido crear accesos directos de aplicaciones que estén en otra ubicación, ademas de poder estar también en el menú.

Todas las aplicaciones que aparecen en el menú, también están en el directorio /usr/share/applications

Únicamente hay que acceder a ese lugar, y proceder a arrastrar los archivos ejecutables hacia algún lugar, con lo cual, automáticamente Puppy creará los accesos directos.


Configuración del tiempo de reinicio del equipo tras ocurrir un "auto fsck".

Cada vez que el Sistema es apagado de forma incorrecta (o bien, habiendo transcurrido un cierto número de veces de sucesivos apagados incorrectos), se produce un evento que dispara una rutina: el conocido file system check, o "fsck", y tras el siguiente encendido, Puppy Linux buscará errores en el sistema de archivos, y los corregirá. El siguiente paso será una espera de 4 minutos para un "auto reinicio", y este tiempo de espera puede ser perjudicial en el caso de los servidores estudiantiles creados con Puppy Linux, puesto que los estudiantes (y los profesores), en teoría, no tendrían por qué saber cómo funciona dicho servidor. Con que sepan que hay uno funcionando correctamente y que casi no se necesita intervención humana alguna para su mantenimiento, creo que es suficiente.
Pues bien, he decidido cambiar los 4 minutos por 10 segundos, para que las consecuencias del "fsck" no lleguen al usuario.
Para ello, hay que modificar un par de líneas de código en el archivo "init" que hallaremos en el directorio "/sbin".

La primera de las dos líneas a modificar, es la que establece el tiempo de espera tras un fsck automático:

read -t 240 abcdef

Lo que haremos, será alterarla para que quede así:

read -t 10 abcdef

Ahora, buscaremos la línea complementaria, que es la que simplemente le informa al usuario de la espera que deberá respetar una vez finalizada esta tarea de bùsqueda de errores en el sistema de archivos:

echo 'Computer will reboot in 4 minutes, else press ENTER for immediate reboot.

La cambiaremos, para que los cambios realizados coincidan con este aviso:

echo 'Computer will reboot in 10 seconds, else press ENTER for immediate reboot.'

También podemos traducirla al Español, y tomarnos un tiempito, ya, de paso, para traducir el resto del texto que está en inglés en dicho archivo:

echo 'El ordenador se va a reiniciar en 10 segundos. Puedes presionar la tecla ENTER, para un reinicio inmediato.'

Consejo: no utilices comillas al alterar cadenas de texto dentro de este archivo. Las mismas pueden ser malinterpretadas y provocar errores en el arranque del Sistema.

Se agradece la colaboración del usuario "MochiMoppel", del foro de Puppy Linux en Inglés, por su valiosa contribución en un breve pero acertado intercambio que tuvimos, el cual se puede visualizar aquí:

http://www.murga-linux.com/puppy/viewtopic.php?p=896938#896938




Fuentes consultadas:

http://puppylinux.org/wikka/autologin

https://en.wikipedia.org/wiki/Puppy_Linux

http://www.murga-linux.com/puppy/viewtopic.php?p=896938#896938




Este artículo no hubiera sido escrito con tanto detalle, ni hubiera sido probado y validado tan a fondo, ni pulido de forma tan rigurosa, si no hubiera pasado por una instancia seria de evaluación.

Los estudiantes del grupo BHSoftware
- María Pía Barrero
- Emmanuel Quintana
- Guillermo Rodríguez
- Joaquín Russi
han decidido utilizar a Puppy para su proyecto de egreso de 3er año de EMT de Informática, en la creación de un servidor Puppy Linux, utilizando una máquina de la institución de enseñanza pública UTU Solymar Norte para su construcción, y demostrando, como grupo, el manejo consciente de las herramientas y procedimientos que han sido descritos aquí, así como la seriedad, capacidad y virtudes individuales en la concreción del objetivo.


Dicho proyecto, será evaluado por el profesor de la asignatura de Taller. 

El trabajo genuino de los estudiantes, junto con la utilización de software libre para la generación de herramientas robustas y el hábito informático saludable, es el camino para el porvenir tecnológico.

¡Felicitaciones, muchachos!



NOTA FINAL: No se garantiza que estos procedimientos puedan funcionar a la perfección para LegacyOS, Quirky, XOPup, o para las decenas de Puppy modificados que puedes consultar haciendo clic aquí.