Ezoterický programovací jazyk Brainfuck (Wikipedie) slaví 30 let. Urban Müller nahrál první implementaci tohoto jazyka na Aminet 9. června 1993.
Společnost Apple na konferenci WWDC23 představila Game Porting Toolkit. Společnost CodeWeavers informuje, tento toolkit vychází ze zdrojových kódů jejího CrossOveru, tj. komerčního Wine.
Byla vydána květnová aktualizace aneb nová verze 1.79 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.79 vyšlo také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Jak to bude s podporou rastrového grafického formátu JPEG XL ve webových prohlížečích? Google ji nedávno z Chrome a Chromia odstranil (#1178058#c84). Jednou z novinek beta verze Safari 17 je ale právě podpora JPEG XL. Vráti se JPEG XL do Chrome a Chromia (#1451807)? Dění kolem JPEG XL lze sledovat například na r/jpegxl.
Byla vydána nová stabilní verze 6.1 (aktuálně 6.1.3035.51) webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 114. Přehled novinek i s náhledy v příspěvku na blogu. Nový Vivaldi se pro Bing tváří jako Microsoft Edge (upravený User-Agent) a díky tomu v něm funguje Bing Chat. Vylepšeny byly Pracovní prostory (Workspaces). Podrobný přehled v Changelogu.
Linuxová distribuce ArchLabs Linux po šesti letech vývoje končí. Dobbie to zabalil.
David Tschumperlé v obšírném článku se spoustou náhledů shrnuje vývoj multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie) za poslední rok a půl.
Vývojáři postmarketOS vydali verzi 23.06 tohoto před šesti lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell, Phosh, Plasma a Sxmo. Aktuálně podporovaných zařízení je 30.
Byla vydána distribuce openSUSE Leap verze 15.5 (poznámky k vydání). Jde o konzervativní distribuci odpovídající komerčnímu SUSE Linux Enterprise 15, nyní Service Pack 5. Mělo jít o poslední aktualizaci Leap v současné podobě před přechodem na Adaptable Linux Platform s „neměnným“ základem, ale padlo rozhodnutí, že v roce 2024 ještě vyjde Leap 15.6 s podporou do konce roku 2025.
Alyssa Rosenzweig v příspěvku na blogu oznámila, že Asahi Linux už zvládá OpenGL 3.1. Dokončuje se podpora OpenGL ES 3.1. Dalším krokem bude Vulkan 1.0.
/bin/
(např. /bin/cp
, /bin/ls
) a z /usr/bin
(/usr/bin/vim
) a potřebné sdílené knihovny (zjistí se pomocí ldd binarka
, určitě to budou minimálně /lib/ld-linux.so.2
, libc.so.6
a linux-gate.so.1
).
Na Debian like distrech je možné používat balík jailer pro automatické kopírování potřebných souborů (definicí balíků, které mají v chrootu chodit).
tree /home/chroot/ . |-- dev | `-- null |-- etc | |-- group | `-- passwd |-- home |-- lib | |-- ld-2.3.6.so | |-- ld-linux-x86-64.so.2 -> ld-2.3.6.so | |-- libc-2.3.6.so | |-- libc.so.6 -> libc-2.3.6.so | |-- libcom_err.so.2 -> libcom_err.so.2.1 | |-- libcom_err.so.2.1 | |-- libcrypt-2.3.6.so | |-- libcrypt.so.1 -> libcrypt-2.3.6.so | |-- libdl-2.3.6.so | |-- libdl.so.2 -> libdl-2.3.6.so | |-- libnsl-2.3.6.so | |-- libnsl.so.1 -> libnsl-2.3.6.so | |-- libnss_compat-2.3.6.so | |-- libnss_compat.so.2 -> libnss_compat-2.3.6.so | |-- libnss_dns-2.3.6.so | |-- libnss_dns.so.2 -> libnss_dns-2.3.6.so | |-- libnss_files-2.3.6.so | |-- libnss_files.so.2 -> libnss_files-2.3.6.so | |-- libnss_hesiod-2.3.6.so | |-- libnss_hesiod.so.2 -> libnss_hesiod-2.3.6.so | |-- libnss_nis-2.3.6.so | |-- libnss_nis.so.2 -> libnss_nis-2.3.6.so | |-- libnss_nisplus-2.3.6.so | |-- libnss_nisplus.so.2 -> libnss_nisplus-2.3.6.so | |-- libresolv-2.3.6.so | |-- libresolv.so.2 -> libresolv-2.3.6.so | |-- libutil-2.3.6.so | `-- libutil.so.1 -> libutil-2.3.6.so |-- lib64 -> lib `-- usr |-- bin | |-- scp | `-- sftp |-- lib | |-- libcrypt.a | |-- libcrypt.so -> /lib/libcrypt.so.1 | |-- libcrypto++.a -> libcrypto++5.2.a | |-- libcrypto++.la -> libcrypto++5.2.la | |-- libcrypto++.so -> libcrypto++5.2.so | |-- libcrypto++5.2.a | |-- libcrypto++5.2.la | |-- libcrypto++5.2.so -> libcrypto++5.2.so.0.0.0 | |-- libcrypto++5.2.so.0 -> libcrypto++5.2.so.0.0.0 | |-- libcrypto++5.2.so.0.0.0 | |-- libcrypto.a | |-- libcrypto.so -> libcrypto.so.0.9.8 | |-- libcrypto.so.0.9.8 | |-- libgcrypt.so.11 -> libgcrypt.so.11.2.2 | |-- libgcrypt.so.11.2.2 | |-- libgssapi_krb5.so.2 -> libgssapi_krb5.so.2.2 | |-- libgssapi_krb5.so.2.2 | |-- libk5crypto.so.3 -> libk5crypto.so.3.0 | |-- libk5crypto.so.3.0 | |-- libkrb5.so.3 -> libkrb5.so.3.2 | |-- libkrb5.so.3.2 | |-- libkrb5support.so.0 -> libkrb5support.so.0.0 | |-- libkrb5support.so.0.0 | |-- libnss_compat.so -> /lib/libnss_compat.so.2 | |-- libnss_dns.so -> /lib/libnss_dns.so.2 | |-- libnss_files.so -> /lib/libnss_files.so.2 | |-- libnss_hesiod.so -> /lib/libnss_hesiod.so.2 | |-- libnss_nis.so -> /lib/libnss_nis.so.2 | |-- libnss_nisplus.so -> /lib/libnss_nisplus.so.2 | |-- libz.so -> libz.so.1 | |-- libz.so.1 -> libz.so.1.2.3 | |-- libz.so.1.2.3 | |-- openssh | | |-- sftp-server | | `-- ssh-keysign | |-- rssh | | `-- rssh_chroot_helper | `-- sftp-server -> openssh/sftp-server |-- lib64 -> lib `-- libexec |-- openssh | `-- sftp-server -> /usr/lib/openssh/sftp-server `-- rssh_chroot_helper -> /usr/lib/rssh/rssh_chroot_helper
chsh
) a postarať sa o to, aby fungoval. To znamená pozrieť, že existuje v /etc/shells
a že sa s ním dá prihlásiť lokálne. A až potom sa staraj o nejaké putty.
Restricted shell nevyhovuje?Changing directories with the cd builtin. To je teda dost nepoužitelné. Chroot přeci není zákaz vstupu do podadresářů. Navíc to neumožňuje ani použít ls.
~ $ rbash
~ $ ls
rbash: /bin/ls: restricted: cannot specify `/' in command names
~ $
Zato příkazy typu vi /etc/fstab
fungují. Tak k čemu to je?
Chroot přeci není zákaz vstupu do podadresářů.V pôvodnej otázke "jde mi jen o to, ze kdyz se prihlasi, nemusi zakonite brouzdat po cele masine". Pôvodná otázka vlastne bola: "ako urobiť chroot bez toho, aby som musel robiť chroot". IMHO, rbash je k tomu dosť blízko - a málokto o ňom vie. Preto som len navrhol zvážiť ho.
jak nastavit prihlasenemu uzivateli pres ssh chroot do sve slozky v home. Nechci to resit jailem ani nicim slozitym, jde mi jen o to, ze kdyz se prihlasi, nemusi zakonite brouzdat po cele masineTo, co chcete, asi nebude
chroot
. chroot
znamená, že se z nějakého adresáře stane kořen souborového systému, takže to zabrání uživateli nejen brouzdat někde jinde, ale třeba i spouštět odjinud programy. Takže pokud uživateli nedáte do domácího adresáře žádné programy, nebude moci udělat nic (pokud mu tam nedáte ani shell, ani chroot neuděláte).
Pravděpodobně spíš chcete správně nastavit přístupová práva (pak máte jistotu, že se nedostane nikam, kam nemá práva), nebo omezený shell -- ten může fungovat dvěma způsoby: buď jím vytvoříte uzavřený systém, ve kterém je pouze omezené množství příkazů, pomocí kterých se z omezení shellu nejde vymanit. Nebo v omezeném shellu umožníte třeba spustit plný shell (ale stačí i více nevinné programy -- třeba v běžném GUI programu můžete přes dialog pro otevření souboru manipulovat se souborovým systémem), pak ten omezený má význam jenom pro usnadnění práce uživatele -- bude mít míň možností a ovládání bude jednodušší. Ale když bude chtít, z omezení se ven dostane.
jak se da udelat abych mel jistotu ze nikde normalni user nic neprovede?To je snad u každýho OS defaultně že user nic systémovýho neposere! To nemusíš nic nastavovat. Windowsy jsou divný, ty snad nepoužiješ, a Linux - jak kterej, někdy je to zprasený.
pokud nějaký server (typicky web server) běží pod jedním uživatelem, ale musí obsluhovat data a skripty více uživatelů.udělat přes server.cz/~uzivatel?
session required pam_chroot.so(musem jsem doinstalovat "libpam-chroot" balíček) 2) v /etc/ssh/sshd_config musí být (pro jistotu)
UsePAM yes3) upravil jsem si /etc/security/chroot.conf
host /home/chroot teto /home/chroot4) vytvořil jsem si CHROOT environment (viz třeba http://www.howtoforge.com/chrooted_ssh_howto_debian_p2 ) v /home/chroot !!! pozor na práva pseudo-souborů v $CHROOT/dev složce !!! 5) vytvořil/přesunul jsem domovské adresáře už existujících uživatelů, kteří mají být v chrootu
root@gate1:/home# ls -l /home lrwxrwxrwx 1 root root 16 2008-12-23 19:35 host -> chroot/home/host drwxr-xr-x 11 root root 1024 2008-12-23 19:43 chroot lrwxrwxrwx 1 root root 16 2008-12-23 19:36 teto -> chroot/home/teto6) do "chroot" prostředí jsem si dokopíroval další "potřebné" aplikace, jako třeba "scp", a přes příkaz "ldd /cesta/co" jsem zjistil potřebné knihovny a ty pak do $CHROOT/lib resp. $CHROOT/usr/lib dokopíroval (pozor na symlinky!) 7) takže nakonec "adresářová" struktura vypadá nějak takto:
. ./bin ./bin/bash ./bin/ls ./bin/mkdir ./bin/mv ./bin/ping ./bin/pwd ./bin/rm ./bin/sh ./dev ./dev/null #pozor na atributy! ./dev/zero ./etc ./etc/group #pouze "root", "users", "host" a "teto" ./etc/hosts ./etc/login.defs ./etc/mc ./etc/mc/mc.ext ./etc/mc/mc.lib ./etc/mc/mc.menu ./etc/pam.d ./etc/pam.d/atd ./etc/pam.d/... ... ./etc/pam.d/sudo ./etc/passwd # pouze uživatelé "root", "host" a "teto" ./etc/resolv.conf ./etc/security ./etc/security/access.conf ./etc/security/group.conf ./etc/security/chroot.conf ./etc/security/limits.conf ./etc/security/pam_env.conf ./etc/security/time.conf ./home ./home/host ./home/host/.bash_history ./home/host/.bash_logout ./home/host/.bash_profile ./home/host/.bashrc ./home/host/.mc ./home/host/.mc/history ./home/host/.mc/ini ./home/host/.mc/Tree ./home/teto ./home/teto/.bash_history ./home/teto/.bash_logout ./home/teto/.bash_profile ./home/teto/.bashrc ./home/teto/.ssh ./home/teto/.ssh/authorized_keys ./home/teto/.ssh/id_rsa ./home/teto/.ssh/id_rsa.pub ./lib ./lib64 #symlink na lib ./lib/ld-2.3.6.so ./lib/ld-linux.so.2 ./lib/ld-linux-x86-64.so.2 ./lib/libacl.so.1 ./lib/libacl.so.1.1.0 ./lib/libattr.so.1 ./lib/libattr.so.1.1.0 ./lib/libc-2.3.6.so ./lib/libcap.so.1 ./lib/libcom_err.so.2 ./lib/libcom_err.so.2.1 ./lib/libcrypt-2.3.6.so ./lib/libcrypt.so.1 ./lib/libc.so.6 ./lib/libdl-2.3.6.so ./lib/libdl.so.2 ./lib/libm-2.3.6.so ./lib/libm.so.6 ./lib/libncurses.so.5 ./lib/libncurses.so.5.5 ./lib/libnsl-2.3.6.so ./lib/libnsl.so.1 ./lib/libnss_compat.so.2 ./lib/libnss_dns.so.2 ./lib/libnss_files.so.2 ./lib/libpthread-2.3.6.so ./lib/libpthread.so.0 ./lib/libresolv-2.3.6.so ./lib/libresolv.so.2 ./lib/librt-2.3.6.so ./lib/librt.so.1 ./lib/libselinux.so.1 ./lib/libsepol.so.1 ./lib/libslang.so.2 ./lib/libslang.so.2.0.6 ./lib/libutil-2.3.6.so ./lib/libutil.so.1 ./lib/security ./lib/security/pam_access.so ./lib/security/... ... ./lib/security/pam_xauth.so ./tmp ./usr ./usr/bin ./usr/bin/dircolors ./usr/bin/groups ./usr/bin/id ./usr/bin/mc ./usr/bin/mcmfmt ./usr/bin/mcview ./usr/bin/mcview-debian ./usr/bin/scp ./usr/bin/ssh ./usr/lib ./usr/lib ./usr/lib64 ./usr/lib/libcrypto.so.0.9.8 ./usr/lib/libglib-2.0.so.0 ./usr/lib/libglib-2.0.so.0.1200.4 ./usr/lib/libgpm.so.1 ./usr/lib/libgpm.so.1.19.6 ./usr/lib/libgssapi_krb5.so.2 ./usr/lib/libgssapi_krb5.so.2.2 ./usr/lib/libk5crypto.so.3 ./usr/lib/libk5crypto.so.3.0 ./usr/lib/libkrb5.so.3 ./usr/lib/libkrb5.so.3.2 ./usr/lib/libkrb5support.so.0 ./usr/lib/libkrb5support.so.0.0 ./usr/lib/libz.so.1 ./usr/lib/libz.so.1.2.3 ./usr/share/mc ./usr/share/mc/... ... ./usr/share/mc/syntax/xml.syntax7) hotovo!
Výhoda toho řešení přes
ChrootDirectory /home/%u
a hlavně
ForceCommand internal-sftp
by měla být právě v tom, že nejsou třeba ty obstrukce s tvorbou a úrdžbou chroot prostředí. Mělo by to ale fungovat jen pro SFTP, tj. ne SCP, rsync...
Tiskni
Sdílej: