Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.
Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.
Po šestiletém úsilí byla z jádra Linux odstraněna funkce strncpy(). Všechna předchozí volání této funkce byla převedena na bezpečnější alternativy.
Byla vydána nová verze 261 správce systému a služeb systemd (Wikipedie, GitHub). Z novinek lze vypíchnout nový subsystém IMDS (Cloud "Instance Metadata Service"), nový příkaz storagectl nebo novou komponentu systemd-sysinstall.
Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).
Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].
Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.
V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem
… více »V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
useradd -u 555 -g ulohy -M -d /tmp/ -s /sbin/nologin uloznik passwd -d ulozniktest.c
#include cstdlib
#include iostream
#include string
// http://yolinux.com/TUTORIALS/ForkExecProcesses.html, man execve
using namespace std;
main(){
// nove prostredi
char *env[]={"UID=555","USER=uloznik","LANG=en_US.UTF-8","PATH=/usr/bin:/bin",(char *) 0};
char *Env_argv[] = { "./ko.sh",NULL, (char *) 0 };
int ret;
ret = execve (Env_argv[0], Env_argv, env);
cout << "Failure! execve error code=" << ret << endl;
}
ko.sh#!/bin/bash touch novy_soubor echo $USER groupsjenže skript se sice spustí v novém prostředí, ale s mými pravy, což nechci
$ ./test uloznik maro users $ ll novy_soubor test -rw-r--r-- 1 maro maro 0 Jan 11 13:04 novy_soubor -rwsr-xr-x 1 uloznik maro 6787 Jan 11 12:48 testCo dělám špatně? Potřebuju, aby nový soubor (když už něco zkompiluji) měl práva jako "uloznik".
LABEL=/ / ext3 defaults 1 1
euid=geteuid(); setreuid(euid,euid);Takhle mi to funguje...
$ cat ko.sh
#!/bin/bash
touch novy_soubor
echo "user $USER"
echo "uid $UID"
echo "euid $EUID"
groups
$ cat test.c
#include cstdlib
#include iostream
#include string
// http://yolinux.com/TUTORIALS/ForkExecProcesses.html
using namespace std;
main(){
//"EUID=555","UID=555","USER=uloznik",
char *env[]={"LANG=en_US.UTF-8","PATH=/usr/bin:/bin",(char *) 0};
char *Env_argv[] = { "./ko.sh",NULL, (char *) 0 };
int ret,euid,egid;
euid = geteuid();
setreuid(euid,euid);
egid = getegid();
setegid(egid);
ret = execve (Env_argv[0], Env_argv, env);
cout << "Failure! execve error code=" << ret << endl;
}
# chown uloznik:ulohy /tmp/test
# chmod gu+s /tmp/test
$ ./test
user
uid 555
euid 555
maro apache users
$ ll test novy_soubor
-rw-r--r-- 1 uloznik maro 0 Jan 11 19:09 novy_soubor
-rwsr-sr-x 1 uloznik ulohy 7160 Jan 11 19:08 test
Tak mě napadá, proč teoreticky nestačí to EUID nastavit v novém prostředí?
char *env[]={"UID=555","EUID=555","USER=uloznik","LANG=en_US.UTF-8","PATH=/usr/bin:/bin",(char *) 0};Zkoušel jsem tuto kombinaci, ale novy_soubor ma porad skupinu "maro"
setreuid(euid,euid); egid = getegid();co ted?
setregid bude ta spravna volba. Podobne jako v predchozim to bude chtit (asi -nezkousel jsem to) udelat toto:
gid=getegid(); setregid(gid,gid);Samotny
setegid(egid) Vam nepomuze - nastavite efektivni gid na efektivni gid - tedy nic jste neudelal. Potrebujete ovsem nastavit realne na efektivni...
Tiskni
Sdílej: