jueves, 10 de junio de 2021

Los niveles de usuarios en Mac (habilitar root)

 El sistema operativo macOS nos ofrece 5 niveles de seguridad (en realidad son 3 que parecen 5, o más bien, 5, pero sólo se muestran 3), mejor hay que explicarlo más a detalle:



macOS ofrece tres niveles de usuario final: 
  • Administrador
  • Estándar
  • Para compartir
Los usuarios Administradores son aquellos que tienen permiso para instalar aplicaciones, borrarlas, cambiar la configuración del sistema, etc. Tiene libertad casi total.
Los usuarios estándar son aquellos que solamente tienen permiso total sobre sus propios archivos.
Los usuarios para compartir, compartidos o shared son los más limitados: solamente pueden ver los archivos o fólders que han sido compartidos, y se les puede limitar para que solamente los puedan leer. Los usuarios para compartir se usan para macs en redes, donde los usuarios de otra mac se pueden conectar a la tuya, entrar a sesión usando el usuario para compartir y ver solamente los archivos que has compartido, por eso son tan limitados.
El nivel de cada usuario se debe especificar cuando se crea, solamente los usuarios estándar se pueden convertir en administradores. La creación de usuarios se hace en Preferencias del sistema → Usuarios y grupos:

En esta pantalla, la opción para agregar a un usuario (el símbolo +) aparece ghosteado (bloqueado):

Para desbloquearlo hay que hacerle click al candado y escribir el password del usuario administrador:

Desbloquear la pantalla "Usuarios y grupos" también permite que un usuario estándar obtenga permisos de administrador mediante la opción "Permitir al usuario administrar esta computadora".


Una vez desbloqueado se puede dar click al botón "+" para crear a un usuario. Esta ventana también permite asignarle un nivel de acceso al usuario:


El cuarto nivel de acceso es llamado usuario "Huésped" o "Guest". Igual que el usuario "Para compartir", tiene accesos muy limitados: la diferencia principal con un usuario compartido es que el invitado está pensado para accesar desde la misma computadora. Esto está pensado para usuarios ocasionales que necesiten usar la computadora o cuando los niños quieran jugar algún videojuego en la mac. En casos así es buena idea cerrarles el paso al acceso a documentos de contabilidad personal, passwords o prohibir el acceso a sitios porno.

El usuario invitado ya viene instalado y configurado en todas las macs. Solamente hay que activarlo en la ventana "Usuarios y grupos",


El quinto nivel de acceso es el superusuario o "root". A primera vista, el usuario root parecería el mismo que el usuario "Administrador"; la diferencia estriba en que el usuario administrador tiene todos los permisos sobre usuarios, las aplicaciones y accesos, pero no sobre el funcionamiento interno del sistema, todos esos eventos y comandos extraños que solamente se pueden ver con la terminal.
Aquellos geeks y nerds experimentados en los ambientes Linux y Unix, ya sabrán que el superusuario root es todopoderoso dentro del sistema, pero también es increíblemente peligroso  porque puede borrar o dañar a un sistema hasta el grado que haya que reinstalar para que vuelva a funcionar. Apple lo sabe y ha diseñado macOS para que sea lo más seguro posible. En macOS, el usuario root existe, pero está deshabilitado por default. Solamente si se necesita, puede uno habilitarlo.
Para habilitar el usuario root, hay que meterse a la ventana de "Usuarios y grupos", desbloquearla y seleccionar la opción "Opciones de inicio":

                   

En esta ventana, oprimir el botón "Acceder" de la opción "Servidor de cuentas de red". Se abre la siguiente ventana:

Oprimir el botón "Abrir Utilidad de Directorios". Se abre la ventana de utilidad de directorios. Esta ventana está bloqueada, así que hay que desbloquearla con el password de algún usuario administrador:

Una vez desbloqueada, uno puede activar al usuario root a través del menú "Edición".

Al activar el usuario root, el sistema lanza una ventana para que uno pueda teclear su password.


Una vez activo y con su password definido, el sistema lo reconoce como otro usuario más. Por seguridad no le asigna imagen ni muestra el nombre "root" o "Usuario root" o algo, la pantalla de login de usuarios lo muestra como "Otros" ("Other...", cuando se activa el usuario root, su configuración toma todos los valores por default, entre ellos el idioma):

El usuario root es muy poderoso, pero muy especial: Apple permite su activación solamente para administración del sistema. No le asigna fólder home, ni se puede configurar su ambiente. Aunque teóricamente tiene todos los permisos sobre todos los archivos del sistema, estos solamente son válidos en la Terminal, dentro de Aqua, la GUI de macOS, el usuario root está muy limitado.

Una vez activo, puede uno entrar a sesión de root y lanzar la terminal. Dado que usar root es bastante peligroso si no sabe uno exactamente lo que está haciendo, se recomienda entrar a sesión como algún administrador del sistema, y desde la terminal hacer un su o su –


Por último, se recomienda fuertemente desactivarlo cuando se haya dejado de usar.


Fecha espacial: 6765.12

viernes, 21 de mayo de 2021

Postgres en Mac: primeros pasos de ciberseguridad

La instalación de postgreSQL crea automáticamente un usuario postgres para uso interno del sistema, no para uso del usuario DBA.

Cuando uno piensa en ciberseguridad, generalmente uno se imagina en las más recientes técnicas de ciberescudos, vacunas y escaneos profundos de las computadoras; algo así como las mejores tecnologías de contraespionaje. Dejando todo lo hollywoodense a un lado, el 90-95% de la ciberseguridad es puro sentido común y utilizar una configuración pensada en técnicas recomendadas, nada más.
La ciberseguridad en PostgreSQL empieza con una configuración correcta.

Esto se puede comprobar en la terminal con el comando:

dscl . list /Users | grep -v '_'

Y se puede comprobar su "accesibilidad" al usuario final en Preferencias del Sistema → Usuarios y Grupos. Los usuarios que aparecen ahí son los llamados "accesibles" al usuario:

La instalación original de EDB instala un usuario postgres solamente accesible para el sistema. Yo creé un usuario postgres antes de la instalación para evitar problemas.

El problema de "accesibilidad" puede evitarse creando un usuario postgres antes de empezar el proceso de instalación y, de hecho, ejecutar la instalación con este usuario.

Otra característica de la instalación mediante el paquete EDB de postgrreSQL en Mac es que instala y configura scripts para el inicio automático del servidor (también llamado motor de DB) de PostgreSQL. Esto es deseable a veces y a veces no. Casi siempre es deseable que el servidor de PostgreSQL inicie automáticamente con la máquina y además que el DBA tenga control sobre el inicio o parada (reseteo) del servidor.
El archivo de inicio automático es:

     /Library/LaunchDaemons/com.edb.launchd.postgresql-13.plist

los. archivos .plist en macOS son archivos de configuración y son simplemente archivos de texto en formato XML 1.0. Se pueden editar manualmente con cualquier editor de texto. Las líneas de texto que controlan el inicio automático del servidor PostgreSQL son:
 <key>RunAtLoad</key>

     <true/>

si se quiere cambiar la configuración de default, arrancando al inicio, se debe cambiar la línea <true/> a <false/>.


Hay que notar que el archivo pertenece a root, si se quiere editar este archivo, hay que iniciar sesión como administrador del sistema, habilitar el usuario root, iniciar como usuario root, entrar a terminal y editar el archivo. Técnicamente la edición podría hacerse con la sesión de cualquier otro usuario mediante su o sudo, pero hacerlo directamente en sesión de root es más fácil y directo.

Pantalla de inicio de sesión del usuario root.

Nota: hay que recordar que en macOS el usuario root está deshabilitado por default. Para poder iniciar sesión con root primero hay que habilitarlo. Apple proporciona esta facilidad en macOS para poder hacer administración en el sistema, pero también hay que deshabilitarlo cuando se termina de usar. Dejarlo habilitado es una grave violación a la ciberseguridad.

Una vez editado el archivo .plist de postgresql, se puede reiniciar la Mac y revisar procesos en la terminal, el servidor postgres ya no debe estar arriba. O se puede reiniciar el motor de postgres mediante

     pg_ctl stop -D/Library/PostgreSQL/13/data y
  pg_ctl start -D/Library/PostgreSQL/13/data

Reinicio del servidor PostgreSQL en macOS; una de las ventajas  del arranque mediante comando, es que uno puede controlar los diversos parámetros de apertura, por ejemplo, la creación de logs.


Fecha espacial 6746.97

viernes, 26 de febrero de 2021

Instalación de Postgresql en la Mac

El empaquetado para instalación en Macintosh lo hace la empresa Enterprise DB (EDB).

La versión más reciente de PostgreSQL es la 13.2

El primer paso es bajar el DMG (Disk IMage, equivalente al formato ISO):


Abriendo el archivo DMG (haciéndole doble click, por ejemplo):

Y corriendo la app de instalación (otra vez doble click):
Haciendo click en el botón "Siguiente >":
Uno puede especificar el directorio de instalación. La ruta que aparece ahí es la que usa por default.

Haciendo click en el botón "Siguiente >":
Componentes que se desea instalar. Cuando uno sombrea un componente, su descripción aparece en la parte derecha de la ventana, obviamente que el PostgreSQL Server es el componente principal, es el motor básico de postresql, supongo que no hay descripción debido a que es el componente principal.

Recorriendo los componentes a instalar:
pgAdmin es el programa de ambiente gráfico (actualmente es a través de web) para administrar y trabajar con Postgresql. Su instalación es casi obligatoria, exceptuando a los que prefieren las herramientas CLI o prefieren usar otro cliente.


Recorriendo los componentes a instalar:

Stack Builder es una utilería que sirve para detectar e instalar add-ons, herramientas adicionales y  programas de prueba para Postgresql. No es necesario, pero es útil.

Recorriendo los componentes a instalar:

Herramientas y librerías CLI (Command Line Interface, es decir, sin ambiente gráfico). Se recomienda instalar las herramientas, pero las librerías son un requisito.

Haciendo click en el botón "Siguiente >":

Capturar el directorio donde se van a guardar los datos. La ruta que se muestra es la que el sistema pone por default.

Haciendo click en el botón "Siguiente >":

Definición del password del super-usuario. Hay que tener en cuenta que el usuario postgres solamente es super-usuario en el ambiente de base de datos, y de hecho solamente existe ahí. La Mac no lo va a reconocer hasta que lo creemos.

Haciendo click en el botón "Siguiente >":


Haciendo click en el botón "Siguiente >":

La configuración regional se refiere el conjunto de caracteres a utilizar en las bases de datos a crear. Si la Mac está configurada a trabajar en español, ese va a ser el conjunto de caracteres por default.

Haciendo click en el botón "Siguiente >":

Una vez configurados todos los parámetros de instalación, se nos presenta una ventana de resumen o sumario con toda la información para revisarla.

Haciendo click en el botón "Siguiente >":

Confirmación.

Haciendo click en el botón "Siguiente >":

Una vez confirmado, se muestra una ventana con el estado de la instalación.

Haciendo click en el botón "Siguiente >":

Confirmación de finalización. El programa de instalación muestra una opción para correr Stack Builder. Stack Builder es un programa independiente al programa de instalación.

Haciendo click en el botón "Terminar". Termina la rutina de instalación e inicia Stack Builder:

Pantalla de presentación de Stack Builder. Este programa presenta sus textos en inglés.

Haciendo click en el botón "Next >":

Presentación de las categorías que puede instalar.

Haciendo click en las categorías disponibles (Add-ons, tools and utilities):

Programas que se pueden instalar en la primera categoría (add-ons, herramientas y utilerías), en la parte de abajo de la ventana aparece un texto explicativo.

Haciendo click en las categorías disponibles (Database drivers):


Haciendo click en las categorías disponibles (Registration-required and trial products):


Haciendo click en las categorías disponibles (Replication Solutions):


Haciendo click en las categorías disponibles (Spatial Extensions):


Haciendo click en el botón "Next >":

Cuando ya se han seleccionando los productos a agregar a Postgresql, Stack Builder presenta una ventana de resumen donde también se puede especificar un directorio para guardar los downloads (el default es el mismo que se especificó para el navegador. Hay que notar que los añadidos son –generalmente– archivos .ZIP que se deben instalar manualmente.

Una vez que se hace click en el botón "Next >", Stack Builder empieza a bajar los paquetes pedidos y termina.

Para confirmar la instalación, se pueden seguir los siguientes pasos:

1. Confirmar procesos postgres en la terminal:


2. Confirmar que se haya instalado como aplicación (Nota: aquí solamente van a estar los programas accesibles al usuario final, el directorio real de instalación está en Library, no en Aplicaciones):


3. Confirmar directorio de instalación (nota: por default, postgresql se instala en el fólder "Library", si tienen la Mac configurado en español este fólder se llama "Biblioteca"; hay que recordar que los programas macOS obtienen los nombres de los objetos de recursos en común, no es que existan dos veces o haya fólders repetidos o algo así:


Fecha  espacial: 6676.12

miércoles, 13 de enero de 2021

El regreso de los lectores

Estos días, Apple lanzó las actualizaciones para iOS (15 de diciembre 2020) e iPadOS (13 de enero 2021), entre las correcciones y nuevas características que presentan, me sorprendió muy gratamente comprobar que ya se corrigió el problema de las voces lectoras.

Sí, es bien curioso que apenas en mi post anterior haya mencionado los errores de pronunciación y ahora ya se hayan corregido. Pudo ser Apple que le presta atención a los usuarios o una conspiración reptiliana para engañarnos. Ustedes escogen.

El primer ejemplo es mi iPhone configurado con la voz de Siri:


Para la lectura en el iPad, configuré la voz de Siri Masculino (esta voz está disponible tanto en iPadOS como en iOS, pero no en macOS Big Sur):

La lectura en Pages para BigSur la hace la voz mexicana Paulina:


La actualización de iOS e iPadOS fue la 14.3. Todavía quedan algunos errores, pero son muy pequeños, triviales y muy probablemente se deban a la compleja gramática del español, por ejemplo, muchas veces se equivoca al leer números romanos, los diferentes formatos de números (en todo el continente americano seguimos el formato 12,345.67 mientras que en España se sigue el formato europeo: 12.345,67). Lo principal es que en español usamos la letra "y" para unir dos frases y para agregar un conceptos o ideas a una descripción, y la Mac siempre la pronuncia como "i griega".



Fecha espacial: 6638.11

martes, 1 de diciembre de 2020

Errores de lectura, la mac no puede leer bien

 Iba a poner este post en el foro de ayuda Apple, pero se me hizo interesante ponerlo aquí también.


Los sistemas operativos del ecosistema Apple (iOS, iPadOS y macOS) tienen la capacidad de leer desde hace muchos años, pero las más recientes (iOS 14.2 e iPadOS 14.2) tienen algunos defectitos bastante curiosos cuando leen –al parecer, estos detalles solamente aparecen en las voces en español con acento mexicano, las voces en español con acento español lo hacen bien.

Escribí un pequeño texto en Pages con los errores más notables e hice que me lo leyeran mi iPhone, mi iPad y mi iMac. Estos son los resultados:

El primero en entrarle al toro fue mi iPhone 11 Pro con la voz mexicana de Paulina:


Luego vino mi iPad Air con la voz de nuestra amada Siri:


Y finalmente, mi iMac leyendo con la voz mexicana de Angélica:




Como se puede oir, los errores son mínimos, realmente no afectan el entendimiento de lo leído.

Fecha espacial: 6600.09

domingo, 22 de noviembre de 2020

¡Al fin! Los símbolos de Command (⌘) y Option (⌥)

 Para los que participamos mucho en foros de opinión, sistemas de preguntas (como quora.com) y que muchas veces damos consehos y guias técnicas acerca del uso de la Mac, los símbolos de las teclas Command y Option/Alt (lo que pasa es que en muchos teclados esta tecla tiene la etiqueta "option" y en algunos otros teclados está marcada como "Alt") es bastante indispensable.

Sucede que en macOS, la tecla más usada para los shortcuts es Command (⌘) y la segunda más usada es Option (⌥); macOS no ofrecía alguna forma de escribirlas usado el teclado, pero a partir de macOS 11 Big Sur, estos símbolos están incluidos entre los "Emoji y símbolos" accesible desde el menú estándar "Edición" (Edición → Emoji y símbolos, shortcut ^⌘Espacio):


Cuando no estaba disponible a través del teclado, había que usar diversos trucos (yo busqué "Tecla Command" en wikipedia y de ahí copié el símbolo y lo pegué en un archivo de texto, así lo podía usar donde quisiera a través de "copy & paste (⌘C & ⌘V)".

Fecha estelar: 6593.18


domingo, 15 de noviembre de 2020

La increíble evolución del hacker

 Perdón si entraron aquí con la idea equivocada, este post habla de los cambios de significado de la palabra "hacker" a lo largo del tiempo.


Quizá sea útil considerar que la palabra "hacker" ha modificado su significado, o más bien, el contexto de su aplicación, a lo largo de los años.

La definición de "hacking" según el diccionario, es "abrirse paso por la maleza usando un hacha", así que "hack" es dar un golpe con un hacha para abrirse paso y un "hacker" es el que usa el hacha para abrirse paso en la maleza.

Cuando inició la era de la computación (finales 1940s) y se les dió acceso a los estudiantes del AI Lab del MIT a la computadora que se les instaló (ya tenían computadora, pero el acceso estaba estrictamente controlado a técnicos y académicos, fue a finales de la década de 1950) fue cuando a todas sus técnicas y tácticas se les empezó a llamar "hacking" y a ellos "hackers" porque todo lo que hacían era a golpes de teoría, investigación, ingenio y prueba y error. No podían guiarse de ningún manual, porque lo que existía eran guías para el "correcto" uso del hardware y las recomendaciones y consejos de los técnicos eran repeticiones de los científicos que habían creado las computadoras que ya conocían y habían estudiado.

Ellos son los que crearon el concepto de firmware y BIOS; las primeras rutinas binarias para aritmética y representación decimal/ASCII, ensambladores, cargadores, compiladores, linkers, intérpretes…, y también el concepto de juegos, música, escritura por computadora y el hacking (acceder a las entrañas de un sistema y manipularlo).

En ese ambiente (década de 1960) es cuando se reporta lo que se podría considerar el primer hacking: varios estudiantes crearon un juego totalmente técnico y abstracto llamado "memory wars" que consistía en programar un proceso de computadora que manipulara y metiera basura en el segmento de memoria de otro proceso. El proceso atacado tenía que defender su territorio (bueno, su segmento de memoria), ser lo suficientemente listo y flexible para seguir ejecutándose si el atacante dañaba su memoria y aparte de todo, contraatacar.

Como se imaginaran, en esos tiempos ni siquiera existía el concepto de "cibercriminal" porque muchas empresas (por ejemplo, bancos) ni siquiera tenían computadores y como no existían formas de intercomunicación, para acceder ilegalmente a un sistema, tenías que estar ahí, lo que era imposible en una instalación militar o una oficina de IRS (recaudación de impuestos).

Ser "hacker" en esos tiempos implicaba que uno tenía un conocimiento técnico y teórico muy avanzado, que uno conocía a profundidad las computadoras y que ni siquiera necesitaba instrucciones, manuales o siquiera programas o librerías de apoyo para hacer lo que necesitaban. Esta "interpretación", "significado" o "contexto" estuvo en boga hasta finales de 1970s y principios de 1980s.

En esos tiempos, los sistemas de comunicación (redes y módems) ya eran de uso común, así que empezaron los accesos ilegales, el robo de información y unos años después, los virus. Esta fue la época de Kevin Mitnick que usando muy pocos recursos, pero mucho ingenio y maña, pudo acceder a muchos sistemas, robar manuales y códigos, conseguir largas distancias gratis, etc. Lo más recordado es que ha sido el único que ha programado un gusano para infectar UNIX (para los que tienen inclinaciones técnicas: lo hizo aprovechando la desidia de muchos programadores que ponían en producción programas compilados con la banderita de debbuging activada) y, aunque parezca increíble, casi tiró internet (esto fue en 1988, internet apenas era una red de cerca de 100,000 servidores empresariales y de gobierno en casi todos los países desarrollados en occidente y no, todavía no existía la web). Este ejemplo cimentó la romántica imagen del "hacker" hollywoodense que irrumpe en cualquier sistema que se le ponga enfrente tan sólo concentrándose y oyendo música de rock.

Nota cienciaficcioñera: este arquetipo también fue muy usado por la corriente CF llamada ciberpunk.

Es difícil señalar una fecha de fin de esta "interpretación", "significado" o "contexto": el "hacker" como cibercriminal (perdió este significado entre 2005–2010, me atrevería a decir). Con todas las nuevas técnicas de ciberseguridad, ciberauditoría y monitoreo continuo del estado de los sistemas de cómputo (sistemas antimalware y de protección continua) ya es casi imposible irrumpir en algún sistema, y aunque uno lograra entrar ilegalmente a algún sistema, ya no serviría de mucho: supongamos que un "superhacker" logra entrar ilegalmente a la base de datos de un banco o sistema de crédito, y roba los datos de diez mil tarjetas de crédito. Teóricamente, al menos, el propio sistema debería detectar las tarjetas comprometidas y emitir una alerta para cancelar ese número o bloquearlas. Vamos a suponer que este "superhacker" es un "supermegahacker" y logra extraer datos sin dejar huella, ni activar alarmas ni alterar ninguna auditoría ni nada. Si el banco tiene un sistema informático avanzado, puede detectar que la tarjeta está asociada con una aplicación en un celular y no puede darse de alta en otro dispositivo (darse de alta en otro celular es un truco muy usado por los cibercriminales, para evitar las firmas y confirmaciones de identidad) e inmediatamente emitiría una alarma para bloquear la tarjeta. Otra vez vamos a suponer que nuestro "supermegahacker" es un "hipersupermegahacker" y aparte suertudo, y el tarjetahabiente no ha asociado su tarjeta a un celular (porque no tiene o no es un smartphone) y/o nuestro "hipersupermegahacker" puede sincronizar las dos apps o algo: de todas formas los sistemas de monitoreo del banco detectarían un intento de compra fuera de patrón característico del terjetahabiente y le hablarían por teléfono para confirmar.

Por otro lado, tenemos las nueva tácticas de fraude: el phishing y sus derivados (como el smishing: phishing usando SMS). Cualquier cibercriminal seguiría el camino más fácil: phishing en vez de romper códigos e irrumpir ilegalmente en un sistema. Lentamente, la equivalencia "hacker" - "cracker" -"cibercriminal" empieza a desvanecerse; ahora ser un cibercriminal implica conocer el submundo del hampa, implica mucho ingenio y maña, pero a diferencia de Kevin Mitnick, ya no requiere habilidad o destreza técnica. Lo que se conocía como "hacker" en los 1990s ahora se le llama cibertransa o "scammer" o como se le llegó a llamar en los clichés ciberpunk, un "buscavidas cibernético".

Actualmente se usa el término "hacker" o "hack" en el sentido de aplicar un consejo, algún truco o atajo para lograr un objetivo más rápido o con menos esfuerzo. Es lo que se conocía como "tips & trucos"; por ejemplo: "hackear tu cerebro" se refiere a poner en práctica consejos para aumentar tu memoria o ajustar tu actitud o carácter (es lo que se conocía como "neurolingüística") no se refiere a algún oscuro biohacker o biopirata que se infiltra en tu mente y te lava el cerebro; "hackear tu vida" se refiere a aplicar tips para mejorar tu estilo de vida: dejar de fumar o tomar alcohol, deshacerse de vicios, comer bien, hacer ejercicio, etc. En el inglés de Estados Unidos ya lo he visto escrito varias veces en este sentido, y he visto un par de traducciones lastimosamente ridículas porque no cactan el concecto de que los significados ya han cambiado: "He hacked his life" se debería traducir como "Él mejoró su vida" (más o menos porque "hack" no tiene traducción directa, uno debe tratar de traducir el concepto) pero lo he visto como "Un pirata informatico en su vida" (** suspiro **), en fin, c'est la vie.


Fecha estelar: 6587.13