Alma 9.5 cerstva instalace rozbite ProtectSystem=true v systemd?

Ahoj,
cerstva instalace Alma 9.5, vse v default nastaveni, hned prvni balicek mlocate
a v systemd idexacni servisy updatedb.service option ProtectSystem=true blokuje pristup do podstromu /usr - tim padem se nezaindexuje.

mlocate balicek je 0.26 a na cistem zeleze cerstvy image 9.5 funguje bez problemu. Volba ma jen nastavit /usr RO a indexator zda se neotvira fajliky vubec, natoz pro zapis…Overil jsem ze je tam i stejna binarka (md5sum).

Přistup to neblokuje. updatedb se rozhodne /usr přeskočit, protože je to prý bind mount. Jde to vidět když to spustíš ručně s --debug-pruning ve službě s ProtectSystem=true. Proč je to jinak než na čistém železe nevím, možná systemd volí jiný způsob převedení /usr na ro. Obejdeš to nastavením PRUNE_BIND_MOUNTS = "no" v /etc/updatedb.conf, nebo vypnutím ProtectSystem.

Jo diky, mezitim jsem na to prisel taky, otazka je jestli pak mlocate v nekterych pripadech naopak nezacne indexovat neco co nechci.

Porovnal jsem co za mounty vidi skript pusteny z ty systemd servisy na VPSFREE a na holym zeleze:

VPSFREE:
tank/ct/27117 on /tmp type zfs (rw,relatime,xattr,posixacl,casesensitive)
tank/ct/27117 on /usr type zfs (ro,relatime,xattr,posixacl,casesensitive)
tank/ct/27117 on /var/tmp type zfs (rw,relatime,xattr,posixacl,casesensitive)

Zelezo:
dev/mapper/almalinux_lbasensor8-root on /tmp type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/almalinux_lbasensor8-root on /usr type xfs (ro,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/almalinux_lbasensor8-root on /var/tmp type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

Vubec to teda neni hezky, ze matlaj securitu i do systemd servisu. Od toho snad je selinux?

A koukal jsem ze v Alma (a zrejme tedy i v RH) je dalsi 16 servisu se systemd securty options nastavenymi…

BTW jak to pouzivaj debian based distros? Taky mak mlocate na VPSFree v defaultu rozbitej?

ProtectSystem= je implementován jako bind mounty (mount NS) bez ohledu na to, zda jde o hostitele anebo kontejner.
Na security optiony lze nahlížet jako na částečnou kontejnerizaci těch služeb, to zda je služba definuje, záleží na jejím upstreamu/downstreamu.

Co ukazují ty dva seznamy mountů? Moc je nechápu (nechápu selinux).
Spíš bych koukal na nsenter -t $pid_of_mlocate grep -E "usr|ro" /proc/$pid_of_mlocate/mountinfo. Je v tomhle viditelný rozdíl?

Ty dve trojce mountu jsou bind mountem osetreny RO pristupy do /tmp /usr a /var/tmp. Vypsano je to prikazem bind uvnitr skriptu, ktery je tou servisou pusteny (/usr/libexec/mlocate-run-updatedb). V obou pripadech by to tedy mel mlocate vynechat (diky PRUNE_BIND_MOUNTS = “yes”) volbe a udela tak jen v pripade vpsfree. Takze to mozna blbe detekuje, mozna je nejaky rozdil mezi tim jak to dela bare metal a jak vps resp jak to mlocate.updatedb detekuje?

BTW Ubuntu nema u servisy ProtectSystem u servisy vubec, takze tam to nezlobi (u plocate balicku).

Hmm tak jsem otestoval balicek i na centos9 stream a rocky a chyba se neprojevuje! Tak jsem pro jistotu na stejny playgraund preinstalova i na alma9…

A ono to tam taky neni!!!

Nastesti mam jeste dukaz na druhym nodu - node23 to dela, node1 s playground ne. Zkusim najit v cem se lisi jejich nastaveni…

… a nasel jsem to. A asi to bude i logicky - Chyba se objevi pri zapnuti FUSE v nastaveni nodu…

Na chybujicim nodu mam FUSE/KVM/TUNTAP. Na funkcnich FUSE chybela.

Uz jsem chtel hlasit BUG ALMA tymu, ale bylo mi divny proc by se zaklad mel lisit od Centos 9 stream/Rocky 9…

Takze mozna to jen ovlivni detekci mount atributu v tom mlocate indexatoru, Pak by to meli v mlocate vypnout (ubuntu ten flag ProtectSystem v tom balicku nema - pouziva ale plocate misto mlocate).

Uff, pritom takova blbost… A pro zacatecnika docela neprijemny - locate nevidi celej /usr podstrom.

A uz mi to zase nejde bez ohledu na ty prepinace. Tak nevim…
Jestli se nekdo nudi… mlocate se fixne bez problemu v cfg , ale jestli to roszbije i neco jineho?

test je jednoduchy - cista vps,

dnf update; dnf install mlocate -y;
systemctl start mlocate-updatedb; locate locate

  • ppkud nevidite podstrom /usr - je to rozbity.
  • centos 9 stream OK, rocky linux OK, alam linux 9 v jednu chvili taky OK,
  • podarilo se to rozbit po zapnuti podopry FUSE, pak uz nezopakovano ani po reinstalaci…