├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── INFO.md ├── KEYWORD.md ├── LICENSE ├── README.md ├── SECURITY.md ├── access_control_lists ├── commands.md └── theory.md ├── backup_rsync ├── commands.md └── theory.md ├── combination_keys └── combination.md ├── disk_format_dd ├── commands.md └── theory.md ├── document_gestion ├── commands.md ├── main.md └── theory.md ├── firewall_ufw ├── commands.md └── theory.md ├── iptables ├── command-list.md ├── commands.md └── theory.md ├── permission_gestion ├── permissions.md └── theory.md ├── secure_channel ├── secure_channel_ftp │ ├── commands.md │ └── theory.md └── secure_channel_ssh │ ├── commands.md │ └── theory.md ├── software_gestion └── commands.md ├── system_data ├── network_configuration │ ├── dhcp_samba │ │ ├── smb.conf │ │ └── theroy.md │ ├── interfaces_net │ │ ├── dynamic-network.conf │ │ ├── static-network.conf │ │ └── theory.md │ └── netplan_net │ │ ├── dynamic-network.conf │ │ ├── static-network.conf │ │ └── theory.md └── system_structure │ └── linux-structure.md └── virtual_private_network_openvpn ├── commands.md └── theory.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Theritex/LinuxCommands/3f6fe0af0bcc33cdb361d3165f22470c29412043/.gitignore -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | theritex.contact@gmail.com. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Pautas de Contribución para LinuxCommands 2 | 3 | ¡Gracias por contribuir a LinuxCommands! Antes de enviar una solicitud de extracción, por favor, tómese un momento para revisar estas pautas. 4 | 5 | ## Proceso de Contribución 6 | 7 | 1. Fork el repositorio y clónalo localmente. 8 | 2. Cree una nueva rama para su contribución: `git checkout -b nombre-de-su-rama`. 9 | 3. Realiza tus cambios y asegúrate de seguir las convenciones de estilo y formato del proyecto. 10 | 4. Verifica que tus cambios funcionen correctamente. 11 | 5. Envía tu solicitud de extracción describiendo tus cambios de manera clara y concisa. 12 | 13 | ## Convenciones de Contribución 14 | 15 | - Asegúrate de que tus contribuciones sean relevantes para el propósito del repositorio. 16 | - Sigue las mejores prácticas de codificación y documentación. 17 | - Si estás agregando un nuevo comando o función, proporciona ejemplos de uso y una descripción clara. 18 | 19 | ## Comunicación 20 | 21 | - Si tienes alguna pregunta o sugerencia, puedes ponerte en contacto enviando un correo electrónico a theritex.contact@gmail.com. 22 | - Mantén la comunicación abierta y respetuosa con los demás colaboradores y mantenedores del proyecto. 23 | 24 | Gracias por tu contribución y por ayudar a mejorar LinuxCommands. 25 | -------------------------------------------------------------------------------- /INFO.md: -------------------------------------------------------------------------------- 1 | # Linux Commands 2 | 3 | Linux Commands es un repositorio creado por [Nisamov](https://github.com/Nisamov) con el objetivo de proveer información de una forma completa y sencilla. 4 | 5 | ## Origen 6 | 7 | El origen del proyecto está reistrado sobre la fecha 01/03/2023, sin embargo, el origen oficial del documento, se sitúa a mediados del verano del año 2022, mientras Nisamov estaba comenzando a descubir el mundo de Linux y las posibilidades que traía consigo. 8 | 9 | ## Historia 10 | 11 | LinuxCommands nació en el verano del año 2022 cuando Nisamov estaba comenzando en el mundo de la ciberseguridad, probando y apuntando todos los comandos que iba aprendiendo, nombrando al documento "Documento Origen", el cual contaba con apenas 15 comandos que le permitían moverse entre directorios, crear ficheros y clonar repositorios de GitHub. 12 | 13 | Tras acceder al curso de grado medio de Sistemas Microinformáticos y Redes, descubrió nuevos comandos, apuntando desde el primer día en el que comenzaron las clases. 14 | Al tener demasiados apuntes, tuvo que pasar todos los nuevos apuntes a un fichero en Drive dejando el documento origen con los comandos básicos, dando así lugar a la segunda generación de la lista de comandos, esta la nombró "Linux Commands [V.T]" (Testing Version). 15 | 16 | Trás el paso del tiempo, el documento fué ampliándose hasta tal punto que se tuvo que modfiicarel tamaño y fuente de la letra para que pudiera caber el comando, la descripción y un ejemplo, siendo la fuente de texto "Consolas" y con el tamaño de caracter "9". 17 | 18 | El 22/11/2023, se creó el primer directorio en un USB portatil con la funcionalidad de repositorio, creando así el primer repositorio local de LinuxCommands, con el tiempo, de ese repositorio no publicado, fueron apareciendo nuevos repositorios como TermuxCommands o SwitchCommands. 19 | 20 | ## Infromación 21 | 22 | El contenido de Linux commands ha hecho que a partir de si mismo, puedan crearse nuevos repositorios, como bien son [TermuxCommands](https://github.com/Theritex/TermuxCommands) o [SwitchCommands](https://github.com/Theritex/SwitchCommands), estos, siendo una variante de LinuxCommands, cumplen con el mismo objetivo, proveer información y servir como hoja de apuntes completamente abierta. 23 | El lenguaje oficial de LinuxCommands es el Español, cualquier otro idioma que se muestre en el repositorio ha de ser tomado como una referencia o falta de traducción, es posible que a la larga puedan aparecer versiones específicas para ciertos idiomas, no obstante, el original es y siempre será el Español. 24 | 25 | Las tildes son restringidas, permitendo la búsqueda exacta de los comandos mediante 'Control + H'. 26 | 27 | ## Recomendación 28 | 29 | > Recomendación de uso: 30 | Se recomienda clonar el repositorio para un mayor manejo y libre uso (siguiendo siempre, las restricciones impuestas). 31 | 32 | **Extensiones:** 33 | 34 | Cuando se use `Visual Studio Code`, se recomienda instalar las siguiente extensiones: 35 | ``` 36 | [Extensiones - Visual Studio Code] 37 | ├── Open in New Window (Permite mostrar contendo en una nueva ventana) 38 | ├── HTML Preview (Permite previsualizar documentos HTML) 39 | └── MDX Preview (Permite previsualizar documentos MARKDOWN) 40 | ``` 41 | 42 | ## Clonación de repositorio: 43 | ### Clonar el repositorio: [Windows] 44 | 45 | Abrimos la terminal y nos posicionamos en la ubicación donde queremos que se copie el repositorio: 46 | ``` 47 | Control + R 48 | cd /Desktop 49 | ``` 50 | Clonamos el repositorio: 51 | ``` 52 | git clone https://github.com/Theritex/LinuxCommands 53 | ``` 54 | Este comando clonará el respositorio dentro de la localiación de escritorio, en caso de quererla en otra ubicación, ten en cuenta el idioma de tu sistema operativo y ambia los valores según tus preferencias: 55 | `/Desktop` = `/Escritorio` 56 | 57 | ### Clonar el repositorio: [Linux] 58 | 59 | Abrimos la terminal y nos posicionamos en la ubicación donde queremos que se copie el repositorio: 60 | ``` 61 | Control + T 62 | cd /home/user 63 | ``` 64 | Instalamos git 65 | ``` 66 | sudo apt install git 67 | ``` 68 | Clonamos el respotiorio: 69 | ``` 70 | git clone https://github.com/Theritex/LinuxCommands /home/user/Documents 71 | ``` 72 | Este comando clona el repositorio en la ruta indicada al final, si se elimina dicha ruta, el repositorio se clonará en la ruta donde se encuentre con la consola. 73 | 74 | ## Contribución 75 | 76 | Durante la creación de LinuxCommands, varias personas aportaron infromación de tal froma que a partir de sus Contribuciones, se pudieron crear nueva subcategorías, dando así lugar, a nuevas secciones y mayor contenido dentro del repositorio. 77 | 78 | Las personas que en los orígenes aportaron grandes cantidades de infromación al repositorio son: 79 | 80 | - ⥏﹅⥑ [Andrés Abadías](https://github.com/Nisamov) [Creador del repositorio y dueño de LinuxCommands] 81 | - ⥏﹆⥑ Unai Urrestarazu [Contribuidor en sección de ciberseguridad] 82 | - ⥏﹆⥑ Clara C. [Contribuidora en sección de gestión de ficheros y directorios] 83 | - ⥏﹆⥑ Juan P. [Contribuidor en sección de servicios servidor] 84 | - ⥏﹆⥑ Diego Gracía [Contribuidor en información del sistema] 85 | 86 | ## Apoyo 87 | 88 | Si te ha servido nuestro contenido, considera apoyarnos a través de [buymeacoffee](https://www.buymeacoffee.com/theritex). 89 | 90 | Gracias por contar con nosotros y nuestro contenido, si deseas ponerte en contacto con nosotros, envíanos un mensaje a 91 | 92 | ## Licencia 93 | 94 | Licencia de uso [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.es) 95 | 96 | > [ ! ] Repositorio creado por [Andrés Abadías](https://github.com/Nisamov). 97 | -------------------------------------------------------------------------------- /KEYWORD.md: -------------------------------------------------------------------------------- 1 | 2 | # Teclado especial en Sistemas GNU/Linux 3 | 4 | ## Linux Virtual Box 5 | CTRL_DERECHO + F §; Pantalla COmpleta (Guest Additions) 6 | ALT_IZQUIERDO + → §; Nueva terminal de linux server 7 | ALT + TAB §; Movernos entre aplicaciones (interfaz) 8 | CTRL + ALT + TAB §; Movernos etre ventanas en barra de tareas 9 | ## Linux Generico 10 | CTRL+ALT + L §; Bloquear la sesion activa 11 | CTRL+ALT + T §; Crear y abrir nueva terminal 12 | CTRL + X §; Salir de la terminal activa 13 | CTRL+Shift + W §; Cerrar terminal principal 14 | CTRL + O §; Guardar sin salir 15 | CTRL + Z §; Suspender un proceso activo 16 | CTRL + C §; Quitar un proceso 17 | CTRL + A §; mover al principio de la línea 18 | CTRL + B §; retrocede un carácter 19 | CTRL + C §; detiene el comando actual 20 | CTRL + D §; borra un carácter hacia atrás o cierra la sesión actual, similar a salir 21 | CTRL + E §; se mueve al final de la línea 22 | CTRL + F §; avanza un carácter 23 | CTRL + G §; aborta el comando de edición actual y suena la campana del terminal 24 | CTRL + H §; borra un carácter bajo el cursor (igual que DELETE) 25 | CTRL + J §; igual que RETURN 26 | CTRL + K §; borra (mata) hacia adelante hasta el final de la línea 27 | CTRL + L §; borra la pantalla y vuelve a mostrar la línea 28 | CTRL + M §; igual que RETURN 29 | CTRL + N §; línea siguiente en el historial de comandos 30 | CTRL + O §; igual que RETURN, luego muestra la siguiente línea en el archivo de historial 31 | CTRL + P §; línea anterior en el historial de comandos 32 | CTRL + Q §; reanuda la salida de la terminal suspendida 33 | CTRL + R §; busca hacia atrás 34 | CTRL + S §; busca hacia adelante o suspende la salida de la terminal 35 | CTRL + T §; intercambia dos caracteres 36 | CTRL + U §; elimina hacia atrás desde el punto hasta el principio de la línea 37 | CTRL + V §; hace que el próximo carácter escrito se tome literalmente 38 | CTRL + W §; elimina la palabra detrás del cursor 39 | CTRL + X §; lista las posibles completaciones de nombres de archivo de la palabra actual 40 | CTRL + Y §; recupera (pega) el último ítem eliminado 41 | CTRL + Z §; detiene el comando actual, reanuda con fg en primer plano o bg en segundo plano 42 | ALT + B ; retrocede una palabra 43 | ALT + D §; elimina la próxima palabra 44 | ALT + F §; avanza una palabra 45 | ALT + H §; borra un carácter hacia atrás 46 | ALT + Tv §; intercambia dos palabras 47 | ALT + . §; pega la última palabra del último comando. Presionarlo repetidamente atraviesa el historial de comandos. 48 | ALT + U §; capitaliza cada carácter desde la posición actual del cursor hasta el final de la palabra 49 | ALT + L §; descapitaliza cada carácter desde la posición actual del cursor hasta el final de la palabra 50 | ALT + C §; capitaliza la letra bajo el cursor. Luego el cursor se mueve al final de la palabra. 51 | ALT + R §; revierte cualquier cambio a un comando que hayas obtenido de tu historial si lo has editado. 52 | ALT + ? §; lista las completaciones posibles para lo que se ha escrito 53 | ALT + ^ §; expande la línea al último resultado coincidente del historial -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Licencia: CC BY-NC-SA 4.0 2 | 3 | Usted es libre de: 4 | Compartir — copiar y redistribuir el material en cualquier medio o formato 5 | Adaptar — remezclar, transformar y construir a partir del material 6 | La licenciante no puede revocar estas libertades en tanto usted siga los términos de la licencia 7 | 8 | Bajo los siguientes términos: 9 | Atribución — Usted debe dar crédito de manera adecuada , brindar un enlace a la licencia, e indicar si se han realizado cambios . Puede hacerlo en cualquier forma razonable, pero no de forma tal que sugiera que usted o su uso tienen el apoyo de la licenciante. 10 | NoComercial — Usted no puede hacer uso del material con propósitos comerciales . 11 | CompartirIgual — Si remezcla, transforma o crea a partir del material, debe distribuir su contribución bajo la la misma licencia del original. 12 | No hay restricciones adicionales — No puede aplicar términos legales ni medidas tecnológicas que restrinjan legalmente a otras a hacer cualquier uso permitido por la licencia. 13 | 14 | https://creativecommons.org/licenses/by-nc-sa/4.0/deed.es 15 | 16 | Este repositorio cuenta con la propiedad intelectual del autor. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 7 | # LinuxCommands | Comandos y Servicios 8 | ### Copias de seguridad Rsync 9 | - [Comandos | Commands.md](/backup_rsync/commands.md) 10 | - [Teoría | Theory.md](/backup_rsync/theory.md) 11 | ### Combinacion de Teclas 12 | - [Combinaciones | Combination.md](/combination_keys/combination.md) 13 | ### Destructor de Discos 14 | - [Comandos | Commands.md](/disk_format_dd/commands.md) 15 | - [Teoría | Theory.md](/disk_format_dd/theory.md) 16 | ### Gestion de Documentos 17 | - [Comandos | Commands.md](/document_gestion/commands.md) 18 | - [Teoria | Theory](/document_gestion/theory.md) 19 | ### Firewall 20 | - [Comandos | Commands](/firewall_ufw/commands.md) 21 | - [Teoria | Theroy](/firewall_ufw/theory.md) 22 | ### IPTables 23 | - [Lista de Comandos | Command List](/iptables/command-list.md) 24 | - [Comandos | Commands.md](/iptables/commands.md) 25 | - [Teoria | Theory.md](/iptables/theory.md) 26 | ### Gestion de Permisos 27 | - [Permisos | Permissions.md](/permission_gestion/permissions.md) 28 | - [Teoria | Theory.md](/permission_gestion/theory.md) 29 | ### Canal Seguro 30 | - **Canal Seguro por FTP** 31 | - [Comandos | Commands.md](/secure_channel/secure_channel_ftp/commands.md) 32 | - [Teoria | Theory.md](/secure_channel/secure_channel_ftp/theory.md) 33 | - **Canal Seguro por SSH** 34 | - [Comandos | Commands.md](/secure_channel/secure_channel_ssh/commands.md) 35 | - [Teoria | Theory.md](/secure_channel/secure_channel_ssh/theory.md) 36 | ### Gestion de Software 37 | - [Comandos | Commands.md](/software_gestion/commands.md) 38 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | Reporte de Vulnerabilidades: 2 | Si se descubre alguna vulnerabilidad en el contenido del repositorio "LinuxCommands" o se tiene alguna preocupación relacionada con la seguridad, se alienta a los colaboradores y usuarios a informar de inmediato al equipo de seguridad. 3 | 4 | Procedimiento de Reporte: 5 | Para reportar cualquier vulnerabilidad o preocupación de seguridad, siga estos pasos: 6 | 7 | Envíe un correo electrónico detallado a la dirección de contacto del equipo de seguridad: theritex.contact@gmail.com. 8 | En el correo electrónico, proporcione información completa sobre la vulnerabilidad o preocupación, incluyendo detalles sobre cómo se descubrió y cualquier contexto relevante. 9 | Si es posible, incluya pasos para reproducir la vulnerabilidad o evidencia adicional que pueda ayudar al equipo de seguridad a comprender y abordar el problema. 10 | Proporcione su información de contacto para que el equipo de seguridad pueda comunicarse con usted para obtener más detalles o informar sobre el progreso del problema. 11 | Compromiso del Equipo de Seguridad: 12 | El equipo de seguridad revisará todas las vulnerabilidades y preocupaciones reportadas de manera oportuna y responderá con las acciones apropiadas para abordar y mitigar el problema. 13 | -------------------------------------------------------------------------------- /access_control_lists/commands.md: -------------------------------------------------------------------------------- 1 | **Verificar ACLs** `getfacl archivo.txt` (getfacl ) 2 | **Modificar Máscara ACL** `setfacl -m m:rwx archivo.txt` 3 | **Asignar Permisos Específicos ACL a un Usuario en un Archivo** `setfacl -m u:usuario:r reporte.txt` (reporte.txt es el archivo) 4 | **Asignar Permisos Específicos ACL a un Grupo en un Directorio** `setfacl -d -m g:grupo:rw proyectos` (proyectos es el directorio) 5 | **Eliminar Permisos Específicos ACL de un Usuario en un Archivo** `setfacl -x u:usuario archivo.txt` -------------------------------------------------------------------------------- /access_control_lists/theory.md: -------------------------------------------------------------------------------- 1 | # Access Control Lists 2 | 3 | Las Listas de Control de Acceso (ACLs, por sus siglas en inglés) permiten establecer permisos avanzados para archivos y directorios en sistemas de archivos compatibles. A diferencia de los permisos tradicionales de UNIX (propietario, grupo y otros), las ACLs permiten definir permisos para múltiples usuarios y grupos adicionales, proporcionando un control más granular sobre quién puede acceder y modificar los archivos. 4 | 5 | Estas mismas permiten a los administradores especificar permisos específicos para usuarios o grupos particulares, además de los permisos estándar. Esto significa que puedes otorgar acceso a un archivo o directorio a un usuario sin cambiar el propietario o los permisos tradicionales. 6 | 7 | En RHEL 9, las ACLs se implementan en sistemas de archivos como ext4 y XFS. Para que un archivo o directorio tenga permisos basados en ACL, el sistema debe soportarlas y estar habilitadas. 8 | 9 | | Tipo de entrada | Etiqueta de permisos | Forma en texto | 10 | |----------|----------|----------| 11 | | Owner (dueño) | ACL_USER_OBJ | `user::rwx`ó `u::rwx` | 12 | | Named user (usuario nombrado) | ACL_USER | `user::name:rwx`ó `u:name:rwx` | 13 | | Owning group (grupo dueño) * | ACL_GROUP-OBJ | `group::rwx`ó `g:rwx` | 14 | |Named group (grupo nombrado) | ACL_GROUP | `group:name:rwx` ó `g:name:rwx` | 15 | | Mask (máscara) | ACL_MASK | `mask::rwx` ó `m::rwx` | 16 | | Others (otros)* | ACL_OTHER | `other::rwx` ó `o::rwx` | 17 | 18 | Las mascara de ACL evita que a un usuario o grupo nominal se le den mas permisos de los que deberían tener, pues el limite efectivo solo permiso es el establecido en la máscara de ACL. 19 | 20 | Para verificar la máscara ACL es necesario ejecutar el siguiente comando: 21 | `getfacl ` -------------------------------------------------------------------------------- /backup_rsync/commands.md: -------------------------------------------------------------------------------- 1 | ```prolog 2 | #---------------------------#---------------------------------------------------------------------------------------------------#---------------------------------------------------------------#-----------------------------------------------------------#---------------------------------------------------------------------------------------------------------------------------------------------------#---------------------------------------------------# 3 | | COMANDO | DESCRIPCION | MUESTRA EJEMPLAR | MUESTRA PRACTICA | EXPLICACION | REQUISITOS | 4 | #---------------------------#---------------------------------------------------------------------------------------------------#---------------------------------------------------------------#-----------------------------------------------------------#---------------------------------------------------------------------------------------------------------------------------------------------------#---------------------------------------------------# 5 | rsync §; Transfiere y sincroniza archivos o directorios entre una máquina local o un servidor remoto §; rsync §; §; §; Instalar paquete `sudo apt install rsync` 6 | ├─ -a §; Habilita el modo de archivo (copia el mismo formato de los archivos, ej: misma fecha) §; 7 | ├─ -v §; Salida visual (verbose) que muestra el progreso del proceso §; 8 | ├─ -r §; Genera en un formato legible para humanos §; 9 | └─ -n §; Realiza una prueba sin hacerla, es lo mismo que la opción (--dry-run) §; 10 | + 11 | 12 | rsync -r original/ duplicate/ >>Copiar directorios = rsync {dirección de origen} {dirección de destino} 13 | apt install shhpass >>Instala el servicio sshpass 14 | apt install cron >>Instala el servicio crontab para la automatización 15 | Acceder a shell remoto 16 | rsync –exclude={que excluir} –delete .arvPn examen/ prueba2/ (elimina todo menos que los que se excluyen y los copia dentro de prueba2 de /examen) 17 | -------------------------------------------------------------------------------- /backup_rsync/theory.md: -------------------------------------------------------------------------------- 1 | Estructura rsync 2 | 3 | rsync [optional modifiers] [SRC] [DEST] 4 | Transfiere y sincroniza archivos o directorios de manera eficiente entre una máquina local o un servidor remoto. -------------------------------------------------------------------------------- /combination_keys/combination.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ```prolog 4 | #---------------------------#---------------------------------------------------------------------------------------------------# 5 | | COMANDOS | DESCRIPCION | 6 | #---------------------------#---------------------------------------------------------------------------------------------------# 7 | ALT Izq + → §; Nueva terminal en linux server 8 | Control + X §; Salir de la terminal 9 | Control + O §; Guardar sin salir en nano 10 | Control + Alt + T §; Crear nueva terminal en sistemas con interfaz 11 | Control + z §; Suspender un proceso 12 | Control + c §; Quitar un proceso 13 | Control + Shift + W §; Cerrar terminal actual 14 | Control + F §; Pantalla completa (VirtualBox) -------------------------------------------------------------------------------- /disk_format_dd/commands.md: -------------------------------------------------------------------------------- 1 | Descripción: 2 | Le indicas un archivo de origen y uno de destino, si no tiene destino, lo crea. 3 | Del archivo origen -> pregunta cuántos quieres copiar al archivo destino. 4 | Usado comúnmente para crear o llenar archivos o crear contraseñas de forma aleatoria. 5 | 6 | Etimología: dd = Data Definition: Comando para añadir los datos que luego debían ejecutarse. 7 | 8 | Comando dd 9 | 10 | Estructura: 11 | InputFile; OutputFile; Blocks 12 | 13 | dd if=/dev/null of=diskdestroyer.txt bs=999999 >>genera un archivo diskdestroyer.txt con 999999bits copiados tipo null 14 | dd if=/dev/random of=diskdestroyer.txt bs=999999 >>genera un archivo diskdestroyer.txt con 999999bits copiados tipo random 15 | dd if=/dev/random of=/dev/sda1 >>llena hasta el límite el directorio de arranque sda1 (luego no funciona) 16 | 17 | Uso: dd if=ArchivoOrigen of=ArchivoDestino.extensión bs=BloquesACopiar 18 | Si le pido acceder al dispositivo /dev/zero y le pido que me de X número de sectores, rellena con null 19 | Si no se indica el número de bytes copiados, se rellena hasta más no poder. 20 | Recuperación de S.O con rescatux 21 | -------------------------------------------------------------------------------- /disk_format_dd/theory.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Theritex/LinuxCommands/3f6fe0af0bcc33cdb361d3165f22470c29412043/disk_format_dd/theory.md -------------------------------------------------------------------------------- /document_gestion/commands.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ```prolog 4 | #---------------------------#---------------------------------------------------------------------------------------------------#---------------------------------------------------------------#-----------------------------------------------------------#---------------------------------------------------------------------------------------------------------------------------------------------------#---------------------------------------------------# 5 | | COMANDO | DESCRIPCION | MUESTRA EJEMPLAR | MUESTRA PRACTICA | EXPLICACION | REQUISITOS | 6 | #---------------------------#---------------------------------------------------------------------------------------------------#---------------------------------------------------------------#-----------------------------------------------------------#---------------------------------------------------------------------------------------------------------------------------------------------------#---------------------------------------------------# 7 | ├── touch §; Crear fichero §; touch §; touch fich.txt §; Creacion de fichero "fich.txt" §; `[ - ]` 8 | ├── ls §; Listar ficheros del actual directorio §; ls §; ls §; Lista ficheros y repositorios §; `[ - ]` 9 | │ ├── -l §; Lista detallada §; ls -l §; ls -l §; Lista de forma detallada ficheros y repositorios §; `[ - ]` 10 | │ ├── -a §; Mostrar ficheros ocultos §; ls -a §; ls -a §; Lista mostrando ficheros ocultos §; `[ - ]` 11 | │ ├── -h §; Lectura para humanos §; ls -h §; ls -h §; Lista mostrando una vista comoda para humanos §; `[ - ]` 12 | │ ├── -t §; Ordena los ficheros por fecha de modificacion 13 | │ ├── -S §; Ordena los ficheros por tamaño, de mayor a menor 14 | │ ├── -r §; Mostrar ficheros de los subdirectorios §; ls -r §; ls -r /home/user/documents §; Lista de forma recursiva, incluyendo subdirectorios §; `[ - ]` 15 | │ ├── -d §; Mostrar solo directorios 16 | │ ├── -i §; Mostrar numero de inodo de cada fichero 17 | │ ├── -R §; Mostrar de forma recursiva el contenido de los directorios 18 | │ ├── -F §; Añadir un caracter identificativo al final de cada fichero 19 | │ ├── -1 §; Mostrar un fichero por linea 20 | │ ├── -Q §; Mostrar los nombres de ficheros entre comillas 21 | │ ├── -v §; Ordenar naturalmente los ficheros con numeros por valor 22 | │ ├── -X §; Ordenar ficheros por extension 23 | │ ├── --color §; Cpñprear los diferentes tipos de ficheros 24 | │ ├── --block-size §; Mostrar ficheros ordenados por 25 | │ │ ├── b §; bytes §; ls --block-size="" §; ls --block-size=b 26 | │ │ ├── k §; kilobytes §; ls --block-size="" §; ls --block-size=k 27 | │ │ ├── M §; Megabyte §; ls --block-size="" §; ls --block-size=M 28 | │ │ ├── G §; Gigabyte §; ls --block-size="" §; ls --block-size=G 29 | │ │ ├── T §; Terabytes §; ls --block-size="" §; ls --block-size=T 30 | │ │ └── P §; Petabytes §; ls --block-size="" §; ls --block-size=P 31 | │ ├── --time=atime 32 | │ ├── ? §; Mostrar contenido que contenga una serie de caracteres §; ls ? §; ls fich? §; Lista todo el contenido que contenga "fich" §; `[ - ]` 33 | │ └── * §; Mostrar todo el contenido relacionado §; ls * §; ls fich* §; Lista todo el contenido que empiece por "fich" §; `[ - ]` 34 | ├── tree §; Lista los directorios / ficheros en modo arbol §; tree §; tree §; Lsita con estructura arbol el contenido §; Instalar paquete `sudo apt install tree` 35 | │ ├── -d §; Mostrar solo directorios §; tree -d §; tree -d §; Lista con estructura arbol los directorios §; Instalar paquete `sudo apt install tree` 36 | │ ├── -f §; Mostrar los ficheros con su respectiva ruta §; tree -f §; tree -f §; Lista con estructura arbol mostranod las rutas §; Instalar paquete `sudo apt install tree` 37 | │ ├── -a §; Mostrar ficheros ocultos §; tree -a §; tree -a §; Lista con estructura arbol ficheros ocultos §; Instalar paquete `sudo apt install tree` 38 | │ ├── -u §; Mostrar el propietario de cada fichero §; tree -u §; tree -u §; Lista con estructura arbol mostrando los propietarios de los fichero §; Instalar paquete `sudo apt install tree` 39 | │ ├── -g §; Mostrar el grupo de cada fichero §; tree -g §; tree -g §; Lsita con estructura arbol mostrando grupos de los ficheros §; Instalar paquete `sudo apt install tree` 40 | │ └── -h §; Mostrar el tamaño de cada fichero §; tree -h §; tree -h §; Lista con estructura arbol mostrando el tamaño de cada fichero §; Instalar paquete `sudo apt install tree` 41 | ├── cd §; Redireccionar de repositorio §; cd || cd §; cd /home/user/docs || cd ../docs/subnet/dir §; Accede a /home/user/docs de forma directa || accede a /docs/subnet/dir de forma recursiva §; `[ - ]` 42 | ├── mv §; Mover fichero / directorio §; mv §; mv /home/user/abc /home/user/dcb §; Mueve el directorio abc desde /home/user hasta /home/user/dcb, en caso que no exista el directorio dcb, este lo creara copiando el anterior §; `[ - ]` 43 | │ ├── -i §; Solicitar confirmacion antes de sobreescribir ficheros §; mv -i §; mv -i /home/user/abc /home/user/dcb §; Solicita confirmacion previa a la accion §; `[ - ]` 44 | │ ├── -v §; Mostrar los ficheros de origen y destino §; mv -v §; mv -v /home/user/abc /home/user/dcb §; Muestra los ficheros de origen y destin §; `[ - ]` 45 | │ └── -f §; Forzar la accion §; mv -f §; mv -f /home/user/abc /home/user/dcb §; Fuerza la redireccion en la misma ubicacion §; `[ - ]` 46 | ├── cp §; Copiar fichero o directorio §; cp §; cp /home/user/fich.txt /home/user/fich.txt.bk §; Copia `fich.txt` con un cambio de nombre `.bk` (backup), con finalidad de crear una copia de seguridad §; `[ - ]` 47 | │ ├── -r §; Copiar recursiva (incluyendo subdirectorios) §; cp -r §; cp -r /home/user/abc /home/user/bcc §; Copia de forma recursiva el directorio abc dentro de bcc, dando como resultado `/home/user/bcc/abc` §; `[ - ]` 48 | │ ├── -f §; Forzar la copia §; cp -f §; cp -f /home/user/abc /home/user/bcc §; Copia de forma forzosa la copia del directorio abc dentro de bcc con el contenido vacio §; `[ - ]` 49 | │ ├── -a §; Copiar ficheros con sus respectivos atributos §; cp -a §; cp -a /home/user/fich.txt /home/user/hand §; Copia con atributos el fichero `fich.txt` dentro de `/home/user/hand` §; `[ - ]` 50 | │ ├── -b §; Copiar el contenido como copia de seguridad §; cp -b §; cp -b /home/user/fich.txt /home/user/fichs §; Copia de seguridad del fichero `fich.txt` dentro de `/home/user/fichs` §; `[ - ]` 51 | │ └── -i §; Solicitar confirmacion antes de sobreescribir §; cp -i §; cp -i /home/user/fich.txt /home/user/fichs §; Solicita una confirmacion previa a la copia del fichero `fich.txt` dentro del directorio `/home/user/fichs` §; `[ - ]` 52 | ├── export §; Permitir crear o modificar variables de entorno §; export =<"contenido"> || echo $ §; export VARIABLE="Hola, mundo!" || echo $VARIABLE §; Crea la variable "VARIABLE" a la que le asigna "Hola, mundo!" || Muestra el contenido de la variable §; `[ - ]` 53 | ├── fortune §; Crear un fichero con contenido aleatorio dentro §; fortune > || fortune >> §; fortune > fich.txt || fortune >> fich.txt §; Guarda un mensaje aleatorio dentro del fichero indicado || Ingresa un mensaje aleatorio dentro del fichero sin sobreescribir su contenido §; `[ - ]` 54 | ├── cut §; Extraer contenido por columnas §; cut §; cut fich.txt §; Extrae todo el contenido del fichero §; `[ - ]` 55 | │ ├── -c §; Extraer los primeros X caracteres de cada linea §; cut -c §; cut -c 1-5 fich.txt §; Extrae los primeros 5 caracteres de cada linea del fichero §; `[ - ]` 56 | │ ├── -d §; Delimitar los campos §; cut -d'' §; cut -d',' fich.txt §; Extrae el contenido de cada fila del fichero hasta que llega a la delimitacion, para posteriormente, pasar a extraer la siguiente linea §; `[ - ]` 57 | │ └── -f §; Columna que se va a escoger §; cut -f §; cut -f 1,3 data.txt §; Extrae la primera y tercera columna del fichero §; `[ - ]` 58 | ├── rm §; Eliminar ficheros o directorios vacios §; rm || rm §; rm fich.txt || rm Media §; Elimina el fichero || Elimina el directorio unicamente si esta vacio §; `[ - ]` 59 | │ ├── -r §; Eliminar directorios §; rm -r §; rm -r Media §; Elimina de forma recursiva un directorio, el modo recursivo elimina primero todo el contenido interno para finalmente eliminar el directorio §; `[ - ]` 60 | │ ├── -i §; Solicitar confirmacion antes de borrar ficheros §; rm -i §; rm -i fich.txt §; Solicita confirmacion antes de eliminar el fichero §; `[ - ]` 61 | │ ├── -f §; Fuerza la operacion §; rm -f §; rm -i fich.txt §; Fuerza la eliminacion §; `[ - ]` 62 | │ ├── -v §; Mostrar el nombre del fichero antes de eliminar §; rm -v §; rm -v fich.txt §; Muestra el nombre del fichero antes de eliminar §; `[ - ]` 63 | │ └── -d §; Eliminar directorios vacios §; rm -d §; rm -d Media §; Elimina un directorio vacio §; `[ - ]` 64 | ├── mkdir §; Crear un directorio §; mkdir §; mkdir Documentos §; Crea un directorio §; `[ - ]` 65 | │ ├── {x..y} §; Crear un rango de directorios §; mkdir {} §; mkdir {1..100} §; Crea directorios, del 1 al 100 §; `[ - ]` 66 | │ └── -p {c1,c2,c3} §; Crear subdirectorios tras el directorio origen §; mkdir -p §; mkdir -p /SubDocumentos/Galeria §; Crea un arbol de directorios, uno dentro de otro §; `[ - ]` 67 | ├── rmdir §; Eliminar directorio §; rmdir §; rmdir Documentos §; Elimina un directorio §; `[ - ]` 68 | ├── cat §; Mostrar contenido de un fichero §; cat §; cat fich.txt §; Muestra el contenido del fichero en la consola §; `[ - ]` 69 | ├── file §; Mostrar el tipo de fichero §; file §; file fich.txt §; En casos genericos, mostrara que es un fichero ASCII §; `[ - ]` 70 | ├── grep §; Buscar palabra seleccionada en fichero §; grep §; grep fich.txt §; Imprime todas las lineas del fichero al no haber especificado un numero especifico §; `[ - ]` 71 | │ ├── " " §; Buscar contenido en fichero relacionado §; grep "" §; grep "Hola Mundo!" §; Muestra la linea que contenga "Hola Mundo!" §; `[ - ]` 72 | │ ├── -i §; No distinguir entre mayusculas o minusculas §; grep -i "" §; grep -i HoLa MuNdO! fich.txt §; Busca en el fichero el contenido "HoLa MuNdO!" independientemente de las mayusculas o minusculas §; `[ - ]` 73 | │ ├── -v "#" §; Mostrar linea completa que contenga el contenido especificado §; grep -v "" §; grep -v Hola Mundo! fich.txt §; Busca y muestra las lineas que contengan el contenido "Hola Mundo!" §; `[ - ]` 74 | │ └── -r §; Lectura recursiva del fichero §; grep -r "" §; grep -r Hola Mundo! Documentos/ §; Busca dentro del directorio Documentos/ el contenido "Hola Mundo!" §; `[ - ]` 75 | ├── find §; Buscar ficheros en el directorio §; find §; find fich.txt §; Busca fich.txt en el directorio posicionado desde donde se ejecuta el comando §; `[ - ]` 76 | │ ├── -name "#" §; Buscar fichero con nombre indicado §; find -name "" || find -name "" §; find -name "fich.txt" || find /Docs -name "fich.txt" §; Busca el nombre del fichero || Busca el nombre del fichero dentro del directorio indicado §; `[ - ]` 77 | │ ├── -type §; Buscaer por el tipo de fichero §; find -type §; find -type f fich.txt || find -type d Docs §; Busca el nombre segun si es un fichero (f) o un directorio (d) §; `[ - ]` 78 | │ │ ├── f §; Buscar ficheros §; find -type f "" §; find -type f fich.txt §; Busca el nombre "fich.txt" de tipo fichero §; `[ - ]` 79 | │ │ └── d §; Buscar directorios §; find -type d "" §; find -type d "Docs" §; Busca el nombre "Docs" de tipo directorio §; `[ - ]` 80 | │ ├── -mtime "#" §; Buscar ficheros segun su fecha de modificacion §; find -mtime "" §; find . -mtime -7 §; Busca en la actual ubicacion ".", los ficheros modificados hace 7 dias §; `[ - ]` 81 | │ ├── -atime "#" §; Buscar ficheros segun su fecha de acceso §; find -atime "" §; find . -atime -1 §; Busca en la actual ubicacion ".", los ficheros accedidos en el ultimo dia (24 horas) §; `[ - ]` 82 | │ ├── -ctime "#" §; Buscar ficheros segun su fecha de cambio §; find -ctime "" §; find /Data/Services -ctime -4 §; Busca en /Data/Services un fichero cuyo tiempo de modificacion sea menor a 7 dias §; `[ - ]` 83 | │ ├── -size "#" §; Buscar ficheros segun su tamaño §; find -size "" §; find /Sources/All -size +1M §; Busca en /Sources/All un fichero que supere 1 megabyte §; `[ - ]` 84 | │ │ ├── + §; Mayor tamaño §; find -size "" §; find . -size +1M §; Busca en la actual ubicacion ".", los ficheros de mayor tamaño a 1 Megabyte §; `[ - ]` 85 | │ │ ├── - §; Menor tamaño §; find -size "" §; find . -size -1G §; Busca en la actual ubicacion ".", los ficheros de menor tamaño a 1 Gigabyte §; `[ - ]` 86 | │ │ ├── 10 §; 10 Bloques de disco §; find -size "" §; find . -size +10 §; Busca en la actual ubicacion ".", los ficheros de mayor tamaño a 10 Bloques en el disco §; `[ - ]` 87 | │ │ ├── 100b §; 100 bytes §; find -size "" §; find . -size +100b §; Busca en la actual ubicacion ".", los ficheros de mayor tamaño a 100 Bytes §; `[ - ]` 88 | │ │ ├── 100k §; 100 kilobytes §; find -size "" §; find . -size -100k §; Busca en la actual ubicacion ".", los ficheros de menor tamaño a 100 Kilobytes §; `[ - ]` 89 | │ │ ├── 1M §; 1 Megabyte §; find -size "" §; find . -size -1M §; Busca en la actual ubicacion ".", los ficheros de menor tamaño a 1 Megabytes §; `[ - ]` 90 | │ │ └── 1G §; 1 Gigabyte §; find -size "" §; find . -size +1G §; Busca en la actual ubicacion ".", los ficheros de mayor tamaño a 1 Gigabyte §; `[ - ]` 91 | │ ├── -maxdepth "#" §; Buscar ficheros limitando la profundidad maxima de busqueda en directorios §; find -maxdepth "" §; find . -maxdepth 2 §; Busca en la actual ubicacion ".", ficheros con un limite de profundidad maxima de busqueda de 2 §; `[ - ]` 92 | │ ├── -mindepth "#" §; Buscar ficheros limitando la profundidad minima de busqueda en directorios §; find -mindepth "" §; find . -mindepth 2 §; Busca en la actual ubicacion ".", ficheros con un limite de profundidad minima de busqueda de 2 §; `[ - ]` 93 | │ └── -exec "#" §; Buscar ejecutando un comando final §; find -exec "" §; find . -exec ls -l \; §; Busca en la actual ubicacion ".", y ejecuta el comando `ls -l` en cada fichero encontrado, usando `\;` para indicar elf inal de -exec §; `[ - ]` 94 | ├── echo §; Imprimir por pantalla el contenido §; echo §; echo Hola Mundo! §; Imprime por pantalla "Hola Mundo!" §; `[ - ]` 95 | │ └── > §; Redireccionar salida a un fichero §; echo > §; echo Hola Mundo! > fich.txt §; Imprime "Hola Mundo!" dentro del fichero fich.txt §; `[ - ]` 96 | ├── more §; Mostrar contenido con posibilidad de avanzar en el campo de lectura §; more §; more fich.txt §; Muestra el contenido de fich.txt y permite desplazarte para ver diferentes secciones del documento §; `[ - ]` 97 | ├── less §; Mostrar contenido con posibilidad de avanzar o retroceder en el campo de lectura §; less §; less fich.txt §; Muestra el contenido hacia atras, es lo opuesto a more, de igual manera permite el movimiento por todo el documento §; `[ - ]` 98 | ├── head §; Mostrar por defecto las 10 primeras lineas §; head §; head fich.txt §; Muestra las 10 primeras lineas del fichero `fich.txt` §; `[ - ]` 99 | │ └── -n §; Mostrar un numero determinado de lineas §; head -n §; head -n 3 fich.txt §; Muestra las 3 primeras lineas del fichero `fich.txt` §; `[ - ]` 100 | ├── tail §; Mostrar las ultimas 10 lineas del documento §; tail §; tail fich.txt §; Muestra las 10 ultimas lienas del fichero `fich.txt` §; `[ - ]` 101 | │ ├── -f §; Ajustar contenido a medida que crece §; tail -f §; tail -f fich.txt §; Ajustala pantalla a medida que se muestra mas contenido al documento §; `[ - ]` 102 | │ └── -n §; Muestra las ultimas lienas indicadas comenzando desde abajo del fichero §; tail -n §; tail -n 30 fich.txt §; Muestra las 30 ultimas lineas del fichero `fich.txt` §; `[ - ]` 103 | ├── ln §; Creacion de un enlace duro §; ln §; ln fich.txt fich-nex.txt §; Crea un enlace duro al fichero 'fich.txt' con enlace 'fich-nex.txt' §; `[ - ]` 104 | │ ├── -s §; Creacion de un enlace simbolico §; ln -s §; ln -s fich.txt fich-sl.txt §; Crea un enlace simbolico del fichero `fich.txt` con enlace `fich-sl.txt` §; `[ - ]` 105 | │ ├── -f / --force §; Eliminacion forzada de los ficheros ya creados en la ruta de destino §; ln -f §; ln -f fich.txt fich-fl.txt §; Crea un enlace forzoso del fichero `fich.txt` con enlace `fich-fl.txt`, evitando que puedan haber perdidas §; `[ - ]` 106 | │ ├── -s / --symbolic §; Creacion de enlace simbolico en lugar de enlace duro §; ln -s §; ln -s fich.txt fich-sl.txt §; Crea un enlace simbolico, actuando como puntero directo del fichero `fich.txt` con enlace `fich-sl.txt` §; `[ - ]` 107 | │ ├── -d / --directory §; Creacion de enlaces duros a directorios §; ln -s -d §; ln -s /docs/dir /tbl/utp/dir-sim -d "Enlace Simbolico" §; Crea un enlace simbolico del directorio `/docs/dir` con enlace `/tbl/utp/dir-sin` con una descripcion simple §; `[ - ]` 108 | │ ├── -i / --interactive §; Verificacion creacion de enlace §; ln -i §; ln -i fich.txt fich-li.txt §; Crea un enlace (si no hay uno creado con ese nombre) mostrando un prompt donde pregunta confirmacion antes de sobreescribir §; `[ - ]` 109 | │ └── -r / --relative §; Creacion simbolica relativa al destino §; ln -s -r §; ln -s -r /home/user/develop /home/user/develop-sl §; Crea un enlace simbolico relativa del directorio `/homeùser`develop` con enlace `/home/user/develop-sl §; `[ - ]` 110 | ├── wc §; Contar palabras, lineas y caracteres en ficheros §; wc §; wc fich.txt §; Muestra el recuento de lineas, palabras y bytes §; `[ - ]` 111 | │ ├── -l / --lines §; Mostrar numero de lineas §; wc -l §; wc -l fich.txt §; Contar el numero de lineas del fichero `fich.txt` §; `[ - ]` 112 | │ ├── -w / --words §; Mostrar numero de palabras §; wc -w §; wc -w fich.txt §; Cuenta el numero de palabras del fichero `fich.txt` §; `[ - ]` 113 | │ ├── > §; Contar contenido, redireccionando el output a una salida §; wc §; wc fich.txt > fich-output.txt §; Cuenta y guarda el output de `fich.txt` al fichero de salida `fich-output.txt` §; `[ - ]` 114 | │ └── >> §; Conteo conredireccion sin edicion agregando contenido al final §; wc >> §; wc fich.txt >> fich-output.txt §; Cuenta y guarda el output de `fich.txt` sin editar a la salida `fich-output.txt` §; `[ - ]` 115 | ├── tar §; Gestion de fichero para compresion o descompresion §; tar §; tar cf fich.tar fich.txt §; Crea `fich.tar` como fichero comprimido de `fich.txt` §; `[ - ]` 116 | │ ├── c / --create §; Creacion de fichero §; tar c §; tar c fich.txt §; [No estable] - Intenta crear un dichero tar sin especificar donde guardarlo, resultando en un posible error, necesario un complemento `f` §; `[ - ]` 117 | │ ├── x / --extract §; Extraccion contenido de fichero §; tar x §; tar xf fich.tar §; Sin usar el complemento - Se intanteara extraer, sin haber indicado el fichero, resultando en error || Usando complemento, indicamos el fichero §; `[ - ]` 118 | │ ├── v / --verbose §; Mostrar detalles de la extraccion del fichero §; tar v §; tar cvf fich.tar §; Descomprime y muestra detalles de la extraccion del fichero `fich.tar` §; `[ - ]` 119 | │ ├── z / --gzip §; Compresion usando `.gz` (gzip) §; tar §; tar czf fich.tar.gz /home/user/Documents §; Crea un fichero `fich.tar.gz` en gzip dentro de la ruta `/home/user/Documents`, usando los complementos para la creacion e indar el nombre §; `[ - ]` 120 | │ └── f / --file §; Expecificacion nombre de fichero §; tar f §; tar cf fichero.tar /home/user/Data §; Crea un fichero `.tar` dentro de la direccion `/home/user/Data`, usando c para especificar el nombre del fichero creado siendo este `fichero.tar`§; `[ - ]` 121 | └── diff §; Comparar contenido entre dos ficheros §; diff §; diff fich1.txt fich2.txt §; Compara entre fich1.txt y fich2.txt §; `[ - ]` 122 | ├── -u / --unified §; Mostrar diferencias en un formato unificado facilitando la lectura §; diff -u §; diff -u fich1-txt fich2.txt §; Compara entre fich1.txt y fich2.txt con un output sencillo §; `[ - ]` 123 | ├── -c / --context §; Mostrar contexto adicional alrededor de las diferencias §; diff -c §; diff -c fich1.txt fich2.txt §; Compara entre fich1.txt y fich2.txt mostrando en la salida mas contenido en las diferencias §; `[ - ]` 124 | ├── -r / --recursive §; Comparar directorios de forma recursiva §; diff -r §; diff -r Documentos Docs §; Compara entre Documentos y Docs §; `[ - ]` 125 | └── -i / --ignore-case §; Comparar entre ficheros sin tener en cuenta mayusculas o minusculas §; diff -i §; diff -i fich1 fich2 §; Compara el contneido ignorando las mayusculas y minusculas §; `[ - ]` 126 | 127 | ``` 128 | -------------------------------------------------------------------------------- /document_gestion/main.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | ## Linux Commands Main 10 | En este documento tienes un resumen del contenido del directorio LinuxCommands/document_gestion/ 11 | 12 | Este directorio está dedicado a mostrar la práctica junto a la teoría de la gestión de directorios y ficheros, el fichero `commands.md` cuenta con una lista estructurada con los comandos usados para realizar diferentes acciones con los ficheros / directorios. 13 | 14 | La lista del fichero `commands.md` cuenta con la siguiente estructura: 15 | [comando] [descripción] [meustra ejemplar] [muestra practica] [expliacion] [requisitos] 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /document_gestion/theory.md: -------------------------------------------------------------------------------- 1 | # Teoría Gestion de Ficheros y Directorios: 2 | 3 | La siguiente ifnromacion esta vinculada al documento practico de la gestion de documentos y directorios, [ver el documento](/document_gestion/commands.md). 4 | 5 | ## Linea 7 | touch 6 | 7 | El comando touch permite al usuario crear un fichero, si no se especifica la extension, se genera de forma automatica, un fichero de texto `.txt`. 8 | La extension de un fichero, no condiciona su funcion, en todos los ficheros es posible ingresar contenido, debido a que el sistema operativo Linux, divide todo su contenido en dos categorias: ficheros y directorios. 9 | 10 | La creacion basica de un documento cuenta con una estructura que puede o no cumplirse: 11 | 12 | ``` 13 | touch [nombre fichero] + [extension] + [direccion de salida] 14 | ``` 15 | 16 | El comando touch, nos permite crear el fichero. 17 | El nombre del fichero es necesario, solicita un nombre para el fichero creado. 18 | La extension permite distinguir en el formato del fichero, si la dejamos vacia, se quedara como un documento de texto, independientemente de la extension que tenga el fichero, este no cambiara su funcion y siempre sera posible escribir en el. 19 | La direccion de salida permite guardar el fichero tanto en la ubicacion actual, como en una direccion diferente. 20 | 21 | Ejemplo de uso segun los parametros dados anteriormente: 22 | 23 | ``` 24 | touch file.txt /home/user/Documents 25 | ``` 26 | 27 | En este caso, se crea el documento `file.txt` en la ruta `/home/user/Documents`. 28 | 29 | Es posible crear ficheros ocultos mediante la colocacion de un "." deltante de ellos, un ejemplo de esto seria:. 30 | 31 | ``` 32 | touch .hidden 33 | ``` 34 | 35 | Esto permite que durante la busqueda de ficheros, este aparezca oculto y solo pueda ser visto mediante una opcion de busqueda. 36 | 37 | ## Linea 8 | ls 38 | 39 | El comando ls permite listar el contenido de la actual ubicacion, mostrando todosu contenido. 40 | Este comando cuenta con varios opciones para hacer mas compacta o abierta el listado, las opciones registradas son: 41 | 42 | ``` 43 | -l - Permite hacer un listado detallado del contenido 44 | -a - Permite mostrar los ficheros ocultos 45 | -r - Mostrar ficheros del interior de disrectorios 46 |  ? - Filtrar por caracteres 47 |  * - Mostrar contenido relacionado 48 | ``` 49 | 50 | Este comando cuenta con una estructura que puede variar segun el objetivo que se tenga: 51 | 52 | ``` 53 | ls [opciones] + [ruta] 54 | ``` 55 | 56 | El comando ls nos permite listar el contenido. 57 | Las opciones permiten hacer un listado especifico de nuestros intereses. 58 | Cada opcion cuenta con su propia finalidad que segun lo que se quiera buscar, se podra utilizar una o varias de estas opciones, siendo asi que podemos tener varias dentro de un mismo mensaje de la siguiente forma: 59 | 60 | ``` 61 | ls -al 62 | ``` 63 | Esta orden nos permite listar de foma detallada mostrando todo el contenido incluyendo ficheros ocultos. 64 | 65 | ### Output | ls 66 | 67 | La salida del comando ls está compuesta por una serie de carácteres con la siguiente estructura: 68 | 69 | Ejemplo: 70 | ``` 71 | -rwxr--r-- 1 root root 56 Jan 24 20:51 bucle.sh 72 | ``` 73 | 74 | Estructura de salida: 75 | ``` 76 | [permisos] [número de enlaces] [propietario] [grupo] [tamaño] [fecha y hora de modificación] [nombre del archivo o directorio] 77 | ``` 78 | Este método está creado con el obejtivo de ser sencillo y rápido de entender 79 | 80 | ## Linea 14 | tree 81 | 82 | Tree es un comando que requiere ser instalado, para ello, se utiliza el comando `sudo apt install tree`. 83 | Este comando lista el contenido de la ruta en modo raíz, pemritiendo ver como es la estructura completa de la dirección. 84 | 85 | Este comando es similar a `ls` con la diferencia de la forma en la que muestran el contenido en el output. 86 | 87 | Este comando cuenta con varias opciones para mostrar únicamente lo que se desea: 88 | 89 | ``` 90 | -d - 91 | -f - 92 | -a - 93 | -u - 94 | -g - 95 | -h - 96 | ``` 97 | 98 | 99 | -------------------------------------------------------------------------------- /firewall_ufw/commands.md: -------------------------------------------------------------------------------- 1 | # Firewall UFW 2 | 3 | ```bash 4 | # Instalacion 5 | sudo apt install ufw 6 | # Ver estado programa 7 | ufw status 8 | # Listar normas de programa de forma numerada 9 | ufw status numbered 10 | # Eliminar una regla del programa 11 | ufw delete 12 | # Habilitar programa 13 | ufw enable 14 | # Dehabilitar programa 15 | ufw disable 16 | # Reestablecer programa 17 | ufw reset 18 | # Deniega conexiones entrantes que no coincidan con ninguna regla. 19 | ufw default deny incoming 20 | # Permite conexiones entrantes que no coincidan con ninguna regla. 21 | ufw default allow incoming 22 | # Deniega conexiones salientes que no coincidan con ninguna regla. 23 | ufw default deny outgoing 24 | # Permite conexiones salientes que no coincidan con ninguna regla. 25 | ufw default allow outgoing 26 | # Permite las conexiones entrantes por el puerto 80. 27 | ufw allow 80 28 | # Permite las conexiones entrantes por el puerto 80, utilizando el alias "http" en vez del puerto numérico. 29 | ufw allow http 30 | # Permite solo las conexiones entrantes con el protocolo TCP por el puerto 80. 31 | ufw allow 80/tcp 32 | # Permite las conexiones entrantes en un rango de puertos. 33 | ufw allow 1000-2000 34 | # Permite conexiones entrantes a cualquier puerto y protocolo a la IP 10.0.0.30. 35 | ufw allow from 10.0.0.30 36 | # Permite conexiones entrantes a cualquier puerto y protocolo desde un rango de IPs usando la notación CIDR (de 10.0.0.0 a 10.0.0.255 en este caso). 37 | ufw allow from 10.0.0.0/24 38 | # Permite las conexiones entrantes al puerto 22 a la IP 10.0.0.30. 39 | ufw allow from 10.0.0.30 to any port 22 40 | # Permite las conexiones entrantes al puerto 22, con protocolo TCP a la IP 10.0.0.30. 41 | ufw allow from 10.0.0.30 to any port 22 proto tcp 42 | ``` -------------------------------------------------------------------------------- /firewall_ufw/theory.md: -------------------------------------------------------------------------------- 1 | Uncomplicated Firewall (UFW) 2 | Las siglas "UFW" significan "Uncomplicated Firewall" y hacen referencia a una aplicación que tiene como objetivo establecer reglas en "iptables", las tablas de firewall nativas en Linux. Puesto que iptables tiene una sintaxis relativamente compleja, utilizar UFW para realizar su configuración es una alternativa útil sin escatimar en seguridad. 3 | 4 | FUé escrito en lenguaje python para dispositivos GNU/Linux, cuenta con una interfaz gráfica llamada Gufw, permitiendo al usuario, controlar el UFW firewall. 5 | -------------------------------------------------------------------------------- /iptables/command-list.md: -------------------------------------------------------------------------------- 1 | ```ini 2 | iptables 3 | ├── -A §; Agrega una regla a una cadena 4 | │ ├── INPUT §; Cadena de reglas para paquetes entrantes 5 | │ │ └── -s §; Especifica la dirección IP de origen de los paquetes 6 | │ ├── OUTPUT §; Cadena de reglas para paquetes salientes 7 | │ │ └── -s §; Especifica la dirección IP de origen de los paquetes 8 | │ └── FORWARD §; Cadena de reglas para paquetes reenviados 9 | ├── -C §; Comprueba si una regla existe en la cadena especificada 10 | ├── -D §; Elimina una regla de una cadena 11 | ├── -E §; Renombra una cadena existente 12 | ├── -F §; Borra todas las reglas de IPTables, NAT, cadenas, etc. 13 | ├── -I §; Inserta una nueva regla en una cadena 14 | ├── -L §; Lista todas las reglas de IPTables creadas 15 | │ ├── --line-numbers §; Lista las reglas numeradas 16 | │ ├── -n §; Muestra las IPs y puertos en formato numérico 17 | │ ├── -v §; Muestra información detallada 18 | │ └── -x §; Muestra los contadores de paquetes y bytes en formato numérico 19 | ├── -N §; Crea una nueva cadena de usuario 20 | ├── -P §; Establece la política por defecto para una cadena 21 | ├── -R §; Reemplaza una regla existente en una cadena 22 | ├── -X §; Borra todas las cadenas personalizadas 23 | ├── -Z §; Reinicia los contadores de paquetes y bytes a cero para todas las cadenas 24 | ├── -i §; Interfaz de entrada 25 | ├── -o §; Interfaz de salida 26 | ├── -p §; Protocolo 27 | ├── -s §; Dirección de origen 28 | ├── -d §; Dirección de destino 29 | ├── -m §; Módulo 30 | │ ├── tcp §; Protocolo TCP 31 | │ │ ├── --dport §; Puerto de destino 32 | │ │ ├── --sport §; Puerto de origen 33 | │ │ ├── --tcp-flags §; Conjunto de banderas TCP 34 | │ │ ├── --tcp-option §; pción TCP 35 | │ │ └── --syn §; Establecer el bit SYN 36 | │ ├── udp §; Protocolo UDP 37 | │ │ ├── --dport §; Puerto de destino 38 | │ │ └── --sport §; Puerto de origen 39 | │ ├── icmp §; Protocolo ICMP 40 | │ │ └── --icmp-type §; Tipo de mensaje ICMP 41 | │ └── state §; Estado de la conexión 42 | │ ├── --state §; Define el estado de la conexión 43 | │ ├── NEW §; Estado de conexión nueva 44 | │ ├── ESTABLISHED §; Estado de conexión establecida 45 | │ ├── RELATED §; Estado de conexión relacionada 46 | │ └── INVALID §; Estado de conexión inválida 47 | ├── -j §; Objetivo de la regla 48 | │ ├── ACCEPT §; Aceptar el paquete 49 | │ ├── DROP §; Descartar el paquete 50 | │ ├── REJECT §; Rechazar el paquete 51 | │ ├── LOG §; Registrar el paquete 52 | │ ├── SNAT §; Traducción de dirección de origen 53 | │ └── DNAT §; Traducción de dirección de destino 54 | ├── -t §; Especifica la tabla a la que se aplicarán las reglas 55 | │ ├── filter §; Tabla de filtrado para el tráfico de red 56 | │ │ └── -F §; Borra solo las reglas de la tabla de filtro 57 | │ ├── nat §; Tabla para la traducción de direcciones de red (NAT) 58 | │ │ └── -F §; Borra solo las reglas de la tabla NAT 59 | │ └── mangle §; Tabla de manipulación de paquetes 60 | ├── -v §; Muestra información detallada 61 | ├── -x §; Muestra los contadores de paquetes y bytes en formato numérico 62 | ├── -S §; Muestra todas las reglas de IPTables en formato de salida 63 | ├── -h, --help §; Muestra la ayuda para IPTables 64 | └── -V §; Muestra la versión de IPTables 65 | ``` -------------------------------------------------------------------------------- /iptables/commands.md: -------------------------------------------------------------------------------- 1 | ``` 2 | #---------------------------------------------------------------#---------------------------------------------------------------------------------------------------# 3 | | COMANDO | DESCRIPCION | 4 | #---------------------------------------------------------------#---------------------------------------------------------------------------------------------------# 5 | iptables -V §; Version de IPTables 6 | iptables -F §; Borrar todas las IPTables, NAT, Cadenas... (todo) 7 | iptables -t nat -F §; Borrar solo tablas NAT 8 | iptables -X §; Borrar cadenas 9 | iptables -Z §; Borrar todas las tablas 10 | iptables -L §; Listar IPTables creadas 11 | iptables -L --line-numbers §; Listar IPTables creadas con identificador 12 | iptables -S §; Listar IPTables con politicas por defecto 13 | iptables -P INPUT DROP §; Denegar la entrada INPUT (INPUT, OUTPUT o FORWARD) 14 | iptables -A OUTPUT -j ACCEPT §; Aceptar la salida OUTPUT (INPUT, OUTPUT o FORWARD) 15 | iptables --help §; Mostrar ayuda iptables 16 | iptables -L -vn --line-numbers §; Mostrar IPTables con mas contenido listado numerado (L=List v=verbose n=numerar los puertos) 17 | iptables -A INPUT -s 10.0.0.5/8 -j ACCEPT §; Permitir INPUT de la red 10.0.0.5 18 | iptables -A INPUT -S 10.0.0.200 -p tcp --deport 20 -j ACCEPT §; Por el puerto 20 denegar el protocolo tcp 19 | ``` -------------------------------------------------------------------------------- /iptables/theory.md: -------------------------------------------------------------------------------- 1 | ``` 2 | Las IPTables consisten en un filtro de paquetes en red automático, funcionando como un cortafuegos. 3 | Dentro de la categoría de las IPTables existen diferentes categorías que permiten establecer diferentes funcionalidades, estas son: 4 | Tablas: 5 | • Input (Filtro): Indica si pasa o no pasa la información ya enrutada 6 | • Output (Filtro): indica si sale o no sale la información ya enrutada. 7 | • Prerouting (Modificación de destino antes de ser enrutado). 8 | • Postrouting (Modificación de destino después de ser enrutado). 9 | • Forward (Redirección: Redirige la información a otro router). 10 | Cadenas: 11 | • Filter: Controla si los paquetes deben ser permitidos o bloqueados. 12 | • NAT (Network Address Translation - Traducción de Direcciones de Red). 13 | • NAT PAT (Port Address Translation - Traducción de Direcciones de Puerto). 14 | • GCNAT (NAT en cascada): Aplica NAT de manera recursiva, permitiendo NAT dentro de NAT. 15 | Opciones dentro de los filtros: 16 | • Accept: Acepta el tráfico. 17 | • Drop: Descartar el tráfico silenciosamente. 18 | • Reject: Rechaza el tráfico enviando una notificacion al remitente. 19 | Instrucciones dentro de las NAT: 20 | • DNAT (Destination NAT - Traducción de Dirección de Destino): Modifica la dirección de destino de los paquetes. 21 | • Redirect (Redirección): Oculta la IP cambiándola internamente. 22 | • Masquerade (NAT Dinámica): Aplica NAT dinámica para ocultar las direcciones internas. 23 | • SNAT (Source NAT - Traducción de Dirección de Origen): Modifica la dirección de origen de los paquetes salientes. 24 | ``` 25 | -------------------------------------------------------------------------------- /permission_gestion/permissions.md: -------------------------------------------------------------------------------- 1 | ```prolog 2 | #---------------------------#-----------------------------------------------------------------------------------------------------------------------------------# 3 | | COMANDO | DESCRIPCION | MUESTRA EJEMPLAR 4 | #---------------------------#-----------------------------------------------------------------------------------------------------------------------------------# 5 | ├── sudo §;Permitir ejecutar comandos como superusuario u otro usuario §; sudo 6 | │ ├── su §;Permanencia como superusuario §; sudo su 7 | │ ├── apt §;Permitir instalar, actualizar y desinstalar software en el sistema §; sudo apt 8 | │ ├── apt-get §;Permitir instalar, actualizar y desinstalar software en el sistema (actualmente en desuso) §; sudo apt-get 9 | │ ├── -A / --askpass §; 10 | │ ├── -B / --bell §; 11 | │ ├── -b / --background §; 12 | │ ├── -l / --login §;Acceder como otro usuario §; sudo -l 13 | │ ├── -L §;Bloquear el entorno del shell de inicio de sesión para prevenir cambios en la información de autenticación durante su ejecución §; sudo -L 14 | │ ├── -V §;Mostrar versión de sudo y opciones de configuración compiladas en el binario §; sudo -V 15 | │ ├── -e / --edit §;Editar ficheros como superusuario §; sudo -e 16 | │ ├── -u / --user §;Ejecutar comandos en nombre de otro usuario §; sudo -u 17 | │ └── -i §;Simular una sesión de inicio de sesión completa, replicando el entorno del usuario al que se cambia §; sudo -i 18 | ├── chown §;Establecer nuevo grupo propietario de fichero/directorio §; chown 19 | │ ├── -R §;Establecer nuevo propietario y nuevo grupo de un fichero/directorio de forma recursiva §; chown -R 20 | │ ├── -c §; 21 | │ └── -- §; 22 | ├── chmod §;Establecer permisos §; chmod 23 | │ ├── +x §;Establecer permisos de ejecución §; chmod ex 24 | │ ├── -x §;Revocar permisos de ejecución §; chmod -x 25 | │ ├── u+s §;Establecer el bit de SUID (Set User ID) en un fichero §; chmod u+s 26 | │ ├── g+s §;Establecer el SGID en un directorio §; chmod g+s 27 | │ ├── +t §;Establecer el sticky bit en un directorio para todos, solo el propietario puede aplicar cambios en el directorio §; chmod +t 28 | │ ├── -f §;Silenciar salida de chmod, suprimiendo mensajes de error §; chmod -f 29 | │ ├── -v / --verbos §;Mostrar mensajes detallados sobre los cambios realizados por chmod §; chmod V 30 | │ ├── -R / --recursive §;Aplicar cambios de manera recursiva §; chmod -R 31 | │ ├── o+t §;Establecer el sticky bit en un directorio para otros, solo el propietario puede aplicar cambios en el directorio §; chmod o+t 32 | │ └── g+s §;Hace que los archivos internos usen el grupo del directorio, no el grupo principal del creador §; chmod g+s 33 | └── umask §;Establecer permisos predeterminados para nuevos archivos §; umask 34 | ``` -------------------------------------------------------------------------------- /permission_gestion/theory.md: -------------------------------------------------------------------------------- 1 | ``` 2 | UID (User ID) §; Identificador de usuario, número designado a un único usuarios del sistema informático o red, permite gestoinar permisos y recursos dentro del sistema. 3 | │ §; UID 0 está reservado únicamente al usuario root, cuenta con privilegios elevados y acceso a todos los recursos del sistema. 4 | ├── UID > 1000 §; Usuarios normales cuentan con un UID superior a 1000 5 | └── UID {1..1000} §; Usuarios del sistema cuentan con un UID entre 1 y 1000 6 | GUID (Group ID) §; Identificador de grupo, número designado a un grupo del sistema informático, permite gestionar los permisos y recursos compartidos en el sistema. 7 | ``` -------------------------------------------------------------------------------- /secure_channel/secure_channel_ftp/commands.md: -------------------------------------------------------------------------------- 1 | Iniciamos Máquinas Virtuales (Dos MV Linux en adaptador puente) 2 | Ips Ejemplo: 192.168.115.204 y 192.168.115.205 3 | nano /etc/vsftpd.con >>Dirección archivo configuración ftp 4 | descomentar #Port 22 - se puede cambiar por el puerto que se pide para hacer las conexiones 5 | service sshd restart 6 | 7 | Tipos de encriptación: 8 | Encriptación simétrica 9 | Encriptación asimétrica 10 | Tipos de llaves (utilizan una encriptación binaria o ascii): 11 | Llave pública (usada para encriptar) 12 | Llave privada (usada para desencriptar RSA {mensaje general encriptado con RSA}-> 4096 bits) 13 | Passphrase: Clave Privada 14 | Comandos: 15 | 16 | apt-get install ftp >> 17 | apt-get install vsftpd >> 18 | apt-get install gpg >> 19 | apt-get install ufw >> 20 | gpg -k >>Ver claves 21 | gpg --gen-key >>Crear una key 22 | gpg --symmetric -a ejercicio.txt >> cifrado simétrico 23 | gpg --symmetric ejercicio.txt >> cifrado simétrico en binario 24 | gpg --symmetric -o ejercicio.twofish/3des ejercicio.txt >>pasar a 3des o twofish 25 | gpg --full-generate-key >>Creación completa de una key (elección de Bits) 26 | 27 | 28 | sftp {ip} >>Establecer conexión con el que va a recibir los archivos 29 | put {archivo} >>Enviar archivo 30 | 31 | 32 | gpg -a --ouput nombre.key --export email@dominio.com >> crear una key en ascii 33 | gpg --symmetric –a –o mensaje.twofish mensaje.txt (Cuando se encripte con twofish) 34 | gpg -d archivo.key.asc >> Desencriptar archivo 35 | gpg --ouput nombre.key --export email@dominio.com >> crear una key en binario 36 | gpg --encrypt --recipient email@dominio.com archivo.extensión >> Encriptar un documento 37 | gpg –export -a email@dominio.com > archivo.extensión >> Exportar un archivo 38 | 39 | -------------------------------------------------------------------------------- /secure_channel/secure_channel_ftp/theory.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Theritex/LinuxCommands/3f6fe0af0bcc33cdb361d3165f22470c29412043/secure_channel/secure_channel_ftp/theory.md -------------------------------------------------------------------------------- /secure_channel/secure_channel_ssh/commands.md: -------------------------------------------------------------------------------- 1 | Conexión por ssh, es necesario saber usuario y contraseña para poder realizar estas acciones. 2 | Es posible conectarse tanto a windows como a Linux 3 | la conexión sh es un protocolo que permite la interacción entre máquinas utilizando una línea de comandos de forma segura 4 | Puerto 22 de TCP -> IP -> Red 5 | sshd es el servicio (demonio) que queda esperando peticiones al puerto 22 6 | SSH = “Secure SHell” 7 | nano /etc/ssh/sshd_config >>Fichero de configuración de ssh 8 | service sshd restart >>Recargar configuración de sshd (ssh) 9 | 10 | ssh [user]@[ip] >>Conectarse por SSH a un sistema remoto 11 | └─ sudo apt install openssh-server 12 | 13 | nano /etc/vsftpd.conf 14 | 15 | write_enable=YES 16 | listen port=3000 17 | ftp_data_port=4000 18 | esto hace que nos conectemos por el puerto 3000 pero enviemos los datos por él 4000 mediante ftp 19 | 20 | Comandos: 21 | ssh {nombre-usuario}@{IP} >>Iniciar sesión como usuario 22 | put archivo.txt >>Enviar archivo.txt 23 | 24 | 25 | Ejemplo: 26 | ssh asir@192.168.115.205 27 | put controller.exe 28 | 29 | 30 | Envío de archivos: 31 | Este comando permite loguearnos como asir 32 | scp {/home/dirección/nuestro/archivo.extensión} {usuario}@{IP:/home/ubicación/archivo/destino} 33 | 34 | 35 | Ejemplo: 36 | openssl genrsa -aes-256-cbc -out nombre-privada.key 4096 >>Se puede sustituir el tipo de encriptación (-aes-256-cbc) mediante openssl help 37 | openssl rsa -in nombre-privada.key -pubout > nombre-pública.key 38 | scp /home/user/nombre-publica.key 192.168.115.205@user:/home/user/ 39 | 40 | 41 | openssl rsautl --decrypt -inkey claveprivada.key -in encriptado.enc > desencriptado -------------------------------------------------------------------------------- /secure_channel/secure_channel_ssh/theory.md: -------------------------------------------------------------------------------- 1 | # SSH Acceso, Claves y Seguridad 2 | **Generacion de clave ssh:** 3 | Creacion de clave publica y privada con nombre (id_rsa) 4 | ```sh 5 | [user@host ~]$ ssh-keygen 6 | ``` 7 | 8 | **Configuracion cuenta remota para acceso:** 9 | ```sh 10 | [user@host ~]$ ssh-copy-id -i .ssh/key-with-pass.pub user@remotehost 11 | ``` 12 | El comando `ssh-copy-id` nos permite enviar la clave publica a la maquina destino. 13 | 14 | El comando `-i` permite comprobar el acceso, asi mismo el comando `-v` (verbose) permie ver el proceso completo para poder revisar cada uno de los mismos. 15 | 16 | La estructura del comando es la siguiente: 17 | ```sh 18 | [user@host ~]$ ssh 19 | ``` 20 | Ejemplo: 21 | ```sh 22 | [user@host ~]$ ssh -i .ssh/key2 operator1@servera hostname 23 | ``` 24 | 25 | Por defecto al crear una clave con `ssh-keygen`, se crea en la ruta:`/home/usuario/.ssh/*` 26 | 27 | Como: 28 | - `id_rsa.pub`(Clave publica [cliente y servidor]) 29 | - `id_rsa`(Clave privada [Clave privada de neustro equipo para la autentificacion con el servidor y cliente]) 30 | 31 | >[!] Si generamos dos claves sin establecer un nombre, se sobreescribirán, por ene, si se han distribuido las claves, no podrá ser posible acceder. 32 | 33 | **No hacer:** 34 | ```diff 35 | - [user@host ~]$ ssh-keygen 36 | # Primera generacion 37 | 38 | - [user@host ~]$ ssh -i .ssh/key2 operator1@servera hostname 39 | # Se comparte la clave 40 | 41 | - [user@host ~]$ ssh-keygen 42 | # Segunda generacion (sobreescribe a la primera) 43 | ``` -------------------------------------------------------------------------------- /software_gestion/commands.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ```prolog 4 | #---------------------------#---------------------------------------------------------------------------------------------------#---------------------------------------------------------------#-----------------------------------------------------------#---------------------------------------------------------------------------------------------------------------------------------------------------#---------------------------------------------------# 5 | | COMANDO | DESCRIPCION | MUESTRA EJEMPLAR | MUESTRA PRACTICA | EXPLICACION | REQUISITOS | 6 | #---------------------------#---------------------------------------------------------------------------------------------------#---------------------------------------------------------------#-----------------------------------------------------------#---------------------------------------------------------------------------------------------------------------------------------------------------#---------------------------------------------------# 7 | ├── apt §; Instala paquetes 8 | │ ├── -list §; Muestra los paquetes ordenados alfabéticamente 9 | │ ├── -search §; Busca en el paquete de descripciones 10 | │ ├── -show §; Muestra los detalles de paquetes 11 | │ ├── -install §; Instala paquetes 12 | │ ├── -purge §; Elimina un paquete y su configuración 13 | │ ├── -reinstall §; Reinstala paquetes 14 | │ ├── -remove §; Elimina paquetes 15 | │ ├── -autoremove §; Elimina automáticamente paquetes no usados 16 | │ ├── -update §; Actualiza la lista de los paquetes disponibles 17 | │ ├── -upgrade §; ejora la lista de los paquetes disponibles 18 | │ ├── -full-upgrade §; Actualiza el sistema con dependencias 19 | │ ├── -edit-sources §; Edita el contenido de la información del archivo 20 | │ └── -satisfy §; Satisface las dependencias de las cadenas -------------------------------------------------------------------------------- /system_data/network_configuration/dhcp_samba/smb.conf: -------------------------------------------------------------------------------- 1 | [documents] 2 | comment = Comentario de directorio publico 3 | #Direccion en el directorio compartido 4 | path = /home/Documents/carpeta1 5 | browseable = yes 6 | guest ok = yes 7 | public = yes 8 | writeable = yes 9 | directory mask = 0… 10 | create mask = 0… 11 | valid users = usuario1, usuario2 12 | #Permiso de escritura a los usuarios: 13 | write list = usuario1, usuario2 14 | #Permiso de lectura a los usuarios: 15 | read list = usuario2 16 | #Tipos de ficheros vetados en el directorio 17 | veto files = /*.avi/*.mp3/*.pdf/ 18 | #Permiso de autoeliminacion de contenido vetado (activado) [yes/no] 19 | delete veto files = yes -------------------------------------------------------------------------------- /system_data/network_configuration/dhcp_samba/theroy.md: -------------------------------------------------------------------------------- 1 | Teoria de Samba 2 | Comando instalacion Samba: `apt-get install samba` 3 | Direccion de configuracion del fichero de configuracion /etc/samba/smb.conf -------------------------------------------------------------------------------- /system_data/network_configuration/interfaces_net/dynamic-network.conf: -------------------------------------------------------------------------------- 1 | # interfaces(5) file used by ifup(8) and ifdown(8) 2 | auto lo 3 | iface lo inet loopback 4 | 5 | auto enp0s3 6 | #Establecer direccion automatica por dhcp en la interfaz enp0s3 7 | iface enp0s3 inet dhcp -------------------------------------------------------------------------------- /system_data/network_configuration/interfaces_net/static-network.conf: -------------------------------------------------------------------------------- 1 | # interfaces(5) file used by ifup(8) and ifdown(8) 2 | auto lo 3 | iface lo inet loopback 4 | 5 | auto enp0s3 6 | iface enp0s3 inet static 7 | address 192.168.8.101 8 | # Aplicamos una mascara invertida 9 | netmask 255.255.255.0 10 | gateway 192.168.8.1 11 | dns-nameservers 192.168.8.1 8.8.8.8 -------------------------------------------------------------------------------- /system_data/network_configuration/interfaces_net/theory.md: -------------------------------------------------------------------------------- 1 | Network Manager es la configuracion utilizada para versiones Ubuntu 18 y anteriores, para gestionar la configuracion de red del dispositivo. 2 | 3 | La direccion del fichero de configuracion es `/etc/network/interfaces`, en esta es posible usar tabuladores y espacios sin que haya un conflico con la configuracion (a diferencia que el netplan que unicamente permite kespacios de separacion de dos caracteres). 4 | 5 | Para cambiar la configuracion del fichero, es necesario acceder como superusuario (root), asi se evitan problemas al intentar guardar y carecer de permisos. 6 | 7 | Configuracion por defecto: 8 | ```conf 9 | # interfaces(5) file used by ifup(8) and ifdown(8) 10 | auto lo 11 | iface lo inet loopback 12 | ``` -------------------------------------------------------------------------------- /system_data/network_configuration/netplan_net/dynamic-network.conf: -------------------------------------------------------------------------------- 1 | #Configuracion de conexion dinamica 2 | #Este codigo permite el paso de red, mediante el protocolo dhcp, permitiendo una asignacion de ip automatica (es variable) 3 | network: 4 | version: 2 5 | #usamos networkd, por defecto viene NetworkManager 6 | renderer: networkd 7 | ethernets: 8 | #en0s3 puede variar, para ver con que hay que conectarse, deberas usar "ip a", puede ser la interfaz enp0s2, enp0s3 o cualquier otro 9 | enp0s3: 10 | #Aqui indicamos que en la conexion por enp0s3 nos conectamos por dhcp4 (asignacion de ip automatica) 11 | #Esta opcion puede estar en diferentes opciones (true/no) 12 | dhcp4: true -------------------------------------------------------------------------------- /system_data/network_configuration/netplan_net/static-network.conf: -------------------------------------------------------------------------------- 1 | #Configuracion de conexion estatica 2 | #Este codigo permite el paso de red, mediante el protocolo dhcp, permitiendo una asignacion de ip automatica 3 | network: 4 | version: 2 5 | #usamos networkd, por defecto viene NetworkManager 6 | renderer: networkd 7 | ethernets: 8 | #En este caso tenemos varias conexiones de red, una con en0s3 y otra con enp0s8, cada una puede ser configurada individualmente 9 | #Configuracion enp0s3: 10 | enp0s3: 11 | dhcp4: no 12 | #Al tener dhcp4 desactivado, le aplicamos una red fija, en este caso es la 40.0.0.2 con una gateway a la ip 40.0.0.1 13 | addresses: [40.0.0.2/8] 14 | gateway4: 40.0.0.1 15 | #Configuracion enp0s8: 16 | enp0s8: 17 | #Habilitamos la conexion automatica por dhcp, en caso de queres establecer una ip fija, descomentamos "addresses" y "gateway4", habiendo establecido el dhcp en "no" 18 | dhcp4: true 19 | #addresses: [40.0.0.3/8] 20 | #gateway4: 40.0.0.1 21 | -------------------------------------------------------------------------------- /system_data/network_configuration/netplan_net/theory.md: -------------------------------------------------------------------------------- 1 | Netplan es un programa que permite al usuario gestionar la red estableciendola en interna, externa y modificando sus propiedades, cambiando asi la configuracion de red del equipo, bien sea cliente o servidor. 2 | 3 | Netplan esta disponible para versiones Ubuntu 18 y posteriores, para versiones anteriores esta el fchero `/etc/network/interfaces` 4 | 5 | La direccion de netplan y su fichero de configuracion es `/etc/netplan/01-network-manager-all.yml` 6 | Es necesario acceder como superusuario (sudo) para poder editarlo con los permisos (si esto no es llevado a cabo correctamente, al tratar de guardar la configuracion esta no dejara guardar la misma, debido a la falta de permisos). 7 | 8 | Posteriormente, para aplicar la configuracion del netplan, usaremos `netplan apply` y para ver la direccion ip, usaremos `ip a` para poder comprobar si se han aplicado los cambios. 9 | En caso dee error en la escritura, este programa indicara el error al tratar de aplicar la configuracion, indicando la linea y donde esta el error justamente. 10 | 11 | Dentro de la configuracion del fichero netplan, cada seccion esta separada por espacios, cada separacion en formato raiz esta separado por dos unicos espacios, los cuales definen el inicio de una nueva subcategoria de forma heredada. 12 | 13 | Ejemplo y explicacion de configuracion: 14 | 15 | En este ejemplo tenemos una configuracion con varias conexiones (en0s3 y enp0s8) cada una tiene asignada una configuracion diferente. 16 | 17 | En el caso de enp0s3, cuenta con una direccion fija `192.168.1.2/24`, mientras que el en0s8 cuenta con una asignacion de direccion automatica con dhcp. 18 | 19 | Todo aquello que este remarcado con rojo es aquello que no funciona (en el caso de addresses y gateway deben estar comentados, mientras que la configuracion dhcp4 debe estar sin comentar para indicar a la configuracion el modo activo, debido que las direcciones no se tienen en cuenta si la configuracion anterior esta deshabilitada, por ende tenerlas comentadas o no, no genera mucho cambio a la hosra de aplicar los ajustes). 20 | 21 | ```diff 22 | network: 23 | version: 2 24 | renderer: networkd 25 | ethernets: 26 | enp0s3: 27 | - dhcp4: no 28 | addresses: [192.168.1.2/24] 29 | gateway: 192.168.1.1 30 | enp0s8: 31 | dhcp4: true 32 | - #addresses: [40.0.0.2/8] 33 | - #gateway: 40.0.0.1 34 | ``` 35 | -------------------------------------------------------------------------------- /system_data/system_structure/linux-structure.md: -------------------------------------------------------------------------------- 1 | ```prolog 2 | [Linux Structure] 3 | │ 4 | └─ / 5 | ├── /bin 6 | ├── /boot 7 | ├── /dev 8 | │ └── - (console) 9 | ├── /etc 10 | │ ├── (network) 11 | │ ├── (apache) 12 | │ ├── (nginx) 13 | │ ├── (skel) 14 | │ └── (ssh) 15 | ├── /home 16 | │ ├── user1 17 | │ │ ├── documents 18 | │ │ └── downloads 19 | │ └── user2 20 | │ ├── documents 21 | │ └── pictures 22 | ├── /lib 23 | ├── /mnt 24 | │ ├── backup 25 | │ └── data 26 | ├── /opt 27 | ├── /proc 28 | ├── /root 29 | ├── /run 30 | ├── /sbin 31 | ├── /srv 32 | │ ├── www 33 | │ └── ftp 34 | ├── /sys 35 | ├── /tmp 36 | ├── /usr 37 | │ ├── /bin 38 | │ ├── /lib 39 | │ ├── /sbin 40 | │ ├── /share 41 | │ └── /src 42 | ├── /var 43 | │ ├── /log 44 | │ ├── /mail 45 | │ └── /www 46 | │ ├── /html 47 | │ └── /logs 48 | └── /media 49 | ├── /cdrom 50 | └── /usb 51 | 52 | ``` 53 | 54 | / (Raíz): Es el directorio raíz del sistema de archivos. Todos los demás directorios y archivos se encuentran bajo este. 55 | 56 | /bin: Contiene programas ejecutables (binarios) que son esenciales para el funcionamiento del sistema, y que son necesarios en el modo de usuario. 57 | 58 | /boot: Almacena archivos relacionados con el proceso de arranque del sistema, como el núcleo del sistema operativo y los archivos de configuración del gestor de arranque. 59 | 60 | /dev: Contiene archivos especiales que representan dispositivos, como discos duros, impresoras, etc. 61 | 62 | /etc: Guarda archivos de configuración del sistema y de las aplicaciones. 63 | 64 | /etc/network: Configuraciones de red. 65 | /etc/apache: Configuraciones del servidor web Apache. 66 | /etc/nginx: Configuraciones del servidor web Nginx. 67 | /etc/skel: Plantilla predeterminada para los nuevos usuarios. 68 | /etc/ssh: Configuraciones del protocolo SSH. 69 | /home: Es el directorio base para los directorios personales de los usuarios. 70 | 71 | /home/user1: Directorio personal del usuario1. 72 | /home/user1/documents: Documentos del usuario1. 73 | /home/user1/downloads: Descargas del usuario1. 74 | /home/user2: Directorio personal del usuario2. 75 | /home/user2/documents: Documentos del usuario2. 76 | /home/user2/pictures: Imágenes del usuario2. 77 | /lib: Contiene bibliotecas compartidas esenciales para los programas del sistema y las aplicaciones. 78 | 79 | /mnt: Se utiliza para montar sistemas de archivos temporales o externos. 80 | 81 | /mnt/backup: Punto de montaje para copias de seguridad. 82 | /mnt/data: Punto de montaje para datos adicionales. 83 | /opt: Directorio para la instalación de paquetes de software adicionales. 84 | 85 | /proc: Contiene información sobre procesos y el sistema. 86 | 87 | /root: Directorio personal del usuario root (administrador del sistema). 88 | 89 | /run: Contiene archivos de sistema y datos que deben estar presentes durante el arranque del sistema. 90 | 91 | /sbin: Contiene programas esenciales para el sistema, utilizados principalmente por el superusuario. 92 | 93 | /srv: Almacena datos específicos del sitio que son servidos por el sistema. 94 | 95 | /srv/www: Contiene datos del sitio web. 96 | /srv/ftp: Contiene datos para el servidor FTP. 97 | /sys: Proporciona una interfaz para el kernel del sistema. 98 | 99 | /tmp: Directorio para archivos temporales. 100 | 101 | /usr: Contiene archivos y directorios utilizados por aplicaciones del sistema. 102 | 103 | /usr/bin: Binarios de aplicaciones para todos los usuarios. 104 | /usr/lib: Bibliotecas para aplicaciones del sistema. 105 | /usr/sbin: Binarios esenciales para administradores del sistema. 106 | /usr/share: Datos compartidos utilizados por aplicaciones. 107 | /usr/src: Código fuente del kernel y otras fuentes. 108 | /var: Contiene datos variables, como registros, correos electrónicos y archivos temporales. 109 | 110 | /var/log: Registros del sistema y de aplicaciones. 111 | /var/mail: Buzones de correo. 112 | /var/www: Datos del servidor web. 113 | /var/www/html: Contenido HTML del servidor web. 114 | /var/www/logs: Registros del servidor web. 115 | /media: Punto de montaje para dispositivos de almacenamiento extraíbles. 116 | 117 | /media/cdrom: Punto de montaje para unidades de CD/DVD. 118 | /media/usb: Punto de montaje para dispositivos USB. -------------------------------------------------------------------------------- /virtual_private_network_openvpn/commands.md: -------------------------------------------------------------------------------- 1 | Una VPN es una conexión remota (crea una camino virtual a través de internet para conectarse sin una conexión). 2 | Requisitos: 3 | apt-get update 4 | apt install vsftpd 5 | apt install openssh-server 6 | apt install ftp 7 | apt install openssl 8 | apt install git 9 | apt install openvpn 10 | 11 | Clonamos Repositorios: 12 | git clone https://github.com/OpenVPN/easy-rsa-old 13 | cp easy-rsa-old 14 | 15 | Red Estática: 16 | nano /etc/netplan/00-network-manager-all.yml (Los espacios son de 2uds) 17 | ``` 18 | └────network: 19 | ├──────version: 2 20 | ├──────renderer: networkd (por defecto está NetworkManager) 21 | ├──────ethernets: 22 | ├────────enp0s3: 23 | ├──────────dhcp4: no 24 | ├──────────addresses: [192.168.10.10/24] 25 | ├──────────gateway4: 192.168.10.1 26 | ├──────────nameservers: 27 | └────────────addresses: [8.8.8.8] 28 | ``` 29 | 30 | netplan apply 31 | 32 | Copia: 33 | 34 | 35 | cp -r ./easy-rsa-old/easy-rsa/2.0/ easy-rsa 36 | ``` 37 | Información: 38 | build-ca >>Crear certificado autorizado 39 | build-dh >>Diff hellman (encripta todo el trayecto de comunicación) 40 | build-key-server >>Crea llaves de certificados de servidor 41 | build-key >>Crea llaves de certificado de cliente 42 | vars >>Archivo donde se indica ubicación, cliente (por defecto Estados Unidos - San Francisco) 43 | ``` 44 | 45 | Archivo vars: 46 | nano vars 47 | export KEY_COUNTRY=”Country” 48 | export KEY_PROVINCE=”Province” 49 | export KEY_CITY=”City” 50 | export KEY_ORG=”Key” 51 | export KEY_EMAIL=”email@dom.x” 52 | export KEY EMAIL=”email@host.domain” 53 | export KEY_CN=key 54 | export KEY_NAME=key_name 55 | export KEY_OU=Key_Informativa 56 | export PKCS11_MODULE_PATH=DNI Electrónico 57 | export PKCS11_PIN=1234 58 | 59 | 60 | Crear VPN: 61 | ``` 62 | mv openssl.1.0.0.cnf openssl.cnf 63 | . ./vars >>Propiedades de certificado 64 | ./clean-all >>Borrar certificados creados 65 | ./build-ca >>Crear certificado “ca.crt” dentro de /keys 66 | ./build-key-server servidor >> 67 | ./build-dh >>Crear el dh dentro de /keys 68 | ``` 69 | 70 | Archivo Configuración VPN: 71 | 72 | 73 | cd /usr/share/doc/openvpn/examples/sample-config-files 74 | cp server.conf.gz /home/user/easy–rsa/keys 75 | cd /home/user/easy-rsa/keys 76 | gunzip server.conf.gz >>Comprimir y transformarlo en un archivo legible 77 | cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home/user/easy-rsa/keys/ 78 | nano /etc/vsftpd.conf >>Descomentar “write_enable=YES” 79 | service vsftpd restart 80 | 81 | 82 | Conexión por FTP 83 | ftp usuario@ip 84 | contraseña 85 | put ca.crt 86 | put client.conf 87 | put cliente.key 88 | put cliente.crt 89 | put cliente.csr 90 | 91 | ``` 92 | Información server.conf (servidor) - nano /home/user/easy-rsa/keys/server.conf 93 | ca /home/user/easy-rsa/keys/ca.crt >>Establecer dirección de los archivos en máquina servidor 94 | cert /home/user/easy-rsa/keys/servidor.crt >>Establecer dirección de los archivos en máquina servidor 95 | key /home/user/easy-rsa/keys/servidor.key >>Establecer dirección de los archivos en máquina servidor 96 | 97 | ifconfig-pool-persist /home/user/easy-rsa/keys/ipp.txt 98 | archivo ipp.txt >>Archivo donde se almacenan las IPs que se le dan a los clientes 99 | 100 | tls-auth ta.key 0 >>Comentar esta linea 101 | status /home/user/easy-rsa/keys/openvpn-status.log >>Registro de personas que se loguean 102 | 103 | openvpn server.conf >>Iniciar VPN en el servidor 104 | 105 | 106 | Información client.conf (cliente) 107 | ca /home/user/ca.crt >>Establecer dirección de los archivos en máquina cliente 108 | cert /home/user/cliente.crt >>Establecer dirección de los archivos en máquina cliente 109 | key /home/user/cliente.key >>Establecer dirección de los archivos en máquina cliente 110 | 111 | tls-auth ta.key 0 >>Comentar esta linea 112 | openvpn user.conf >>Iniciar VPN en el cliente 113 | ``` -------------------------------------------------------------------------------- /virtual_private_network_openvpn/theory.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Theritex/LinuxCommands/3f6fe0af0bcc33cdb361d3165f22470c29412043/virtual_private_network_openvpn/theory.md --------------------------------------------------------------------------------