# Least Privilege: cearta úsáideoir an fhreastalaí gréasáin

> Úsáideoir freastalaí gréasáin le cearta íosta: gan sliogán, sudo ná cron, cearta teoranta bunachair sonraí agus cosaint systemd do PHP-FPM, le horduithe seiceála.

Foinse: https://phpsos.de/ga/blog/rechte-des-webserver-benutzers/  
Staid: 25/10/2026  
Soláthraí: PHP SOS, Cabhair éigeandála PHP agus slándáil freastalaí. Cabhair láithreach trí WhatsApp: https://wa.me/491736494914?text=Dia%20duit%2C%20a%20PHP%20SOS%2C%20t%C3%A1%20cabhair%20de%20dh%C3%ADth%20orainn%20len%C3%A1r%20bhfreastala%C3%AD%20PHP.%20Cuideachta%3A%20%E2%80%A6%20Su%C3%ADomh%20gr%C3%A9as%C3%A1in%3A%20%E2%80%A6

**Go achomair:** Ba cheart d'úsáideoir an fhreastalaí gréasáin, faoina ritheann PHP, de réir phrionsabal na gceart is lú (Least Privilege), gan ach an méid a theastaíonn ón suíomh a léamh agus gan scríobh ach san áit a stórálann sé sonraí. Níl sliogán logála isteach, cearta sudo, cronjobs dá chuid féin ná eochracha SSH aige, agus ní cheadaítear dá chuntas bunachair sonraí ach sonraí a léamh agus a athrú. Teorannaíonn roghanna systemd ar nós `ProtectSystem` agus `PrivateTmp` PHP-FPM tuilleadh.

## An cheist tar éis briseadh isteach: cad a cheadaítear don phróiseas seo?

Maidir le PHP2Shell, is é atá i gceist cód mailíseach a rith ón gcianrochtain gan logáil isteach. Má éiríonn leis, ní ritheann an cód i bhfolús, ach mar úsáideoir ar leith: úsáideoir an phróisis PHP. An rud ar fad a cheadaítear don úsáideoir sin, ceadaítear don ionsaitheoir é ón nóiméad sin ar aghaidh.

Ar a lán freastalaithe, is neamhghnách de mhéid é sin. Is leis an úsáideoir an cód cláir ar fad, tá sliogán aige, is féidir leis cronjobs dá chuid féin a chruthú, agus tá na cearta go léir ar na bunachair sonraí go léir ag cuntas bunachair sonraí an fheidhmchláir. Don ionsaitheoir is é sin an bunphointe idéalach chun é féin a bhunú go buan.

Conas comhaid agus fillteáin a leithdháileadh i gceart, déanann an treoir [Cearta comhad ar an bhfreastalaí gréasáin](https://phpsos.de/ga/ratgeber/dateirechte-webserver/) cur síos air. Díríonn an t-alt seo ar an gcuntas féin: logáil isteach, cearta speisialta, tascanna sceidealta, bunachar sonraí agus na teorainneacha a leagann systemd síos.

## Fardal: cé hé úsáideoir an fhreastalaí gréasáin?

Ar dtús, socraigh cé na húsáideoirí atá páirteach ar chor ar bith. Le PHP-FPM socraíonn gach linn le `user` agus `group` faoi cé a ritheann a hoibrithe. Le mod_php ritheann PHP mar úsáideoir Apache. Míníonn [PHP-FPM mínithe: bainisteoir próiseas, linnte agus oibrithe](https://phpsos.de/ga/php/php-fpm-erklaert/) conas a oibríonn an príomhphróiseas agus na hoibrithe le chéile in PHP-FPM. Ní léann na horduithe seo a leanas ach:

```bash
# Faoi cé na húsáideoirí a ritheann an freastalaí gréasáin agus PHP?
ps -eo user,group,cmd | grep -E "[p]hp-fpm|[n]ginx|[a]pache2|[h]ttpd" | sort | uniq -c
# Sonraí an chuntais: eolaire baile agus sliogán (athraigh an t-úsáideoir)
getent passwd www-data
# An bhfuil cearta sudo ag an úsáideoir?
sudo -l -U www-data
# Cronjobs dá chuid féin?
sudo crontab -l -u www-data
# Eochracha SSH san eolaire baile (ar Debian/Ubuntu is é sin /var/www)
sudo ls -la /var/www/.ssh 2>/dev/null
```

Breac síos na torthaí do gach úsáideoir linne. Má ritheann na suíomhanna go léir faoin úsáideoir céanna, is é sin an chéad phointe ar an liosta; conas é sin a scaradh, déanann [Linnte PHP-FPM a scaradh do gach suíomh gréasáin](https://phpsos.de/ga/blog/php-fpm-pools-isolieren/) cur síos air.

## Cearta úsáideoir an fhreastalaí gréasáin: cad nach bhfuil de dhíth ar an gcuntas

Léiríonn an forbhreathnú seo a leanas cad nach mbíonn de dhíth de ghnáth ar úsáideoir an fhreastalaí gréasáin agus conas é a bhaint.

| Ceart | Cén fáth a bhfuil sé contúirteach | Moladh |
|---|---|---|
| Sliogán logála isteach | Is féidir logáil isteach agus úsáid idirghníomhach | Sliogán `/usr/sbin/nologin` |
| Iontrálacha sudo | Bealach chuig cearta root | gan iontrálacha, fiú ní d'orduithe aonair |
| Crontab dá chuid féin | cúldoras buan a mhaireann gach atosú | gan ceann, teorainn le `/etc/cron.allow` |
| Eochracha SSH | Logáil isteach ón taobh amuigh | gan `authorized_keys` |
| Úinéireacht ar an gcód cláir | Is féidir an cód a athrú | Is úsáideoir imscartha an t-úinéir |
| Cearta scríbhneoireachta lasmuigh d'fhillteáin sonraí | Cód mailíseach a chur i dtaisce | uaslódálacha, taisce, temp amháin |
| Cearta iomlána bunachair sonraí | Bunachair sonraí d'fheidhmchláir eile, rochtain ar chomhaid tríd an mbunachar sonraí | an bunachar sonraí féin amháin, cearta sonraí amháin |

Socraíonn tú an sliogán le `usermod -s /usr/sbin/nologin www-data`. I gcás cron: má tá `/etc/cron.allow` ann, ní fhéadfaidh ach na húsáideoirí atá luaite ann cronjobs dá gcuid féin a chruthú. Is comhartha tipiciúil iad cronjobs nua nó eochracha SSH anaithnide gur bhunaigh duine é féin go buan. Déanann an t-alt [Comhartha rabhaidh: tosaíonn an freastalaí gréasáin sliogán](https://phpsos.de/ga/blog/webserver-startet-shell/) cur síos ar chomhartha rabhaidh an-soiléir.

## An bunachar sonraí: cearta a theorannú don rud is gá

Is dara húsáideoir freastalaí gréasáin go fírinneach é cuntas bunachair sonraí suímh. Tá a shonraí logála isteach i gcomhad cumraíochta an fheidhmchláir agus is féidir le cód a chuirtear isteach iad a léamh. Dá bhrí sin ní ceart dó ach an méid a cheadú a bhfuil gá leis ag an bhfeidhmchlár le linn oibriúcháin.

```sql
-- Sampla MySQL/MariaDB: cuntas ar leith do gach suíomh, cearta sonraí amháin
CREATE USER 'seite1'@'localhost' IDENTIFIED BY 'hier-ein-langes-Zufallspasswort';
GRANT SELECT, INSERT, UPDATE, DELETE ON seite1.* TO 'seite1'@'localhost';
-- Cearta a sheiceáil
SHOW GRANTS FOR 'seite1'@'localhost';
```

Ní bhíonn cearta ar nós `FILE`, `SUPER` ná `GRANT OPTION`, ná rochtain ar `*.*`, de dhíth ar chuntas feidhmchláir. Teastaíonn `CREATE`, `ALTER`, `INDEX` agus `DROP` freisin ó a lán CMS le haghaidh nuashonruithe. Is glaine cuntas ar leith do nuashonruithe agus d'imirce nach n-úsáidtear ach le linn cothabhála. Seiceáil na riachtanais i ndoiciméadú an mhonaróra.

## PHP-FPM a theorannú tuilleadh le systemd

Is féidir le systemd radharc seirbhíse ar an gcóras a theorannú. Do PHP-FPM tá roinnt roghanna ó dhoiciméadú systemd go háirithe oiriúnach. Bíonn tionchar acu ar an bpríomhphróiseas freisin, a thosaíonn mar root.

```ini
# sudo systemctl edit php8.3-fpm
[Service]
# /usr, /boot agus /etc faoi chosaint scríofa
ProtectSystem=full
# /home, /root agus /run/user dofheicthe
ProtectHome=true
# /tmp agus /var/tmp dá chuid féin don tseirbhís seo amháin
PrivateTmp=true
# gan ardú cearta trí setuid ná trí chumas comhaid
NoNewPrivileges=true
```

Déan na roghanna seo a thástáil sula n-úsáideann tú iad i dtáirgeadh. Má tá suíomhanna faoi `/home`, cuireann `ProtectHome=true` cosc ar rochtain. Is féidir le `NoNewPrivileges=true` cur isteach ar chláir a nglaonn PHP orthu agus a athraíonn a gcearta grúpa agus iad ag tosú, mar shampla roinnt clár ríomhphoist áitiúil don fheidhm PHP `mail()`. Dá bhrí sin téigh ar aghaidh i gcéimeanna:

1. Rogha amháin a chur leis, an tseirbhís a atosú, `systemctl status php8.3-fpm` a sheiceáil.
2. Croífheidhmeanna an tsuímh a thástáil: logáil isteach, foirmeacha, seoladh ríomhphoist, uaslódálacha, cronjobs an fheidhmchláir.
3. Loga earráide PHP-FPM agus an fheidhmchláir a mheas.
4. Ansin amháin an chéad rogha eile a chur leis.

Ar deireadh, an soicéad: de réir lámhleabhar PHP faigheann sé cearta `0660` mar réamhshocrú don úsáideoir agus don ghrúpa sa linn. Socraigh `listen.owner` agus `listen.group` ionas nach bhféadfaidh ach an freastalaí gréasáin nascadh, ní gach úsáideoir áitiúil.

> **Leid:**
> Is dearcadh bunúsach iad cearta íosta, ní tionscadal aonuaire. Seiceáil an fardal ón alt seo arís tar éis gach athdhéanta agus gach suíomh nua, mar is minic a thagann cearta réamhshocraithe flaithiúla le seirbhísí nua.

## Conclúid: faigheann an t-ionsaitheoir na cearta a thugann tú

Tá cuma theoiriciúil ar Least Privilege, ach is ceist an-phraiticiúil í: cad is féidir le duine a dhéanamh a ritheann cód mar úsáideoir an fhreastalaí gréasáin? Ar fhreastalaí le sliogán, iontráil sudo, crontab dá chuid féin agus cuntas bunachair sonraí a bhfuil na cearta go léir aige, is é an freagra: beagnach gach rud. Ar fhreastalaí teoranta, is dóichí go bhfanfaidh sé ina theagmhas i suíomh amháin, ar féidir é a aithint agus a ghlanadh.

Ní theastaíonn bogearraí nua chun an t-athrú a dhéanamh, ach stocaireacht chúramach agus tástálacha céim ar chéim. Tosaigh leis na pointí is lú is dócha a bhrisfidh rud ar bith, is é sin sliogán, sudo agus eochracha SSH, agus oibrigh ansin go dtí cearta bunachair sonraí agus roghanna systemd.

## Conas a chabhraíonn PHP SOS go nithiúil?

- **Cuntais a sheiceáil:** Taifeadaimid d'úsáideoir gach linne agus gach freastalaí gréasáin an sliogán, na hiontrálacha sudo, na cronjobs, na heochracha SSH agus cearta an bhunachair sonraí.
- **Cearta a laghdú:** Bainimid an rud nach bhfuil de dhíth, agus scarann muid cuntais imscartha, ritheachta agus chothabhála.
- **Seirbhísí a theorannú:** Leagaimid roghanna cosanta systemd síos céim ar chéim agus déanaimid an suíomh a thástáil tar éis gach céime.
- **Iad a choinneáil go buan:** Mar chuid den [chruatú freastalaí](https://phpsos.de/ga/leistungen/server-haertung/) déanaimid an coincheap cearta a dhoiciméadú le haghaidh athruithe amach anseo.


## Ceisteanna coitianta

**Faoi cén úsáideoir a ritheann PHP ar mo fhreastalaí?**  
Braitheann sé sin ar an mód oibriúcháin. Le mod_php ritheann PHP mar úsáideoir Apache, mar shampla www-data nó apache. Le PHP-FPM socraíonn gach linn a úsáideoir féin le user agus group; de ghnáth ritheann an príomhphróiseas mar root agus na hoibrithe mar úsáideoir na linne. Taispeánann an t-ordú ps sin go tapa.

**An bhfuil sliogán logála isteach de dhíth ar úsáideoir an fhreastalaí gréasáin?**  
Níl. Níl logáil isteach idirghníomhach de dhíth ar Nginx, ar Apache ná ar PHP-FPM don úsáideoir seo. Cuireann sliogán ar nós /usr/sbin/nologin cosc ar éinne logáil isteach leis an gcuntas seo. Ritheann imscaradh trí úsáideoir ar leith.

**Cén fáth nach bhfuil cearta sudo ag www-data, fiú le haghaidh ordaithe amháin?**  
Mar go bhfaigheann cód a chuirtear isteach go beacht na cearta sin. D'fhéadfadh fiú ordú a bhfuil cuma neamhdhíobhálach air, má cheadaítear go mícheart é, a bheith ina chúis le cearta root. Ba cheart tascanna a bhfuil cearta ardaithe de dhíth orthu a chur i seirbhísí scartha nó i bpróisis lasmuigh den fhreastalaí gréasáin.

**An gcabhraíonn sé seo i gcoinne PHP2Shell?**  
Ní dhúnann sé an leochaileacht; chuige sin teastaíonn nuashonrú PHP agus atosú gach oibrí. Ach teorannaíonn cearta íosta cad is féidir le hionsaitheoir a dhéanamh tar éis leas a bhaint go rathúil: comhaid a athrú, é féin a bhunú go buan, teacht ar shuíomhanna gréasáin eile.

## Foinsí

- [Lámhleabhar PHP: cumraíocht 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 (bonnchaighdeán slándála TF na Gearmáine)](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/)
