Mario Fernández Gálvez
Configuracio de privilegis

Configuracio de privilegis

Configuració de privilegis a Debian 13

Guia completa per a principiants — sudo, permisos de fitxers, grups i gestió de privilegis dels usuaris Mario, Erik, Pau, Major i Super

🔒
Root
Superusuari amb control total del sistema. Pot fer qualsevol cosa.
👥
Grups
Col·leccions d’usuaris que comparteixen els mateixos permisos.
📄
Permisos
Controlen qui pot llegir, escriure o executar cada fitxer.

📝 Continguts d’aquesta guia

  1. Pas 1 — Entendre els rols dels usuaris (Mario, Erik, Pau, Major i Super)
  2. Pas 2 — Afegir usuaris al grup sudo (permisos d’administrador)
  3. Pas 3 — Configurar sudoers avançat (permisos específics per usuari)
  4. Pas 4 — Crear i gestionar grups (agrupar usuaris per rols)
  5. Pas 5 — Entendre i canviar permisos de fitxers (chmod, chown)
  6. Pas 6 — Permisos especials (SUID, SGID, Sticky Bit)
  7. Pas 7 — Bloquejar i desactivar comptes (seguretat d’usuaris)
  8. Pas 8 — Verificació i resum final de privilegis

⚠ Abans de començar

  • Els usuaris Mario, Erik, Pau, Major i Super ja han d’estar creats al sistema (vegeu la guia anterior de creació d’usuaris).
  • Accés a root: obre el terminal i executa su – per accedir com a administrador.
  • Decideix el rol de cada usuari abans d’assignar privilegis — no tots necessiten els mateixos permisos.
1
Entendre els rols dels usuaris
Planificació dels privilegis abans d’assignar-los

Abans d’assignar privilegis, és important definir quin rol tindrà cada usuari al sistema. En aquesta guia assignarem els rols de la manera següent:

MA
Mario
Administrador
ER
Erik
Desenvolupador
PA
Pau
Desenvolupador
MJ
Major
Usuari estàndard
SU
Super
Usuari estàndard
UsuariRolsudo?Grup principalAccés web
marioAdministrador del sistemaSí — totalsudoComplet
erikDesenvolupador webLimitatdevsComplet
pauDesenvolupador webLimitatdevsComplet
majorUsuari estàndardNousersCap
superUsuari estàndardNousersCap
iPots adaptar aquests rols a les teves necessitats reals. El que importa és tenir-ho planificat abans d’assignar privilegis, per evitar errors de seguretat.
2
Afegir usuaris al grup sudo
Concedir permisos d’administrador a Mario

El grup sudo permet a un usuari executar comandes com a root afegint sudo davant de qualsevol comanda, sense necessitat de conèixer la contrasenya de root. Només assignarem sudo complet a Mario.

2.1 — Instal·lar sudo (si no està instal·lat)
Terminal — root
root@debian:~# apt install -y sudo
Setting up sudo …
2.2 — Afegir Mario al grup sudo
Terminal — root
root@debian:~# usermod -aG sudo mario
# Verificar que mario pertany al grup sudo
root@debian:~# groups mario
mario : mario sudo
L’opció -aG significa «afegir al grup» sense treure l’usuari dels altres grups on ja pertany. Si uses -G sense la a, el treurà de tots els grups anteriors.
A la sortida de groups mario hauries de veure «mario sudo». Ara mario pot usar sudo per executar comandes com a administrador.
2.3 — Provar que sudo funciona per a Mario

Tanca la sessió de root, inicia sessió com a mario i prova sudo:

Terminal — sessió de mario
mario@debian:~$ sudo apt update
[sudo] password for mario: ← escriu la contrasenya de mario (no la de root)
Hit:1 http://deb.debian.org/debian trixie InRelease
Reading package lists… Done
iAmb sudo, mario utilitza la seva pròpia contrasenya, no la de root. Debian recorda la sessió sudo durant 15 minuts — no cal tornar a introduir la contrasenya en cada comanda.
3
Configuració avançada de sudoers
Permisos sudo específics per a Erik i Pau (sense sudo total)

El fitxer /etc/sudoers permet definir exactament quines comandes pot executar cada usuari amb sudo. Això és útil per donar permisos concrets sense concedir accés total d’administrador. Donarem a Erik i Pau permís per reiniciar Apache, però res més.

Mai editeu /etc/sudoers directament amb nano o vim. Si cometeu un error de sintaxi, podeu bloquejar el sistema completament. Sempre useu la comanda visudo — valida la sintaxi abans de desar.
3.1 — Editar sudoers amb visudo
Terminal — root
root@debian:~# visudo
(s’obrirà l’editor amb el fitxer /etc/sudoers)
3.2 — Afegir regles específiques per a Erik i Pau

Afegeix les línies següents al final del fitxer que s’obrirà amb visudo:

/etc/sudoers editar amb visudo
# — Permisos per als usuaris del sistema —
 
# Mario: sudo complet (ja al grup sudo)
# %sudo ALL=(ALL:ALL) ALL <– aquesta línia ja existeix
 
# Erik: pot reiniciar Apache i llegir logs del sistema
erik ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart apache2,
/usr/bin/systemctl status apache2,
/usr/bin/tail /var/log/apache2/error.log
 
# Pau: pot reiniciar Apache (amb contrasenya)
pau ALL=(ALL) /usr/bin/systemctl restart apache2,
/usr/bin/systemctl status apache2
Per desar a visudo: prem Ctrl+X, després Y i Enter. Si hi ha errors de sintaxi, visudo t’avisarà i no desarà el fitxer malmès.
3.3 — Entendre la sintaxi de sudoers
usuari   HOST=(usuari_dest)   NOPASSWD: /ruta/comanda
PartSignificat
usuariQui rep el permís (nom d’usuari o %grup)
ALLDes de qualsevol màquina (host)
(ALL)Pot executar-ho com qualsevol usuari
NOPASSWD:Sense demanar contrasenya (opcional)
/ruta/comandaRuta absoluta de la comanda permesa
3.4 — Verificar els permisos d’Erik i Pau
Terminal — root
# Veure quins privilegis sudo té erik
root@debian:~# sudo -l -U erik
User erik may run the following commands:
(ALL) NOPASSWD: /usr/bin/systemctl restart apache2
(ALL) NOPASSWD: /usr/bin/systemctl status apache2
(ALL) NOPASSWD: /usr/bin/tail /var/log/apache2/error.log
root@debian:~# sudo -l -U pau
User pau may run the following commands:
(ALL) /usr/bin/systemctl restart apache2
(ALL) /usr/bin/systemctl status apache2
4
Crear i gestionar grups d’usuaris
Organitzar usuaris per rols per facilitar la gestió de permisos

Els grups permeten assignar permisos a conjunts d’usuaris d’un sol cop. En lloc de donar permisos un a un, afegeixes l’usuari a un grup i el grup ja té els permisos definits.

4.1 — Crear els grups de treball
Terminal — root
# Crear el grup per als desenvolupadors
root@debian:~# groupadd devs
# Crear el grup per als usuaris estàndard
root@debian:~# groupadd projecte
# Verificar que s’han creat
root@debian:~# cat /etc/group | grep -E «devs|projecte»
devs:x:1006:
projecte:x:1007:
4.2 — Assignar usuaris als grups
Terminal — root
# Erik i Pau al grup devs (desenvolupadors)
root@debian:~# usermod -aG devs erik
root@debian:~# usermod -aG devs pau
# Tots al grup projecte (per compartir fitxers)
root@debian:~# usermod -aG projecte mario
root@debian:~# usermod -aG projecte erik
root@debian:~# usermod -aG projecte pau
root@debian:~# usermod -aG projecte major
root@debian:~# usermod -aG projecte super
4.3 — Verificar els grups de cada usuari
Terminal — root
root@debian:~# for u in mario erik pau major super; do echo «$u: $(groups $u)»; done
mario: mario sudo projecte
erik: erik devs projecte
pau: pau devs projecte
major: major projecte
super: super projecte
Cada usuari té els grups correctes assignats. Mario té sudo. Erik i Pau tenen devs. Tots cinc estan al grup projecte.
5
Entendre i canviar permisos de fitxers
chmod i chown explicats pas a pas

A Linux, cada fitxer i directori té tres tipus de permisos (llegir, escriure, executar) per a tres categories (propietari, grup, resta del món). Entendre-ho és fonamental per a la seguretat del sistema.

5.1 — Llegir els permisos d’un fitxer
Terminal — root
root@debian:~# ls -la /home/mario
drwxr-xr-x 2 mario mario 60 jan 14 10:01 .
-rw-r–r– 1 mario mario 220 jan 14 10:01 .bash_logout
-rw-r–r– 1 mario mario 587 jan 14 10:01 .bashrc
Com llegir els permisos: drwxr-xr-x
dtipus
|
rwxpropietari
|
r-xgrup
|
r-xaltres
LletraSignificatValor numèric
rread — permís de lectura4
wwrite — permís d’escriptura2
xexecute — permís d’execució1
sense permís0
Exemple: rwxr-xr– = propietari 7 (4+2+1), grup 5 (4+0+1), altres 4 (4+0+0) = 754
5.2 — Crear una carpeta compartida per al grup projecte
Terminal — root
# Crear la carpeta compartida
root@debian:~# mkdir -p /srv/projecte
# Assignar el grup projecte com a propietari
root@debian:~# chown root:projecte /srv/projecte
# Permisos: propietari rwx, grup rwx, altres — (770)
root@debian:~# chmod 770 /srv/projecte
# Verificar
root@debian:~# ls -ld /srv/projecte
drwxrwx— 2 root projecte 40 jan 14 10:30 /srv/projecte
Ara tots els membres del grup projecte (Mario, Erik, Pau, Major i Super) poden llegir i escriure a /srv/projecte. Ningú de fora del grup hi pot accedir.
5.3 — Canviar permisos de directoris personals
Terminal — root
# Assegurar que cada usuari té la propietat del seu directori
root@debian:~# for u in mario erik pau major super; do chown -R $u:$u /home/$u; chmod 750 /home/$u; done
# Verificar els permisos de tots els homes
root@debian:~# ls -la /home
drwxr-x— 2 erik erik 60 jan 14 10:02 erik
drwxr-x— 2 major major 60 jan 14 10:04 major
drwxr-x— 2 mario mario 60 jan 14 10:01 mario
drwxr-x— 2 pau pau 60 jan 14 10:03 pau
drwxr-x— 2 super super 60 jan 14 10:05 super
iEl permís 750 significa: propietari pot llegir/escriure/executar, grup pot llegir/executar, i altres usuaris no hi poden accedir. Cada usuari té privacitat al seu directori personal.
6
Permisos especials
Sticky Bit per a la carpeta compartida

Hi ha tres permisos especials a Linux: SUID, SGID i Sticky Bit. El més útil per a carpetes compartides és el Sticky Bit — evita que un usuari pugui eliminar fitxers d’altres usuaris dins la mateixa carpeta.

6.1 — Activar el Sticky Bit a la carpeta compartida
Terminal — root
# Activar sticky bit a la carpeta del projecte
root@debian:~# chmod +t /srv/projecte
# Verificar — la «t» al final indica que el sticky bit està actiu
root@debian:~# ls -ld /srv/projecte
drwxrwxt 2 root projecte 40 jan 14 10:30 /srv/projecte
La «t» al final dels permisos confirma que el Sticky Bit està actiu. Ara, dins /srv/projecte, cada usuari només pot eliminar els seus propis fitxers, no els dels altres.
6.2 — Activar SGID per heretar el grup del directori
Terminal — root
# SGID: tots els fitxers creats dins hereten el grup «projecte»
root@debian:~# chmod g+s /srv/projecte
# Verificar — «s» al camp del grup
root@debian:~# ls -ld /srv/projecte
drwxrws–t 2 root projecte 40 jan 14 10:30 /srv/projecte
iAmb SGID actiu, qualsevol fitxer creat dins /srv/projecte tindrà automàticament el grup projecte com a propietari, independentment de quin usuari l’hagi creat.
7
Bloquejar i gestionar la seguretat dels comptes
Caducitat de contrasenyes, bloqueig i restriccions d’accés

Una bona política de seguretat inclou forçar el canvi periòdic de contrasenyes, bloquejar comptes inactius i restringir l’accés quan calgui.

7.1 — Forçar canvi de contrasenya periòdic
Terminal — root
# Forçar canvi de contrasenya cada 90 dies per a tots els usuaris
root@debian:~# for u in mario erik pau major super; do
chage -M 90 -m 7 -W 14 $u
done
# Verificar la política de contrasenyes de mario
root@debian:~# chage -l mario
Last password change : jan 14, 2025
Password expires : apr 14, 2025
Password inactive : never
Minimum number of days between password change: 7
Maximum number of days between password change: 90
Number of days of warning before password expires: 14
Les opcions de chage: -M 90 (màxim 90 dies), -m 7 (mínim 7 dies entre canvis), -W 14 (avisar 14 dies abans que caduqui).
7.2 — Bloquejar i desbloquejar un compte
Terminal — root
# Bloquejar el compte de super (no podrà iniciar sessió)
root@debian:~# usermod -L super
# Verificar — una «!» davant del hash indica compte bloquejat
root@debian:~# passwd -S super
super L 01/14/2025 7 90 14 -1 ← «L» = Locked (bloquejat)
# Desbloquejar el compte quan calgui
root@debian:~# usermod -U super
root@debian:~# passwd -S super
super P 01/14/2025 7 90 14 -1 ← «P» = Password (actiu)
7.3 — Forçar canvi de contrasenya al proper inici de sessió
Terminal — root
# Forçar que major canviï la contrasenya quan es connecti
root@debian:~# chage -d 0 major
# Verificar
root@debian:~# chage -l major
Last password change: password must be changed
iLa propera vegada que major iniciï sessió, el sistema l’obligarà a canviar la contrasenya abans de poder accedir al sistema.
8
Verificació final de privilegis
Resum complet de la configuració aplicada

Executa aquesta comanda per obtenir un resum complet dels grups i privilegis de tots els usuaris d’un sol cop:

8.1 — Resum de grups de tots els usuaris
Terminal — root
root@debian:~# for u in mario erik pau major super; do echo «— $u —«; id $u; done
— mario —
uid=1001(mario) gid=1001(mario) groups=1001(mario),27(sudo),1007(projecte)
— erik —
uid=1002(erik) gid=1002(erik) groups=1002(erik),1006(devs),1007(projecte)
— pau —
uid=1003(pau) gid=1003(pau) groups=1003(pau),1006(devs),1007(projecte)
— major —
uid=1004(major) gid=1004(major) groups=1004(major),1007(projecte)
— super —
uid=1005(super) gid=1005(super) groups=1005(super),1007(projecte)
8.2 — Taula resum de tots els privilegis configurats
UsuariRolsudoGrupsCaducitatEstat
mario Administrador Total sudo, projecte 90 dies ✓ Actiu
erik Desenvolupador Limitat devs, projecte 90 dies ✓ Actiu
pau Desenvolupador Limitat devs, projecte 90 dies ✓ Actiu
major Estàndard Cap projecte 90 dies Canvi pendent
super Estàndard Cap projecte 90 dies ✓ Actiu
La carpeta compartida /srv/projecte té permisos 770 + Sticky Bit + SGID. Tots cinc usuaris hi poden escriure, però cadascú només pot eliminar els seus propis fitxers.

Privilegis completament configurats!

Mario té sudo complet. Erik i Pau tenen privilegis limitats de desenvolupador. Major i Super són usuaris estàndard. Tots comparteixen la carpeta /srv/projecte de forma segura.