# Mòdul 0369 - Implantació de sistemes operatius

**Cicle formatiu:** Administració de sistemes informàtics en xarxa (ASIX)

**Durada:** 231 h (132 h centre + 99 h empresa)


# 1. Introducció al programari de base i a la virtualització

## 1.1. Introducció al programari de base

### Estructura i components d'un sistema informàtic

#### La informació

La **informació** és el resultat de la manipulació de les dades, treballant-les i ordenant-les amb la finalitat de produir un coneixement. Les dades són fets, objectes, que no han estat manipulats. Es classifiquen en:

- **Numèriques** — formades per nombres (0, 1,…, 9)
- **Alfabètiques** — formades per lletres (A, B,…, Z)
- **Alfanumèriques** — formades per tots els caràcters; no admeten operacions matemàtiques

#### Representació de la informació

Per a un ordinador, totes les dades són nombres expressats en sistema binari (zeros i uns). La unitat base és el **bit** (*binary digit*). Un grup de 8 bits s'anomena **byte** o octet.

**Múltiples del byte (SI vs. IEC 60027-2):**

| Prefix SI | Símbol | Valor | Prefix IEC | Símbol | Valor |
|---|---|---|---|---|---|
| kilobyte | kB | 10³ bytes | kibibyte | KiB | 2¹⁰ bytes |
| megabyte | MB | 10⁶ bytes | mebibyte | MiB | 2²⁰ bytes |
| gigabyte | GB | 10⁹ bytes | gibibyte | GiB | 2³⁰ bytes |
| terabyte | TB | 10¹² bytes | tebibyte | TiB | 2⁴⁰ bytes |
| petabyte | PB | 10¹⁵ bytes | pebibyte | PiB | 2⁵⁰ bytes |

#### Codificació de la informació

- **Binària** — 1 bit per xifra; valors 0 o 1
- **Octal** — 3 bits per xifra; valors 0–7
- **Hexadecimal** — 4 bits per xifra; valors 0–9 i A–F
- **ASCII** — 7 bits/caràcter; 128 símbols (ISO/IEC 8859)
- **ASCII estès** — 8 bits/caràcter; 256 símbols
- **Unicode (UTF-8/UTF-16/UTF-32)** — fins a 32 bits; més de 50.000 símbols definits

#### Sistema informàtic

Un **sistema informàtic** està format per tres elements interrelacionats: **maquinari**, **programari** i **recursos humans**.

**Recursos humans:**

- **Usuari** — utilitza la informàtica com a eina
- **Personal informàtic** — Direcció, Anàlisi, Programació, Explotació, Operadors

**Programari (software):**

- **Programari bàsic (sistema operatiu)** — conjunt de programes que permet treballar a l'equip físic
- **Programari d'aplicació** — programes per a tasques concretes (jocs, gestió, ofimàtica…)

**Maquinari (hardware):**
Estructura de **Von Neumann**: l'ordinador consta de quatre seccions interconnectades per *busos*:

- **ALU** (Arithmetic Logic Unit) — operacions aritmètiques i lògiques
- **Unitat de control** — llegeix i interpreta instruccions
- **Memòria central (RAM)** — emmagatzematge temporal
- **Dispositius d'entrada i sortida (E/S)** — perifèrics

La **CPU** (Central Processing Unit) agrupa la unitat de control, l'ALU i els registres. La **[placa mare](https://proferamon.com/tic/joc_placa_mare.html)** és el component que interconnecta totes les parts.

#### Perifèrics

Classificació **per funció**:

- **Entrada** — teclat, ratolí, escàner
- **Sortida** — monitor, impressora, plòter
- **Entrada/sortida** — unitats de disc, cintes magnètiques
- **Emmagatzematge** — disc dur, SSD, memòria USB
- **Comunicació** — targetes de xarxa, mòdems

#### Adaptadors i busos

Un **bus** és el conjunt de circuits que connecten la CPU amb la resta d'elements. Dos sistemes de transmissió:

- **En paral·lel** — diversos bits simultanis per diversos fils (FSB, ISA, ATA, SCSI, PCI)
- **En sèrie** — un bit darrere l'altre (USB, FireWire, Serial ATA, PCI Express)

Els **drivers** (controladors) són programari del nucli del sistema operatiu que gestionen cada perifèric. Vegeu també: [Manual de Comandes Linux](https://proferamon.com/tic/basics.html).

### [Xarxes](https://proferamon.com/tic/0225.html)

#### Tipus de xarxes

**Segons l'abast:**

- **PAN** (*Personal Area Network*) — àrea personal
- **LAN** (*Local Area Network*) — xarxa d'àrea local
- **MAN** (*Metropolitan Area Network*) — xarxa metropolitana
- **WAN** (*Wide Area Network*) — xarxa d'àrea estesa

**Segons el mètode de connexió:**

- **Guiades** — cable coaxial, parell trenat, fibra òptica
- **No guiades** — ones de ràdio, infrarojos, microones (*wireless*)

**Segons la funcionalitat:**

- **Client-servidor** — jerarquia entre màquines; el servidor ofereix recursos i el client els consumeix
- **Igual a igual (P2P)** — sense jerarquia, cada màquina actua com a client i servidor alhora

**Segons la topologia:**

- **Anell** — cada node connectat al següent formant un circuit tancat
- **Anell doble** — doble circuit tancat
- **Estrella** — tots els nodes connectats a un node central (*hub*)
- **Bus** — tots connectats a un mitjà comú bidireccional
- **Arbre** — jerarquia de xarxes en estrella encadenades
- **Malla** — cada node connectat a un o més nodes, múltiples rutes possibles

**Segons la direccionalitat:**

- **Simplex** — unidireccional
- **Half-duplex** — bidireccional alternat
- **Full-duplex** — bidireccional simultani

#### Models OSI i TCP/IP

El model **OSI** (ISO) divideix els protocols en 7 capes independents. El model **TCP/IP** és el que utilitza Internet, amb un enfocament més pragmàtic.

**Adreçament físic (MAC):**
Identificador de 48 bits (6 blocs hexadecimals) únic per a cada dispositiu de xarxa. El protocol **ARP** resol adreces IP a adreces MAC.

**Adreçament lògic (IP):**
El protocol **IP** (IPv4) identifica unívocament els dispositius amb un número de 32 bits expressat en 4 octets (notació decimal, p. ex. 192.168.1.234).

**Adreces privades (no enrutables a Internet):**

- Classe A: 10.0.0.0 – 10.255.255.255 (màscara /8)
- Classe B: 172.16.0.0 – 172.31.255.255 (màscara /12)
- Classe C: 192.168.0.0 – 192.168.255.255 (màscara /24)

Per sortir a Internet des d'una xarxa privada s'utilitza **NAT** (*Network Address Translation*).

**Màscara de xarxa:** distingeix la part de xarxa (*netid*) de la part d'host (*hostid*). La notació CIDR indica el nombre de bits a 1 (p. ex. /24 = 255.255.255.0).

**DHCP** (*Dynamic Host Configuration Protocol*): servidor que assigna IPs dinàmiques automàticament en engegar les màquines.

**VPN** (*Virtual Private Network*): permet estendre una LAN per una xarxa pública (Internet) amb confidencialitat.

Per a accés remot segur entre equips Linux, vegeu: **[SSH – Secure Shell](https://proferamon.com/tic/ssh.html)**.

**IPv6**: protocol de nova generació amb adreces de 128 bits (3,4 × 10³⁸ adreces possibles).

**Domini:** conjunt d'ordinadors que deleguen l'administració d'usuaris i privilegis a un **controlador de domini**.

### El sistema operatiu

Un **sistema operatiu** (SO) és el programari que controla el funcionament de l'equip físic i actua d'intermediari entre l'usuari i el maquinari. Objectius principals:

- Facilitat d'ús (màquina virtual o estesa)
- Ús eficient del maquinari

#### Estructura del sistema operatiu

**Monolítica:** primer model; el SO és una col·lecció de procediments entrellaçats que es poden cridar entre si.

**Jeràrquica o en capes:** el SO s'organitza en capes independents, cadascuna amb funcions específiques (planificació del processador, gestió de memòria, E/S, sistema de fitxers, programes d'usuari).

**Màquina virtual:** el nucli s'anomena *monitor virtual* i presenta als nivells superiors còpies exactes de la màquina real; cada màquina virtual pot executar un SO diferent. Exemple: VM/370 d'IBM.

**Client/servidor:** el nucli és mínim i la majoria de funcions del SO s'implementen com a processos d'usuari (servidors); els clients fan peticions als servidors a través del nucli.

**Orientada a l'objecte:** el SO es concep com una col·lecció d'objectes amb propietats i accions; el nucli manté les definicions de tipus d'objectes i controla els privilegis.

**Multiprocessador:**

- **Acoblament fort** (*memòria compartida*) — cada processador accedeix a tota la memòria
- **Acoblament dèbil** (*memòria distribuïda*) — cada processador té memòria privada i es comunica per missatges

#### Components d'un sistema operatiu

**Nucli o kernel:**

- Planificador (*dispatcher*) — assigna temps de processador als processos
- Controlador d'interrupcions (FLHI) — gestiona els quatre tipus d'interrupcions
- Comunicador de processos — semàfors, evita bloquejos

**Administrador de memòria:**

Gestiona la RAM: ubica, carrega i descarrega processos; protegeix zones de memòria; permet compartir memòria. Tècniques: partició fixa/dinàmica, segmentació, memòria virtual paginada/segmentada.

**Sistema d'entrada/sortida:**

Gestiona els perifèrics de forma transparent per a l'usuari. Tècniques: *spooling* (cua d'E/S), *buffering* (memòria intermèdia). Vegeu també: [Redireccions](https://proferamon.com/tic/redireccions.html).

**Administrador d'arxius:**

Manté l'estructura de dades del sistema; gestiona creació, actualització i eliminació de fitxers; controla els privilegis d'accés.

**Sistema de protecció:**

Controla l'accés dels usuaris i processos als recursos del sistema. Models: matriu d'accés, dominis de protecció.

**Interfície d'usuari:**

- **CLI** (*Command Line Interface*) — intèrpret d'ordres (shell)
- **GUI** (*Graphical User Interface*) — entorn gràfic d'escriptori

#### Tipus de sistemes operatius

**Segons el nombre d'usuaris:**

- **Monousuari** — un sol usuari a la vegada (MS-DOS, Windows 9x)
- **Multiusuari** — diversos usuaris simultanis (Unix, Linux, Windows Server)

**Segons el nombre de tasques:**

- **Monotasca** — una sola tasca alhora
- **Multitasca** — diverses tasques simultànies

**Segons el nombre de processadors:**

- **Monoprogramat**
- **Multiprogramat**

**Sistemes en temps real (*RTOS*):** resposta garantida en temps definit; ús en sistemes industrials i d'emergència.

#### Tipus d'aplicacions

**Programari de sistema:**

- Sistema operatiu
- Controladors de dispositius (drivers)
- Eines d'administració del sistema
- Utilitats (gestors de fitxers, compressors…)

**Programari d'aplicació:**

- Ofimàtica (processadors de text, fulls de càlcul, presentacions)
- Navegadors web
- Clients de correu
- Programari multimèdia
- Aplicacions de disseny (CAD, edició gràfica)
- Jocs
- Programari específic empresarial (ERP, CRM…)

**Programari de desenvolupament:**

- Editors de codi
- Compiladors i intèrprets
- Entorns de desenvolupament integrat (IDE)
- Depuradors
- Sistemes de control de versions

### Llicències

**Programari privatiu (propietari):**

- Copyright; l'usuari no pot veure el codi font ni redistribuir-lo
- Pot ser de pagament o gratuït (*freeware*)

**Programari lliure (Free Software):**

Les quatre llibertats definides per la **FSF** (Free Software Foundation):

```nano
0. Llibertat d'executar el programa per a qualsevol propòsit
1. Llibertat d'estudiar i adaptar el codi font
2. Llibertat de distribuir còpies
3. Llibertat de millorar i publicar les millores
```

**Copyleft:** garanteix que les modificacions d'un programa lliure continuïn essent lliures.

**Principals llicències del projecte GNU:**

- **GPL** (General Public License) — la més usada; copyleft fort; versió actual: 3
- **LGPL** (Lesser GPL) — copyleft feble; permet vincular-se amb programari privatiu
- **FDL** (Free Documentation License) — per a documentació
- **AGPL** (Affero GPL) — cobreix programari accessible per xarxa

**Altres llicències lliures:**

- **BSD** — permissiva; permet redistribució en programari privatiu
- **MIT** — molt permissiva; similar a BSD
- **Apache 2.0** — permissiva amb clàusula de patents

**Programari de domini públic:** sense copyright; qualsevol ús permès.

**Creative Commons:** llicències per a obres creatives; combinació de condicions BY, NC, SA, ND.


## 1.2. Introducció a la virtualització

### Concepte de virtualització

La **virtualització** consisteix en l'abstracció dels recursos d'una màquina física per crear màquines virtuals que els utilitzen com si estiguessin lliures. Una capa de programari anomenada **monitor de màquina virtual (MMV)** o **hipervisor** permet multiplexar el maquinari físic entre diverses màquines virtuals.

Avantatges principals:

- Aprofitament dels recursos infrautilitzats
- Consolidació de servidors (menys maquinari físic)
- Aïllament entre sistemes
- Facilitat per fer proves i snapshots
- Recuperació davant de desastres

### Arquitectures. Tipus de màquines virtuals

#### Màquines virtuals de procés

S'executen com un procés normal dins d'un sistema operatiu i suporten un sol procés. Objectiu: entorn d'execució **independent de la plataforma** (portabilitat).

Exemples:

- **JVM** (Java Virtual Machine) — executa bytecode Java; porta el codi a qualsevol plataforma
- **CLR** (Common Language Runtime de .NET) — entorn d'execució de Microsoft
- **V8 / Node.js** — motor JavaScript de Google; executa JS fora del navegador

**Màquina virtual de Java (JVM):**

- Compila Java a *bytecode* (arxius `.class`) — anàlisi lèxica i sintàctica en temps de compilació
- La JVM interpreta el bytecode en l'arquitectura destí — execució més ràpida que un intèrpret pur
- Característiques del Java: portabilitat, dinamisme, seguretat, eficiència
- Components de la JVM: motor d'execució, gestor de memòria, gestor d'errors, suport multifils, carregador de classes, administrador de seguretat

Desavantatge de les VM de procés: més lentes que els programes compilats nadius a causa de la capa d'abstracció.

#### Màquines virtuals de sistema (hipervisors)

Permeten executar sistemes operatius complets (*guests*) sobre una màquina física (*host*).

**Hipervisor de tipus I (natiu o *bare-metal*):**

- El MMV s'executa directament sobre el maquinari, sense SO amfitrió
- Els SO hoste corren sobre l'MMV
- Menys sobrecàrrega; millor rendiment
- Exemples: **VMware ESX/ESXi**, **Xen**, **Microsoft Hyper-V**, **KVM** (integrat al nucli Linux)

**Hipervisor de tipus II (hoste):**

- El MMV s'instal·la damunt d'un SO amfitrió existent
- El SO amfitrió gestiona el maquinari; el MMV gestiona les VM
- Més fàcil d'instal·lar; menor rendiment que el tipus I
- Exemples: **VMware Workstation/Player**, **[Oracle VirtualBox](https://proferamon.com/tic/virtualbox.html)**, **QEMU**, **Parallels Desktop**

**Recursos gestionats per l'MMV:**

- CPU (assignació de temps de processador)
- Memòria RAM (particionament)
- Xarxa (adaptadors virtuals, commutadors virtuals)
- Emmagatzemament (discos virtuals, imatges de disc)

**Paravirtualització:**
El SO hoste és modificat per cooperar amb l'hipervisor directament, sense emular completament el maquinari. Millora el rendiment. Exemple: Xen amb SO modificats.

**Contenidors (virtualització a escala de SO):**
No virtualitzen el maquinari sinó que aïllen processos compartint el mateix nucli del sistema operatiu. Molt lleugers i ràpids. Exemples: **Docker**, **LXC**, **Podman**. Per automatitzar entorns virtuals reproduïbles vegeu **[Vagrant](https://proferamon.com/tic/vagrant.html)**.


# 2. Instal·lació de programari de base lliure i de propietat

## 2.1. Instal·lació de programari de base lliure

### Consideracions prèvies a la instal·lació de sistemes operatius lliures

#### Història del programari lliure

- **1983** — Richard Stallman inicia el projecte **GNU** (*GNU is Not UNIX*) per crear un SO lliure compatible amb UNIX
- **1985** — Stallman funda la **FSF** (Free Software Foundation)
- **1989** — Stallman crea el *copyleft* i la llicència **GPL**
- **1991** — **Linus Torvalds** crea el nucli **Linux**, distribuït amb llicència GPL
- El conjunt complet s'anomena **GNU/Linux**; Linux és el nucli (~5% del sistema), GNU aporta compiladors, escriptori, utilitats, etc.

#### Distribucions GNU/Linux

Una **distribució** (*distro*) és un empaquetament del nucli Linux amb programari GNU i altres aplicacions, orientada a un ús determinat.

Famílies principals:

- **Debian** — base estable; derivades: Ubuntu, Linux Mint, Raspberry Pi OS
- **Red Hat** — orientada a empreses; derivades: Fedora, CentOS, Rocky Linux, AlmaLinux
- **SUSE** — orientada a empreses i escriptori; derivades: openSUSE
- **Arch Linux** — minimalista, rolling release; derivades: Manjaro, EndeavourOS
- **Slackware** — de les més antigues

#### Requisits previs a la instal·lació

- Verificar els **requisits mínims** del sistema (processador, RAM, espai en disc)
- Comprovar la **compatibilitat de maquinari** (consultar HCL, *Hardware Compatibility List*)
- Planificar l'**esquema de particions**: partició arrel (`/`), swap, `/home`, `/boot`
- Obtenir el **mètode d'instal·lació**: CD/DVD, USB *bootable*, xarxa (PXE), màquina virtual
- Decidir si **dual boot** amb un altre SO (Windows + Linux)

#### Procés d'instal·lació d'un SO lliure

Passos generals:

1. Arrencada des del mitjà d'instal·lació (BIOS/UEFI → selecció de dispositiu)
2. Selecció d'idioma i teclat
3. Configuració de la xarxa (opcional)
4. Particionament del disc (assistit o manual)
5. Selecció del programari a instal·lar
6. Creació de l'usuari administrador i usuari normal
7. Instal·lació del carregador d'arrancada
8. Reinici i primera configuració

### Instal·lació d'aplicacions en sistemes operatius lliures

#### Gestor de paquets

Eina central per instal·lar, actualitzar i desinstal·lar programari de forma centralitzada a partir de **dipòsits**.

**Sistemes basats en Debian/Ubuntu** — vegeu també: [dpkg-reconfigure](https://proferamon.com/tic/reconfigure.html)

```bash
apt update                   # Actualitza la llista de paquets
apt upgrade                  # Actualitza els paquets instal·lats
apt install nom-paquet       # Instal·la un paquet
apt remove nom-paquet        # Desinstal·la (manté configuració)
apt purge nom-paquet         # Desinstal·la (elimina configuració)
apt search paraula           # Cerca paquets
dpkg -i paquet.deb           # Instal·la un .deb local
dpkg -l                      # Llista paquets instal·lats
```

**Sistemes basats en Arch Linux** — vegeu també: [Equivalències apt ↔ pacman](https://proferamon.com/tic/pacman.html)

```bash
pacman -Syu                  # Actualitza tot el sistema
pacman -S nom-paquet         # Instal·la un paquet
pacman -R nom-paquet         # Desinstal·la
pacman -Ss paraula           # Cerca paquets
```

**Sistemes basats en Red Hat/Fedora** — vegeu també: [Equivalències apt ↔ dnf](https://proferamon.com/tic/dnf.html)

```bash
dnf install nom-paquet       # Instal·la un paquet
dnf remove nom-paquet        # Desinstal·la
dnf update                   # Actualitza tot el sistema
rpm -i paquet.rpm            # Instal·la un .rpm local
rpm -qa                      # Llista paquets instal·lats
```

**Formats de paquets universals:**

- **Flatpak** — aïllat en sandbox, independent de la distro
- **Snap** — sistema de Canonical (Ubuntu)
- **AppImage** — executable portàtil sense instal·lació

#### Compilació des del codi font

```bash
./configure
make
sudo make install
```

### Carregadors de l'arrancada

El **carregador d'arrancada** (*bootloader*) és el primer programari que s'executa quan s'encén l'ordinador; carrega el nucli del sistema operatiu a la memòria.

**[GRUB (GRand Unified Bootloader)](https://proferamon.com/tic/grub.html):**

- Estàndard de facto en sistemes GNU/Linux
- **GRUB Legacy** (versió 1) — obsoleta
- **GRUB2** (versió 2) — versió actual; suporta MBR i GPT/UEFI, sistemes de fitxers ext4/Btrfs/XFS, LVM

Fitxers principals de GRUB2:

- `/boot/grub/grub.cfg` — configuració generada automàticament
- `/etc/default/grub` — paràmetres de configuració editable
- `/etc/grub.d/` — scripts que generen `grub.cfg`

```bash
update-grub                  # Debian/Ubuntu: regenera grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg   # Fedora/Red Hat
grub-install /dev/sda        # Instal·la GRUB al MBR del disc
```

**SYSLINUX:** carregador lleuger per a sistemes d'arrencada des d'USB o xarxa.

**Arrencada UEFI:** en sistemes moderns amb UEFI, cal una **partició EFI** (ESP, `vfat`, ~512 MB, muntada a `/boot/efi`). GRUB2 és compatible amb UEFI.

### Inici del sistema. Fitxers d'inici del sistema

#### Procés d'arrencada (boot) en GNU/Linux

> Vegeu: [Procés d'arrencada d'un sistema operatiu GNU/Linux](https://proferamon.com/tic/arrencada.html)

1. **[BIOS/UEFI](https://proferamon.com/tic/bios.html)** — inicialitza el maquinari, executa el POST
2. **Carregador d'arrancada (GRUB2)** — carrega el nucli Linux i l'initramfs
3. **Nucli Linux** — detecta maquinari, munta el sistema de fitxers arrel
4. **Sistema d'inicialització** (init/systemd) — arrenca els serveis
5. **Shell / entorn gràfic** — disponible per a l'usuari

#### SysVinit (sistema clàssic)

Sistema d'inicialització tradicional d'Unix basat en **nivells d'execució** (*runlevels*):

| Runlevel | Significat (Debian/Ubuntu) |
|---|------|
| 0 | Aturada del sistema |
| 1 | Mode monousuari (manteniment) |
| 2–5 | Mode multiusuari normal |
| 6 | Reinici |

Scripts d'inici a `/etc/init.d/`; enllaços a `/etc/rc*.d/`.

#### Systemd (sistema modern)

Sistema d'inicialització estàndard en la majoria de distribucions modernes (Debian 8+, Ubuntu 15.04+, Fedora, CentOS 7+, Arch Linux).

Conceptes clau:

- **Unit** — unitat de gestió (servei, dispositiu, punt de muntatge, socket…)
- **Target** — equivalent als runlevels de SysVinit
- **Journal** — registre centralitzat del sistema (gestionat per `journald`)

Targets equivalents:

| Target | Equivalent runlevel |
|-------|---|
| `poweroff.target` | 0 |
| `rescue.target` | 1 |
| `multi-user.target` | 3 |
| `graphical.target` | 5 |
| `reboot.target` | 6 |

```bash
systemctl list-units --type=target    # Llista targets
systemctl get-default                 # Target per defecte
systemctl set-default graphical.target
```

Fitxers de configuració d'unitats:

- */lib/systemd/system/* — unitats del sistema (no editar)
- */etc/systemd/system/* — personalitzacions (prioritat sobre les anteriors)

### Registre del sistema

#### Syslog / Rsyslog

Sistema clàssic de registre basat en el protocol **syslog** (RFC 5424).

- **Rsyslog** — implementació moderna de syslog, usada a Debian/Ubuntu
- Fitxers de configuració: `/etc/rsyslog.conf`, `/etc/rsyslog.d/`
- Registres a `/var/log/`: `syslog`, `auth.log`, `kern.log`, `daemon.log`…

Nivells de gravetat (syslog):

| Número | Nom | Descripció |
|---|----|------|
| 0 | emerg | Emergència del sistema |
| 1 | alert | Acció immediata requerida |
| 2 | crit | Condicions crítiques |
| 3 | err | Errors |
| 4 | warning | Advertiments |
| 5 | notice | Condicions normals però significatives |
| 6 | info | Missatges informatius |
| 7 | debug | Missatges de depuració |

#### Journald (systemd)

Registre binari centralitzat de systemd, gestionat per `systemd-journald`. Accés via [`journalctl`](https://proferamon.com/tic/journalctl.html).

```bash
journalctl                          # Tots els registres
journalctl -u nginx                 # Registres d'un servei
journalctl -f                       # Segueix en temps real
journalctl --since "1 hour ago"     # Última hora
journalctl -b                       # Des del darrer arrencament
journalctl -p err                   # Errors i superior
journalctl --disk-usage             # Espai usat pels registres
```

### Actualització i manteniment de controladors de dispositius

Els **drivers** permeten al sistema operatiu comunicar-se amb els perifèrics. En GNU/Linux la majoria de drivers s'inclouen directament al nucli o com a **mòduls carregables** (`.ko`).

**Gestió de mòduls:**
```bash
lsmod                        # Llista mòduls carregats
modinfo nom_modul            # Informació d'un mòdul
modprobe nom_modul           # Carrega un mòdul
modprobe -r nom_modul        # Descarrega un mòdul
```

**Fitxers de configuració:**

- */etc/modprobe.d/* — configuració i *blacklist* de mòduls
- */etc/modules* — mòduls que es carreguen en l'arrencada (Debian/Ubuntu)

**Actualització del nucli i mòduls:**

```bash
apt install linux-image-$(uname -r)   # Actualitza el nucli (Debian)
dnf update kernel                      # Actualitza el nucli (Fedora)
```

**Detecció de maquinari:**

```bash
lspci                        # Dispositius PCI
lsusb                        # Dispositius USB
lshw                         # Maquinari complet
hwinfo                       # Informació detallada de maquinari
dmesg                        # Missatges del nucli (arrencada i dispositius)
```


## 2.2. Instal·lació de programari de base de propietat

### Consideracions prèvies a la instal·lació de sistemes operatius de propietat

**Sistemes Windows:** verificar els requisits mínims de la versió, disposar d'una clau de llicència vàlida, compatibilitat BIOS/UEFI, estat del Secure Boot, drivers dels dispositius disponibles per a la versió triada.

**[BIOS vs. UEFI](https://proferamon.com/tic/bios.html):**

- **BIOS** (Basic Input/Output System) — firmware clàssic; utilitza taula de particions MBR
- **UEFI** (Unified Extensible Firmware Interface) — firmware modern; suporta GPT, *Secure Boot*, arrencada ràpida

#### Instal·lació de sistemes operatius de propietat

**Procés d'instal·lació de Windows:**

1. Arrencada des del mitjà d'instal·lació (USB/DVD)
2. Selecció d'idioma, hora i teclat
3. Introduir la clau de producte (o ometre)
4. Selecció del tipus d'instal·lació: *Actualització* o *Personalitzada* (nova instal·lació)
5. Particionament del disc (crear, formatar, eliminar particions)
6. Còpia de fitxers i instal·lació del sistema
7. Configuració inicial: nom d'equip, compte d'usuari, xarxa, privadesa

### Instal·lació d'aplicacions en sistemes operatius de propietat

- **Instal·ladors .exe o .msi** — fitxer d'instal·lació descarregat o en mitjà físic
- **Microsoft Store** — botiga oficial d'aplicacions de Windows
- **Chocolatey / Winget** — gestors de paquets per a línia d'ordres a Windows
- **PowerShell Gallery** — per a mòduls i scripts PowerShell

### Carregadors de l'arrancada (Windows)

**BCD (Boot Configuration Data):**

- Substitueix el clàssic `boot.ini` (Windows XP i anteriors)
- Gestionat per `bcdedit.exe` des de la línia d'ordres com a administrador
- Fitxer `bootmgr` a l'arrel de la partició del sistema

```ini
bcdedit /enum                          # Llista les entrades d'arrancada
bcdedit /set {default} timeout 5       # Temps d'espera del menú
```

**Reparació del carregador:**

- Accedir al mitjà d'instal·lació → Reparar l'equip → Opcions avançades → Símbol del sistema
- `bootrec /fixmbr`, `bootrec /fixboot`, `bootrec /rebuildbcd`

### Fitxers d'inici del sistema (Windows)

**Serveis de Windows:** gestionats des del *Gestor de serveis* (`services.msc`) o des de PowerShell/CMD.

```powershell
Get-Service                        # Llista serveis
Start-Service NomServei
Stop-Service NomServei
Set-Service NomServei -StartupType Automatic
```

**Registre de Windows (*Registry*):**
Base de dades jeràrquica on s'emmagatzema la configuració del sistema i les aplicacions. Eines: `regedit.exe`, `reg.exe`.

Claus principals:

- `HKEY_LOCAL_MACHINE (HKLM)` — configuració del sistema
- `HKEY_CURRENT_USER (HKCU)` — configuració de l'usuari actual
- `HKEY_CLASSES_ROOT (HKCR)` — associacions de fitxers
- `HKEY_USERS (HKU)` — perfils de tots els usuaris
- `HKEY_CURRENT_CONFIG (HKCC)` — configuració de maquinari actual

### Registre del sistema (Windows)

**Visor d'esdeveniments (*Event Viewer*, `eventvwr.msc`):**

- **Application** — errors i avisos de les aplicacions
- **Security** — esdeveniments d'auditoria (inici de sessió, accés a objectes)
- **System** — esdeveniments del sistema operatiu i drivers

Nivells: Informació, Avís, Error, Crític, Auditoria correcta/errònia.

### Actualització i manteniment de controladors de dispositius (Windows)

- **Windows Update** — actualitza el sistema i molts drivers automàticament
- **Gestor de dispositius** (`devmgmt.msc`) — instal·lació manual de drivers, visualització d'errors (símbol !)
- **DISM i SFC** — eines de reparació del sistema:

```ini
sfc /scannow                         # Comprova i repara fitxers del sistema
DISM /Online /Cleanup-Image /RestoreHealth
```


# 3. Administració de programari de base lliure

## 3.1. Administració d'usuaris i grups en sistemes operatius lliures

### Introducció. Usuaris predeterminats

Linux és un sistema **multiusuari**: cada usuari té un UID (User ID), un GID (Group ID) principal, un directori personal i un shell.

**Usuaris especials del sistema:**

- **root** (UID 0) — superusuari; accés total al sistema
- **nobody** — compte sense privilegis; usat per processos que no necessiten permisos
- **daemon, bin, sys, www-data, sshd…** — comptes de servei per a dimonis del sistema

### Fitxers amb informació d'usuaris i grups

**`/etc/passwd`** — informació bàsica dels usuaris:

```ini
nom:x:UID:GID:comentari:directori_home:shell
root:x:0:0:root:/root:/bin/bash
alumne:x:1001:1001:Alumne de proves:/home/alumne:/bin/bash
```

**`/etc/shadow`** — contrasenyes xifrades (sols llegible per root):

```ini
nom:contrasenya_xifrada:últim_canvi:min:max:avís:inactivitat:expiració
alumne:$6$salt$hash...:19000:0:99999:7:::
```

**`/etc/group`** — informació dels grups:

```ini
nom_grup:x:GID:membres
sudo:x:27:alumne
professors:x:1002:pere,maria
```

**`/etc/gshadow`** — contrasenyes de grup xifrades.

### Eines de gestió d'usuaris i grups en mode text

> Vegeu també: [Gestió de contrasenyes](https://proferamon.com/tic/contrasenyes.html)

```bash
# Crear usuaris
useradd -m -s /bin/bash -c "Nom Complet" alumne
useradd -m -G sudo,alumnes -e 2025-12-31 alumne   # Grups i data d'expiració

# Modificar usuaris
usermod -aG sudo alumne          # Afegeix al grup sudo (sense eliminar altres grups)
usermod -L alumne                # Bloqueja el compte
usermod -U alumne                # Desbloqueja el compte
usermod -s /bin/bash alumne      # Canvia el shell

# Eliminar usuaris
userdel alumne                   # Elimina (manté el directori personal)
userdel -r alumne                # Elimina i esborrar el directori personal

# Gestió de contrasenyes
passwd alumne                    # Estableix/canvia contrasenya
passwd -e alumne                 # Força canvi en el pròxim inici de sessió
passwd -l alumne                 # Bloqueja el compte
chage -l alumne                  # Mostra la política d'expiració
chage -M 90 alumne               # Màxim 90 dies per canviar contrasenya

# Grups
groupadd professors              # Crea un grup
groupmod -n nous_professors professors   # Reanomena
groupdel professors              # Elimina el grup
gpasswd -a alumne professors     # Afegeix usuari al grup
gpasswd -d alumne professors     # Elimina usuari del grup

# Informació
id alumne                        # UID, GID i grups
groups alumne                    # Grups de l'usuari
who                              # Usuaris connectats
w                                # Usuaris connectats i activitat
last                             # Historial d'inicis de sessió
```

**`/etc/skel`** — directori plantilla; el seu contingut es copia al directori personal de cada usuari nou.

**`su` i `sudo`:**

```bash
su - alumne          # Canvia a l'usuari alumne (entorn complet)
su -                 # Canvia a root
sudo apt update      # Executa com a root (sense canviar d'usuari)
sudo -i              # Obre un shell de root
visudo               # Edita /etc/sudoers de forma segura
```

### Eines de gestió d'usuaris i grups en mode gràfic

- **GNOME** — *Configuració del sistema → Usuaris*
- **KDE Plasma** — *Configuració del sistema → Comptes d'usuari*
- **Webmin** — panell d'administració web multi-sistema
- **Cockpit** — consola web moderna per a servidors Linux

### Perfils d'usuari locals

El **directori personal** (`/home/nom_usuari`) conté:

- Fitxers de configuració ocults (dotfiles): `.bashrc`, `.profile`, `.bash_history`…
- Directoris estàndard: `Documents`, `Descarregues`, `Escriptori`…

**Variables d'entorn importants:**

```bash
echo $HOME        # Directori personal
echo $PATH        # Rutes de cerca d'executables
echo $SHELL       # Shell actiu
echo $USER        # Nom d'usuari actual
printenv          # Mostra totes les variables d'entorn
```


## 3.2. Configuració del protocol de xarxa en sistemes operatius lliures

### Paràmetres bàsics per a la configuració de la xarxa

- **Adreça IP** — identifica el dispositiu a la xarxa (estàtica o dinàmica via DHCP)
- **Màscara de subxarxa** — delimitació de la xarxa (notació CIDR: `/24`)
- **Porta d'enllaç (*gateway*)** — adreça del router per sortir a altres xarxes
- **DNS** — servidor de noms de domini per resoldre noms a IPs

### Eines de configuració de la xarxa en mode text

```bash
ip addr                             # Mostra adreces IP
ip addr add 192.168.1.10/24 dev eth0
ip link set eth0 up                 # Activa la interfície
ip route                            # Taula de rutes
ip route add default via 192.168.1.1

nmcli device status                 # Estat amb NetworkManager
nmcli connection up "Connexio"
nmcli device wifi connect "SSID" password "pwd"
nmtui                               # Interfície TUI de NetworkManager
```

### Fitxers de configuració de la xarxa

**Debian/Ubuntu (sense NetworkManager):**

```bash
# /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
```

**Ubuntu (Netplan — des de la 17.10):**
```yaml
# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.10/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
```
```bash
netplan apply    # Aplica la configuració
```

**Fedora/Red Hat (NetworkManager):**
A RHEL 9+ i Fedora 36+, els perfils es gestionen amb fitxers `.nmconnection` a `/etc/NetworkManager/system-connections/`. Els fitxers `ifcfg-*` a `/etc/sysconfig/network-scripts/` han quedat obsolets i es van eliminar a RHEL 9.

**Fitxers complementaris:**

```ini
/etc/resolv.conf       # Servidors DNS i domini de cerca
/etc/hosts             # Resolució local de noms (nom ↔ IP)
/etc/hostname          # Nom de l'equip
```

### Eines de xarxa en mode text

```bash
ping -c 4 8.8.8.8                   # Prova de connectivitat
traceroute www.google.com           # Ruta dels paquets
nslookup www.google.com             # Consulta DNS
dig www.google.com A                # Consulta DNS detallada
host www.google.com                 # Resolució ràpida
ss -tuln                            # Ports oberts
netstat -tuln                       # Ports oberts (clàssic)
nmap 192.168.1.0/24                 # Escàner de xarxa
arp -a                              # Taula ARP
```


## 3.3. Optimització del sistema en ordinadors portàtils (Linux)

### Gestió energètica en sistemes GNU/Linux

Serveis i eines:

- **ACPI** (*Advanced Configuration and Power Interface*) — estàndard de gestió d'energia
- **TLP** — gestor d'energia avançat per a portàtils Linux
- **powertop** — anàlisi de consum energètic per procés

```bash
apt install tlp acpi                # Instal·la TLP i acpi
systemctl enable tlp --now
acpi -b                             # Estat de la bateria
powertop                            # Monitor de consum
```

**Modes d'estalvi d'energia:**

- **Suspensió a la RAM (S3)** — `systemctl suspend`
- **Hibernació (S4)** — `systemctl hibernate` (requereix partició swap)
- **Suspensió híbrida** — `systemctl hybrid-sleep`

**Configuració a `/etc/systemd/sleep.conf`** i a `/etc/tlp.conf`.

**Brillantor de pantalla:**

```bash
brightnessctl set 50%               # Ajusta la brillantor (paquet brightnessctl)
xbacklight -set 50                  # Alternativa (X11)
```

### Arxius de xarxa sense connexió

Les **carpetes sense connexió** (*offline files*) permeten accedir a fitxers de xarxa quan no hi ha connexió disponible, sincronitzant-los localment.

En Linux, eines per a sincronització i accés offline:

- **rsync** — sincronització unidireccional o bidireccional de fitxers
- **Nextcloud client** — sincronització de núvol privat
- **Unison** — sincronització bidireccional de directoris


# 4. Administració de programari de base propietari

## 4.1. Administració d'usuaris i grups (Windows)

### Usuaris del Windows

**Tipus de comptes:**

- **Compte local** — existent només en l'equip local; autenticació local
- **Compte Microsoft** — associat a un correu de Microsoft; sincronitza configuració entre dispositius
- **Compte de domini (AD)** — gestionat per un controlador de domini de Active Directory

**Comptes predeterminats:**

- **Administrador** — compte d'administrador incorporat; desactivat per defecte en versions modernes
- **Convidat** — compte limitat; desactivat per defecte

### Gestió de contrasenyes

- **Longitud mínima**, **complexitat**, **historial** i **durada màxima** configurables via *Directives de grup* (`gpedit.msc`) o *Directives de seguretat local* (`secpol.msc`)
- **Bloqueig de compte** — desactivació automàtica després d'un nombre d'intents fallits

```ini
net user alumne Contrasenya1!      # Crea/canvia contrasenya per CMD
net user alumne /active:no         # Desactiva el compte
net user                           # Llista usuaris
```

### Perfils d'usuaris locals

El **perfil d'usuari** conté la configuració personal i els documents. Ubicació: `C:\Users\nom_usuari\`.

Contingut principal:

- `Desktop`, `Documents`, `Downloads`, `Pictures`…
- `AppData\` — dades d'aplicació (oculta)
- Fitxers de configuració del sistema (registre de l'usuari `NTUSER.DAT`)

**Tipus de perfils (en entorn de domini):**

- **Local** — emmagatzemat a l'equip local
- **Itinerant (*roaming*)** — emmagatzemat en un servidor; segueix l'usuari a qualsevol equip
- **Obligatori** — de només lectura; els canvis no es guarden en tancar la sessió

### Grups d'usuaris

**Grups locals integrats:**

- **Administradors** — control total del sistema
- **Usuaris** — accés estàndard
- **Operadors de còpia de seguretat** — permisos de còpia sense ser administradors
- **Usuaris de l'Escriptori remot** — accés per RDP

**Gestió de grups:**

```ini
net localgroup professors /add               # Crea un grup
net localgroup professors alumne /add        # Afegeix usuari al grup
lusrmgr.msc                                  # GUI: Usuaris i grups locals
```

### Control de comptes d'usuari (UAC)

El **UAC** (*User Account Control*) és un mecanisme de seguretat que sol·licita confirmació (elevació de privilegis) quan una aplicació necessita permisos d'administrador, fins i tot si l'usuari és administrador.

Nivells de UAC (de més a menys restrictiu):

1. Sempre notificar
2. Notificar quan les aplicacions facin canvis (valor per defecte)
3. Notificar quan les aplicacions facin canvis (sense fosc de pantalla)
4. No notificar mai

Configuració: `Control Panel → User Accounts → Change UAC settings` o `secpol.msc`.

### Dominis, grups de treball i grups domèstics

**Grup de treball (*Workgroup*):**

- Xarxa entre iguals (P2P); sense servidor centralitzat
- Cada equip gestiona els seus propis comptes
- Adequat per a xarxes petites (<10 equips)

**Grup domèstic (*HomeGroup*):** eliminat definitivament a Windows 10 versió 1803 (abril 2018).

**Domini de Windows:**

- Gestió centralitzada d'usuaris i recursos per un **controlador de domini** (*Domain Controller*, DC)
- Basat en **Active Directory (AD)**
- Autenticació per Kerberos
- Directives de grup (GPO) aplicades a tota la xarxa


## 4.2. Configuració del protocol de xarxa (Windows)

### [Xarxes d'àrea local](https://proferamon.com/tic/0225.html) (LAN)

Configuració de xarxa en Windows:

- `ncpa.cpl` — Connexions de xarxa
- `ipconfig /all` — Mostra tota la configuració IP
- `ipconfig /release` i `/renew` — Allibera i renova adreça DHCP
- `ipconfig /flushdns` — Buida la caché DNS

```bash
ipconfig /all              # Tota la info de xarxa
ping 8.8.8.8               # Prova de connectivitat
tracert www.google.com     # Ruta dels paquets
nslookup www.google.com    # Consulta DNS
netstat -ano               # Connexions i ports oberts
arp -a                     # Taula ARP
```

### Internet

Conceptes generals:

- **ISP** (*Internet Service Provider*) — proveïdor d'accés a Internet
- **DNS** (*Domain Name System*) — tradueix noms de domini a IPs
- **HTTP/HTTPS** — protocol de transferència d'hipertext (port 80/443)
- **FTP/SFTP** — transferència de fitxers (port 21/22)
- **SMTP/POP3/IMAP** — protocols de correu electrònic

### Protocols

Protocols de la capa de xarxa i transport:

- **TCP** (*Transmission Control Protocol*) — orientat a connexió, fiable
- **UDP** (*User Datagram Protocol*) — no orientat a connexió, ràpid
- **ICMP** — missatges de control i errors (ping)
- **ARP** — resolució d'adreces MAC des d'IP
- **DHCP** — assignació dinàmica d'adreces IP

### Model TCP/IP

| Capa TCP/IP | Protocols | Equivalent OSI |
|---|---|---|
| Accés a la xarxa | Ethernet, Wi-Fi, ARP | Física + Enllaç |
| Internet | IP, ICMP | Xarxa |
| Transport | TCP, UDP | Transport |
| Aplicació | HTTP, FTP, DNS, SMTP | Sessió + Presentació + Aplicació |

### Adreçament en la xarxa

**Subxarxes (*subnetting*):**

Una adreça IP es divideix en:

- **Adreça de xarxa** — identificador de la subxarxa
- **Adreça de host** — identificador de l'equip dins la xarxa
- **Adreça de broadcast** — adreça de difusió a tots els hosts de la subxarxa

Exemple amb `/24`: xarxa `192.168.1.0`, broadcast `192.168.1.255`, hosts `192.168.1.1`–`192.168.1.254`.

### Adreçament estàtic o dinàmic per a dispositius d'usuari final

**Configuració estàtica** — l'administrador assigna manualment IP, màscara, gateway i DNS.

**Configuració dinàmica (DHCP)** — el servidor DHCP assigna automàticament:

1. *Discover* — el client fa una difusió cercant un servidor DHCP
2. *Offer* — el servidor ofereix una adreça
3. *Request* — el client sol·licita l'adreça oferta
4. *Acknowledge* — el servidor confirma l'assignació


## 4.3. Optimització del sistema en ordinadors portàtils (Windows)

### Millores d'estalvi energètic

**Plans d'energia:**

- **Equilibrat** — equilibri rendiment/consum (per defecte)
- **Estalvi d'energia** — minimitza el consum (portàtil amb bateria)
- **Alt rendiment** — màxim rendiment (sense restriccions d'energia)
- **Màxim rendiment** (Win 10+) — sense cap limitació

Configuració: `Control Panel → Power Options` o `powercfg`.

```ini
powercfg /list                     # Llista els plans d'energia
powercfg /query                    # Detalls del pla actiu
powercfg /batteryreport            # Informe de la bateria
powercfg /hibernate on             # Activa la hibernació
```

### Suspensió, hibernació i suspensió híbrida

| Mode | RAM | Disc | Velocitat de recuperació |
|----|----|---|-----|
| **Suspensió (S3)** | Activa | No | Ràpida (segons) |
| **Hibernació (S4)** | Inactiva | Sí (hiberfil.sys) | Lenta (minuts) |
| **Suspensió híbrida** | Activa | Sí | Ràpida (des de RAM) o des de disc si falla |

### Optimització del sistema per a millorar el rendiment

- **Desfragmentació** — `defrag` o *Optimitza unitats* (automàtic en Windows 8+, innecessari per a SSD)
- **Inici** — gestió de programes d'inici: Administrador de tasques → Inici (Windows 8+); `msconfig` en versions anteriors
- **Memòria virtual (arxiu de paginació)** — `SystemPropertiesPerformance.exe`
- **Actualitzacions** — Windows Update; reinicis programats fora d'hores de treball
- **Antivirus / Windows Defender** — protecció en temps real; impacte en el rendiment

### Arxius de xarxa sense connexió (Windows)

La funció **Fitxers sense connexió** (*Offline Files*) permet sincronitzar fitxers d'unitats de xarxa per treballar sense connexió.

Activació: `Control Panel → Sync Center → Manage offline files`.

Funcionament:

- El sistema fa una còpia local dels fitxers de la xarxa
- En treballar sense connexió, s'utilitza la còpia local
- En reconnectar-se, se sincronitzen els canvis (gestió de conflictes)


# 5. Implantació de programari específic

## 5.1. Assistència, diagnosi i resolució d'incidències

### Documentació tècnica

La **documentació tècnica** és essencial per a la gestió eficient d'un sistema informàtic i inclou:

- **Manual d'instal·lació** — passos per instal·lar un SO o aplicació
- **Manual de configuració** — paràmetres i opcions de configuració
- **Manual d'usuari** — instruccions per a l'ús del sistema
- **Mapa de la xarxa** — topologia física i lògica
- **Inventari de maquinari i programari** — registre de tots els actius
- **Registre de canvis (*changelog*)** — historial de modificacions al sistema

Eines de documentació:

- **Wikis** (MediaWiki, Confluence, DokuWiki)
- **Sistemes de gestió de documents** (SharePoint, Nextcloud)
- **Markdown** — format lleuger per a documentació tècnica

### Gestió d'incidències

Una **incidència** és qualsevol interrupció o reducció no planificada de la qualitat d'un servei informàtic.

**Procés de gestió d'incidències (basat en ITIL):**

1. **Detecció i registre** — identificació de la incidència, assignació de codi de seguiment
2. **Classificació i prioritat** — urgència × impacte → prioritat (crítica/alta/mitjana/baixa)
3. **Diagnosi inicial** — primera línia de suport (helpdesk)
4. **Escalat** — si no es resol en el primer nivell, es passa al segon o tercer nivell
5. **Investigació i diagnosi** — anàlisi de la causa arrel
6. **Resolució i recuperació** — aplicació de la solució
7. **Tancament** — verificació amb l'usuari i tancament del tiquet
8. **Revisió post-incident** — anàlisi de lliçons apreses


**Eines de ticketing:**

- **GLPI** — gestió d'actius i incidències (lliure)
- **OTRS** — sistema de tikets (lliure)
- **Jira Service Management** — solució empresarial
- **Zendesk, Freshdesk** — solucions SaaS

**Nivells de servei (SLA):**
Acords de Nivell de Servei que defineixen els temps de resposta i resolució garantits per a cada tipus d'incidència.


## 5.2. Gestió d'instal·lacions

### Manuals d'instal·lació i configuració de sistemes operatius i aplicacions

Components d'un bon manual d'instal·lació:

- Requisits previs (maquinari, programari, xarxa)
- Passos de pre-instal·lació (còpia de seguretat, particionament)
- Procés d'instal·lació pas a pas (amb captures de pantalla)
- Configuració post-instal·lació
- Verificació i proves
- Resolució de problemes (*troubleshooting*)

### Llicències de client i llicències de servidor

**Llicències de client (CAL, *Client Access License*):** permeten a un client accedir als serveis d'un servidor Windows. Dos models:

- **Per dispositiu** — una llicència per cada dispositiu que accedeix al servidor
- **Per usuari** — una llicència per cada usuari (independentment del nombre de dispositius)

**Llicències de servidor:**

- **Per processador/nucli** — model típic per a servidors de bases de dades
- **Per socket** — cost per CPU física instal·lada
- **Subscripció** — model de pagament mensual/anual (Microsoft 365, Azure)

### Instal·lacions desateses

Les **instal·lacions desateses** permeten automatitzar el procés d'instal·lació d'un SO sense intervenció de l'usuari.

**Linux — Preseed (Debian/Ubuntu):**
Fitxer de resposta que defineix automàticament totes les opcions de l'instal·lador Debian.

**Linux — Kickstart (Red Hat/Fedora):**

```bash
# Exemple bàsic de fitxer Kickstart
install
cdrom
lang ca_ES.UTF-8
keyboard es
network --bootproto=dhcp
rootpw --plaintext Contrasenya1!
firewall --enabled
authconfig --enableshadow --passalgo=sha512
timezone Europe/Madrid
bootloader --location=mbr
%packages
@base
%end
```

**Linux — Imatges de disc amb Clonezilla o dd:**
Còpia d'una instal·lació model a múltiples equips.

**Windows — Windows Deployment Services (WDS):**
Servidor que distribueix imatges de Windows per xarxa via PXE.

**Windows — Fitxers de respostes (Unattend.xml):**
Fitxer XML que automatitza la instal·lació de Windows. Creat amb l'eina **WSIM** (*Windows System Image Manager*).

**Sysprep:**
Prepara una imatge de Windows per clonar-la a múltiples equips (elimina el SID únic, reinicia l'activació).

```ini
sysprep /generalize /oobe /shutdown
```

### Implementació de fitxers de respostes

**Fases del fitxer Unattend.xml:**

- `windowsPE` — configuració durant la fase d'instal·lació
- `offlineServicing` — actualització offline
- `specialize` — configuració específica per a l'equip
- `oobeSystem` — configuració inicial (*Out-Of-Box Experience*)

### Servidors d'actualitzacions automàtiques

**WSUS (Windows Server Update Services):**
Servidor que centralitza la gestió i distribució d'actualitzacions de Microsoft per a tota la xarxa corporativa. Avantatges: reducció del consum d'amplada de banda, control sobre quines actualitzacions s'apliquen i quan.

**Apt-Cacher NG (Linux):**
Proxy que emmmagatzema paquets Debian/Ubuntu per evitar descàrregues repetides a la xarxa.

**Foreman + Katello (Linux):**
Plataforma de gestió centralitzada d'actualitzacions per a sistemes Red Hat/CentOS/AlmaLinux/Rocky Linux. Katello és el component de gestió de continguts i actualitzacions; Foreman gestiona el cicle de vida dels sistemes.

**Ansible, Puppet, Chef, Salt:**
Eines de gestió de configuració que automatitzen la instal·lació i actualització de programari a múltiples servidors.


# 6. Administració de la informació

## 6.1. Organització i accés a fitxers

### Fitxers i directoris

Un **fitxer** és una unitat d'emmagatzematge d'informació identificada per un nom i situada dins d'un directori. Tipus de fitxers en Linux:

- **`-`** — fitxer regular (text, binari…)
- **`d`** — directori
- **`l`** — enllaç simbòlic
- **`b`** — dispositiu de bloc (discos)
- **`c`** — dispositiu de caràcter (terminals, ports sèrie)
- **`p`** — *named pipe* (FIFO)
- **`s`** — socket

Cada fitxer té metadades emmagatzemades a l'**[inode](https://proferamon.com/tic/inodes.html)**: propietari, grup, permisos, dates (creació, accés, modificació), mida, nombre d'enllaços durs, punters als blocs de dades.

### Estructura de directoris (FHS)

L'**FHS** (*Filesystem Hierarchy Standard*) defineix l'estructura estàndard de directoris en sistemes Unix/Linux. Vegeu: [Jerarquia de directoris](https://proferamon.com/tic/jerarquia.html)

| Directori | Contingut |
|---|------|
| `/` | Arrel del sistema de fitxers |
| `/bin` | Binaris essencials del sistema (ls, cp, mv…) |
| `/sbin` | Binaris d'administració del sistema (fdisk, mount…) |
| `/boot` | Fitxers d'arrencada (nucli, GRUB, initramfs) |
| `/dev` | Fitxers de dispositiu (discos, terminals…) |
| `/etc` | Fitxers de configuració del sistema |
| `/home` | Directoris personals dels usuaris |
| `/lib` | Biblioteques compartides essencials |
| `/media` | Punts de muntatge per a mitjans extraïbles |
| `/mnt` | Punts de muntatge temporals |
| `/opt` | Programari opcional de tercers |
| `/proc` | Sistema de fitxers virtual (informació de processos i nucli) |
| `/root` | Directori personal de l'usuari root |
| `/run` | Dades d'execució en temps real (PID, sockets…) |
| `/srv` | Dades de serveis (web, FTP…) |
| `/sys` | Interfície amb el nucli (dispositius, subsistemes) |
| `/tmp` | Fitxers temporals (s'esborra en reiniciar) |
| `/usr` | Aplicacions i dades de l'usuari; subdirectoris: `bin`, `lib`, `share`, `local`… |
| `/var` | Dades variables: logs, cues d'impressió, bases de dades, webs… |

### Operacions bàsiques amb el sistema de fitxers

```bash
ls -lah /etc          # Llista detallada amb mides llegibles
cd /var/log && pwd    # Navegar i mostrar directori actual
mkdir -p /opt/app/cfg # Crear jerarquia de directoris
cp -rp src/ dst/      # Còpia recursiva preservant metadades
mv fitxer.txt nou.txt # Moure/reanomenar
rm -rf /tmp/proves/   # Eliminar recursivament (perillós!)
find / -name "*.conf" -user root 2>/dev/null
locate -i fitxer.txt  # Cerca ràpida (base de dades)
```


## 6.2. Administració de discos

### Distribució del disc dur

**MBR (Master Boot Record):**

- Sector 0 del disc (512 bytes)
- Màxim 4 particions primàries (o 3 primàries + 1 estesa)
- Particions lògiques dins de la partició estesa
- Límit de 2 TB per disc

**GPT (GUID Partition Table):**

- Successor de MBR; requerit per a UEFI i discos >2 TB
- Fins a 128 particions primàries
- Redundància de la taula de particions (cap de disc + cua de disc)
- Compatible amb discos fins a 8 ZiB

### Sistemes de fitxers

> Vegeu: [Sistemes de fitxers](https://proferamon.com/tic/sistemes_fitxers.html)

| Sistema | SO | Màx. fitxer | Mida màx. volum | Característiques |
|---|---|---|---|-------|
| **ext4** | Linux | 16 TiB | 1 EiB | Journaling, estable, estàndard Linux |
| **XFS** | Linux | 8 EiB | 8 EiB | Rendiment en fitxers grans, journaling |
| **Btrfs** | Linux | 16 EiB | 16 EiB | Copy-on-write, snapshots, RAID integrat |
| **NTFS** | Windows | 16 TiB | 256 TiB | Journaling, ACL, compressió, xifrat EFS |
| **FAT32** | Universal | 4 GiB | 2 TiB | Compatible, sense journaling ni permisos |
| **exFAT** | Universal | sense límit | sense límit | Successor de FAT32 per a unitats grans |

### Manipulació de particions

```bash
fdisk -l                             # Llista discos i particions
fdisk /dev/sdb                       # Editor de particions (MBR)
  n → nova partició
  d → elimina partició
  p → mostra taula
  w → desa i surt
  q → surt sense desar

parted /dev/sdb print                # Mostra particions (MBR i GPT)
parted /dev/sdb mklabel gpt          # Crea taula GPT
parted /dev/sdb mkpart primary ext4 0% 50%

gdisk /dev/sdb                       # Editor GPT interactiu

mkfs.ext4 /dev/sdb1                  # Formata amb ext4
mkfs.xfs /dev/sdb2                   # Formata amb XFS
mkfs.ntfs /dev/sdb3                  # Formata amb NTFS
mkfs.vfat -F 32 /dev/sdb4            # Formata amb FAT32
```

### Muntatge i desmuntatge de particions

```bash
mount /dev/sdb1 /mnt/disc            # Munta la partició
mount -t ext4 /dev/sdb1 /mnt/disc    # Especifica el sistema de fitxers
mount -o ro /dev/sdb1 /mnt/disc      # Munta en lectura
mount                                # Mostra tot el que està muntat
umount /mnt/disc                     # Desmunta

# Muntatge permanent: /etc/fstab
# /dev/sdb1   /mnt/disc   ext4   defaults   0   2
# o millor amb UUID:
blkid /dev/sdb1                      # Obté l'UUID
# UUID=xxxx-xxxx  /mnt/disc  ext4  defaults  0  2
```

### [Volums Lògics](https://proferamon.com/tic/lvm.html) (LVM)

**LVM** (*Logical Volume Manager*) afegeix una capa d'abstracció entre el maquinari i els sistemes de fitxers, permetent redimensionar volums en calent.

Conceptes:

- **PV** (*Physical Volume*) — partició o disc dedicat a LVM
- **VG** (*Volume Group*) — grup de PVs; pool d'espai total
- **LV** (*Logical Volume*) — volum lògic que es formata i munta

```bash
pvcreate /dev/sdb1 /dev/sdc1         # Crea PVs
vgcreate dades /dev/sdb1 /dev/sdc1   # Crea el VG "dades"
lvcreate -L 20G -n web dades         # Crea un LV de 20 GB
mkfs.ext4 /dev/dades/web             # Formata el LV
mount /dev/dades/web /var/www        # Munta

lvextend -L +10G /dev/dades/web      # Augmenta el LV en 10 GB
resize2fs /dev/dades/web             # Redimensiona el sistema de fitxers (ext4)

pvdisplay / vgdisplay / lvdisplay    # Mostra informació
```

### Desfragmentació

- **Linux ext4** — poca fragmentació gràcies a l'assignació d'espai per extensió; `e4defrag /dev/sdb1` si necessari
- **Linux Btrfs** — `btrfs filesystem defragment`
- **Windows NTFS** — `defrag C:` o *Optimitza unitats* (automàtic amb SSD: TRIM)

### Revisió

```bash
# Linux
fsck /dev/sdb1                       # Comprova i repara (partició desmuntada!)
fsck.ext4 -f /dev/sdb1

# Windows
chkdsk C: /f /r                      # Comprova i repara sectors (requereix reinici)
```

### Estadístiques

```bash
df -hT                               # Espai lliure per sistema de fitxers
du -sh /var/*                        # Espai per directori
iostat -x 1 5                        # Estadístiques I/O per dispositiu
lsblk -f                             # Arbre de dispositius amb UUIDs
smartctl -a /dev/sda                 # Estat S.M.A.R.T. del disc
```


## 6.3. Treball amb fitxers

### [Permisos](https://proferamon.com/tic/basics.html#permisos-i-propietaris)

Linux utilitza un model de permisos per tres categories: **propietari (u)**, **grup (g)** i **resta (o)**.

![Permisos](https://proferamon.com/tic/imatges/0369/036901.png)

**Valors octals:** r=4, w=2, x=1. Suma per categoria: 7=rwx, 6=rw-, 5=r-x, 4=r–, 0=–-

```bash
chmod 755 script.sh        # rwxr-xr-x
chmod 644 document.txt     # rw-r--r--
chmod 600 clau.pem         # rw-------
chmod -R 755 /var/www/     # Recursiu
chmod u+x,g-w fitxer       # Notació simbòlica
chown usuari:grup fitxer   # Canvia propietari i grup
chgrp professors fitxer    # Canvia grup
umask 022                  # Màscara: fitxers 644, dirs 755
```

**[Bits especials](https://proferamon.com/tic/basics.html#bits-especials):**

- **setuid (s)** — executa l'arxiu amb la identitat del propietari (`chmod u+s`)
- **setgid (s)** — executa amb la identitat del grup; en directoris: els fitxers nous hereten el grup (`chmod g+s`)
- **sticky (t)** — en directoris: sols el propietari pot esborrar els seus fitxers (`chmod o+t`)

```bash
chmod 4755 executable      # setuid actiu
chmod 2755 directori/      # setgid actiu
chmod 1777 /tmp            # sticky bit actiu
ls -la                     # La 's' o 't' indica bit especial actiu; 'S' o 'T' indica que l'execució (x) està inactiu
```

**[ACL](https://proferamon.com/tic/acl.html) (Access Control Lists):**
Permeten permisos granulars per a usuaris i grups específics, més enllà del model rwx.

```bash
apt install acl
# Afegeix acl a les opcions de /etc/fstab: defaults,acl

setfacl -m u:frederic:rwx /var/www      # Assigna permisos ACL a un usuari
setfacl -m g:disseny:rx /var/www         # Assigna permisos ACL a un grup
setfacl -x u:frederic /var/www           # Elimina entrada ACL
getfacl /var/www                         # Mostra les ACL del directori
```

### Enllaços

**Enllaç dur (*hard link*):**

- Apunta directament a l'inode d'un fitxer
- Ambdós noms apunten al mateix inode (mateixos continguts i metadades)
- No pot creuar sistemes de fitxers ni apuntar a directoris
- El fitxer no s'elimina fins que totes les referències (hard links) s'esborren

**Enllaç simbòlic (*soft link*, *symlink*):**

- Apunta al *nom* d'un altre fitxer o directori
- Pot creuar sistemes de fitxers i apuntar a directoris
- Es trenca si s'elimina l'arxiu destí

```bash
ln original.txt hardlink.txt          # Crea un hard link
ln -s /ruta/original.txt simlink.txt  # Crea un symlink
ls -la                                # Mostra el nombre de hard links i el destí dels symlinks
```

### Cerca d'informació

```bash
find /var/log -name "*.log" -mtime -1     # Logs modificats avui
find / -perm /4000 -type f 2>/dev/null    # Fitxers setuid
find /home -size +100M                    # Fitxers grans
grep -rn "error" /var/log/               # Cerca text recursivament en fitxers
grep -i "Failed" /var/log/auth.log       # Cerca sense distingir majúscules
```

Vegeu també: [sed — edita fluxos de text](https://proferamon.com/tic/sed.html) | [nano — editor de text](https://proferamon.com/tic/nano.html)

### Identificació del programari instal·lat

```bash
dpkg -l                           # Llista tot el programari instal·lat (Debian)
dpkg -l | grep nginx              # Cerca un paquet específic
rpm -qa                           # Ho llista tot (Red Hat)
rpm -qi nginx                     # Informació d'un paquet
which programa                    # Localitza un executable
whereis programa                  # Localitza binari, manual i font
file /usr/bin/bash                # Tipus de fitxer
```


# 7. Administració de dominis

## 7.1. Implementació de dominis LDAP

### Dominis LDAP

**LDAP** (*Lightweight Directory Access Protocol*) és un protocol estàndard per accedir i gestionar serveis de directori. Un **directori LDAP** és una base de dades jeràrquica optimitzada per a les lectures, que emmagatzema informació sobre usuaris, grups, equips i recursos de xarxa.

**Conceptes clau:**

- **DIT** (*Directory Information Tree*) — l'arbre jeràrquic d'entrades
- **DN** (*Distinguished Name*) — identificador únic d'una entrada, per exemple:

```nano
cn=alumne,ou=usuaris,dc=escola,dc=cat
```

- **RDN** (*Relative Distinguished Name*) — part del DN que identifica l'entrada respecte al pare
- **OU** (*Organizational Unit*) — unitat organitzativa; contenidor d'objectes
- **DC** (*Domain Component*) — component del domini (p. ex. `dc=escola,dc=cat`)
- **Attribute** — propietat d'una entrada (`cn`, `sn`, `mail`, `uid`, `userPassword`…)
- **ObjectClass** — defineix els atributs permesos i obligatoris d'una entrada

**Principals classes d'objecte:**

- `inetOrgPerson` — persona de xarxa (usuaris)
- `posixAccount` — compte Unix (UID, GID, directori home, shell)
- `posixGroup` — grup Unix
- `organizationalUnit` — unitat organitzativa

**Implementació OpenLDAP:**

```bash
# Debian/Ubuntu
apt install slapd ldap-utils
dpkg-reconfigure slapd             # Configura el domini i l'administrador

# Fitxers principals
/etc/ldap/slapd.conf               # Configuració (versió antiga)
/etc/ldap/slapd.d/                 # Configuració OLC (Online Configuration)
```

**Format LDIF** (*LDAP Data Interchange Format*):

```nano
dn: cn=alumne,ou=usuaris,dc=escola,dc=cat
objectClass: inetOrgPerson
objectClass: posixAccount
cn: alumne
sn: Cognoms
uid: alumne
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/alumne
loginShell: /bin/bash
userPassword: {SSHA}hash
```

### Disseny del domini

**Consideracions de disseny:**

- Estructura plana vs. jeràrquica (per departaments, per localitzacions, per funció)
- Convenció de noms consistent
- Definir l'arbre base (base DN) a partir del nom de domini DNS
- Separar usuaris, grups, equips i recursos en OUs

**Exemple d'estructura:**

```ini
dc=escola,dc=cat
├── ou=usuaris
│   ├── ou=professors
│   └── ou=alumnes
├── ou=grups
├── ou=equips
└── ou=serveis
```


## 7.2. Administració de comptes i grups LDAP

### Administració de comptes LDAP

```bash
# Consultes
ldapsearch -x -b "dc=escola,dc=cat" "(uid=alumne)"    # Cerca un usuari
ldapsearch -x -b "ou=usuaris,dc=escola,dc=cat" "(objectClass=posixAccount)"

# Afegir entrades
ldapadd -x -D "cn=admin,dc=escola,dc=cat" -w contrasenya -f usuari.ldif

# Modificar entrades
ldapmodify -x -D "cn=admin,dc=escola,dc=cat" -w contrasenya -f canvis.ldif

# Eliminar entrades
ldapdelete -x -D "cn=admin,dc=escola,dc=cat" -w contrasenya "cn=alumne,ou=usuaris,dc=escola,dc=cat"

# Canviar contrasenya
ldappasswd -x -D "cn=admin,dc=escola,dc=cat" -w contrasenya \
           -S "cn=alumne,ou=usuaris,dc=escola,dc=cat"
```

**Integració amb PAM/NSS:**
Permet que els usuaris LDAP iniciïn sessió als equips Linux com si fossin locals.

```bash
apt install libnss-ldap libpam-ldap
# Configura /etc/ldap.conf, /etc/nsswitch.conf, /etc/pam.d/common-*
```

**Interfícies gràfiques per a LDAP:**

- **phpLDAPadmin** — interfície web per gestionar OpenLDAP
- **Apache Directory Studio** — client Eclipse per a LDAP
- **LDAP Account Manager (LAM)** — gestió d'usuaris via web

### Administració de grups LDAP

Els grups LDAP de tipus `posixGroup` permeten gestionar els grups Unix a través del directori:

```nano
dn: cn=professors,ou=grups,dc=escola,dc=cat
objectClass: posixGroup
cn: professors
gidNumber: 2001
memberUid: maria
memberUid: pere
```


# 8. Administració de l'accés al domini

## 8.1. Recursos del domini

### Equips del domini

**Unir un equip Linux a un domini LDAP/Samba:**

```bash
apt install sssd sssd-ldap
# Configura /etc/sssd/sssd.conf per al domini LDAP
systemctl enable sssd --now
```

**Unir un equip Windows a un domini Active Directory:**

- `Propietats del sistema → Canvia la configuració → Membre del domini`
- PowerShell: `Add-Computer -DomainName escola.cat -Credential escola\admin`

### Recursos locals

**Impressores compartides en Linux:**

- **CUPS** (*Common Unix Printing System*) — sistema d'impressió estàndard de Linux
- Interfície web a `http://localhost:631`
- Fitxer de configuració: `/etc/cups/cupsd.conf`

```bash
lpstat -p                            # Llista impressores
lp -d impresora fitxer.pdf           # Envia a impressora
```

### Recursos de xarxa

**Protocols de compartició de fitxers:**

- **Samba/SMB** — compatible amb Windows; protocol SMB/CIFS
- **NFS** — estàndard Unix; alta velocitat en xarxes Linux-Linux

### Samba

**Samba** és la implementació lliure del protocol **SMB/CIFS** (*Server Message Block / Common Internet File System*) de Microsoft. Permet a sistemes Linux actuar com a servidors de fitxers i impressores per a clients Windows.

**Modes de Samba:**

- **Servidor autònom** — comparteix fitxers en xarxes P2P o grups de treball
- **Membre de domini Windows** — s'uneix a un domini Active Directory existent
- **Controlador de domini (AD DC)** — actua com a controlador de domini AD ([Samba 4](https://proferamon.com/tic/samba-ad-dc.html))

### Seguretat en el Samba

Nivells de seguretat:

- **user** — autenticació per usuari i contrasenya Samba
- **domain** — autenticació per controlador de domini Windows
- **ads** — membre d'un domini Active Directory

### Instal·lació del servidor i del client Samba

```bash
# Servidor
apt install samba samba-common-bin
systemctl enable smbd nmbd --now

# Client
apt install smbclient cifs-utils
```

### Gestió d'usuaris, grups i permisos del Samba

```bash
smbpasswd -a alumne          # Afegeix l'usuari alumne a Samba
smbpasswd -e alumne          # Habilita el compte Samba
smbpasswd -d alumne          # Desactiva el compte Samba
pdbedit -L                   # Llista usuaris Samba
```

### Configuració del servidor Samba

Fitxer de configuració principal: `/etc/samba/smb.conf`

```ini
[global]
   workgroup = ESCOLA
   server string = Servidor Samba
   security = user
   map to guest = bad user

[homes]
   comment = Carpetes personals
   browseable = no
   valid users = %S
   writable = yes

[compartit]
   comment = Carpeta compartida
   path = /srv/samba/compartit
   browseable = yes
   writable = yes
   valid users = @professors
   create mask = 0660
   directory mask = 0770

[impressora]
   comment = Impressora de xarxa
   path = /var/spool/samba
   printable = yes
```

```bash
testparm                     # Verifica la configuració de smb.conf
systemctl reload smbd        # Recarrega la configuració
```

### Utilització del client Samba

```bash
smbclient //servidor/compartit -U alumne    # Connexió interactiva
smbclient -L //servidor                     # Llista recursos compartits
smbclient //servidor/compartit -U alumne -c "get fitxer.txt"
```

### Muntar unitats de xarxa

```bash
# Muntatge temporal
mount -t cifs //servidor/compartit /mnt/samba \
      -o username=alumne,password=contrasenya,uid=1000,gid=1000

# Muntatge permanent (/etc/fstab)
//servidor/compartit  /mnt/samba  cifs  credentials=/etc/samba/.creds,uid=1000,gid=1000,_netdev  0  0
```

### Accés gràfic als recursos compartits

- **GNOME Files (Nautilus)** — `Altres ubicacions → Connecta al servidor` → `smb://servidor/compartit`
- **Thunar (XFCE)** — suport Samba integrat
- **Dolphin (KDE)** — `smb://servidor`

### Protocol NFS

**NFS** (*Network File System*) és el protocol estàndard de compartició de fitxers en xarxes Unix/Linux. Versió actual: **NFSv4.2** (suporta còpia de servidor a servidor, sparse files i etiquetes de seguretat).

**Configuració del servidor NFS:**
```bash
apt install nfs-kernel-server

# /etc/exports
/srv/nfs/dades    192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/srv/nfs/backups  192.168.1.10(ro,sync)

exportfs -a                  # Aplica els canvis d'exports
exportfs -v                  # Mostra exportacions actives
systemctl enable nfs-server --now
```

**Configuració del client NFS:**
```bash
apt install nfs-common
showmount -e servidor                     # Llista exportacions del servidor
mount -t nfs servidor:/srv/nfs/dades /mnt/nfs
# /etc/fstab: servidor:/srv/nfs/dades  /mnt/nfs  nfs  defaults,_netdev  0  0
```


## 8.2. Administració de l'accés al domini

### Permisos i drets

En un entorn de domini s'apliquen dos tipus de restriccions:

- **Permisos** — sobre objectes (fitxers, impressores…); `rwx` en Linux o ACL NTFS en Windows
- **Drets** (*rights*) — accions sobre el sistema (iniciar sessió localment, apagar equip, gestionar registre d'auditoria…)

### Delegació de permisos

En entorns Active Directory, la **delegació** permet assignar permisos d'administració parcials sobre unitats organitzatives (OU) a usuaris o grups específics, sense necessitat de fer-los administradors del domini complet.

### Llistes de control d'accés (ACL)

**ACL en Linux** (vegeu secció 6.3).

**ACL en NTFS (Windows):**
Cada fitxer i carpeta té un **descriptor de seguretat** que conté:

- **DACL** (*Discretionary Access Control List*) — llista de qui té accés i amb quins permisos
- **SACL** (*System Access Control List*) — llista per a l'auditoria d'accés

Permisos NTFS bàsics:

| Permís | Descripció |
|---|------|
| Lectura | Llegir continguts i atributs |
| Escriptura | Modificar continguts i atributs |
| Llista de continguts | Veure noms de fitxers dins d'una carpeta |
| Lectura i execució | Lectura i executar programes |
| Modificació | Lectura, escriptura i eliminar |
| Control total | Tots els permisos inclòs canviar permisos |

### Directives de grup (GPO)

Les **GPO** (*Group Policy Objects*) permeten configurar i gestionar de forma centralitzada els entorns d'usuaris i equips en un domini Active Directory.

Àmbits d'aplicació (de menys a més específic):

1. **Local** — directives locals de l'equip
2. **Lloc** (*Site*) — a tots els equips del lloc físic
3. **Domini** — a tot el domini
4. **OU** — a una unitat organitzativa específica

Tipologies de configuració:

- **Configuració d'equip** — s'aplica a l'equip independentment de l'usuari
- **Configuració d'usuari** — s'aplica a l'usuari independentment de l'equip

Exemples d'aplicació de GPO:

- Establir fons de pantalla corporatiu
- Instal·lar programari de forma centralitzada
- Configurar polítiques de contrasenyes
- Restringir l'accés al Tauler de Control
- Configurar la xarxa Wi-Fi corporativa
- Mapejar unitats de xarxa automàticament

Eines: `gpmc.msc` (Consola de Gestió de Directives de Grup), `gpupdate /force`, `gpresult /r`.

### Directives de seguretat

Polítiques de seguretat configurables via GPO:

- **Política de comptes** — longitud i complexitat de contrasenyes, bloqueig de comptes
- **Política local** — auditoria, assignació de drets d'usuari, opcions de seguretat
- **Firewall de Windows** — regles per a perfils de domini/privat/públic
- **Restricció de programari** — quines aplicacions es poden executar (AppLocker)


# 9. Seguretat, rendiment i recursos

## 9.1. Assegurament de la informació

### Associació de discos

**JBOD** (*Just a Bunch Of Disks*) — discos independents sense redundància ni rendiment millorat; el sistema veu cada disc per separat.

**Spanning** — combina múltiples discos en un únic volum lògic seqüencialment; sense redundància.

### Tolerància a fallades del maquinari

Estratègies de tolerància a fallades:

- **Components redundants** — fuents d'alimentació redundants, múltiples NICs
- **Hot-swap** — reemplaçament de components en calent sense aturar el sistema
- **Hot-standby** — sistema de reserva actiu llest per prendre el relleu instantàniament

### Sistemes redundants ([RAID](https://proferamon.com/tic/raid.html))

**RAID** (*Redundant Array of Independent Disks*) combina múltiples discos per obtenir rendiment, redundància o tots dos.

| Nivell | Descripció | Tolerància a fallades | Capacitat útil | Mínim discos |
|---|---|---|---|---|
| **RAID 0** | Striping (dades repartides) | Cap | 100% | 2 |
| **RAID 1** | Mirroring (còpia exacta) | 1 disc | 50% | 2 |
| **RAID 5** | Striping amb paritat distribuïda | 1 disc | (n-1)/n | 3 |
| **RAID 6** | Striping amb doble paritat | 2 discos | (n-2)/n | 4 |
| **RAID 10** | RAID 1+0 (mirror de stripes) | 1 per mirall | 50% | 4 |

**RAID per maquinari:** controladora dedicada (millor rendiment i independent del SO).
**RAID per programari (mdadm en Linux):**

```bash
apt install mdadm

# Crear RAID 1 amb dos discos
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

# Crear RAID 5 amb tres discos
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

mkfs.ext4 /dev/md0                  # Formata el RAID
mount /dev/md0 /mnt/raid             # Munta

cat /proc/mdstat                     # Estat del RAID
mdadm --detail /dev/md0              # Detalls del RAID

# Guardar la configuració
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u
```

### Associació d'ordinadors: clusterització

**Clúster de disponibilitat alta (HA):**

- Múltiples nodes que comparteixen un recurs; si un falla, l'altre l'assumeix
- Eines: **Pacemaker + Corosync**, **Keepalived**, **DRBD**

**Clúster de balanceig de càrrega:**

- Distribueix les peticions entre múltiples servidors
- Eines: **HAProxy**, **Nginx** (com a proxy invers), **LVS** (*Linux Virtual Server*)

**Clúster de càlcul (HPC):**

- Múltiples nodes que cooperen en càlculs intensius
- Eines: **SLURM**, **Open MPI**, **Beowulf**

### Còpies de seguretat

**Estratègies de còpia de seguretat:**

| Tipus | Descripció | Avantatge | Inconvenient |
|---|-----|---|---|
| **Completa** | Tot el sistema en cada còpia | Restauració simple | Molt d'espai i temps |
| **Incremental** | Canvis des de l'última còpia (completa o incremental) | Espai i temps mínims | Restauració complexa (cal totes les incrementals) |
| **Diferencial** | Canvis des de l'última còpia completa | Restauració senzilla | Creix amb el temps |

**Regla 3-2-1:**

- **3** còpies de les dades
- en **2** tipus de suports diferents
- **1** còpia fora del lloc (off-site)

**Eines de còpia de seguretat en Linux:**

```bash
# tar — còpia en arxiu comprimit
tar -czvf /backup/home_$(date +%Y%m%d).tar.gz /home/

# rsync — sincronització incremental
rsync -avz --delete /home/ /backup/home/
rsync -avz /home/ usuari@servidor-backup:/backup/home/   # Remot

# dd — imatge de disc
dd if=/dev/sda of=/backup/disc.img bs=4M status=progress

# Amanda, Bacula, Bareos — solucions empresarials de backup
```

### Recuperació en cas de fallada del sistema

**Modes de recuperació de Linux:**

- **Mode de recuperació (rescue mode)** — arrencada en mode monousuari amb sistema de fitxers en lectura
- **LiveCD/USB** — arrencada des del mitjà extern per reparar el sistema
- **chroot** — accedir al sistema malmès des d'un LiveCD

```bash
# Desde un LiveCD, reparar el sistema principal
mount /dev/sda1 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sda    # Reinstal·la GRUB si és necessari
```

**Recuperació de Windows:**

- **Entorn de recuperació de Windows (WinRE)** — accessible amb F8 o des del mitjà d'instal·lació
- **Restauració del sistema** (*System Restore*) — torna a un punt de restauració anterior
- **Reparació d'inici** — corregeix problemes del carregador d'arrancada
- **Còpia de seguretat d'imatge del sistema** — restauració completa del sistema


## 9.2. Supervisió del rendiment del sistema

### Monitoratge del rendiment dels components d'un sistema informàtic

**Linux:**

```bash
top                              # Monitor de processos en temps real
htop                             # Monitor visual avançat (apt install htop)
ps aux                           # Instantània de processos
free -h                          # Ús de la memòria RAM i swap
vmstat 1 10                      # Estadístiques de memòria, I/O, CPU (cada 1s, 10 vegades)
iostat -x 1                      # Estadístiques d'I/O per dispositiu
sar -u 1 10                      # Estadístiques CPU (paquet sysstat)
sar -r 1 10                      # Estadístiques de memòria
lscpu                            # Informació de la CPU
uptime                           # Temps en marxa i càrrega del sistema
```

**Windows:**

- `Administrador de tasques` (`taskmgr.exe`) — processos, rendiment, xarxa, usuaris
- `Monitor de recursos` (`resmon.exe`) — vista detallada de CPU, memòria, disc i xarxa
- `Monitor de rendiment` (`perfmon.msc`) — comptadors personalitzables i registres
- `Get-Process`, `Get-Counter` — PowerShell

### Enregistrament i monitoratge d'esdeveniments

**Eines de monitoratge centralitzat:**

- **Nagios / Icinga2** — monitoratge de servidors i serveis per SNMP i scripts
- **Zabbix** — plataforma completa de monitoratge amb agents i panells
- **Prometheus + Grafana** — recollida de mètriques i visualització
- **Graylog / ELK Stack** (Elasticsearch + Logstash + Kibana) — anàlisi de logs

**Alertes:**

- Enviament de notificacions per correu, Slack, SMS en superar llindars

```bash
# Comandes de log en Linux
tail -f /var/log/syslog           # Segueix el log del sistema
journalctl -f -u nginx            # Segueix el log d'un servei
journalctl --since "1 hour ago" -p err   # Errors de l'última hora
```

### Gestió d'aplicacions i processos

```bash
# Linux
ps aux --sort=-%cpu | head -10    # Top 10 processos per CPU
ps aux --sort=-%mem | head -10    # Top 10 per memòria
kill -SIGTERM 1234                # Tancament ordenat
kill -9 1234                      # Tancament forçat
killall firefox                   # Per nom de procés
nice -n 10 commanda               # Executa amb baixa prioritat
renice -n 5 -p 1234               # Canvia prioritat d'un procés en marxa
nohup commanda &                  # Executa en segon pla (immune a SIGHUP)
screen / tmux                     # Sessions de terminal persistents
```


## 9.3. Directives de seguretat i auditories

### Auditoria de sistemes informàtics

L'**auditoria** és el procés de revisar i analitzar el comportament d'un sistema per detectar irregularitats, problemes de seguretat o incompliments normatius.

**Objectius de l'auditoria:**

- Detectar accessos no autoritzats
- Verificar que les polítiques de seguretat s'apliquen
- Investigar incidents de seguretat
- Complir normatives (LOPD/RGPD, ISO 27001, PCI-DSS…)

**Tipus d'auditoria:**

- **Auditoria d'accessos** — qui ha accedit a quins recursos i quan
- **Auditoria de privilegis** — ús de comptes amb privilegis elevats
- **Auditoria d'integritat** — detecció de canvis no autoritzats en fitxers

### Auditoria en sistemes operatius propietaris (Windows)

**Event Viewer (`eventvwr.msc`):**
Registres d'auditoria al canal **Security**:

- **4624** — Inici de sessió correcte
- **4625** — Intent d'inici de sessió fallit
- **4648** — Inici de sessió explícit (RunAs)
- **4720** — Compte d'usuari creat
- **4726** — Compte d'usuari eliminat
- **4740** — Compte bloquejat

**Activació de l'auditoria via GPO o `auditpol`:**

```ini
auditpol /set /category:"Logon/Logoff" /success:enable /failure:enable
auditpol /get /category:*              # Mostra tota la configuració
```

### [Auditoria en sistemes operatius lliures](https://proferamon.com/tic/auditd.html) (Linux)

**`auditd`** — dimoni d'auditoria del nucli Linux:

```bash
apt install auditd audispd-plugins
systemctl enable auditd --now

# Regles d'auditoria (/etc/audit/rules.d/*.rules)
# Audita canvis a /etc/passwd
auditctl -w /etc/passwd -p wa -k user_modification
# Audita execució de sudo
auditctl -a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_usage
# Carrega les regles permanentment
auditctl -l                           # Llista regles actives
```

**Consulta de registres d'auditoria:**

```bash
ausearch -k user_modification          # Cerca per clau
ausearch -ua alumne                    # Cerca per usuari
ausearch --start today                 # Esdeveniments d'avui
aureport                               # Informe resum
aureport --login                       # Informe d'inicis de sessió
aureport --failed                      # Informe d'esdeveniments fallits
```

**Integritat de fitxers amb AIDE:**

```bash
apt install aide
aide --init                            # Crea la base de dades inicial
aide --check                           # Compara amb la base de dades (detecta canvis)
```

**IDS/IPS (Intrusion Detection/Prevention System):**

- **OSSEC / Wazuh** — sistema de detecció d'intrusions basat en host (HIDS)
- **Snort / Suricata** — sistema de detecció d'intrusions de xarxa (NIDS)
- **Fail2ban** — bloqueja IPs que fan intents de força bruta (SSH, HTTP…)

```bash
apt install fail2ban
systemctl enable fail2ban --now
# Configuració a /etc/fail2ban/jail.local
fail2ban-client status sshd            # Estat del jail SSH
fail2ban-client set sshd unbanip 192.168.1.10  # Desbloqueja una IP
```

#### Versions d'aquest document

+ HTML - [0369.html](https://proferamon.com/tic/0369.html)
+ PDF - [0369.pdf](https://proferamon.com/tic/docs/0369.pdf)
+ ODT - [0369.odt](https://proferamon.com/tic/odt/0369.odt)
+ MD - [0369.md](https://proferamon.com/tic/md/0369.md)

[Domini Públic (CC0)](https://creativecommons.org/publicdomain/zero/1.0/deed.ca)
