Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).
Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.
3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.
Open source webový aplikační framework Django slaví 20. narozeniny.
V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
"cat /etc/passwd | grep ^[^:]*:[^:]*:[^:]*|cut -f 1 -d ":""je nesmysl, to se expanduje na ten řetězec v uvozovkách, měls asi na mysli $(...) nebo `...`, i tak by to moc nefungovalo. No nic, nejlepší co jsem vymyslel je
if cut -d: -f1 | grep -F -x -q "$1"; then echo "OK" else echo "neexistuje" finajdi si v man grep co ty optiony znamenají (btw asi nebudou přenositelné) Aby to bylo skutečně korektní, tak by to chtělo C prográmek, co zavolá
getpwnam(argv[1])
.
#!/usr/bin/env python import pwd user = 'all' if (cmp(user,'all')): try: print pwd.getpwnam(user) except KeyError: print "Tento uzivatel neexistuje" else: print "Tohle se tyka vsech uzivatelu"Odteďka chci mít všude login "all"
if egrep -q "^${1}:" /etc/passwd || [ "x$1" = xall ]; then echo OK else echo chyba fi
x=`echo "$1" | LC_CTYPE=C tr -cd '[a-zA-Z0-9_]'` if [ "x$1" != "x$x" ]; echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" # :-) exit 1 fi
Na druhou stranu, kdyby si s tím člověk trochu pohrál, mohl by v tom být i určitý záměr: mohl by se zadávat regulární výraz a hledaly by se procesy kteréhokoli uživatele, který mu vyhovuje (nebo co to měl ten skript dělat)… :-)
test "x$param" = "xvalue" ^ ^? Používá to i Autoconf, takže asi existoval systém, kde nefungoval
test
s prázdným parametrem, ale netuším jaký (PDP-11 ve škole nemáme test
. Nějak se mi ale nedaří vyrobit nějaký dostatečně úderný příklad ('test -e = -f
' i 'test -e = -e
' mi kupodivu fungují správně s interním i externím test
em).
$ uname -srv IRIX64 6.5 04091957 $ /usr/bin/test -n = blabla; echo $? 0Takže smysl to asi má pořád.
To se nám to krásně zjednodušilo. Až na ten fork, fork, exec a přitom je to úplně zbytečné.x=`echo "$1" | LC_CTYPE=C tr -cd '[a-zA-Z0-9_]'` if [ "x$1" != "x$x" ]; echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" # :-) exit 1 fi
case "$1" in *[^a-zA-Z0-9_]*) echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" #To je ekvivalent uvedeného, ale víc jak 20x rychlejší. Nechce hledat přesné omezení na username abych to napsal přesněji.exit 1;; esac
[[ "$1" == *[^a-zA-Z0-9_]* ]] && { echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" #exit 1 }
if ! id "$1" >&/dev/null && [ "x$1" != xall ] then echo "Zadali jste uzivatele, ktery neexistuje, tudiz nespustil zadne procesy" exit 1 fiP.S.: Ano, opravdu tam má být
&&
a ne ||
protože chyba nastane, když uživatel není a zároveň není zadáno all.
$ finger chroustal; echo $? finger: chroustal: no such user. 0
~$1
, ale když jsem zjistil, že pořadí expanzí je opačné, než bych potřeboval, opustil jsem tuto cestu a vrhnul se na parsování /etc/passwd
. Na druhou stranu, v praxi bych to asi stejně radši napsal v céčku…
Tiskni
Sdílej: