Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.
Cheat Engine (Wikipedie) je s verzí 7.7 k dispozici už také pro Linux. Jedná se o proprietární skener/debugger paměti používaný především k cheatování v počítačových hrách.
Vláda USA nařídila společnosti Anthropic pozastavit přístup k modelům Fable 5 a Mythos 5 pro všechny cizince, včetně zaměstnanců Anthropicu.
Společnost Murena představila (YouTube) novou verzi 4.0 mobilního operačního systému /e/OS (Wikipedie) založeného na Androidu a LineageOS bez aplikací a služeb od Googlu.
V Arch User Repository (AUR) bylo kompromitováno přes 400 opomíjených balíčků (jejich seznam). Útočník do nich začlenil škodlivý npm balíček atomic-lockfile, který krade citlivá data uživatelů. Publikována byla předběžná analýza spouštěného malwaru deps.
Homebrew, správce balíčků nejen pro macOS, byl vydán ve verzi 6.0.0 (seznam změn). Hlavními novinkami jsou bezpečnostní mechanismus tap trust kvůli důvěryhodnosti závislostí, vylepšení sandboxingu na Linuxu, interní JSON API nebo zlepšení výkonu.
Byla nalezena a 9. června opravena kritická zranitelnost ve FreeBSD v Kernel TLS (KTLS). Pojmenována byla Bumsrakete (FreeBSD-SA-26:26.ktls, CVE-2026-45257). Lokální neprivilegovaný uživatel může přepisovat soubory, ke kterým má právo pouze pro čtení. Přepsáním setuid binárky a jejím spuštěním může získat roota. Na všech verzích od verze 13.0 vydané v dubnu 2021.
Vývojáři open source operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, se na síti 𝕏 pochlubili, že ReactOS zvládne počítačovou hru Half-Life.
Byla vydána nová verze 4.8 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.
Apple container dospěl do verze 1.0.0. Jedná se o open source nástroj pro spouštění linuxových kontejnerů na macOS postavený nad containerization. Napsaný je v programovacím jazyce Swift a optimalizovaný pro Apple silicon.
#!/bin/sh
BINDIR=/usr/local/bin
SYSDIR=/usr/local/lib/xe
BIODIR=${SYSDIR}/bios
if [ `whoami` == root ]; then # must be logged as root
for i in $SYSDIR $BIODIR; do
if [ ! -d $i ]; then # if dir does not exist, create
mkdir $i >& /dev/null
if [ $? != 0 ]; then
echo unable to create $i
exit
fi
fi
done
cp -rf xe modules rc manual.html $SYSDIR >& /dev/null # Copy files
if [ $? != 0 ]; then
echo unable copy files to $SYSDIR
exit
fi
ln -sf $SYSDIR/xe $BINDIR/xe # link binary to bin path
if [ $? != 0 ]; then
echo unable to link $BINDIR/xe
exit
fi
echo xe successfully installed # done
else
echo Must be logged on as root.
fi
I přesto, že sem přihlášenej jako root, tak mi to hlásí že root nejsem
, takže skript vůbec neproběhne a nahlásí to unexpected error na řádku 37. což je poslední řádek. Tečka tam asi nakonci nepatří co?
Řešení dotazu:
Porovnávání na rovnost u standardního příkazu test (jehož synonymem je levá hranatá závorka) se provádí jedním rovnítkem. Operátor '==' je specialita konstrukce '[[ ... ]]' v bashi. Takže buď
#!/bin/sh ... if [ `whoami` = root ]; ...nebo
#!/bin/bash ... if [[ `whoami` == root ]]; ...
Osobně bych ale spíš číselně porovnával $UID nebo `id -u` na nulu.
Koukám, že je tam toho víc. Na řádku 11 máte další bashismus: přesměrování pomocí >& v normálním Bourne shellu nefunguje (a i dokumentace bashe preferuje zápis &>, aby se to nepletlo s připojením k deskriptoru).
Zápis
příkaz if [ $? != 0 ]; then
sice funguje, ale je zbytečně nepraktický - téhož dosáhnete pomocí
if ! příkaz; then
A pokud skript končí chybou, měl by vrátit nenulovou návratovou hodnotu, tj. např. 'exit 1' místo 'exit'.
Tečka tam asi nakonci nepatří co?
Jedinou tečku vidím na konci řádku 35 a ta určitě ničemu nevadí.
.
Tiskni
Sdílej: