suid/sgid programy

Ondra Holecek bln at bln.no-ip.org
Tue Jun 15 11:48:07 CEST 2004


Ahoj,

suid a sgid se pouziva pro programy, kdyz chces aby bezely s pravy jineho 
uzivatele nez je ten ktery je spustil. Obecne plati ze pokud spustis nejaky 
normalni (rozumej nesuid/neguid) program, tak at ho dal do systemu kdokoliv a 
dal ti pravo na jeho spusteni, tak i kdyz ten program neni tvuj, tak ma pri 
provadeni stejna prava jako ty. 

Nekdy je ale potreba aby program mohl provadet veci, co uzivatel ktery ho 
spustil normalne nesmi (napriklad naslouchani na portu mensim nez 1023, zapis 
do vlastniho (ostatnim zakazaneho) adresare. Proto se programu prideli suid 
bit (tim bude program vzdy provaden v kontextu uzivatele ktery ho vlastni 
nebo sgid bit a tim bude provaden v kontextu skupiny ktera ho vlastni). 
Nemusi to samozrejme vzdy byt root, ale treba nejaky jiny uzivatel ktery chce 
zapis do sveho adresare povolit jen a jen pres program a ne primo.

S tim odstranovanim bych pockal :) , vetsina programu ktery jsou v systemu ten 
suid/guid bit nema uplne zbytecne. Ale je pravda ze vetsinou ty programy 
nehodla clovek pouzivat, tak je zbytecne riskovat kompromitaci pouzivani suid 
na ne (protoze se v nich mohou objevit chyby a pripadny utocnik tak ziska 
prava vlastnika). Napriklad nechapu pro je jeste dneska v 5.2 suid bit u rcp, 
rsh apod., kdyz prave tyhle programy by se vubec nemeli pouzivat, a kdo je 
hodla pouzivat, at si tam ten suid bit nastavi sam.

Vetsinou ale kdyz program suid bit potrebuje a jinak se to neda udelat, tak se 
to dela tak ze po spusteni provede ty akce, kvuli kterym ma suid (otevreni 
souboru, deskriptoru apod.) a pak suid bit proste odhodi a stane se nejakym 
jinym uzivatelem.

On Tuesday 15 June 2004 03:07, Jiri wrote:
> Hello users-l,
>
>   zajimalo by me vice o tom, proc potrebuji nektere programy byt
>   suid/sgid? jak zjistim proc jsou tak nastaveny a jak zjistim, ktere
>   mohu odstranit, kdyz bych je nemusel pouzivat?
>
>   docetl jsem se toto, ale nevim, jestli by to byla dobra cesta :)
>
> One strategy is to remove the set-id bits from all files, then selectively
> add them back to just a few programs that need to be run by non-root users.
> The following commands will remove the set-uid and set-gid bit from all
> files, then add it back to su and the shared lib PAM version of the passwd
> command:
>
> find / -perm -4000 -type f -exec chmod u-s {} \;
> find / -perm -2000 -type f -exec
> chmod g-s {} \;
> chmod u+s
> /usr/bin/su
> chmod u+s
> /usr/bin/passwd
>
> diky za tipy a odkazy
>
> --
> Best regards,
>  Jiri                          mailto:jiri.b at sendmail.cz




More information about the Users-l mailing list