Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 3.7.0 - The Gaming Edition. Z novinek lze vypíchnout příkaz omarchy a celou řadu herních možností.
CyberChef byl vydán v nové major verzi 11. Přehled novinek v Changelogu. CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag).
Byla vydána nová verze 2.4.67 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 11 zranitelností.
Brush (Bo(u)rn(e) RUsty SHell) je v Rustu napsaný shell kompatibilní s Bash (Bourne Again SHell). Vydána byla verze 0.4.0.
Google zveřejnil seznam 1 141 projektů (vývojářů) od 184 organizací přijatých do letošního, již dvaadvacátého, Google Summer of Code. Přihlášeno bylo celkově 23 371 projektů od 15 245 vývojářů ze 131 zemí.
Na čem pracovali vývojáři GNOME a KDE Plasma minulý týden? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Open source počítačová hra na hrdiny NetHack (Wikipedie, GitHub) byla vydána v nové verzi 5.0.0. První verze této hry byla vydána v roce 1987.
Evropská komise naléhavě vyzvala členské státy EU, aby kvůli ochraně nezletilých na internetu urychlily zavádění unijní aplikace pro ověřování věku a zajistily její dostupnost do konce roku. Členské státy mohou zavést aplikaci EU pro ověřování věku jako samostatnou aplikaci nebo ji integrovat do takzvané evropské peněženky digitální identity.
Richard Biener oznámil vydání verze 16.1 (16.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 16. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Zulip Server z open source komunikační platformy Zulip (Wikipedie, GitHub) byl vydán ve verzi 12.0. Přehled novinek v příspěvku na blogu.
Nabízí se použití SUID bitu, jenže při tom člověk narazí na problém - skript si spustí interpreta a tomu už SUID bit nepředá, nebo alespoň by neměl a já si to myslel. No ale člověk za pokus nic nedá, a hle, při použití perlu skript k root věcem přistoupí, při použití bashe ne. Nemáte někdo potuchy proč to tak je? Chování je v distribuci archlinux, v jiných distrech jsem to nezkoušel.
Proč se tedy perl chová tak "divně"?
Poznámka: skript running_deamons.pl vyhodí pid ze všech souborů, které končí na .pid ve /var/run. syslog-ng jak vidíte níže může číst pouze root...proto použití suid bitu. Výstup skriptu jsem trochu osekal, aby bylo vidět hlavně to důležité.
[root@archeee daemons]# chmod 4755 running_daemons.pl [root@archeee daemons]# ls -l -rw-r--r-- 1 jerka users 276 2009-02-23 15:22 main.php -rwsr-xr-x 1 root root 497 2009-02-23 21:02 running_daemons.pl [root@archeee daemons]# exit
[jerka@archeee daemons]$ ./running_daemons.pl 3057 is pid of crond.pid 2928 is pid of syslog-ng.pid 16781 is pid of dhclient.pid 3031 is pid of dbus.pid [jerka@archeee daemons]$
[jerka@archeee daemons]$ ls -l /var/run/syslog-ng.pid -rw------- 1 root root 4 2009-02-20 13:31 /var/run/syslog-ng.pid
[root@archeee daemons]# chmod 755 running_daemons.pl [root@archeee daemons]# exit [jerka@archeee daemons]$ ./running_daemons.pl 3057 is pid of crond.pid 16781 is pid of dhclient.pid 3031 is pid of dbus.pid [jerka@archeee daemons]$
Co je důležité z ukázky výstupu je že když má perl SUID bit, tak syslog-ng zvládne otevřít, bez SUID bitu jak je také logické ne.
Byl bych moc rád, kdyby někdo věděl proč to tak je, případně vyzkoušel něco podobného na své distribuci a podělil se o výsledky. Když je použit místo perlu bash, tak to syslog-ng.pid neotevře. Perl to zvládne...tak kde je problém?
Jdu si z toho radši dát pivo. 
Tiskni
Sdílej:
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).
Nektere shelly (napr. bash) pro zvyseni bezpecnosti jeste delaji to, ze po startu nastavi effective id na real id.
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)