Mostrando las entradas con la etiqueta chmod. Mostrar todas las entradas
Mostrando las entradas con la etiqueta chmod. 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/



jueves, 29 de septiembre de 2016

Permisos sobre carpetas y archivos en Windows. Guía paso a paso.

                    (P) Hugo Napoli, 2016                   

Permisos sobre carpetas y archivos en Windows.

Este artículo ha sido escrito debido a un ajuste que es necesario hacer a un programa creado por mí mismo, el cual necesita ser protegido contra borrado y edición para brindar mejores resultados en el tiempo, pero los conceptos aquí aplicados, son útiles para cualquier otra situación.

Los usuarios Linux sabemos que en ese otro mundo esto es mucho más sencillo. Basta con una instrucción chmod, por ejemplo, desde la consola, para conseguir el propósito deseado.

En Windows no es tan sencillo, más allá de las sentencias o comandos que puedan aplicarse desde su consola. Windows está más orientado al entorno gráfico, y por lo tanto, es más frecuente el uso de menús y ventanas que el de la consola, que por cierto, no es capaz de realizar todo lo que es posible desde el entorno gráfico.

Vamos allá, entonces.



1. En primer lugar, accederemos a las propiedades de la carpeta, haciendo clic derecho sobre la misma y seleccionando la opción "Propiedades", o bien haciendo clic izquierdo sobre ella y pulsando la tecla "menú" del teclado.

Allí, iremos a la pestaña "Seguridad", seleccionaremos el renglón "Administrators" (o "Administradores"), y pulsaremos el botón "Opciones avanzadas".


2. Entonces iremos a la pestaña "Permisos" (está seleccionada por defecto), y otra vez seleccionaremos el renglón "Administrators".

Marcaremos la opción "Reemplazar todas las entradas de permisos de objetos...", y por último, haremos clic en el botón "Deshabilitar herencia".


3. En la ventana que surgirá, elegiremos la primera opción, es decir, "Convertir los permisos heredados en permisos explícitos..."


4. Una vez más, haremos clic en el renglón "Administrators", y pulsaremos el botón "Editar".


5. Necesitaremos pulsar el hiperenlace "Mostrar permisos avanzados", para desocultar las opciones más importantes en este punto.


6. En el renglón "Tipo", colocaremos la opción "Denegar".
En el renglón "Se aplica a", elegiremos "Esta carpeta, subcarpetas y archivos".
En "Permisos avanzados", seleccionaremos absolutamente todo lo seleccionable.


7. Eliminaremos el grupo "System", posicionándonos en el renglón correspondiente y pulsando el botón "Quitar".


8. Finalmente, seleccionaremos el renglón correspondiente al usuario al cual queremos aplicarle los permisos necesarios (normalmente es quien iniciará sesión como usuario "normal" en el sistema), y pulsaremos el botón "Editar".

Si dicho usuario no aparece, podemos agregarlo pulsando el botón "Agregar".



9. Ahora, en el renglón "Tipo", seleccionaremos "Permitir" (opción por defecto).
En el renglón "Se aplica a", pondremos la opción "Esta carpeta, subcarpetas y archivos".

En "Permisos avanzados", seleccionaremos únicamente las 6 opciones que en la figura se muestran.


10. Podemos ver claramente cómo el usuario "Estudiante" tiene permiso de lectura y ejecución (pero no de borrado ni de edición), los administradores no tienen ningún permiso sobre dicha carpeta ni su contenido, y ningún otro usuario (si siquiera "System") puede acceder, borrar, editar, ingresar ni cambiar nada.


Todas las capturas de pantalla son personales, y le corresponden al autor del artículo.


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