Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.
Byla vydána betaverze Fedora Linuxu 44 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 14. dubna.
Open source router Turris Omnia NG Wired je v prodeji. Jedná se o Turris Omnia NG bez Wi-Fi. Je připraven pro zamontování do racku.
Sníh roztál a roztávají i bastlíři. Žene se na nás celá řada konferencí a seminářů technického rázu. Zajímá vás, jaké? Pak se připojte k 60. Virtuální Bastlírně, tedy k veřejné diskuzi bastlířů, techniků, učitelů i vědců. Jako vždy přijde na přetřes spousta novinek ze světa hardwaru, softwaru i bizáru. Na začátek lze očekávat hardwarová témata, tedy například nový KiCAD 10, nové akcelerátory LLM s nízkou spotřebou, nejvíce fosforeskující
… více »chrootu můžete posoudit třeba s takovýmto programem:
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <string.h>
#define CHROOT_TEMP "chroot_temp"
int ls(char *dirname) {
DIR *dir = opendir(dirname);
struct dirent *dirent;
char tmp[4096];
struct stat st;
if (dir == NULL) return -1;
printf("Výpis adresáře '%s'\n", dirname);
while ((dirent = readdir(dir))) {
strcpy(tmp, dirname);
strcat(tmp, "/");
strcat(tmp, dirent->d_name);
lstat(tmp, &st);
if (S_ISDIR(st.st_mode)) printf("d"); else
if (S_ISLNK(st.st_mode)) printf("l"); else
if (S_ISBLK(st.st_mode)) printf("b"); else
if (S_ISCHR(st.st_mode)) printf("c"); else
if (S_ISFIFO(st.st_mode)) printf("p"); else
if (S_ISSOCK(st.st_mode)) printf("s"); else
if (S_ISREG(st.st_mode)) printf("-"); else printf("?");
if (st.st_mode & 00400) printf("r"); else printf("-");
if (st.st_mode & 00200) printf("w"); else printf("-");
if (st.st_mode & 04000)
if (st.st_mode & 00100)
printf("s");
else printf("S");
else
if (st.st_mode & 00100)
printf("x");
else
printf("-");
if (st.st_mode & 00040) printf("r"); else printf("-");
if (st.st_mode & 00020) printf("w"); else printf("-");
if (st.st_mode & 02000)
if (st.st_mode & 00010)
printf("s");
else
printf("S");
else
if (st.st_mode & 00010)
printf("x");
else
printf("-");
if (st.st_mode & 00004) printf("r"); else printf("-");
if (st.st_mode & 00002) printf("w"); else printf("-");
if (st.st_mode & 01000)
if (st.st_mode & 00001)
printf("t");
else
printf("T");
else
if (st.st_mode & 00001)
printf("x");
else
printf("-");
printf(" %2u %6u %6u %10lu %s", st.st_nlink, st.st_uid,
st.st_gid, st.st_size, dirent->d_name);
if (S_ISLNK(st.st_mode)) {
tmp[readlink(tmp, tmp, sizeof(tmp))] = 0;
printf(" -> %s", tmp);
}
printf("\n");
}
return 0;
}
int main() {
int d;
int i;
struct stat fi;
char buf[1024];
printf("Aktuální adresář: %s\n", getcwd(buf, sizeof(buf)));
ls(".");
if (stat("chroot_temp", &fi) < 0)
mkdir("chroot_temp", 0700); /* uděláme si podadresář */
else
if ((fi.st_mode & S_IFDIR) == 0) {
printf("Dočasný adresář '" CHROOT_TEMP "' nelze vytvořit.\n");
return 1;
}
d = open(".", O_RDONLY); /* vytvoříme si návratový bod */
chroot("chroot_temp"); /* zanoříme se do podadresáře */
fchdir(d); /* vyskočíme zpět a chroot pokazíme */
for (i = 0; i < 10000; i++) /* utečeme */
chdir("..");
chroot("."); /* a potvrdíme to */
printf("Aktuální adresář: %s\n", getcwd(buf, sizeof(buf)));
ls(".");
return 0;
}
Prográmek se přeloží a vyzkouší takto:
gcc -static -o chroot_test chroot_test.c chroot `pwd` /chroot_testFungovat to však bude jen se správcovskými právy - to je koneckonců napsáno i v manuálové stránce:
man 2 chroot.
O této problematice najdete více tady a ještě tady.
If the user is root or the program is setuid root, special care must be taken. The setuid function checks the effec- tive uid of the caller and if it is the superuser, all process related user ID's are set to uid. After this has occurred, it is impossible for the program to regain root privileges.
book:/# chroot /tmp/ /chroot_test Aktuální adresár: / Výpis adresáre '.' drwxr-xr-x 3 0 0 42 . drwxr-xr-x 3 0 0 42 .. -rwxr-xr-x 1 1000 100 502147 chroot_test drwx------ 2 0 0 6 chroot_temp Aktuální adresár: / Výpis adresáre '.' drwx------ 2 0 0 6 . drwx------ 2 0 0 6 ..
Tiskni
Sdílej: