Curso de Introducción a Linux

hello, i am a systems technician, i have knowledge in ui & ux design, networking, operating systems, i like to learn new things oriented to the tech world, i am currently working in an american company called lifespikes.
Control de Flujo stderr - stdout: Operadores y procesos en segundo plano
Descriptores de archivo
Permisos en Linux
Comandos [useradd, usermod, groupadd, chown, chmod, chgrp]
Notación Octal o el popular 4,2,1
Control de Flujo stderr - stdout
Los 3 números mágicos de Linux: En Linux, cada programa tiene 3 flujos predefinidos: 0 = STDIN (Standard Input) → Entrada (lo que tú escribes) 1 = STDOUT (Standard Output) → Salida normal (resultados) 2 = STDERR (Standard Error) → Salida de errores (mensajes de error) para que entiendan. Para conocer el código de estado de un comando se hace de la siguiente forma echo $?, podemos redirigir los errores del stderr podríamos hacer cat /etc/host 2>/dev/null, si queremos ocultar tanto los stderr como los stdout lo podemos hacer de dos formas: cat /etc/hosts > /dev/null 2>&1 o cat /etc/host &>/dev/null
Descriptores de archivo
En linux/bash, un descriptor de archivo(FD) es simplemnete un número que el sistema usa para identificar archivos o flujos abiertos.
| FD | Significado |
| 0 | Stdin→ Entrada Estándar(Teclado) |
| 1 | Stdout → Salida estándar(Pantalla) |
| 2 | Stderr→ Errores |
Ejemplo: Cuando ves echo “Hello, World“, realmente se está escribiendo al FD 1.
¿Para qué sirven descriptores extra?
Leer y escribir archivos sin interferir con stdin/stdout
Manejar varios archivos a la vez
Comunicación más avanzada en scripts
exec 3<> dataEquivale a:
< Leer
\> Escribir
<> Leer y Escribir
Data es el archivo que se abre. Si data existe lo abre para lectura y escritura, si no existe, lo crea.
para realizar una copia de un descriptor de archivo, seria:
exec 6>&3
Para cerrar un descriptor de archivo, seria:
exec 3>&-
Permisos en linux
los permisos dicen quien puede hacer que con un archivo o directorio.
siempre responden a 3 preguntas:
Quien?
Que puede hacer?
Sobre que?
Los 3 tipos de permisos:
| Letra | Permiso | Significa |
| r | read | leer |
| w | write | escribir |
| x | execute | ejecutar |
Los 3 tipos de usuarios:
| Bloque | Usuario |
| u | user - owner |
| g | group |
| o | others |
Como ver permisos:
ls -l
#example
-rwx r-x r-- # file
drwx r-x r-- # directory
Como leer los permisos:
- rwx r-x r--
↑ ↑ ↑ ↑
| | | |
| | | └─ others
| | └──── group
| └──────── owner
└──────────── tipo
Primer Carácter (tipo)
| Carácter | Significado |
| - | archivo |
| d | directorio |
| l | enlace simbólico |
Ejemplo
-rwx r-x r--
Owner → puede leer, escribir y ejecutar.
Group → puede leer y ejecutar.
Others → puede leer.
Diferencia clave: archivos vs directorios
En archivos:
| Permiso | Hace |
| r | ver contenido |
| w | modificar |
| x | ejecutar |
En directorios:
| Permiso | Hace |
| r | listar archivos(ls) |
| w | crear/ borrar archivos |
| x | entrar(cd) |
Comandos [useradd, usermod, groupadd, chown, chmod, chgrp]
En Linux:
Usuarios = personas
Grupos = equipos
Permisos = llaves de acceso a archivos
useradd → Crear usuarios
Crea un nuevo usuario en el sistema.
sudo useradd daniel
Eso:
Crea el usuario
NO crea home (depende de la distro)
NO asigna contraseña
Forma correcta (la más usada):
sudo useradd -m -s /bin/bash daniel
| Opción | Significado |
-m | crea /home/juan |
-s | shell por defecto |
Luego:
sudo passwd daniel
usermod → modificar usuarios
Sirve para cambiar cosas de un usuario existente.
Agregar a un grupo
sudo usermod -aG docker daniel
Importante:
-a= append (no borrar grupos previos)-G= grupos secundarios
Error común:
usermod -G docker daniel # BORRA otros grupos
Cambiar shell
sudo usermod -s /bin/zsh daniel
groupadd → crear grupos
Crea un grupo nuevo.
sudo groupadd devs
Los grupos se usan para compartir permisos.
chgrp → cambiar grupo de un archivo
Cambia solo el grupo dueño del archivo.
chgrp devs proyecto.txt
Con recursivo:
chgrp -R devs proyecto/
chown → cambiar dueño y grupo
Cambia el usuario dueño (y opcionalmente el grupo).
chown daniel archivo.txt
chown daniel:devs archivo.txt
Recursivo:
chown -R daniel:devs proyecto/
chmod → cambiar permisos
Define qué puede hacer cada usuario.
Simbólico
chmod u+x script.sh
chmod g+w archivo.txt
chmod o-r archivo.txt
Numérico
chmod 755 script.sh
chmod 644 archivo.txt
Resumen rápido tipo tabla
| Comando | ¿Qué hace? |
useradd | crea usuarios |
usermod | modifica usuarios |
groupadd | crea grupos |
chgrp | cambia grupo |
chown | cambia dueño/grupo |
chmod | cambia permisos |
Ejemplo real (flujo típico)
sudo groupadd devs
sudo useradd -m daniel
sudo usermod -aG devs daniel
sudo chown daniel:devs proyecto/
sudo chmod 775 proyecto/
Daniel y su grupo pueden trabajar en el proyecto.
Notación Octal o el popular 4,2,1
¿Por qué se llama 421?
Porque cada permiso tiene un valor fijo:
| Permiso | Valor |
r (read) | 4 |
w (write) | 2 |
x (execute) | 1 |
421 = rwx
Cómo se forma un permiso
Los valores se suman:
| Permisos | Cálculo | Número |
rwx | 4+2+1 | 7 |
rw- | 4+2 | 6 |
r-x | 4+1 | 5 |
r-- | 4 | 4 |
-wx | 2+1 | 3 |
--x | 1 | 1 |
--- | 0 | 0 |
Por qué son tres números
Cuando ves algo como:
chmod 755 archivo
Cada número corresponde a un bloque de permisos:
7 5 5
↑ ↑ ↑
| | |
| | └─ others
| └──── group
└──────── owner
Ejemplo explicado
chmod 755 script.sh
Traducción humana:
Owner →
7→rwxGroup →
5→r-xOthers →
5→r-x
Tabla mental rápida
Guárdate esto:
| Número | Permisos |
7 | rwx |
6 | rw- |
5 | r-x |
4 | r-- |
0 | --- |


