# Least Privilege: id-drittijiet tal-utent tas-server tal-web

> Utent tas-server tal-web bi drittijiet minimi: bla shell, bla sudo, bla cron, drittijiet limitati tad-database u protezzjoni systemd għal PHP-FPM, bi kmandi ta' verifika.

Sors: https://phpsos.de/mt/blog/rechte-des-webserver-benutzers/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**Fil-qosor:** L-utent tas-server tal-web li taħtu jaħdem PHP għandu, skont il-prinċipju tad-drittijiet minimi (Least Privilege), jaqra biss dak li teħtieġ il-websajt u jikteb biss fejn din taħżen id-data. M'għandu l-ebda login shell, l-ebda drittijiet ta' sudo, l-ebda cronjobs proprji u l-ebda ċwievet SSH, u l-kont tad-database tiegħu jista' biss jaqra u jibdel id-data. Għażliet ta' systemd bħal `ProtectSystem` u `PrivateTmp` jillimitaw lil PHP-FPM aktar.

## Il-mistoqsija wara d-dħul: x'jista' jagħmel dan il-proċess?

PHP2Shell jirrigwarda l-eżekuzzjoni ta' kodiċi malizzjuż mill-bogħod mingħajr login. Jekk tirnexxi, il-kodiċi ma jaħdimx fil-vakwu, imma bħala utent speċifiku: l-utent tal-proċess ta' PHP. Dak kollu li dan l-utent jista' jagħmel, minn dak il-mument jista' jagħmlu wkoll l-attakkant.

Fuq ħafna servers dan huwa sorprendentement ħafna. L-utent jippossjedi l-kodiċi kollu tal-programm, għandu shell, jista' joħloq cronjobs proprji, u l-kont tad-database tal-applikazzjoni għandu d-drittijiet kollha fuq id-databases kollha. Għal attakkant din hija l-pożizzjoni ideali biex jistabbilixxi ruħu b'mod permanenti.

Kif tagħtu d-drittijiet it-tajba fuq fajls u folders jiddeskrivi l-gwida [Drittijiet tal-fajls fuq is-server tal-web](https://phpsos.de/mt/ratgeber/dateirechte-webserver/). Din il-kontribuzzjoni tħares lejn il-kont innifsu: login, drittijiet speċjali, kompiti skedati, database u l-limiti li jiddefinixxi systemd.

## Inventarju: min huwa l-utent tas-server tal-web?

L-ewwel iċċaraw liema utenti huma involuti. Ma' PHP-FPM, kull pool jiddefinixxi b'`user` u `group` taħt min jaħdmu l-workers tiegħu. Ma' mod_php, PHP jaħdem bħala l-utent ta' Apache. Kif jaħdmu flimkien il-master u l-workers f'PHP-FPM jispjegah [PHP-FPM spjegat: process manager, pools u workers](https://phpsos.de/mt/php/php-fpm-erklaert/). Il-kmandi li ġejjin jaqraw biss:

```bash
# Taħt liema utenti jaħdmu s-server tal-web u PHP?
ps -eo user,group,cmd | grep -E "[p]hp-fpm|[n]ginx|[a]pache2|[h]ttpd" | sort | uniq -c
# Dettalji tal-kont: direttorju home u shell (adatta l-utent)
getent passwd www-data
# L-utent għandu drittijiet ta' sudo?
sudo -l -U www-data
# Cronjobs proprji?
sudo crontab -l -u www-data
# Ċwievet SSH fid-direttorju home (f'Debian/Ubuntu dan huwa /var/www)
sudo ls -la /var/www/.ssh 2>/dev/null
```

Innotaw ir-riżultati għal kull utent tal-pool. Jekk il-websajts kollha jaħdmu taħt l-istess utent, dan huwa l-ewwel punt fil-lista; kif tifirduhom jiddeskrivi [Iżola l-pools ta' PHP-FPM għal kull websajt](https://phpsos.de/mt/blog/php-fpm-pools-isolieren/).

## Drittijiet tal-utent tas-server tal-web: dak li l-kont ma jeħtieġx

Il-ħarsa ġenerali li ġejja turi dak li utent tas-server tal-web normalment ma jeħtieġx u kif tneħħuh.

| Dritt | Għaliex hu perikoluż | Rakkomandazzjoni |
|---|---|---|
| Login shell | Dħul u użu interattiv possibbli | Shell `/usr/sbin/nologin` |
| Entrati ta' sudo | Triq għal drittijiet ta' root | l-ebda entrata, anke mhux għal kmandi individwali |
| Crontab proprju | Bieb ta' wara permanenti li jibqa' wara kull restart | l-ebda waħda, illimitaha b'`/etc/cron.allow` |
| Ċwievet SSH | Dħul mill-barra | l-ebda `authorized_keys` |
| Sjieda tal-kodiċi tal-programm | Il-kodiċi jista' jinbidel | Is-sid huwa utent tad-deployment |
| Drittijiet ta' kitba barra mill-folders tad-data | Ħażna ta' kodiċi malizzjuż | biss uploads, cache, temp |
| Drittijiet sħaħ fuq id-database | Databases ta' applikazzjonijiet oħra, aċċess għall-fajls permezz tad-database | biss id-database proprja, biss drittijiet tad-data |

Is-shell tissettjawha b'`usermod -s /usr/sbin/nologin www-data`. Għal cron: jekk `/etc/cron.allow` teżisti, biss l-utenti elenkati hemmhekk jistgħu joħolqu cronjobs proprji. Cronjobs maħluqa ġodda jew ċwievet SSH mhux magħrufa huma sinjal tipiku li xi ħadd stabbilixxa ruħu b'mod permanenti. Sinjal ta' twissija partikolarment ċar jiddeskrivih l-artiklu [Sinjal ta' twissija: is-server tal-web jibda shell](https://phpsos.de/mt/blog/webserver-startet-shell/).

## Id-database: illimitaw id-drittijiet għal dak neċessarju

Il-kont tad-database ta' websajt huwa fil-fatt it-tieni utent tas-server tal-web. Id-dettalji tal-aċċess tiegħu jinsabu fil-fajl tal-konfigurazzjoni tal-applikazzjoni u jistgħu jinqraw minn kodiċi daħħal bil-moħbi. Għalhekk għandu jippermetti biss dak li l-applikazzjoni teħtieġ fit-tħaddim.

```sql
-- Eżempju MySQL/MariaDB: kont proprju għal kull websajt, biss drittijiet tad-data
CREATE USER 'seite1'@'localhost' IDENTIFIED BY 'hier-ein-langes-Zufallspasswort';
GRANT SELECT, INSERT, UPDATE, DELETE ON seite1.* TO 'seite1'@'localhost';
-- Iċċekkja d-drittijiet
SHOW GRANTS FOR 'seite1'@'localhost';
```

Drittijiet bħal `FILE`, `SUPER` jew `GRANT OPTION` u aċċess għal `*.*` kont ta' applikazzjoni ma jeħtiġhomx. Ħafna CMS jeħtieġu għall-aġġornamenti wkoll `CREATE`, `ALTER`, `INDEX` u `DROP`. Aktar nadif huwa kont separat għall-aġġornamenti u l-migrazzjonijiet, użat biss waqt il-manutenzjoni. Iċċekkjaw ir-rekwiżiti fid-dokumentazzjoni tal-manifattur.

## Illimitaw lil PHP-FPM aktar b'systemd

systemd jista' jillimita l-perspettiva ta' servizz fuq is-sistema. Għal PHP-FPM huma partikolarment adattati ftit għażliet mid-dokumentazzjoni ta' systemd. Jaffettwaw ukoll lill-proċess master, li jibda bħala root.

```ini
# sudo systemctl edit php8.3-fpm
[Service]
# /usr, /boot u /etc protetti kontra l-kitba
ProtectSystem=full
# /home, /root u /run/user invisibbli
ProtectHome=true
# /tmp u /var/tmp proprji biss għal dan is-servizz
PrivateTmp=true
# l-ebda espansjoni ta' drittijiet permezz ta' setuid jew capabilities tal-fajls
NoNewPrivileges=true
```

Ittestjaw dawn l-għażliet qabel ma jintużaw fil-produzzjoni. Jekk il-websajts jinsabu taħt `/home`, `ProtectHome=true` jipprevjeni l-aċċess. `NoNewPrivileges=true` jista' jfixkel programmi li PHP isejjaħ u li jibdlu d-drittijiet tal-grupp tagħhom meta jibdew, pereżempju xi programmi lokali tal-posta għall-funzjoni `mail()` ta' PHP. Għalhekk imxu pass pass:

1. Żidu għażla waħda, erġgħu ibdew is-servizz, iċċekkjaw `systemctl status php8.3-fpm`.
2. Ittestjaw il-funzjonijiet ewlenin tal-websajt: login, formoli, ibgħat tal-posta, uploads, cronjobs tal-applikazzjoni.
3. Evalwaw il-log tal-iżbalji ta' PHP-FPM u tal-applikazzjoni.
4. Biss imbagħad żidu l-għażla li jmiss.

Fl-aħħar is-socket: skont il-manwal ta' PHP, b'mod awtomatiku jingħata d-drittijiet `0660` għall-utent u l-grupp tal-pool. Issettjaw `listen.owner` u `listen.group` b'mod li jistgħu jgħaqqdu biss is-server tal-web, mhux kull utent lokali.

> **Suġġeriment:**
> Id-drittijiet minimi huma attitudni bażika, mhux proġett darba biss. Erġgħu ikkontrollaw l-inventarju minn din il-kontribuzzjoni wara kull bdil strutturali u kull websajt ġdida, għax servizzi ġodda spiss jiġu b'drittijiet awtomatiċi ġenerużi.

## Konklużjoni: l-attakkant jiret dak li tippermettu

Least Privilege jinstema' teoretiku, imma huwa mistoqsija prattika ħafna: x'jista' jagħmel xi ħadd li jesegwixxi kodiċi bħala l-utent tas-server tal-web? Fuq server b'shell, entrata ta' sudo, crontab proprju u kont tad-database b'kull dritt, it-tweġiba hi: kważi kollox. Fuq server limitat, ħafna drabi jibqa' inċident f'websajt waħda, li jista' jiġi rikonoxxut u mnaddaf.

L-adattament ma jeħtieġx softwer ġdid, biss inventarju bir-reqqa u testijiet gradwali. Ibdew bil-punti li bilkemm jistgħu jkissru xi ħaġa, jiġifieri shell, sudo u ċwievet SSH, u mbagħad xogħlu lejn id-drittijiet tad-database u l-għażliet ta' systemd.

## Kif tgħin PHP SOS b'mod konkret?

- **Niċċekkjaw il-kontijiet:** Għal kull pool u server tal-web nirreġistraw l-utent, is-shell, l-entrati ta' sudo, il-cronjobs, iċ-ċwievet SSH u d-drittijiet tad-database.
- **Innaqqsu d-drittijiet:** Inneħħu dak li mhux meħtieġ u nifirdu l-kontijiet tad-deployment, tat-tħaddim u tal-manutenzjoni.
- **Nillimitaw is-servizzi:** Nissettjaw l-għażliet ta' protezzjoni ta' systemd pass pass u nittestjaw il-websajt wara kull pass.
- **Inżommuh b'mod permanenti:** Fil-qafas tal-[Hardening tas-server](https://phpsos.de/mt/leistungen/server-haertung/) niddokumentaw il-kunċett tad-drittijiet għal bidliet futuri.


## Mistoqsijiet frekwenti

**Taħt liema utent jaħdem PHP fuq is-server tiegħi?**  
Dan jiddependi mill-modalità tat-tħaddim. Ma' mod_php, PHP jaħdem bħala l-utent ta' Apache, pereżempju www-data jew apache. Ma' PHP-FPM, kull pool jiddefinixxi l-utent tiegħu b'user u group; il-proċess master normalment jaħdem bħala root, il-workers bħala l-utent tal-pool. Il-kmand ps juri dan malajr.

**L-utent tas-server tal-web jeħtieġ login shell?**  
Le. La Nginx, la Apache u lanqas PHP-FPM ma jeħtieġu login interattiv għal dan l-utent. Shell bħal /usr/sbin/nologin jevita li xi ħadd jidħol b'dan il-kont. Id-deployments jaħdmu permezz ta' utent separat.

**Għaliex l-ebda dritt ta' sudo għal www-data, anke għal kmand wieħed?**  
Għax kodiċi daħħal bil-moħbi jiret eżattament dawn id-drittijiet. Anke kmand li jidher bla ħsara jista', jekk jiġi permess ħażin, iwassal għal drittijiet ta' root. Kompiti li jeħtieġu drittijiet għolja jappartjenu f'servizzi jew proċessi separati barra mis-server tal-web.

**Dan jgħin kontra PHP2Shell?**  
Ma jagħlaqx il-vulnerabbiltà; għal dan huma neċessarji l-aġġornament ta' PHP u r-restart tal-workers kollha. Id-drittijiet minimi, madankollu, jillimitaw dak li attakkant jista' jagħmel wara sfruttament b'suċċess: jibdel fajls, jistabbilixxi ruħu b'mod permanenti, jilħaq websajts oħra.

## Sorsi

- [Manwal ta' PHP: konfigurazzjoni ta' FPM (user, listen.mode)](https://www.php.net/manual/en/install.fpm.configuration.php)
- [systemd.exec (ProtectSystem, PrivateTmp, NoNewPrivileges)](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html)
- [BSI IT-Grundschutz (il-metodoloġija tal-Uffiċċju Federali Ġermaniż għas-Sigurtà tal-Informazzjoni)](https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/IT-Grundschutz/it-grundschutz_node.html)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
