Portál AbcLinuxu, 30. dubna 2025 21:23
hledej suidperl
Jak jste na to přišel? Schválně si zkuste "skript"
#!/bin/rm -f cokoli
Když mu nastavíte SUID bit a spustíte ho jako normální uživatel, pokus o smazání sebe sama selže. Znamená to snad, že příkaz rm
ta práva zahodí také?
Jak jste na to přišel?Precetl jsem si to v man bash, cituji:
If the shell is started with the effective user (group) id not equal to the real user (group) id, and the -p option is not supplied, no startup files are read, shell functions are not inherited from the environment, the SHELLOPTS variable, if it appears in the environment, is ignored, and the effective user id is set to the real user id. If the -p option is supplied at invocation, the startup behavior is the same, but the effective user id is not reset.Jeste si dovolim jeden citat:
Pořádný muž od lúzy tím se označuje, že čemu nerozumí, to neprovozuje.Nechapu, proc jste si to v tom manualu neprecetl sam.
Skupinou bych to resit nechtel, protoze budu potrebovat pristupovat ke konfigurakum ruznych sluzeb a tim by se instalace docela komplikovala (nikdo si asi nebude menit skupinu u konfiguraku apache a dalsich veci) ale jinak namet dobry...aspon za snahu diky moc...mozna ze jsem ted moc opily a zitra se mi tohle reseni bude libit...
> suidperl is a setuid root helper program which is invoked by perl when
> executing scripts with setuid/gid bits set on systems (like linux) which
> don't have support setuid script execution natively in the kernel.
Neboli, perl to osetruje, bash ne. Je to proto ze perl se snazi chovat se vsude stejne a ne vsechny unixove systemy se takto chovaji, nektere setuid bit na skriptech nezahazuji.
Dalsim moznym resenim je pouzit sudo (v /etc/sudoers jde nastavit aby se pro dany prikaz neptal na heslo a skript muze klidne mit #!/usr/bin/sudo /bin/bash misto #!/bin/bash).
Proč se to chová takto a ne jinak nevím, něco podobného (tedy přístu ze skriptu spuštěného pod neprivilegovaným uživatelem ke konfiguračním skriptům a logům kam má přístup pouze root ale řeším/budu řešit ve své bakalářce také a jako nejschůdnější řešení vidím použití utility sudo + nastavení konfigurace tak aby šlo pouštět pouze některé příkazy (konkrétně budu mít asi napsaný jeden program (nejspíše v pythonu) který bude přijímat pomocí voleb na příkazové řádce co má kde udělat s těmi konfiguračními soubory/ logy a tento program bude spouštěn jiným skriptem který bude tvořit uživatelské rozhraní (autentizaci a tak) - v mém případě přes web)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.