Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.
Nightingale je open-source karaoke aplikace, která z jakékoliv písničky lokálního alba (včetně videí) dokáže oddělit vokály, získat text a vše přehrát se synchronizací na úrovni jednotlivých slov a hodnocením intonace. Pro separaci vokálů využívá UVR Karaoke model s Demucs od Mety, texty písní stahuje z lrclib.net (LRCLIB), případně extrahuje pomocí whisperX, který rovněž využívá k načasování slov. V případě audiosouborů aplikace na
… více »Po půl roce vývoje od vydání verze 49 bylo vydáno GNOME 50 s kódovým názvem Tokyo (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Článek na stránkách Fedora Magazinu informuje o vydání Fedora Asahi Remixu 43, tj. linuxové distribuce pro Apple Silicon vycházející z Fedora Linuxu 43.
Byl zveřejněn program konference Installfest 2026. Konference proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13. Vstup zdarma.
Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.
Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…
Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »Možná jsem se špatně rozhlížel a někdo mě vyvede z omylu, ale dle mého zjištění, nelze bez úpravy na CentOS nastartovat systém, který má šifrovanou root partition jinak, než v interaktivním režimu a vyťukat heslo pro odemčení root partition. Tak jsem to přemluvil a zde je „návod“ jak…
mdadm RAID a na něm LUKS(cryptsetup) a na něm LVM,
/boot je mimo a nešifrovaná (a může být i na flašce).
Klíč k odemčení je na na flašce (či jiném médiu).
Systém musí nastartovat „bezobslužně“.
Protože flaška s klíčem je trvale instalovaná, tak takto šifrovaná partition zajišťuje jen to, že disk samostatně lze následně použít kdekoliv, či jej reklamovat, bez jakéhokoliv zásahu a obav a lze při případné změně podmínek, tuto flasku po nastartovaní systému odebrat (nejlépe i s /boot-em) a zakopat na zahradě.
Každá distribuce to má trochu jinak, tento postup je platný pro CentOS 6+.
Vytvořil jsem tři patch-e (viz níže) a použil:
patch -u /usr/share/dracut/modules.d/90crypt/install 90crypt_install.patch patch -u /usr/share/dracut/modules.d/90crypt/parse-crypt.sh 90crypt_parse-crypt.sh.patch patch -u /usr/share/dracut/modules.d/90crypt/cryptroot-ask.sh 90crypt_cryptroot-ask.sh.patch
Připravil nový initrd(, na konci je doplněno „-modified“). Je třeba vyřadit modul plymouth aby se použil modul crypt.
dracut -f -o plymouth /boot/initramfs-$(uname -r)-modified.img $(uname -r)
V /etc/grub.conf (linka na /boot/grub/grub.conf) vsunul novou položku s tímto novým initrd.
Patch-e přidávájí možnost k parametru předřadit i cestu ke klíči uvozenou rd_LUKS_UUID=cryptkey- a ukončenou posledním- před luks=.
Původní a stále funkční zápis <code>rd_LUKS_UUID=luks-<UuidOfLuksBlockDevice></code> lze rozšířit na:
rd_LUKS_UUID=cryptkey-<sleep sec>:<uuidOfPartitionWithKey>:<filesystem>:<FileNameKey>-luks-<UuidOfLuksBlockDevice>pro zadání klíče ze souboru.
Nebo
rd_LUKS_UUID=cryptkey-<sleep sec>:/dev/sd<X>:<offset>:<size>-luks-<UuidOfLuksBlockDevice>pro zadání klíče přečteného přímo ze zařízení z adresy <offset> a o délce <size>.
Vzhledem k tomu „jak“ systém startuje, může se stát, že zařízení nebude ještě připraveno, proto je možnost zadat <sleep sec>.
Když uložíme klíč na zařízení dle uuid ddddddddd-aaaa-bbbb-bbbb-aaaaaaaaaaaa s ext4 a klíč bude v cestě /private/mykey, tak parametr bude vypadat takto (2 sec prodleva):
rd_LUKS_UUID=cryptkey-2:/dev/disk/by-uuid/ddddddddd-aaaa-bbbb-bbbb-aaaaaaaaaaaa:ext4:/private/mykey-luks-ffffffff-eeee-4444-aaaa-333333333333(
luks-ffffffff-eeee-4444-aaaa-333333333333 je to odemykané zařízení, tedy žádná změna - původní hodnota)
Nebo pokud klíč délky 2048 zapíšeme na pozici 1024 (dd of=/dev/sdX if=mykeyfile bs=1 seek=1024), tak paramter bude vypadat takto (1 sec prodleva):
rd_LUKS_UUID=cryptkey-1:/dev/sdX:1024:2048-luks-ffffffff-eeee-4444-aaaa-333333333333
¡BINGO! těmito patch-i, touto úpravou parametru jádra a použití nového initrd si systém sám odemkne podkladový šifrovaný „RAID“, a z použitých disků bez flašky nikdo nic nepřečte.
Bo zde nejdou vložit přílohy (nebo mi zas něco uniklo), tak jednotlivé patch-e zde inline.
90crypt_install.patch:
--- /usr/share/dracut/modules.d/90crypt/install 2013-02-22 06:03:43.000000000 +0100 +++ usr/share/dracut/modules.d.patch.cryptsetup/90crypt/install 2013-09-29 17:13:42.000000000 +0200 @@ -5,3 +5,5 @@ inst_hook pre-pivot 30 "$moddir/crypt-cleanup.sh" inst_hook pre-pivot 31 "$moddir/crypt-cleanup.sh" inst /etc/crypttab +inst dd +inst rmdir90crypt_parse-crypt.sh.patch:
--- /usr/share/dracut/modules.d/90crypt/parse-crypt.sh 2013-02-22 06:03:45.000000000 +0100
+++ usr/share/dracut/modules.d.patch.cryptsetup/90crypt/parse-crypt.sh 2013-09-29 16:01:09.000000000 +0200
@@ -11,8 +11,15 @@
if [ -n "$LUKS" ]; then
echo '. /lib/dracut-lib.sh' > /emergency/90-crypt.sh
for luksid in $LUKS; do
- luksid=${luksid##luks-}
- printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", ENV{ID_FS_UUID}=="%s*", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' $luksid \
+ cryptkey=${luksid%luks-*}
+ cryptkey=${cryptkey##*cryptkey-}
+ cryptkey=${cryptkey%-*}
+ if [ -z "$cryptkey" ]; then
+ $cryptkey=-
+ fi
+ luksid=${luksid##*-luks-}
+ luksid=${luksid##*luks-}
+ printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", ENV{ID_FS_UUID}=="%s*", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID} '$cryptkey'"\n' $luksid \
>> /etc/udev/rules.d/70-luks.rules
printf '[ -e /dev/disk/by-uuid/*%s* ] || exit 1 \n' $luksid >> /initqueue-finished/crypt.sh
printf '[ -e /dev/disk/by-uuid/*%s* ] || warn "crypto LUKS UUID "%s" not found" \n' $luksid $luksid >> /emergency/90-crypt.sh
90crypt_cryptroot-ask.sh.patch: (upraveno 2013-09-30 19:18 v duchu vlastního komentáře)
--- /usr/share/dracut/modules.d/90crypt/cryptroot-ask.sh 2013-02-22 06:03:43.000000000 +0100
+++ usr/share/dracut/modules.d.patch.cryptsetup/90crypt/cryptroot-ask.sh 2013-09-30 18:58:21.976944456 +0200
@@ -51,15 +51,65 @@
unset name dev rest
fi
+#parse key file params
+par0='-'
+par0=${3%%:*}
+par1=${3#*:}
+par2=${par1#*:}
+par1=${par1%%:*}
+par2=${par2%%:*}
+par3=${3##*:}
+
+if [ "$par2" = "0" -o "$((${par2}+0))" -gt "0" ]; then
+ par2num='1'
+else
+ par2num='0'
+fi
+
info "luksOpen $device $luksname"
# flock against other interactive activities
-{ flock -s 9;
- echo -n "$device ($luksname) is password protected"
- cryptsetup luksOpen -T1 $1 $luksname
+{ flock -s 9;
+ #key file params exist or not
+ if [ "$par0" != "-" ]; then
+ #use key file
+ echo "$device ($luksname) is key file protected"
+ sleep $((${par0}+0))
+ if [ "$par2num" = "1" ]; then
+ echo 'Use raw data as key file...'
+ dd if=$par1 bs=1 skip=$par2 count=$par3 | cryptsetup luksOpen --key-file - $1 $luksname
+ if [ $? -ne 0 ]; then
+ echo "Error when using key file, try password..."
+ cryptsetup luksOpen -T3 $1 $luksname
+ fi
+ else
+ echo 'Mount and use the key file...'
+ tmfile='/tmp/cryptroot-keyfile-mnt'
+ cryptsetup_open='0'
+ mkdir "$tmfile"
+ if [ $? -eq 0 ]; then
+ mount -r -t $par2 "$par1" "$tmfile"
+ if [ $? -eq 0 ]; then
+ cryptsetup luksOpen --key-file "${tmfile}${par3}" $1 $luksname
+ if [ $? -eq 0 ]; then
+ cryptsetup_open='1'
+ fi
+ umount "$tmfile"
+ fi
+ rmdir "$tmfile"
+ fi
+ if [ "$cryptsetup_open" = "0" ]; then
+ echo "Error when using key file, try password..."
+ cryptsetup luksOpen -T3 $1 $luksname
+ fi
+ fi
+ else
+ echo "$device ($luksname) is password protected"
+ cryptsetup luksOpen -T3 $1 $luksname
+ fi
} 9>/.console.lock
# mark device as asked
>> /tmp/cryptroot-asked-$2
exit 0
-# vim:ts=8:sw=4:sts=4:et
\ No newline at end of file
+# vim:ts=8:sw=4:sts=4:et
Tiskni
Sdílej:
.
Má to výhodu, že když si dáš fotku své nahé Rúty do domovské složky Roota , tak ani v případě RMA disku ji nikdo neuvidí (nebo do DB ve VAR). Prostě celý disk je šifrovaný, ale nepotřebuješ zadávat heslo (neopakuju se
)…
V tomto případě je to tak, že se lze připojit jedním klíčem a jedním hnusným 32 znaků dlouhým heslem (když můžeš a nemusíš ho zadávat proč ne…) a oba jsou samozřejmě jinde „schované“.
V Grub-u jsou dvě položky v menu, takže lze zvolit položku s interaktivním zadáním hesla.
Ale pomohl jsi si mi uvědomit, že i když bylo cílem, aby při zklamání přihlášení klíčem se to zeptalo na heslo, tak v případě zadání klíče ze souboru, tomu tak není, protože se to zeptá jen v případě když zklame odemčení klíčem, ale ne v případě pokud zklame mkdir či mount (tedy třeba i neexistence flašky) - musím to opravit, i když mám ten 2. případ (klíč přímo ze zařízeni), kde to funguje správně
.
To tam určitě nebude, ale najdou se recepty na pečení chleba s tajnou přísadou….
Nicméně „proč ne, když můžu“, a navíc Arch a Bubuntu to snad umí out-of-box, tak jsem to musel naučit i CentOS (a navíc jsem se musel zamyslet „jak bez bashismů“, což neuškodí) 