Skip to main content

Command Palette

Search for a command to run...

Curso de Introducción a Linux

Published
6 min read
Curso de Introducción a Linux
D

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.

FDSignificado
0Stdin→ Entrada Estándar(Teclado)
1Stdout → Salida estándar(Pantalla)
2Stderr→ 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<> data
    

    Equivale 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:

  1. Quien?

  2. Que puede hacer?

  3. Sobre que?

Los 3 tipos de permisos:

LetraPermisoSignifica
rreadleer
wwriteescribir
xexecuteejecutar

Los 3 tipos de usuarios:

BloqueUsuario
uuser - owner
ggroup
oothers

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ácterSignificado
-archivo
ddirectorio
lenlace 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:

PermisoHace
rver contenido
wmodificar
xejecutar

En directorios:

PermisoHace
rlistar archivos(ls)
wcrear/ borrar archivos
xentrar(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ónSignificado
-mcrea /home/juan
-sshell 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?
useraddcrea usuarios
usermodmodifica usuarios
groupaddcrea grupos
chgrpcambia grupo
chowncambia dueño/grupo
chmodcambia 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.

¿Por qué se llama 421?

Porque cada permiso tiene un valor fijo:

PermisoValor
r (read)4
w (write)2
x (execute)1

421 = rwx


Cómo se forma un permiso

Los valores se suman:

PermisosCálculoNúmero
rwx4+2+17
rw-4+26
r-x4+15
r--44
-wx2+13
--x11
---00

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 → 7rwx

  • Group → 5r-x

  • Others → 5r-x


Tabla mental rápida

Guárdate esto:

NúmeroPermisos
7rwx
6rw-
5r-x
4r--
0---