Vam tancar el Mòdul 4 amb una llista de deutes, i aquesta lliçó salda el primer i el més incòmode: svc-tramontana existeix «per art de màgia» i el grup tramontana no existeix en absolut. Has estat escrivint chown svc-tramontana:tramontana sobre fitxers el grup dels quals ningú no havia creat mai. Això avui s'acaba. Veuràs què és de debò una identitat a Linux —un número, no un nom—, quins fitxers són la font de la veritat i què conté cada camp, com es creen comptes de persona i comptes de servei (que no s'assemblen en res), i per què l'error més car de tot el mòdul cap en una lletra que falta: usermod -G en lloc de usermod -aG.
Contingut
- El model d'identitat: UID, GID i grups suplementaris
- Els quatre fitxers de la veritat, camp a camp
- Tipus de compte i el rang d'UID de
/etc/login.defs - Crear usuaris:
useradd,adduseri/etc/skel - Contrasenyes: fixar, bloquejar i el significat de
!i* - Modificar i esborrar comptes, i els fitxers orfes
- Caducitat de comptes amb
chage - Grups: crear, modificar i per què cal reobrir sessió
- Comptes de servei: per què l'aplicació mai no corre com a root
- Auditoria: qui és qui i qui ha entrat
- Cas Tramontana: saldar el deute del mòdul anterior
- El model d'identitat: UID, GID i grups suplementaris
El nucli no sap què és operador. El nucli només maneja números:
- UID (User ID): identifica l'usuari. El propietari d'un fitxer és un número guardat a l'inode, no una cadena.
- GID (Group ID): identifica un grup. Cada usuari té un grup primari (el que hereta un fitxer nou que crea) i zero o més grups suplementaris.
Els noms només existeixen per a la nostra comoditat, i la traducció número→nom la fa la biblioteca del sistema llegint /etc/passwd i /etc/group. Per això, si esborres un usuari, ls -l comença a mostrar números crus: el fitxer conserva l'UID 1003 encara que ja ningú no es digui així.
Llegeix-ho així: operador és el 1000, el seu grup primari és operador (1000) i pertany a més a adm i sudo com a suplementaris. Aquesta distinció importa:
El primari es defineix al camp 4 de /etc/passwd i és el que s'assigna als fitxers que l'usuari crea; els suplementaris es defineixen al camp 4 de /etc/group i només amplien l'accés. El grup efectiu d'un procés es pot canviar en calent amb newgrp o sg.
A Ubuntu, per defecte cada usuari rep un grup propi amb el seu mateix nom (esquema UPG, User Private Group). No és un caprici: permet treballar amb umask 002 sense exposar els fitxers a mitja màquina, perquè «el grup» ets només tu.
- Els quatre fitxers de la veritat, camp a camp
/etc/passwd — qui existeix
Set camps separats per :. És llegible per tothom (644) perquè qualsevol procés necessita traduir UID a nom per a un simple ls -l.
$ grep -E '^(root|operador|svc-tramontana):' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operador:x:1000:1000:Operador Tramontana,,,:/home/operador:/bin/bash
svc-tramontana:x:997:1002:Servei Tramontana Reserves:/opt/tramontana:/usr/sbin/nologin| # | Camp | Exemple | Notes |
|---|---|---|---|
| 1 | Nom d'accés | operador |
Únic; en minúscules per convenció |
| 2 | Contrasenya | x |
La x significa «és a /etc/shadow» |
| 3 | UID | 1000 |
El que de debò importa |
| 4 | GID primari | 1000 |
Apunta a /etc/group |
| 5 | GECOS | Operador Tramontana,,, |
Nom real, despatx, telèfons; ho edita chfn |
| 6 i 7 | Home i shell | /home/operador, /bin/bash |
El home pot no existir en comptes de sistema; /usr/sbin/nologin per a qui no ha d'entrar |
/etc/shadow — el secret
Nou camps. Permisos 640, propietat root:shadow: llegible per root i pel grup shadow, invisible per a la resta. Allà hi ha el resum criptogràfic, i un resum llegible per qualsevol és un resum que algú acabarà trencant amb una GPU.
$ sudo grep -E '^(operador|svc-tramontana):' /etc/shadow
operador:$y$j9T$Qk3rP0mZ7uY2xB1c$Fq8sT...ZR1:20310:0:90:7:14::
svc-tramontana:!:20310:0:99999:7:::| # | Camp | Valor de l'exemple | Significat |
|---|---|---|---|
| 1 | Usuari | operador |
Enllaça amb passwd |
| 2 | Resum (hash) | $y$j9T$... |
Vegeu-ho més avall |
| 3 | Últim canvi | 20310 |
Dies des de l'1-01-1970 |
| 4 i 5 | Mínim i màxim | 0 / 90 |
Dies abans de poder canviar-la i dies de validesa |
| 6 i 7 | Avís i inactivitat | 7 / 14 |
Avís previ i gràcia després de caducar abans d'inhabilitar |
| 8 i 9 | Caducitat del compte i reservat | (buits) | Data absoluta en dies des de 1970; el 9 no s'utilitza |
El resum té format $id$paràmetres$sal$hash. A Ubuntu 24.04 l'algorisme per defecte és yescrypt ($y$), que va substituir SHA-512 ($6$) per ser resistent a atacs amb GPU i ASIC gràcies al seu cost en memòria:
| Prefix | Algorisme | Estat |
|---|---|---|
$y$ |
yescrypt | Per defecte a Ubuntu 24.04 |
$6$ |
SHA-512 | Encara vàlid; heretat |
! o !$y$... |
Compte bloquejat | El resum pot continuar a sota |
* |
Sense contrasenya utilitzable | Típic de comptes de sistema |
| (buit) | Sense contrasenya: hi entra qualsevol | Perill real, corregeix-ho ja |
/etc/group i /etc/gshadow
$ getent group tramontana adm sudo
tramontana:x:1002:operador,luis,svc-tramontana
adm:x:4:syslog,operador
sudo:x:27:operadorQuatre camps: nom, contrasenya (x), GID i llista de membres suplementaris. Compte: qui tingui aquest grup com a primari no apareix en aquesta llista. /etc/gshadow (640, root:shadow) guarda la contrasenya del grup —una raresa que gairebé ningú no fa servir— i els administradors del grup, que poden afegir membres amb gpasswd sense ser root.
- Tipus de compte i el rang d'UID de
/etc/login.defs
/etc/login.defs| Tipus | UID | Exemples | Trets |
|---|---|---|---|
| Superusuari | 0 | root |
Se salta tota comprovació de permisos |
| Sistema / servei | 1–999 | daemon, syslog, svc-tramontana (997) |
Sense accés, sense caducitat, creats amb -r |
| Persona | ≥ 1000 | operador (1000), luis (1001) |
Home, shell, contrasenya, caducitat |
nobody |
65534 | nobody |
Identitat mínima per a processos sense privilegi |
Qui decideix aquests rangs és /etc/login.defs:
$ grep -E '^(UID_MIN|UID_MAX|SYS_UID_MIN|SYS_UID_MAX|ENCRYPT_METHOD|UMASK|PASS_MAX_DAYS)' /etc/login.defs
PASS_MAX_DAYS 99999
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 100
SYS_UID_MAX 999
ENCRYPT_METHOD YESCRYPT
UMASK 022L'important: UID 0 és root no pel nom, sinó pel número. Si crees un segon compte amb UID 0, tens dos roots i cap auditoria que els distingeixi a l'inode. No ho facis mai.
- Crear usuaris:
useradd, adduser i /etc/skel
useradd, adduser i /etc/skeluseradd és l'eina de baix nivell de la suite shadow: fa exactament el que li demanes, ni una cosa més. Les seves opcions clau:
| Opció | Efecte |
|---|---|
-m |
Crea el home i copia /etc/skel (sense ella, no hi ha home) |
-d RUTA |
Home diferent del predeterminat |
-s SHELL |
Shell d'accés |
-u UID |
UID concret |
-g GRUP |
Grup primari |
-G g1,g2 |
Grups suplementaris |
-c "TEXT" |
Camp GECOS; -N evita crear el grup propi |
-r |
Compte de sistema: UID del rang baix, sense caducitat, sense home tret de -m |
$ sudo useradd -m -s /bin/bash -c "Luis Ferrer,Desenvolupament,,," luis
$ sudo passwd luis
New password:
Retype new password:
passwd: password updated successfullyadduser és un script en Perl de Debian que embolcalla useradd i fa el que un humà espera: tria l'UID lliure, crea el home amb permisos correctes, crea el grup propi, copia /etc/skel, pregunta la contrasenya i omple el GECOS de manera interactiva. Comparació honesta:
| Aspecte | useradd |
adduser |
|---|---|---|
| Portabilitat | Universal a Linux | Només Debian/Ubuntu |
| Interactiu | No | Sí (ideal a mà) |
| Home | Només amb -m |
Sempre |
| Contrasenya | A part, amb passwd |
La demana |
| Scripts | Sí, aquesta és la bona | Requereix --disabled-password i compte |
Regla pràctica: a mà, adduser; en un script, useradd, perquè el seu comportament no depèn d'un fitxer de configuració distribuït.
/etc/skel (que a Ubuntu conté .bashrc, .profile i .bash_logout) és la plantilla del home: tot el que hi ha a dins es copia en crear el compte amb -m. És el lloc per imposar un .bashrc corporatiu o l'indicador vermell de producció del Mòdul 3.
- Contrasenyes: fixar, bloquejar i el significat de
! i *
! i *passwd # la pròpia: demana l'actual abans de canviar-la
sudo passwd luis # root canvia la de qualsevol sense saber l'anterior
echo 'luis:UnaClauLlargaIUnica' | sudo chpasswd # en lot, no interactiu
sudo passwd -e luis # forçar el canvi en el proper accés (= chage -d 0)Bloquejar i desbloquejar:
sudo passwd -l luis # anteposa '!' al resum
sudo passwd -S luis # -> luis L 2026-08-18 0 99999 7 -1
sudo passwd -u luis # treu el '!' i restaura el resum originalLa L de passwd -S és «locked»; P seria contrasenya utilitzable i NP sense contrasenya, que és una emergència.
| Contingut del camp 2 | Significat | Es pot tornar enrere? |
|---|---|---|
$y$... |
Contrasenya vàlida | — |
!$y$... |
Bloquejada: el resum està intacte a sota | Sí, passwd -u |
! |
Bloquejada i sense resum a restaurar | No, cal fixar-ne una de nova |
* |
Mai no va tenir contrasenya; accés per contrasenya impossible | No aplica |
| (buit) | Hi entra sense escriure res | Corregeix-ho immediatament |
usermod -L fa el mateix que passwd -l sobre el resum. La diferència pràctica no és entre ells, sinó en el que cap dels dos fa: bloquejar la contrasenya no impedeix entrar per clau SSH, ni mata les sessions obertes. Per a una baixa de personal de debò cal la combinació completa:
sudo usermod -L -e 1 -s /usr/sbin/nologin luis # bloqueja, caduca el compte i treu el shell
sudo pkill -u luis # tanca el que tingués obert-e 1 fixa la caducitat al 2 de gener de 1970: el compte queda expirat i PAM rebutja l'accés vingui per on vingui.
- Modificar i esborrar comptes, i els fitxers orfes
usermod canvia el que ja existeix. I aquí hi ha l'error clàssic del mòdul:
# MALAMENT: substitueix TOTS els grups suplementaris per 'tramontana'
sudo usermod -G tramontana operador
# BÉ: afegeix sense tocar els que ja tenia
sudo usermod -aG tramontana operadorSense la -a (append), operador surt de sudo i d'adm en el mateix instant. Si a sobre la sessió de root estava tancada, acabes de perdre l'administració de la màquina i toca arrencar en mode de recuperació. Comprova sempre abans i després amb id.
Altres usos habituals:
sudo usermod -c "Luis Ferrer,Desenvolupament,,," luis # GECOS
sudo usermod -l lferrer luis # reanomenar l'accés (no mou el home)
sudo usermod -d /home/lferrer -m lferrer # moure el home amb el seu contingutEsborrar:
sudo userdel luis # esborra el compte, conserva el home
sudo userdel -r luis # esborra també el home i la bústia de correuuserdel -r no troba el que l'usuari va deixar fora del seu home: un fitxer a /srv, un cron, un temporal. Aquests fitxers queden amb un UID sense nom i, pitjor encara, el següent usuari que rebi aquest UID n'heretarà la propietat. Auditoria obligatòria abans de reassignar:
$ sudo find / -xdev \( -nouser -o -nogroup \) 2>/dev/null
$ sudo find /srv /opt /var -xdev -uid 1001 2>/dev/null
/srv/tramontana/backups/temporals/informe-luis.csvAvís de compliment. Les altes i baixes de personal no són una tasca tècnica aïllada: en un entorn real han de seguir un procediment aprovat (qui autoritza, en quin termini es revoca l'accés, què es fa amb els fitxers de l'empleat, que poden contenir dades personals d'hostes). Documenta cada alta i cada baixa amb data i autoritzant, i que el responsable de seguretat o de compliment (RGPD) validi el procediment abans d'aplicar-lo.
- Caducitat de comptes amb
chage
chagechage maneja els camps 3 a 8 de /etc/shadow sense que hagis de comptar dies des de 1970.
$ sudo chage -l operador
Last password change : Aug 18, 2026
Password expires : Nov 16, 2026
Password inactive : Nov 30, 2026
Account expires : never
Maximum number of days between password change : 90| Opció | Efecte |
|---|---|
-M 90 |
Validesa màxima de la contrasenya |
-m 1 |
Mínim entre canvis (evita rotar-la cinc vegades per tornar a la mateixa) |
-W 7 |
Dies d'avís |
-I 14 |
Dies de gràcia després de caducar |
-E 2026-12-31 |
Data de caducitat del compte (contractes temporals) |
-d 0 |
Força el canvi en el proper inici de sessió |
La política de contrasenyes de debò —longitud mínima, complexitat, diccionari, historial— no viu aquí: la imposa PAM amb pam_pwquality, i és matèria de 06-06. chage només posa els terminis.
- Grups: crear, modificar i per què cal reobrir sessió
sudo groupadd -g 1002 tramontana # GID explícit, reproduïble entre màquines
sudo groupmod -n tramontana-app tramontana # reanomenar
sudo groupdel grup-vell # falla si és primari d'algú
sudo gpasswd -a luis tramontana # afegir un membre
sudo gpasswd -d luis tramontana # treure'l
sudo gpasswd -A operador tramontana # 'operador' pot administrar el grup sense ser rootgpasswd -a i usermod -aG fan el mateix; gpasswd té l'avantatge de no admetre l'error de la -a oblidada, perquè la seva sintaxi sempre és additiva.
I ara el detall que fa perdre tardes senceres: afegir algú a un grup no afecta les seves sessions obertes.
$ sudo usermod -aG tramontana operador
$ id operador # la base de dades: ja hi surt 1002(tramontana)
$ id # LA TEVA sessió: encara no hi surt
uid=1000(operador) gid=1000(operador) groups=1000(operador),4(adm),27(sudo)La raó és que els grups suplementaris es fixen en el moment de l'accés, queden gravats a les credencials del procés i s'hereten als fills. Cap fitxer de configuració no canviarà un procés que ja s'està executant. Les sortides:
newgrp tramontana # obre un subshell amb el grup nou (solució d'emergència)
exec su - "$USER" # reentrada neta al mateix llocEl correcte és tancar la sessió i tornar a entrar. I el mateix val per als serveis: si canvies els grups de svc-tramontana, cal reiniciar el servei, no n'hi ha prou a recarregar.
- Comptes de servei: per què l'aplicació mai no corre com a root
Una aplicació exposada al port 8080 és la porta d'entrada més probable al teu servidor. Si corre com a root, qualsevol fallada d'execució remota és game over: la màquina sencera. Si corre com a svc-tramontana, l'atacant hereta una identitat que no pot llegir /etc/shadow, no pot escriure a /etc, no pot instal·lar res i no pot llegir els fitxers d'altres usuaris.
El que distingeix un compte de servei:
- UID de sistema (
-r, per sota de 1000) i sense caducitat: un compte de servei que caduca tomba el servei a les 3 de la matinada. - Sense shell d'accés:
/usr/sbin/nologin(imprimeix un missatge i surt amb error) o/bin/false. - Sense contrasenya utilitzable (
!o*ashadow) i sense home propi: normalment apunta al directori de l'aplicació.
- Auditoria: qui és qui i qui ha entrat
| Ordre | Respon a |
|---|---|
id [usuari] |
UID, GID i grups segons la base de dades |
groups [usuari] |
Només els noms de grup |
getent passwd luis |
Consulta totes les fonts (/etc/passwd, LDAP…), no només el fitxer |
getent group tramontana |
El mateix per a grups |
who / w |
Qui està connectat ara; w afegeix la càrrega i què executa |
last -n 5 |
Historial d'accessos (llegeix /var/log/wtmp) |
lastlog |
Últim accés de cada compte; delata comptes morts |
$ w | tail -2
operador pts/0 10.0.2.1 09:02 0.00s 0.09s 0.01s w
luis pts/1 10.0.2.1 08:47 12:03 0.04s 0.04s -bashgetent sempre és preferible a grep /etc/passwd: el dia que l'empresa afegeixi un directori corporatiu, grep mentirà i getent continuarà dient la veritat.
- Cas Tramontana: saldar el deute del mòdul anterior
Estat de partida a srv-tramontana: operador (1000) i luis (1001) existeixen; svc-tramontana i el grup tramontana no, encara que mig mòdul en parlava. Ho arreglem en ordre, i amb còpia prèvia dels fitxers d'identitat tal com mana la convenció del curs.
sudo cp -a /etc/passwd /etc/passwd.bak-$(date +%F) # còpia prèvia, com sempre
sudo cp -a /etc/group /etc/group.bak-$(date +%F)
# 1) El grup compartit, amb GID fix perquè coincideixi a totes les màquines
sudo groupadd -g 1002 tramontana
# 2) El compte de servei: sistema, sense shell, sense home propi, sense contrasenya
sudo useradd -r -u 997 -g tramontana \
-d /opt/tramontana -M \
-s /usr/sbin/nologin \
-c "Servei Tramontana Reserves" svc-tramontana
# 3) Les persones que treballen amb l'aplicació entren al grup
sudo usermod -aG tramontana operador
sudo usermod -aG tramontana luis-M impedeix crear el home: /opt/tramontana ja existeix i no volem que useradd hi aboqui /etc/skel a sobre. Verifiquem abans de tocar res més:
$ getent passwd svc-tramontana && getent group tramontana
svc-tramontana:x:997:1002:Servei Tramontana Reserves:/opt/tramontana:/usr/sbin/nologin
tramontana:x:1002:operador,luisAra la propietat dels directoris, que fins avui era una promesa:
sudo chown -R svc-tramontana:tramontana /opt/tramontana
sudo chown -R operador:tramontana /srv/tramontana/backups
sudo chmod -R u=rwX,g=rX,o= /opt/tramontana
sudo chmod -R u=rwX,g=rwX,o= /srv/tramontana/backups
sudo chmod 2770 /opt/tramontana/shared/uploads
ls -ld /opt/tramontana /opt/tramontana/app /srv/tramontana/backupsdrwxr-x--- 5 svc-tramontana tramontana 4096 Aug 18 09:20 /opt/tramontana lrwxrwxrwx 1 svc-tramontana tramontana 22 Aug 12 18:02 /opt/tramontana/app -> releases/3.2.1 drwxrwx--- 5 operador tramontana 4096 Aug 18 04:20 /srv/tramontana/backups
Fixa't en l'o=: ningú de fora del grup no veu res, aplicant la convenció de «grup compartit en comptes de permisos a altres». Aquell 2 de 2770 a uploads és el bit SGID, que fa que tot el que es creï a dins pertanyi al grup tramontana sense dependre de qui ho creï; el desglossem a la lliçó següent.
I la documentació, que és part de la feina:
sudo tee -a /opt/tramontana/HISTORIAL >/dev/null <<'FI'
2026-08-18 Formalització d'identitats (operador)
- groupadd -g 1002 tramontana ; useradd -r -u 997 ... svc-tramontana
- operador i luis afegits a 'tramontana' (cal reobrir sessió)
- chown svc-tramontana:tramontana /opt/tramontana ; operador:tramontana als backups
FIErrors Comuns i Consells
usermod -Gsense-a. L'error més car de la lliçó: substitueix la llista sencera i pot treure't desudo. Abans de tocar grups, guarda la sortida d'id usuari; després, compara-la.- Esperar que un grup nou funcioni a la sessió actual. No passarà.
id usuariconsulta la base de dades,ida seques consulta la teva sessió. Tanca i obre sessió, i reinicia els serveis afectats. - Editar
/etc/passwdo/etc/shadowambnano. Fes servirvipwivipw -s(ivigrper als grups): bloquegen el fitxer i en validen la sintaxi en sortir. Unshadowcorromput és un servidor on no entra ningú. - Crear el compte de servei amb shell. Si
svc-tramontanaté/bin/bash, qualsevol via que aconsegueixi executar com ell aconsegueix un shell interactiu.nologinno és cosmètica. - Confondre bloquejar amb deshabilitar.
passwd -lno impedeix l'accés per clau SSH. Per a una baixa:usermod -L -e 1 -s /usr/sbin/nologinipkill -u. I no reutilitzis l'UID d'un compte esborrat sense auditar abans ambfind -uid. - Consell: fixa els UID i GID de servei (997, 1002) explícitament i anota'ls. El dia que restauris una còpia en una altra màquina, els números han de coincidir o els permisos es descol·locaran en bloc.
Exercicis
- Alta completa d'un becari. Crea el compte
becariambuseradd: home propi, shell Bash, GECOS «Becari Operacions», membre suplementari detramontana, contrasenya que s'hagi de canviar en el primer accés i caducitat del compte el 31 de desembre de 2026. Verifica-ho tot sense obrir-hi sessió. - Diagnòstic d'un desastre. Algú ha executat
sudo usermod -G tramontana operador. Descriu el símptoma exacte que veuràoperadoren el seu següent inici de sessió, com ho confirmaries i com ho repares si ja no tenssudo. - Auditoria de comptes. Escriu una ordre que llisti, a partir de
/etc/passwd, únicament els comptes de persona (UID ≥ 1000, excloent-hinobody) amb el seu shell, i una altra que detecti comptes amb contrasenya buida a/etc/shadow.
Solucions
1.
sudo useradd -m -s /bin/bash -G tramontana -c "Becari Operacions,,," becari
echo 'becari:Provisional.2026!' | sudo chpasswd
sudo chage -d 0 -E 2026-12-31 becari # -d 0 força el canvi; -E caduca el compte$ id becari
uid=1004(becari) gid=1004(becari) groups=1004(becari),1002(tramontana)
$ sudo chage -l becari | grep Account
Account expires : Dec 31, 2026Aquí -G sense -a és correcte, perquè el compte s'està creant i no hi ha grups previs a perdre. La -a només importa a usermod.
2. El símptoma: operador inicia sessió amb normalitat, però qualsevol sudo respon operador is not in the sudoers file. This incident will be reported., i a més perd l'accés de lectura als registres que li donava adm. Confirmació:
Falten 4(adm) i 27(sudo). Reparació amb privilegis: sudo usermod -aG adm,sudo operador i reobrir sessió. Sense sudo i sense cap altre compte administrador, no hi ha drecera des de dins: cal reiniciar la VM, editar l'entrada de GRUB per arrencar amb init=/bin/bash, tornar a muntar l'arrel amb mount -o remount,rw / i executar usermod -aG adm,sudo operador. Aquest procediment de recuperació es veu a fons a 07-01; que existeixi és precisament la raó que l'accés físic o a la consola de la VM sigui, en si mateix, accés d'administrador.
3.
$ awk -F: '$3 >= 1000 && $3 != 65534 { printf "%-10s uid=%-6s %s\n", $1, $3, $7 }' /etc/passwd
operador uid=1000 /bin/bash
luis uid=1001 /bin/bash
becari uid=1004 /bin/bashEl silenci a la sortida significa que no n'hi ha cap, que és exactament el que vols veure: la convenció de «silenci si tot va bé» aplicada a una auditoria.
Conclusió
Ja no queda màgia a les identitats de srv-tramontana. Saps que un usuari és un número; llegeixes els nou camps de /etc/shadow, reconeixes un resum $y$ de yescrypt i distingeixes !, * i el camp buit; separes comptes de sistema de comptes de persona pel rang d'UID de /etc/login.defs; crees comptes amb useradd en scripts i amb adduser a mà, sabent què aporta /etc/skel; fixes terminis amb chage i deixes la política de contrasenyes per a 06-06; i has interioritzat que usermod -G sense -a és una manera ràpida de perdre la màquina i que un grup nou no existeix fins que es reobre la sessió.
I, sobretot, has saldat el deute: el grup tramontana (gid 1002) existeix, svc-tramontana (uid 997) és un compte de sistema real sense shell ni contrasenya, operador i luis són al grup, /opt/tramontana i /srv/tramontana/backups tenen amo i el canvi està anotat a l'HISTORIAL.
Falta l'altra meitat de l'equació. Tens identitats, però sudo continua sent una paraula màgica que escrius sense saber qui decideix què et permet fer, i els bits estranys que vas veure de reüll a 02-07 —aquella s en lloc de la x— continuen sense explicació, encara que n'acabes de fer servir un en posar 2770 a uploads. A la lliçó següent, sudo i Permisos Especials, s'acaben totes dues coses: escriuràs una regla de sudoers que permeti a operador reiniciar i desplegar l'aplicació sense ser root, entendràs SUID, SGID i el bit sticky de debò, substituiràs un SUID per capabilities perquè l'aplicació pugui escoltar al port 80, i donaràs al Luis accés als registres amb una ACL sense ficar-lo al grup adm.
Curs de Linux: De Principiant a Administrador de Sistemes
Mòdul 1: Introducció a Linux
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Primer Contacte amb el Sistema
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Obtenir Ajuda i Documentació del Sistema
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Enllaços Durs i Simbòlics
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades en la Línia de Comandes
- L'Entorn del Shell: Variables, Àlies i Historial
- Ús de Comodins i Expressions Regulars
- Cerca de Fitxers i Contingut: find, locate i grep
- Canonades i Redirecció
- Processament de Text: cut, sort, uniq, sed i awk
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting en Shell
- Introducció al Scripting en Shell
- Variables i Tipus de Dades
- Entrada, Sortida i Arguments d'un Script
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
- Scripts de Producció: Bones Pràctiques
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- sudo i Permisos Especials
- Gestió de Paquets
- Gestió de Discs
- systemd i la Gestió de Serveis
- Registres del Sistema: journald i syslog
- Monitoratge del Sistema i Optimització del Rendiment
- Còpies de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxes
- SSH i Accés Remot
- Tallafocs i Seguretat Perimetral
- Sistemes de Detecció d'Intrusions
- Gestió de Secrets i Certificats TLS
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- El Procés d'Arrencada i la Recuperació del Sistema
- Diagnòstic Avançat: strace, perf i eBPF
- Optimització del Nucli de Linux
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Alta Disponibilitat i Balanceig de Càrrega
