
Quan treballem amb discs i sistemes de fitxers, és important entendre com s’organitza la informació dins del dispositiu d’emmagatzematge. Cada nivell (físic, lògic i del sistema operatiu) té les seves pròpies unitats i funcions.
La mida del bloc y cluster així com el sistema de fitxers pot ser diferent a cada particio del disc.
Si llistem amb fdisk -l per trobar la nostra partició

Podem observar que la mida del sector es 512 bytes
Amb el temps i l’ús, els arxius es creen, esborren i modifiquen contínuament. Aixó pot fer que els blocs es distribueixin de manera dispersa al disc.
La fragmentació interna és quan es desaprofita espai del disc perquè els blocs són massa grans per al que s’ha de guardar dintre. Problema comú del FAT32.
Exemple: un fitxer de 8 bytes ocupa un bloc de 4096 bytes: tenim 4088 bytes desaprofitats.
Per mirar la mida del bloc de la partició podem usar tune2fs, filtrar per Block

Per a la fragmentacio externa amb la comanda “e4defrag” ens indica si una partició fa falta fragmentar.

En cas de haver desfragmentar, traiem el paràmetre -c

Sistemes de fitxers habituals:
Per poder gestionar correctament un disc, primer cal dividir-lo o organitzar-lo lògicament. Que són:
Abans d’utilitzar una partició ( o en la propia fabricació del dispositiu d’enmagatzematge). Cal aplicar un formatat, és a dir, preparar-la amb un sistema de fitxers concret. N’hi han de 3 tipus:
Podem veure l’espai desaprofitat amb una simple prova.
Escrivint un text com “Bon dia” que són 8 bytes reals i en el sistema ocupa 4096 bytes (la mida d’un bloc).
echo "Bon dia" > hola

Això significa que hi ha fragmentació interna de 4096 − 8 = 4088 bytes, és a dir, espai desaprofitat dins del bloc.
Fent servir GPARTED i la linia de comandes, formatare dues particions a EXT4 i NTFS respectivament. Intentant canviar la mida del bloc si ho permet l’eina.
És una eina visual per crear, eliminar o formatar particions.
Els passos a seguir són:
![]() |
![]() |
|---|---|
![]() |
![]() |




Amb fdisk podem crear i modificar particions manuals.
Posterior d’identificar el disc amb el paràmetre -l, he creat una partició nova primaria fins al sector 204600

I una altra en el que resta, comprovem amb fdisk que ho tenim creat.

Posteriorment, amb mkfs.ext4 -b 2048 /dev/sdb1estem formatant amb una mida de block diferent a la partició 1

I podem comprovar amb tune2fs -l /dev/sdb1 | grep Block

I a l’altra partició com a NTFS per a que Windows ho reconegui mkfs.ntfs /dev/sdb1

En el GParted podem comprovar que es troben les particions

Per treballar amb aquestes particions les hem de muntar, per això, se sol realitzar el següent:
He creat les dues carpetes a on muntare cadascun de les particions

Afegim un arxiu per a despres de muntar, comprovar que no es trobara dintre.

Montem “temporalment” amb mount -t ext4 /dev/sdb1 /mnt/particio-linux, i afegim un arxiu dintre

En reiniciar no tornem a veure l’arxiu, de fet ni es troba muntat.

Si volem fer-ho permanent, ho afegim al /etc/fstab, la linia que he afegit ha sigut
/dev/sdb1 /mnt/particio-linux ext4 defaults 0 1
El fitxer de **/etc/fstab ** indica què s’ha de muntar automàticament en iniciar el sistema i com s’ha de fer.
Cada línia descriu una partició o dispositiu amb sis camps separats per espais o tabulacions:
Dump: valor 0 (no es fa) o 1 (es fa). Controla si es fa còpia amb l’eina dump. El sistema faria ús de l’eina antiga dump per fer còpies de seguretat del sistema de fitxers.
/
Ara en reiniciar, es guarda el muntatge i veiem l’arxiu

Els processos són programes en execució dins del sistema. Cada procés té un PID (Process ID), un usuari propietari i pot estar en diferents estats (actiu, en espera, aturat…). El sistema operatiu planifica i reparteix el temps de CPU entre ells.
Eines bàsiques per gestionar-los:
A nivell pràctic, cada procés hereta permisos de l’usuari que l’ha iniciat i pot estar vinculat a un servei o a una sessió d’usuari.
Ara veurem com fer-les servir minimament.
Amb pstree
Paràmetre Funció
| Paràmetre | Funció |
|---|---|
| -p | Mostra el PID de cada procés. |
| -u | Mostra l’usuari propietari de cada procés. |
| -h | Ressalta el procés actual (útil quan es filtra). |
| -n | Ordena processos per PID dins de cada arbre. |
| -a | Mostra els arguments complets del procés (cmdline). |
Per filtrar un procés podem usargrep

Aqui podem veure els processos de root i tambe filtrant per la terminal

ps Aquesta comanda, mostra informació sobre una selecció dels processos actius. Si volem una actualització repetitiva de la selecció i la informació mostrada, hauriem de usar top en comptes d’això.
Alguns dels parametres mes comuns són:
a: mostra processos de tots els usuaris, no només del terminal actual.u: mostra informació en format d’usuari, amb columnes com %CPU, %MEM, USER.x: inclou processos sense terminal associat (daemons i serveis).-e: Mostra tots els processos del sistema, equivalent a -A.-o: Permet personalitzar exactament quines columnes vols que surti.
Podem filtrar per obtenir les terminals que l’usuari fa servir amb ps aux | grep usuari | grep tty
Aixó, mostra els processos d’un usuari concret que s’estan executant en terminals.

Si volem matar un proces, podem fer servir kill, te diversos modes de terminar:
| Tipus de Kill | Senyal | Descripció | Comanda |
|---|---|---|---|
| Kill suau | SIGTERM | Demana al procés finalitzar netament | kill PID |
| Kill forçat | SIGKILL | Mata immediatament, sense netejar recursos | kill -9 PID |
| Recarregar config | SIGHUP | Demana al procés que recarregui la configuració | kill -1 PID |
| Pausa | SIGSTOP | Pausa l’execució del procés | kill -STOP PID |
| Continuar | SIGCONT | Continua un procés pausat | kill -CONT PID |
| Interrupció Ctrl-C | SIGINT | Senyal d’interrupció (Ctrl+C) | kill -2 PID |
| Abortar | SIGABRT | Senyal d’error abortat, sovint genera core dump | kill -6 PID |
Aqui tenim un exemple obrint xclock al fons amb el “&” i matant-lo suau, mentres comprovem amb ps aux que s’ha mort.

També tenim dos altres comandes mes simples i que ens permeten buscar pel nom del procés, que són:
Nota: si estem en interficie grafica, podem usar xprop (necessites usar servidor X (Xorg)) per obtenir les propietats d’una finestra, que inclou també el PID. I matar la ventana amb xkill


Per altra banda també tenim la comanda pidof que en retorna el PID del programa.

Amb top Poden veure els processos en temps real, del que mes consumeix a menys

Quan executem top, veiem un resum del sistema i una llista de processos amb diferents columnes:
Inclou informació global del sistema:
| Columna | Significat |
|---|---|
| PID | Identificador únic del procés. |
| USER | Usuari que ha iniciat el procés. |
| PR | Prioritat del procés (valors negatius = més prioritat). |
| NI | Nice value: ajust de prioritat (-20 a +19). |
| VIRT | Memòria virtual total utilitzada pel procés. |
| RES | Memòria física (RAM) real utilitzada. |
| SHR | Memòria compartida amb altres processos. |
| S | Estat del procés (S = sleeping, R = running, Z = zombie…). |
| %CPU | Percentatge de CPU que consumeix. |
| %MEM | Percentatge de RAM que consumeix. |
| TIME+ | Temps total de CPU consumit. |
| COMMAND | Nom o ruta del procés executable. |
Respecte als estats, podem troba:
Mes informació els tipus estats: https://tldp.org/LDP/tlk/kernel/processes.html
Com usar-lo
q o CTRL+Ck
El numero negatiu en PR es que te major prioritat, no podem augmentar o disminui. Si augmentem el NI, disminueix la prioritat.
Per a donar mes prioritat a un proces que s’esta executant, usem renice -n -19 -p xclock &

A on:
-n: indica el valor de niceness.-19: és el valor de nice (quasi la més alta prioritat possible).-p: indica que li passes un PID.Nota: Els valors de bondat van de -20 (el més favorable al procés) a 19 (el menys favorable al procés). Segon el manual En cas posar-ho superior al limit, es mante a 0
Per llançar-los directament nou processos amb una prioritat determinada usem sudo nice -n -18 xclock
que tambe podem canviar novament… Aqui podem veure varies comprovacions del nices, inclos mirant els limits a quin valor posat. Ha posat 39 al valor negatiu mes petit (-20) i 1 al més gran (0)

I en l’altra terminal observem la prioritat amb htop.

Nota: podem observar que el PRI és ligerament diferent, aixó es perque eines com htop, btop, recalculen la prioritat per mostrar la forma més intuïtiva; Mentre que
topops, mostren la prioritat real del kernel (/proc/[pid]/stat)
Detallets respecte als processos
A Linux, un procés es pot executar en primer pla (foreground) o segon pla (background).
En una comanda que hem executat, amb CRTL+Z podem aturar momentaniament (durant el que duri la sessió) un procés. I podem observar que es troba com “treball” de fons amb jobs veiem els processos en segon pla/stop que hem posat
Nota: - (actual) i + (previ) són marcadors especials de treball, que indiquen prioritat per a certes operacions del shell.

La comanda fg per tornar/ reanudar un treball (per defecte a primer pla)

També tenim bg reanuda un proces susp (STOP) en segon pla.

Respecte a iniciar processos directament en segon pla, per tenir lliure la terminal.

El htop es el top en esteroides amb colors i més visual i interactiu.

El btop el mateix per més modern i en més animacions.

Una còpia de seguretat (còpia de seguretat) és una còpia de dades pensada per a la recuperació en cas de pèrdua, corrupció o desastre. S’emmagatzema de forma independent de l’origen (idealment en un altre lloc/servidor/servei cloud), i sovint segueix polítiques de retenció, versions i proves de restauració.
Tipus comuns: completa, incremental i diferencial. | Tipus de còpia | Què copia? | Velocitat | Espai ocupat | Avantatges | Inconvenients | |—————-|————|———–|————–|————|—————-| | Completa | Totes les dades cada vegada | Lenta | Molt | Molt segura i fàcil de restaurar | Necessita més temps i espai | | Incremental | Només els canvis des de l’última còpia (de qualsevol tipus) | Molt ràpida | Poc | Estalvia molt espai i temps | Restauració més lenta (cal la completa + totes les incrementals) | | Diferencial | Canvis des de l’última còpia completa | Ràpida | Mitjà | Restauració més simple que incremental | Cada dia ocupa més espai fins a la següent completa |
Ejemples: | Tipus de còpia | Exemple de còpies fetes | Si perds un fitxer el dijous, què necessites per recuperar-lo? | Explicació senzilla | |—————-|————————–|—————————————————————|———————-| | Completa | Dilluns (completa), Dimarts (completa), Dimecres (completa) | La còpia completa de dimecres | Cada dia tens una còpia total nova. Només agafes l’última (la de dimecres) i ho tens tot fins ahir. | | Incremental | Dilluns (completa), Dimarts (incremental), Dimecres (incremental) | Dilluns + Dimarts + Dimecres | Es necessita la cadena: la completa de dilluns i totes les incrementals fins al dimecres, perquè cadascuna només guarda els petits canvis del dia. | | Diferencial | Dilluns (completa), Dimarts (diferencial), Dimecres (diferencial) | Dilluns + Dimecres | La diferencial de cada dia conté tots els canvis des de dilluns. Per això només cal la completa i l’última diferencial. |
Dintre dels sistemes d’emmagatzematge, tenim els RAID, que d’unir diversos discs perquè treballin junts.
Important: RAID no és una còpia de seguretat. Si esborrem fitxers o entra un virus, RAID replicarà l’error a tots els discs.
Una imatge (disk image) És una còpia exacta (portable) de tot un disc o partició: sistema operatiu, programes, configuracions i dades. Serveix per clonar equips o restaurar-ho tot tal qual estava.
Un snapshot És una captura puntual de l’estat d’un sistema de fitxers o d’un dispositiu de blocs que normalment depèn de la tecnologia d’emmagatzematge (LVM, ZFS, Btrfs, VM snapshots, etc.). És ràpid de crear i sovint és incremental: només registra els canvis des del moment del snapshot. Els snapshots són ideals per a punts de recuperació ràpids o per a proves, però solament són segurs com a còpia de seguretat si s’emmagatzemen fora del mateix suport físic (un snapshot local no protegeix contra fallades del mateix disc).
Diferències clau (resum):
La còpia de seguretat guarda les teves dades en un lloc segur per recuperar-les, la imatge del disc copia tot el sistema exactament tal com és, i el snapshot és una foto ràpida de l’estat actual per tornar enrere però no és segur si es guarda al mateix disc.
Nota: no confiar només en snapshots locals com a única protecció; implementar una estratègia que combini snapshots per recuperacions ràpides i còpies de seguretat fora del lloc per a desastres.
Previ a les practiques hem afegit dos discos d’1 GB i formatat (fdisk)

És una copia simple no intel·ligent, només transfereix fitxers localment, es molt simple d’utilitzar però no optimitzar.
Per a comanda cp, podem comprovar que la copia es simple i el que esborrem de la font original no afecta la la nova:
El paràmetre -R és per realitzar la copia recursivament.
cd Documents
mkdir prova
touch prova2
cd /var
mkdir copies
mount -t ext4 /dev/sdb1 /var /copies
cp -R /home/ubuntu-cire/Documents/* /var/copies
ls copies
touch /home/ubuntu-cire/Documents/hola
rm -r /home/ubuntu-cire/Documents/prova
cp -R /home/ubuntu-cire/Documents/hola
ls copies/

És una eina intel·ligent que només copia els fitxers modificats i la sincronització pot ser local o en remot (via SSH). Amb rsync si esborrem algo a l’origen perdem a la copia
/home/ubuntu-cire/Documents/var/copiesmkdir /home/ubuntu-cire/Documents/adeu
rm /home/ubuntu-cire/Documents/hola
rsync -av --delete /home/ubuntu-cire/Documents /var/copies

És una eina per a clonar discos o particions i no es intel·ligent, copia tots els sectors.
dd if=/dev/sdb1 of=/dev/sdc1 bs=1M status=progress
if=/dev/sdb1: fitxer o dispositiu d’entrada (origen).of=/dev/sdc1: fitxer o dispositiu de sortida (destí — se sobreescriu).bs=1M: mida de bloc 1 MiB (1048576 bytes); redueix trucades al sistema i sol accelerar la còpia.status=progress: mostra progrés i comptadors durant l’operació.Per exemple, en la següent comprovació, he fet una copia dels sectors del sdb1 al sdc1 i comprovat el checksum (un valor únic de l’arxiu per a verificar integritat de dades), que és igual.

Recomanació curta: per backups regulars i sincronització usa rsync; per clonar imatges bit-a-bit o migrar discos usa dd (o ddrescue per discos danyats). Sempre provar amb –dry-run (rsync) i verificar checksums (dd).
Les quotes de disc limiten l’espai i el nombre d’inodes que un usuari o un grup pot utilitzar en un sistema de fitxers. Permeten evitar que un usuari esgoti tot el disc i poden definir límits “soft” (temporals, amb període de gràcia) i “hard” (absoluts).
El paquet habitual s’anomena quota (i les seves comandes principals són quotacheck, quotaon, edquota, repquota, quota). A sistemes amb XFS és habitual usar xfs_quota.
Nota:
- Cal ser root per configurar.
- El sistema de fitxers ha de suportar quotas; XFS requereix eines i opcions específiques (xfs_quota i, a vegades,
prjquotaper project quotas).- Si canviem fstab i no veus efecte, remunta la partició o reinicia i executa
quotacheckabans d’activar.
Durant aquesta practica hem usat:
equota -u usuari –> veure quotes d’un usuari setquota -u usuari –> establir quotes d’un usuari repquota /dev/sdc1 –> informe quotes de tots els usuaris el que ocupen
quotaon /mnt/dades –> activar quotes quotaoff /mnt/dades –> desactivar quotes quotacheck -cug /mnt/dades –> crear arxius per a quotes d’usuari i grup si no estan per defecte
setquota -T -u primer 1296000 1296000 /mnt/dades –> establir temps de gràcies a 1 usuari i en segons (el dies) setquota -t –> modificar el període de gràcia per a tots per defecte
dd if=/dev/zero of=nom_arxiu bs=1K count=800Aquesta és la configuració bàsica que hem seguit:
sudo apt update && sudo apt install quotasudo yum install quota o sudo dnf install quota
/dev/sdc1 / ext4 defaults,usrquota,grpquota 0 0
sudo mount -adf -T o en comrpovar que en /mnt/dades s’han creat els fitxer aquota.* (avegades surten avegades no) o el lost+foundquotacheck -cug /mnt/dades sudo quotacheck -avugm
sudo quotaon -avI les podem desactivar amb quotaoff

Podem comprovar si un usuari te quota amb quota -u usuari

sudo edquota -u nom_usuari
(editar soft/hard blocks i inodes)
Quan executem sudo edquota -o usuari apareix un bloc similar a:
Filesystem blocks soft hard grace files soft hard grace
/dev/sda1 20480 10000 12000 512 100 150
| Columna | Significat | Comportament / Notes |
|---|---|---|
| Filesystem | Dispositiu o punt de muntatge on s’apliquen les quotes | Exemples: /dev/sda1, /home |
| blocks (ús) | Espai utilitzat actualment per l’usuari | ≤ soft: dins del límit. soft < blocks ≤ hard: permès, entra en gràcia. > hard: bloqueig d’escriptura. |
| soft (límit tou) | Llindar d’avís; en superar-lo comença la gràcia | Si és 0 → cap límit tou configurat. |
| hard (límit dur) | Límite absolut, no superable | Si s’arriba o supera, les escriptures fallen fins reduir l’ús. |
| grace | Temps restant del període de gràcia | Actiu quan se supera soft. Si expira, el sistema actua com si s’hagués superat hard. |
| files (inodes) | Fitxers/directoris utilitzats per l’usuari | Igual que blocks: ≤ soft: correcte. soft < files ≤ hard: en gràcia. > hard: no es poden crear més fitxers. |

sudo repquota -a i quota -u nom_usuari
I finalment accedim a l’usuari, creem un arxiu amb algun tamany (jo he fet de 1K) i comprovem amb repquota que ha consumit

I al crear el segon de 1K, superem el soft, pero no el hard aixi que encara podem seguir.
| Imatge 1 | Imatge 2 |
|---|---|
![]() |
![]() |
Per establir un període de gràcia específic per a un usuari, utilitzem
setquota -T -u primer 1296000 1296000 /mnt/dades
La primera columna de numeros són blocks (15 dies) i la segona inodes (15 també)

Per establir el període de gràcia per a tots els usuaris, utilitzem setquota -t 259200 259200 -a

Finalment desactivem les quotes i l’usuari pot seguir escrivint.

Previament tinc un disc dur d’1GB per a guardar les proves.
A banda del ja mencionat Timeshif en el sprint 1, n’hi han molts més programes que tenen caracteristiques diferents, com:
Jo per a la prova he fet servir duplicati, primer he descarregat amb wget el binari .deb i instal·lat
wget -q https://updates.duplicati.com/stable/duplicati-2.2.0.1_stable_2025-11-09-linux-x64-gui.deb
dpkg -i duplicati-2.2.0.1_stable_2025-11-09-linux-x64-gui.deb

Després d’instal·lar, he accedit i seguit els següents passos:
mkdir duplicati-test
cp -r Descargas Documentos duplicati-test/

Accedint mitjançant web al port 8200, afegint ja des de l’inici una contrasenya

Seguidament he anat fent el següent:
Que seria l’equivament a:
duplicati-cli backup "file:///mnt/particio-backups" ~/duplicati-test
![]() |
![]() |
|---|---|
![]() |
![]() |
![]() |
![]() |
I efectivament, s’ha fet la copia en la ruta, amb compressió + encryptació AES de les dades.

També si mirem en Restore que si estan llistats els arxiu.

Per a veure la “copia incremental”, simplement he afegit una altra carpeta a l’origen i tornat a executar la copia, observem que la mida no varia tant, perque sóls ha enregistrat els canvis.
![]() |
![]() |
|---|---|
![]() |
He fet un canvi en un dels arxius del mateix, i esborat un arxiu, per mostrar que en la recuperació tenim l’arxiu novament i el canvi és manté
![]() |
![]() |
|---|---|
![]() |
![]() |
![]() |
Són dos eines de automatització per a executar tasques periodiques.
Cron vs anacron cron executa tasques programade en una data i hora especifiques, si el sistema esta apagat, la tasca es perd.
Es ideal per a tasques en dates i hores concretes i per a accions especifiques d’un usuari.
anacron Ideal per a tasques periodiques, a on o cal una data i hora especifiques, normalment s’utitlitza per a tasques de manteniment del sistema.
I no requereix que el sistema estiqui obert, perqué quan s’obrigue, s’executara, no es perd la tasca com al cron
La configuració de l’arxiu /etc/crontab, afecta a tots els usuaris.
Les seves columnes són:
# .---------------- minut (0 - 59)
# | .------------- hora (0 - 23)
# | | .---------- dia del mes (1 - 31)
# | | | .------- mes (1 - 12) O bé jan,feb,mar,apr ...
# | | | | .---- dia de la setmana (0 - 6) (Diumenge = 0 o 7) O bé sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * usuari comanda

Valors especials de cron
A més de la sintaxi normal amb minut hora dia mes dia_setmana, cron permet algunes paraules clau predeterminates per simplificar la programació de tasques comunes:
| Valor | Que fa | Exemple |
|---|---|---|
@reboot |
Executa la tasca una sola vegada al arrencar el sistema | @reboot /home/usuari/inici.sh |
@yearly o @annually |
Cada any, equivalent a 0 0 1 1 * |
@yearly /home/usuari/backup.sh |
@monthly |
Cada mes, equivalent a 0 0 1 * * |
@monthly /home/usuari/llistat.sh |
@weekly |
Cada setmana, equivalent a 0 0 * * 0 |
@weekly /home/usuari/neteja.sh |
@daily o @midnight |
Cada dia, equivalent a 0 0 * * * |
@daily /home/usuari/alerta.sh |
@hourly |
Cada hora, equivalent a 0 * * * * |
@hourly /home/usuari/actualitza.sh |
Prova feta a classe
Per a configurar la tasca a un usuari especific, executem:
crontab -e -u usuari


En /etc/cron.* tenim carpetes que els scripts que posem, anacron els executara

La prova que hes fet es un script simple que faci copia de segurat del directori Descargas a Documentos a les 13:35

I podrem comprovar en la hora i minut, és fa i els arxius estan.

La meva propia prova
La meva propia prova que he fet és executar una alterta cada 2 min, per recordar guardar el que sigui.

Prova feta a classe
Per a realitzar la mateixa prova amb l’anacron, seria el mateix, afegint-hi l’escript en /etc/cron.daily/ sense l’extensió .sh

Editat l’arxiu /etc/anacrontab , per a canviar els minuts en que tarda en executar a 1 minut (la segona columna)

L’arxiu té les següents opcions:
periode_en_dies retard identificador comanda
Exemples:
1 → cada dia7 → cada setmana@monthly → cada mesI finalment hem d’eliminar la marca del cron.daily per a que torni a executar en aquest dia.
En /var/spool/anacron/cron.daily

I posterior a reiniciar, ja l’ha executat novament.

La meva propia prova
Per a l’anacron he fet que en inicia, recopili informació del sistema: -Temps d’arrencada del PC -Estat actual de rendiment -Dades verificables i objectives
Fent ús del següent script:
#!/bin/bash
LOG="$HOME/INFORMACIO.log"
{
echo "===== $(date) ====="
systemd-analyze
systemd-analyze blame
uptime -p
free -h
df -h /
} >> "$LOG"
L’he guardat al cron.daily i en el anacrontab, modificada la primera entrada del run-parts per a que s’executi al minut d’iniciar.

Posterior d’esborrar la marca de que s’ha executat cron ja i en reinicar, podem veure l’arxiu.


La seguretat en Linux es basa en usuaris i grups, que determinen qui pot accedir o modificar arxius i processos.
Tipus d’usuaris
Grups Un grup agrupa diversos usuaris amb permisos comuns sobre arxius o directoris. Cada usuari pertany a:
Els grups permeten definir permisos col·lectius, per exemple, donar accés a una carpeta compartida sense fer-ho usuari per usuari.
| Fitxer | Funció principal |
|---|---|
| /etc/passwd | Llista tots els usuaris definits al sistema. |
| /etc/shadow | Desa les contrasenyes xifrades dels usuaris. |
| /etc/group | Conté la llista de grups i els seus membres. |
| /etc/gshadow | Desa contrasenyes i administradors dels grups. |
En Linux, la informació d’usuaris i grups està centralitzada en fitxers de configuració de text dins /etc.
El directori /etc/skel (de skeleton) conté els fitxers i carpetes base que es copien automàticament al directori personal de qualsevol nou usuari creat al sistema.
Quan executem adduser o useradd -m, el contingut d’aquest directori es replica dins de /home/nom_usuari, garantint que cada compte disposi d’un entorn mínim de configuració per a la shell i altres programes.
1. Proves del skel A mode d’exemple, la prova mes simple que podem fer es crear una carpeta/ arxiu que vulguem que tots els usuaris tinguin. I podrem observar que als nous usuaris, tenen aquesta carpeta.

2. Proves .bash_logout
En sortir, potser a l’usuari l’interessa que és moguin Captures, Baixades a una carpeta de sessió, que identifica quantes vegades ha entrat i sortit (per si l’hi agrada tindreu net cada vega).
Això, ho he aconseguit afegint unes quantes linies en aquest arxiu
ORIGEN="$HOME/Imágenes/Capturas de pantalla/"
DESTI="$HOME/sessions/session_$(date +%d_%Y)"
mkdir -p "$DESTI"
mv "$ORIGEN"/* "$DESTI"
Així es troba l’estructura previ a sortir.

I aquesta es l’estructura més neta:

3. Proves .profile Una de les coses que un usuari podria valorar, és que en iniciar sessió , se l’obrir el navegador, hi han molts formes de fer-ho-
xdg-open del paquet xdg-utils. I tambe afegim un log per demostrar que s’ha obert
I podem comprovar que s’obri.

4. Proves .bashrc
Com a admin, per a quedar amigables amb l’usuaris, podriem fer que en obrir la terminal s’envie una notificació deien “Un gran poder, convella una gran responsabilitat”. I també podem afegir una eina que és cowsay (una vaca ASCII) amb fortune (frases de fortuna)
Ho podem fer, fent ús notify-send
notify-send "Un gran poder, convella una gran responsabilitat"
cowsay $(whoami)
| Descripció | Captura |
|---|---|
| Configuració test .bashrc | ![]() |
| Comprovació test .bashrc | ![]() |
D’aquesta forma cada cop que s’obri una terminal amb bash, li surten els missatges.
El comportament per defecte en la creació i gestió d’usuaris es defineix en diversos fitxers de configuració del sistema.
Aquests controlen paràmetres com l’UID inicial, el directori personal, els permisos predeterminats, la caducitat de contrasenyes o el grup primari assignat.
Els principals són:
Ara veurem algunes proves que podem fer.
Arxiu /etc/login.defs
En aquest arxiu podem configurar coses respecte a la contrasenya de l’usuari, com la duració.
Un test simple es limitar els dies màxims abans de canviar la contrasenya (PASS_MAX_DAYS) i el maxim de canvi en un dia PASS_MIN_DAYS.

Podem comprovar que tenim 3 dies abans que caduqui la contrasenya, això, en una empresa ho podriem realitzar mensualment.

I també que al intentar canviar la contrasenya amb passwd, per corroborar que efectivament no permet després del 1r intent
Nota: un altre usuari li pot canviar la contrasenya si es troba al mateix sistema sense les limitacions d’esperar

Arxiu /etc/adduser.conf
Podriem afegir que tinguin permisos de root, afegit la opció de ADD_EXTRA_GROUPS, més EXTRA_GROUPS a on posem root

Podem comprovar que és troba al grup de superusuaris

Arxiu /etc/default/useradd
Podriem canviar el $HOME per a que el posi a una carpeta muntada, que perfectament podria ser un recurs xarxa muntat del servidor.
Així els perfils d’usuari es troben guardats ahi.
HOME=/mnt/particio-linux

Arxiu /etc/passwd
Conté tots els usuaris del sistema i la informació bàsica de cadascun.
Cada línia té 7 camps separats per ::
nom_usuari : x : UID : GID : GECOS : directori_home : shell
| Camp | Descripció |
|---|---|
| nom_usuari | Nom identificatiu de l’usuari. |
| x | Indicador que la contrasenya es troba a /etc/shadow. |
| UID | Identificador únic incremental de l’usuari (els de sistema solen ser <1000). |
| GID | Identificador incremental del grup principal. |
| GECOS | Informació opcional (nom complet, telèfon, etc.). |
| directori_home | Carpeta personal (p. ex. /home/usuari). |
| shell | Intèrpret d’ordres per defecte (p. ex. /bin/bash, /usr/sbin/nologin). |

Podem identificar que és usuari que podem iniciar sessió per:
/usr/sbin/nologin ni /bin/false).
Arxiu /etc/group
Defineix els grups del sistema i els usuaris que en formen part. I no hi podem veure l’administrador, ell es troba al gshadow.
Te el següent format:
nom_grup : x : GID : membres
| Camp | Descripció |
|---|---|
| nom_grup | Nom del grup. |
| x | Referència al fitxer /etc/gshadow. |
| GID | Identificador únic del grup. |
| membres | Llista d’usuaris separats per comes. |

Arxiu /etc/shadow
Fitxer restringit a root, conté les contrasenyes xifrades i paràmetres de caducitat.
Te el següent format:
usuari : contrasenya_xifrada : últim_canvi : mínim : màxim : avís : inactiu : caducitat : reserva
| Camp | Significat |
|---|---|
| usuari | Nom d’usuari. |
| contrasenya_xifrada | Hash SHA‑512 o indicador: ! (bloquejat) o * (sense login). |
| últim_canvi | Dies des de l’1/1/1970 de l’últim canvi de contrasenya. |
| mínim/màxim | Dies mínims/màxims entre canvis de contrasenya. |
nom_grup : contrasenya_xifrada : administradors : membres
| Camp | Descripció |
|---|---|
| nom_grup | Nom del grup. |
| contrasenya_xifrada | Normalment ! (sense contrasenya). |
| administradors | Usuaris amb permís per afegir o eliminar membres. |
| membres | Usuaris que pertanyen al grup. |
Captura gshadow, excloent (-v) els bloquejats amb grep:

En sistemes GNU/Linux, la gestió d’usuaris i grups es pot fer tant des de terminal com gràficament (en entorns com GNOME o KDE).
Per obtenir ajuda sobre qualsevol comanda podem utilitzar:
man comanda
# o
comanda --help
Com podem crear un usuari completament amb useradd, lo maxim possible?
Amb la comanda:
sudo useradd -m -s /bin/bash -c "Merda que s'actualitza cada dia i peta" -p $(openssl passwd -6) windows10
Paràmetres importants:

Quina comanda o comandes hem de fer servir per canviar el nom d’usuari correctament.
# Per canviar el nom d'usuari
sudo usermod -l nou_nom antic_nom
# Per canviar el nom del grup
sudo groupmod -n nou_nom antic_nom
# Per canviar carpeta personal, movent el contingut
sudo usermod -d /home/nou_nom -m nou_nom #
He canviat el nom de windows10 a windows11, el 10 ja no rep actualitzacions, ja es bon sistema.

En distribucions basades en Ubuntu, la configuració gràfica permet afegir o eliminar usuaris bàsics des del panell de Configuració **> **Sistema > Usuaris.
|
|
|
| —————————————————————————————– | ——————————————————————— |
També tenim l’utilitat que ve en instal·lar gnome-system-tools. Que permet un poquet més.

Encara que és més comú fer servir comandes, que veurem a continuació.
La forma més habitual i senzilla és amb:
sudo adduser nomusuari
Aquesta comanda és interactiva, demana contrasenya i opcionalment nom complet, telèfon, etc.

Després de crear-lo, podem comprovar el resultat a /etc/passwd o amb id:

I veure que s’ha creat automàticament:
I tambe el seu grup:

També podrem iniciar sessió gràficament amb aquest usuari.

addgroup
És la versió més amigable de groupadd, disponible a Ubuntu i derivades.
sudo addgroup nomgrup

A banda de la posterior comanda, aquesta serveix per crear els usuaris sense demanar-nos (preguntar-nos) en l’entrada estàndard (Standard Input), ens ho permet configurar practicament amb els paràmetre.
La creació d’un usuari directe sense paràmetres amb useradd usuari no crea la carpeta d’usuari, si que crea l’usuari, grup.
I assigna l’interpret SH (Dash Shell), en sistemes anteriors es possibles que assigne el Bourne Shell (sh també), que és antic i lent.
sudo useradd nomusuari

Podem canviar l’interpret amb la comanda usermod i el paràmetre -s
sudo usermod -s /bin/bash nomusuari

Per a la carpeta d’usuari, primer l’hauriem de crear amb mkdir i canviar els permisos amb chown
-R es per a que sigui recursiu a qualsevol carpeta/arxiu dintre, en aquest cas no faria falta, pero es una recomanaciósudo mkdir /home/nomusuari
sudo chown -R nomusuari:nomusuari /home/nomusuari

Finalment hem d’assignar contrasenya a l’usuari, per a poder accedir-hi, podem comprovar al shadow que no n’hi ha. Això ho podem realitzat amb passwd
sudo passwd nomusuari

En resum, per crear un usuari amb useradd minim hem d’afegir, ja sigui amb els paràmetres o nosaltres manualment:
passwdTambé podem
iniciarsessió ambsu, encara que no compta com inici grafic.
Login amb su a jesus |
Login gràfic jesus |
|---|---|
![]() |
![]() |

En cás de voler bloquejar un usuari ho podem fer amb el paràmetre
-Lambusermod, alpasswdidentifiquem que és troba bloquejat per l’exclamació a l’inici!
sudo usermod -L nomusuari
o
sudo passwd -l nomusuari
Les dues comandes són diferents tecnicament.
Amb usermod -L bloquejar el compte complet.
Encara que ambdós casos és pot continuar accedint si utilitza altres mètodes (per exemple, claus SSH).
En tots dos casos casos, a /etc/shadow apareixerà un ! davant del hash.
Per desbloquejar és el paràmetre
-U
usermod -U nomusuari
passwd -u nomusuari
| Bloquejant i desploquejant amb usermod -L i -U | Bloquejant i desploquejant passwd -l i -u |
|---|---|
![]() |
![]() |
En l’inic gràfic amb els dos mètodes, sortiria el següent error de “Fallada autenticació en contrasenya”: De fet ni sortirá l’usuari, l’haurem de posar nosaltres

Nota: els usuaris creats, per defecte no tenen permisos admin (sudo), com podem observar.
groupadd serveix per crear un grup nou al sistema. Observarem el /etc/group que
sudo groupadd nomgrup
Algunes opcions simples són:
| Opció | Descripció |
|---|---|
| -g GID | Assigna un GID concret al grup |
| -r | Crea un grup de sistema (UID/GID baixos, <1000) |
Exemples:
| # | Acció | Comanda / Notes |
|---|---|---|
| 1 | Creació grup simple | sudo groupadd alumnes2, segueix l’ordre GID anterior |
| 2 | GID específic | sudo groupadd -g 1500 alumnes3, el GID és 1500 |
| 3 | Grup de sistema | sudo groupadd -r alumne4, en el arxiu groups, el GID es inferior als 1000, al ser de sistema |

Previament mencionat, permeten modificar propietats usuaris i grup existents Tenen la següent estructura:
sudo usermod [opcions] nomusuari
sudo groupmod [opcions] nomgrup
Alguns exemples d’ús (a banda dels ja mostrats) són:
sudo usermod -aG sudo nomusuari # afegir a un grup
sudo usermod -d /nou/home -m nomusuari # canviar carpeta personal, movent el contingut

El mètode més simple per afegir l’usuari a un grup és amb adduser, el primer paràmetre es el nom d’usuari i el segon el del grup.
sudo adduser nomusuari nomgrup

L’altre metode és amb el paràmetre -a amb gpasswd
sudo gpasswd -a nomusuari nomgrup

També está sudo usermod -aG, previament mencionat.
Podem esborrar amb userdel, si afegim el paràmetre -r per esborrar “recursivament”, sense l’opció no esborra la carpeta $HOME de l’usuari.
sudo userdel nomusuari
sudo userdel -r nomusuari
| Sense el paràmetre | Amb el paràmetre |
|---|---|
![]() |
![]() |
Per borrar un grup podem simplement amb grupdel o delgroup

sudo groupdel nomgrup

També podem fer servir deluser amb --remove-all-files (per sols arxiu) o --remove-home.
Normalment si esborrem un usuari, és problable que vulguem tots els seus arxius repartits en el sistema fora.
sudo deluser --remove-all-files --remove-home nomusuari

La comanda chage ens permet visualitzar i modificar les polítiques de caducitat i expiració d’usuaris.
Una prova que podem fer és la de forçar que caduqui la contrasenya. Aixó en el cás d’un despit d’empleat, és possible que ho hàgim de fer.
-E posa com que el compte va caducar el 01 de gener del 1970, per lo tant l’usuari no pot entrar-l ens permet veure l’informació.| Acció | Captura |
|---|---|
Execució chage -E 0 |
![]() |
| Comprovació compte bloquejat | ![]() |
Per traure la caducitat seria
chage -E -1
Hi ha un altre interessant que és el -d que posa la data de caducitat de la contrasenya a 0.
Obligant a que en el proxim inici de sessió, es canvïi.
per si volem fer rotació contrasenya a un usuari en específic.

En sistemes UNIX, els permisos fan part del sistema. Sense ells no podem visualitzar, alterar o executar fitxers, entrar en directoris o llistar-ne el contingut. És basen en tres atributs fonamentals:
Nota: si surt
-és que no te permissos
La seva estructura es la següent:

[d/-][rwx][rwx][rwx]
│ │ │ └── Altres (others)
│ │ └──────── Grup
│ └───────────── Propietari (owner)
└────────────────── Tipus: d = directori, - = fitxer
A banda existeixen permissos especials, com:
SUID, user + s (pecial)
Un fitxer amb SUID sempre s’executa com a l’usuari propietari del fitxer, independentment de si l’usuari passa l’ordre. Si el propietari del fitxer no té permisos d’execució, fa servir una S majúscula aquí.
Important: A la majoria de distribucions Linux modernes, SUID en scripts de shell no funcionen per seguretat. En executables binaris sí funciona. Així que en un script .sh normal, es faria servir usuari actual. Font: https://linuxvox.com/blog/suid-not-working-with-shell-script/

SGID, other + t (sticky)
Sticky bit, other + t (sticky)
L’últim permís especial s’ha anomenat bit fix. Aquest permís no afecta els fitxers individuals.
A nivell de directori, restringeix l’eliminació de fitxers. Només el propietari (i root) d’un fitxer pot eliminar el fitxer dins d’aquest directori.
Tots estos permissos (ja sigui els octal o en forma llegible) i grups podem canviarlos amb chmod e chown.
Per defecte el sistema operatius tenen uns permissos teorics base de fitxer i directoris, per exemple en Ubuntu:
Nota: no s’apliquen directament perquè serien massa permissius (tothom podria llegir, escriure o entrar a tot).
Dit alló, posteriorment fan servir el umask (user file-creation mode mask), que és un número octal de quatre dígits. Aixó per obtenir permisos finals.
Es pot calcular el resultat final de dues formes diferents:
| 1. Restant el permís teòric amb el umask, per exemple: | 2. Convertint en binari i realitzant l’operació AND |
|---|---|
| 666 - 022 = 644 (rw-r–r–) | permisos base (666): 110 110 110 umask (0022): 000 010 010 NOT umask (0022): 111 101 101 |
Nota: el pimer digit (0 en aquest cás) del umask indica el permís especials (previament mencionat)
Per exemple en Ubuntu s’aplica 0002 a l’usuari per defecte i 0022 pel root, resulta en que els fitxers tinguin 644 (666-022).
Ho podem comprovar en la comanda umask

Les ACL són representacions de permisos per a elements del sistema d’arxius, que extienden els permisos natius POSIX. Donar excempcions.
Per comprovar els permissos ACL que hi ha, ho podem obtenir amb getfacl, per exemple a la carpeta numeros

En cas per exemple no voler que el segon no accedeixi a la carpeta, podem afegit una exempció restrictiva amb setfacl
setfacl -m user:segon:--- numeros

I podem comprovar que el segon no pot accedir.

Amb setfacl -b numerò resetjem els permissos

Podem realizar algunes proves, per mostrar aixó abans he preparat l’entorn:
groupadd palomes
useradd -m -G palomes -p $(openssl passwd -6 'alumne99') nick
useradd -m -G palomes -p $(openssl passwd -6 'alumne99') deivy
useradd -m -p $(openssl passwd -6 'alumne99') ferran
useradd -m -p $(openssl passwd -6 'alumne99') cire

comuna entre els cuatre.mkdir palomes
echo "Palomas torcaces estofadas" > sopar.txt

A continuació hem de posar els permissos correctes, de forma que és compleixi aixó:
chown -R nick:palomes palomes
chmod 750 palomes
chgrp palomes palomes ## També podem canviar el grup amb chgrp grup directori

En un altre contexte a on vulguessim una carpeta colaborativa a on los del grup puguin pujar penjar coses pero no esborrar ni modificar lo dels altres, hauriem de usar el sticky bit. Per exemple:
chown -R nick:palomes palomes
chmod 1770 palomes

En la captura podem veure que els arxius creats, nomes els podem modificar i eliminar els propietaris.
Respecte a posar els permissos amb chmod, ho podem posar en la notació decimal o en lletres, les lletres serien:
Proves umask Respecte a l’umask per defecte, tenim diversos arxiu a on realitzar els canvis:
El primer i més util seria el temporal, que seria fer servir la comanda umask+ mascara, aquest canvi és solament durant la sessió actual de la SHELL
Nota: el que he fet és molt mala practica, podrien colar una comanda maliciosa a l’arxiu que he creat
El segon (i permanent) seria en el login.defs, previament mencionat, d’aquesta forma, a qualsevol nou usuari, se li aplicara el umask als arxiu/carpetes que creïi.
umask 077 que sols dona tots els permissos a l’usuari i el seu grup
Per ultim, també tenim el .profile, amb el que sols canviariem en aquell usuari específic.

I aquesta hauria de ser la sortida (carpeta cc)

La “terminal” que hem estat fent servir, realment no ho és, es una pseudoterminal, podem canviar a una més propera al concepte, que és la TTY, amb CTR-F2-F6
La TTY és una terminal física o virtual que permet interactuar directament amb el nucli de Linux
