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

martes, 23 de enero de 2024

¿Cómo mando archivos por Internet con croc en Ubuntu?

Desde la Quinta "17 de Octubre", Juan Perón expone sobre la necesidad de la solidaridad y enseña cómo transferir copias de ficheros de par a par con Croc en Ubuntu.

¡Mis queridos descamisados!

De poco sirve la libertad si no se configura en un ambiente de Justicia para con la sociedad en la que vivimos. El individualismo es una noción perniciosa que habilita al poderoso en desmedro de las Masas del Pueblo. Estas son las que deben organizarse para cuidarse a sí mismas, y no ceder a impulsos disolutivos que tienen por fin último el resquebrajamiento de lo que hace humano al hombre.

La solidaridad es uno de los más altos valores humanos, y es uno de los basales de la doctrina que nos da todo: la Justicia Social. Esta es la argamasa en enhebra un tejido social que da sostén a un Estado y a la Nacionalidad que lo justifica. Quien en su desmedro habla, lo hace porque anhela actuar para dar lugar a otro Estado. Y ese no puede ser sino ajeno al Pueblo.

Con los contenidos digitales sucede lo mismo, pues estos surgen del Pueblo. Indudablemente, en las redes de datos, se nos hace sencillo el acto de mantener inconmovible nuestro entretejido social: basta con compartir todos los bytes que podamos, por medio de la copia. Algunos desaprensivos han querido llamar a la compartición telemática con la delincuencia, intentando equiparar al acto de compartir con el del robo por piratería. Pero sabemos que el derecho de propiedad tiene un límite sumamente preciso, que es el de la función social y el de la felicidad del Pueblo. En otras palabras, la doctrina que propugnamos fomenta que cada pseudo-propietario sea un cantor - y uno bueno, porque le tiene que ir a cantar a Gardel. En efecto, podrán compartir ficheros .ogg con fonogramas de Gardel, pues a nadie le podrá reclamar ya, si eso hace feliz a su Pueblo.

En el caso de GNU con Linux, podríamos recurrir a la transferencia telemática de copias de ficheros, por medio de SCP, ya que este programa nos permite utilizar la clara identificación de un destinatario que tiene un sistema similar a UNIX y el sistema de shell seguro (la distribución Ubuntu de GNU entre ellos). También podríamos recurrir a rsync para hacer lo propio con ramas enteras en el árbol de archivaje de nuestro sistema. Sin embargo, para hacerlo efectivo lo procedente, es sabido que el destinatario ha de contar necesariamente con  cuentas de usuario en el otro sistema (amén de puertos abiertos y gran dominio de la infraestructura intermedia de cifrado). Esto no siempre es posible, o sencillo de coordinar.

Sin embargo, en esta ocasión simplificaremos la transferencia haciendo uso de algún programa de transferencia par a par cifrada.  Ya he explicado cómo usar Wormhole para este menester, pero en este caso os haré peritos en el uso de croc, un programa liberado bajo GPLv3 que oficia de transmisor y receptor par a par de archivos y carpetas. 

Croc tiene la ventaja de ser un programa mucho más pequeño, con un uso pensado para la transmisión instantánea entre pares. Por otro lado, permite el uso opcional de intermediarios cooperativos de triangulación telemática (lo que se conoce como "relay").

Veamos como usarlo. En primer lugar, tanto el remitente como el destinatario deben tener instalado croc en su sistema. Esto es sencillo de hacer efectivo en  cualquier sistema GNU con Linux; simplemente debemos abrir un terminal con Ctrl+Alt+t e ingresar por única vez el siguiente comando de organización:

sudo apt install curl ;
curl https://getcroc.schollz.com | bash

Esto lanzará el instalador de la última versión de croc, ante el cual debemos ingresar nuestra contraseña de administrador:

Otra manera de instalarlo puede ser descargar el paquete de instalación pensado para Debian/Ubuntu y derivados, lo que tendrá el mismo resultado:

cd /tmp ;
wget https://github.com/schollz/croc/releases/download/v9.6.6/croc_9.6.6_Linux-64bit.deb ;
sudo dpkg -i croc_9.6.6_Linux-64bit.deb

Asimismo podemos considerar que Croc no es sectario, de modo que se puede dejar instalado en otros sistemas similares a UNIX como BSD, MacO$, e incluso el infame Window$.

Para realizar un envío de un fichero o directorio por Internet a través de croc, debemos operar desde la terminal, de común acuerdo.

Quien desea enviar el fichero, debe ingresar simplemente en su terminal:

croc send fichero-o-directorio

Croc cifrará el fichero en memoria y creará un código-del-envío. Este oficiará de llave de autenticado por contraseña común (“PAKE”). Asimismo, croc quedará en espera del inicio de la transferencia durante un par de minutos, alertando al remitente de la siguiente manera:


Sending 'fichero-o-directorio' (x MB)
Code is: código-del-envío

On the other computer run
croc código-del-envío

El remitente debe poner en conocimiento del compañero destinatario el código-del-envío en forma síncrona (ya que este deberá introducirlo en su propia terminal para iniciar la recepción, dentro de un par de minutos). Por este motivo, lo ideal es transmitir el código-del-envío de manera segura (por ejemplo, a través de chat cifrado punto a punto, o llamada de voz cifrada punto a punto o bien correo electrónico cifrado). 

Nota: Si el código-del-envío se propala en un canal abierto, nada impediría que la transmisión de la copia cifrada fuese apropiado e interceptado por otro destinatario indeseado que estuviese a la escucha.

En cualquier caso, una vez puesto al tanto, el remitente podrá iniciar la transferencia del fichero-o-directorio a través de un canal cifrado en internet, abriendo una terminal en su máquina con Ctrl+Alt+t e ingresando allí el consabido:

croc código-del-envío

Ante esto, ambas máquinas con croc se pondrá a la par, y cotejarán la PAKE, y el destinatario será notificado para que acepte la recepción de fichero-o-directorio (debe aceptar con y o rechazarla con n). 

Al comenzar la transferencia, esta se indicará una barra de progreso).

Al finalizar la transferencia par a par de la copia cifrada, el enlace se cortará indicando la recepción.

Una de las ventajas de croc es la de poder utilizar un tercer proxy cooperativo en la Internet para la triangulación del envío, incluso con una contraseña_del_relay. Esto puede ser útil en aquellos casos donde se desea mantener una pseudo-furtividad entre pares. En este caso especial, el remitente debe utilizar el prefijo --relay maquina.de.relay.com, por ejemplo:

croc --relay maquina.de.relay.com --pass contraseña_del_relay send fichero-o-directorio

...lo que generará el código-del-envío, y ante tal caso, el compañero destinatario deberá utilizar el equivalente.

croc --relay maquina.de.relay.com --pass contraseña_del_relay código-del-envío

Todo se repetirá de una manera análoga al caso de transferencia directa, indicando en la pantalla de ambos distintos mensajes referentes a la inclusión de la máquina de relay (y la contraseña del relay, en caso de que esta lo tenga configurada).

Con esto podremos asegurarnos de enviar bytes por circunvalación, y hacer llegar los datos a donde deben llegar para la Felicidad del Pueblo.



jueves, 29 de abril de 2021

¿Cómo evito que Skype se use para ver archivos multimedia en Ubuntu?

Mis queridos descamisados:

Como ya os he explicado, utilizo GNU Jami para tareas de transferencias de ficheros, videollamadas, llamadas de audio, y llamadas telefónicas gratuitas VoIP. Es un excelente reemplazo al Skype de Micro$oft.

Sin embargo, a veces hay que usar la ventana, para salir al balcón.

Skype es un programa de comunicaciones suele estar bastante extendido, pero es, como remedio, peor que la enfermedad. Aún así, si descontamos su plataforma privativa, Skype funciona adecuadamente para su tareas de comunicación. 

Sin embargo, no todo lo que reluce es oro. Bajo Ubuntu y Ubuntu Mate, Skype for Linux puede presentar un efecto molesto. En ocasiones la instalación de tal cliente de comunicaciones hace que en Ubuntu se nos presente la opción de "Abrir con Skype", pero lo hace a todo tipo de documentos multimedia. Entre estos se incluyen las imágenes .jpg, documentos .pdf y .doc, y archivos de audio .mp3. Esto hace que en lugar de abrirse con los visores normales (el visor de imágenes de Ubuntu o algún reproductor de audio o visor de PDF), se abren con el mismo cliente de Skype. Si bien parecería que esto está ingeniado para facilitar el envío de tales ficheros a través de dicha plataforma, lo cierto y tangible es que - en Ubuntu MATE al menos - esto resulta sumamente incordioso e invasivo. Como si de darle exclusividad a Skype se tratara...

Tal afrenta se puede solucionar desinstalando Skype, reiniciando el equipo, y volviendo a instalar Skype.

Lo más sencillo es abrir la terminal mediante Ctrl+Alt+T o bien desde Aplicaciones / Herramientas del Sistema / Terminal de MATE.

Acto seguido, desinstalamos el Skype escribiendo en la terminal el siguiente comando:

sudo apt remove skypeforlinux

Cuando presionemos la tecla Enter, Ubuntu nos solicitará la contraseña del usuario administrador. La ingresaremos "a ciegas" (no se verá nada cuando tipeemos), y presionamos la Tecla Enter.

El Ubuntu realizará comprobaciones que aparecerán en la pantalla y y nos preguntará queremos continuar con la desinstalación. Presionamos la tecla s para responder que sí.

Tras unos segundos se habrá eliminado Skype de nuestro sistema, y con él la molesta e inútil opción de abrir todos los documentos obligatoriamente con Skype.

Ya podremos reiniciar el equipo tipeando en la terminal el comando:

sudo reboot

(Naturalmente también podríamos reiniciarlo desde Sistema / Apagar y elegir la opción Reiniciar).

Una vez reiniciada la computadora, volvemos a abrir la terminal con Ctrl+Alt+t y reinstalamos Skype. Para ello el comando será ahora:

sudo apt install skypeforlinux

Ingresamos la contraseña, y Ubuntu debería descargar e reinstalar el paquete de Skype, pero ahora no usará la opción de "abrir con Skype". Para ejecutar Skype podremos ir a Aplicaciones / Internet / Skype.

Una vez que ingresemos a nuestro usuario de Skype, conviene configurar el funcionamiento del cliente. Normalmente conviene desactivar el inicio automético del mismo. Para ello en la ventana de Skype vamos a Herramientas / Configuración... y desactivamos Iniciar Skype Automáticamente e Iniciar Skype en Segundo Plano.

Demás está decir que si necesitamos enviar archivos usando Skype en Ubuntu, simplemente buscamos uno de nuestros contactos que será el destinatario del archivo y usamos el botón "Agregar Archivos" que se encuentra en la parte inferior de la ventana de conversación de Skype.

Si por algún motivo tuviésemos o quisiéramos que instalar Skype para Ubuntu de cero, podríamos ingresar en nuestra terminal los siguientes comandos (asegurándonos de contar con una conexión a internet, obviamente):

cd ~/Descargas/
wget https://go.skype.com/skypeforlinux-64.deb
sudo apt purge skypeforlinux
sudo dpkg -i skypeforlinux-64.deb

El sistema nos solicitará nuestra contraseña de administrador, y tras tipearla "a ciegas" (ya que nuevamente, no aparecerá escrita en la pantalla) y presionar Enter, se procederá a instalar Skype en Ubuntu. Luego podremos ejecutarlo desde Aplicaciones / Internet / Skype.

miércoles, 23 de enero de 2019

¿Cómo administro los permisos de archivos y directorios en Ubuntu?

¡Descamisados!

Un nuevo Primero de Mayo nos encuentra reunidos a los que luchamos por hacer de nuestra hermosa tierra argentina una Nación socialmente justa, económicamente libre y políticamente soberana.

Desfilan por nuestra imaginación y por nuestro recuerdo los días vividos a través de las etapas reivindicatorias de la Patria que comenzaron en junio de 1943.

Primero, las reformas que fueron como la iniciación y la siembra de la simiente que había de cristalizar y florecer a lo largo de la trabajo y sudor argentino.

Después, el gobierno, nuestro gobierno, el gobierno del pueblo, el gobierno de los descamisados, el gobierno de los pobres, de los que tienen hambre y sed de justicia. Por eso, en esta plaza, la histórica, Plaza de Mayo de todas nuestras epopeyas, han latido al unísono amalgamados en un solo haz todos los corazones humildes que por ser humildes son honrados, son leales y son sinceros.

Después, la Constitución; la Constitución justicialista, que ha hecho de la tierra argentina una Patria sin privilegios y sin escarnios; que ha hecho del pueblo argentino un pueblo unido, un pueblo que sirve al ideal de una nueva Argentina, como no la han servido jamás en nuestra historia.

Esas tres etapas vividas por el pueblo argentino: la reforma, el gobierno y la constitución argentina, nos han dado un estado de justicia y un estado de dignidad y nosotros los transformaremos en un estado de trabajo.
Este documento especifica cuales son los derechos y qué se puede hacer en este país, y no podía ser de otra manera pues está inspirado en los permisos de GNU con Linux.

No es secreto para nadie que en los sistemas GNU con Linux podemos contar con una estructura de directorios, y que los mismos pueden contener archivos. Estos normalmente son visibles y evidentes para los trabajadores.

Sin embargo, es menos conocido el hecho de que tanto estos archivos como los directorios, tienen permisos de uso, y que del conocimiento y buen empleo de los mismos depende una adecuada utilización de los recursos informáticos que como Conductores tenemos a nuestra disposición.

Vean señores, estos permisos de uso pueden referirse a los archivos, y los permisos de uso de los directorios. Sirven para limitar o potenciar el acceso y utilización de los mismos tanto para el administrador de sistema (superusuario), los usuarios comunes, u otros grupos de usuario diferentes.

Es por ello que os enseñaré cómo disponer adecuadamente de estos permisos, y lo haré de una manera concisa y precisa para que cada uno - en la sana medida de sus posibilidades - pueda modificar los permisos cuando ello sea un requerimiento necesario.

Estructura básica de permisos en archivos

Los permisos de uso del archivo describen el accionar que podemos contemplar con elos. Debemos tener en claro los tres atributos básicos que nuestros archivos puede tener: lectura, escritura y ejecución.
  • Permiso de Lectura (r, o "read"): Este permiso nos permite "leer" o "ver" el contenido del archivo.
  • Permiso de Escritura (w, o"write"): Este permiso nos permite "modificar" el archivo escribiendo en el disco. Podremos agregar, sobrescribir o directamente borrar su contenido.
  • Permiso de Ejecución (x, o "execute"): Si el archivo tiene permiso de ejecución, entonces nuestro sistema operativo podrá cargarlo en memoria y correrlo (darle ejecución) como si de un programa se tratara. Si es un programa lo podremos ejecutar como cualquier comando, si es un script, necesitará de permisos de lectura y ejecución (y debemos también tener acceso a su intérprete). Un programa compilado sólo necesita ser de lectura.


Las letras que identifican de los atributos son los caracteres de los permisos, y son:
r "read", quiere decir lectura
w "write", quiere decir escritura
x "eXecute", quiere decir ejecución

Para ver los atributos de un directorio, podríamos usar el comando "ls -l", que nos informará de los mismos.

Usar chmod para cambiar los permisos

Pues bien, comprendido esto, debemos conocer cómo cambiar estos permisos. A tal fin se utiliza el comando chmod ("change mode", o cambiar modo). Con él podremos agregar o quitarle permisos a uno o mas archivos con + (mas) o – (menos).

Si anhelamos prevenir la modificación del archivo constitucion1949.txt, podremos quitarle el permiso de escritura al “archivo” con el comando chmod:

chmod -w constitucion1949.txt

si queremos tornar en ejecutable el script trasvasamiento_generacional.sh, debemos ingresar:

chmod +x trasvasamiento_generacional.sh

...si quisiéramos quitar o agregar todos los atributos a la vez

chmod -rwx trasvasamiento_generacional.sh
chmod +rwx trasvasamiento_generacional.sh

Hemos de saber que también podemos utilizar el signo = para establecer los permisos en una combinación específica. Por ejemplo, con la siguiente sintaxis el comando chmod quitará permisos de escritura y ejecución dejando solo el de lectura.

chmod =r trasvasamiento_genaracional.sh

Naturalmente, siempre hemos de tener especial cuidado y precaución al modificar los permisos de nuestros archivos, pues podríamos dejarlos inaccesibles. Si los editamos, no debemos olvidar dejarlos como estaban originalmente


Estructura básica de permisos en directorios

En el caso de los directorios, la cosa será un poco distinta. Tendremos los mismo tres permisos, pero el significado operativo será ligeramente diferente:

  • Permiso de lectura en un directorio: Si un directorio tiene permiso de lectura, podremos ver la lista de archivos contiene dicho directorio (por ejemplo, usar con el directorio el comando “ls", listar directorio). Es importante recalcar que contar con permiso de lectura en un directorio no significa que podamos leer el contenido de los archivos que están dentro de él, ya que para ello está el permiso de lectura del archivo.
  • Permiso de escritura en un directorio: Con el permiso de escritura de directorio podremos agregar, borrar o mover archivos al directorio
  • Permiso de ejecución en un directorio: Ejecución te permite usar el nombre del directorio cuando estas accediendo a archivos en ese directorio, es decir este permiso lo hace que se tome en cuenta en búsquedas realizadas por un programa. Por ejemplo, un directorio sin permiso de ejecución no seria revisado por el comando find ("buscar")

Usuarios, Grupos y Otros

Ahora conocemos los 3 permisos y como agregar o remover estos, pero estos 3 permisos son almacenados para 3 dueños diferentes, llamados:

Usuario (u) proviene del dueño "Usuario"
Grupo (g) proviene del dueño "Grupo"
Otros (o) proviene del dueño "Otros"

De esta manera, al ejecutar:

chmod =r doctrina.txt

...asignaremos permisos de lectura a los 3 dueños (usuario, grupo y otros). De tal forma, cuando listamos el directorio con “ls -l” veremos algo parecido a.

-r--r--r--    1  peron  users  4096 abr 13 19:30 doctrina.txt

Indudablemente que estas tres “r” denotan los 3 diferentes dueños de permisos que os he referido, donde:


Permisos Pertenece a:
rwx------ Usuario (las primeras 3 letras)
---r-x--- Grupo (las segundas 3 letras)
------r-x Otros (las terceras 3 letras)

También odemos remover permisos para cada dueño; supongamos que tenemos un archivo de un script ejecutable llamado dar_aguinaldo.sh:

-rwxr-xr-x    1  peron  peron  4096 abr 13 19:30 dar_aguinaldo.sh

Si quisiéramos removerle los permisos de ejecución al dueño Grupos y al dueño Otros, basta con usar:

chmod g-x,o-x dar_aguinaldo.sh

...de tal forma, nuestro archivo quedara con estos permisos

-rwxr--r--    1  peron  peron  4096 abr 13 19:30 dar_aguinaldo.sh

Si deseamos removerle al dueño Usuario el permiso de escritura debemos ingresar:

chmod u-x dar_aguinaldo.sh

-r-xr--r--    1  peron  peron  4096 abr 13 19:30 dar_aguinaldo.sh

Para agregar y remover dos permisos a la vez al dueño usuario:

chmod u-x+w dar_aguinaldo.sh

...y al listarlo quedará:

-rw-r--r--    1  peron  peron  4096 abr 13 19:30 dar_aguinaldo.sh



chmod en octales

Para simplificar estos cambios, también se puede utilizar opcionalmente una nomenclatura llamada octal, que nos evita tener que usar rwx, y los designadores de dueño usuario-grupo-otros. La representación octal de chmod es muy sencilla, si seguimos la siguiente regla nemotécnica:
  • Lectura tiene el valor de 4
  • Escritura tiene el valor de 2
  • Ejecución tiene el valor de 1

Dicho esto, según las combinaciones se completan las ocho combinaciones del octal restantes:

rwx 7, Lectura, Escritura y Ejecución
rw- 6, Lectura y Escritura
r-x 5, Lectura y Ejecución
r-- 4, Lectura
-wx 3, Escritura y Ejecución
-w- 2, Escritura
--x 1, Ejecución
--- 0, Sin permisos

Por lo tanto:

chmod usuario=rwx,grupo=rwx,otros=rx chmod 775
chmod usuario=rwx,grupo=rx,otros=  chmod 760
chmod usuario=rw,grupo=r,otros=r  chmod 644
chmod usuario=rw,grupo=r,otros= chmod 640
chmod usuario=rw,grupo,otros=  chmod 600
chmod usuario=rwx,grupo,otros=  chmod 700

Un error que debemos prevenir cuidadosamente es el uso de chmod con comodines, pues esto puede provocar cambios de permisos de manera indiscriminada.

Supongamos que queremos aplicar permisos a todos los archivos dentro de un directorio, y a todos los subdirectorios contenidos en él. Que todos los archivos dentro de nuestra carpeta ~/Descargas tengan permiso rw para nuestro dueño usuario y para el dueño grupo, y r para el dueño otros; en tanto para los directorios  queremos que el usuario tenga permisos de rwx para poder ver los archivos y usarlos, en tanto que el grupo y otros tienen permisos de r-x), pero que los grupos tengan lectura y ejecución, mientras que los grupos también tengan dicho permiso.

Esto podría ser para restaurar los permisos como estaban originalmente.

Para ello podríamos correr.

cd ~/Descargas/
find ~/Descargas/ -type f -print0 | xargs -0 chmod 664
find ~/Descargas/ -type d -print0 | xargs -0 chmod 755


Por ejemplo, el octal chmod 664 pone los permisos en -rw-rw-r-- (un conjunto de permisos común en Ubuntu para las carpetas Documentos/, Música/ y Vídeos/ y Escritorio/), mientras que el octal chmod 644 pone los archivos como -rw-r--r--. El Octal chmod 660 pone los archivos en -rw-rw---- (para una carpeta de Dropbox/ por ejemplo)

En el caso de una carpeta con posesión (como la carpeta para las llaves ~/.gnupg/, deberíamos hacer lo siguiente: primero aseguramos que los contenidos de la carpeta nos pertenezcan:

chown -R $(whoami) ~/.gnupg/

...y luego le damos los permisos adecuados para la tarea que cumple esta carpeta .gnupg en particular:

find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;