[vyreseno] SELinux a RLIMIT_NOFILE

Jan Kasprzak kas na fi.muni.cz
Pátek Červen 19 19:30:55 CEST 2020


Jan Kasprzak wrote:
[...]
: Aplikace je spouštěná z démona, kterému jsem teda zkusil nastavit hard i soft
: limit RLIMIT_NOFILE na 20k souborů. Podle /proc/<pid>/limits je tento limit
: skutečně nastavený:
: 
: # grep 'open files' /proc/<pid démona>/limits
: Max open files            20480                20480                files     
: 
: Nicméně pdftex spouštěný přes fork+exec (ne přes shell) má soft limit
: zpátky na 1024, a pak samozřejmě spadne:
: 
: # grep 'open files' /proc/<pid pdftexu>/limits
: Max open files            1024                 20480                files     

Hmm, tak teprve zobrazení dontauditovaných zpráv mě nakoplo správným
směrem:

Existuje speciální SELinuxové právo pro přechod z jedné domény do druhé,
jmenuje se "rlimitinh", které když není, tak se při přepnutí do jiné domény
nastavují všechny soft limity procesu na maximum z hard limitu procesu
(to je asi docela pochopitelné) a - wait for it, to byste nevymysleli -
soft limitu, který má proces číslo 1.

https://lwn.net/Articles/64635/

Takže přidat do politiky tex.te něco jako

require {
	type démon_t;
};

allow démon_t tex_t:process { rlimitinh };

Tož tak, snad to někomu pomůže. To zas bylo produktivně strávené odpoledne.

-Y.

-- 
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/                         GPG: 4096R/A45477D5 |
IORING_OP_NOP ... the benefits of doing nothing asynchronously are minimal,
but sometimes a placeholder is useful.             --Jonathan Corbet at LWN


Další informace o konferenci Linux