Před týdnem zranitelnost Copy Fail. Dnes zranitelnost Dirty Frag. Běžný uživatel může na Linuxu získat práva roota (lokální eskalaci práv). Na většině linuxových distribucí vydaných od roku 2017. Aktuálně bez oficiální záplaty a CVE čísla [oss-security mailing list].
Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.
Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.
Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.
Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu
… více »Společnost Valve zveřejnila (GitLab) nákresy ovladače Steam Controller a puku. Pro všechny, kdo by jej chtěli hacknout nebo modifikovat, případně pro ně navrhnout nějaké příslušenství. Pod licencí Creative Commons (CC BY-NC-SA 4.0).
PHP bylo dlouho distribuováno pod vlastní licencí – s výjimkou částí spadajících pod licenci Zend Engine. Po několikaleté práci se povedlo PHP přelicencovat na 3bodovou licenci BSD.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube). Na Linuxu je vedle Qt frontendu nově k dispozici také GTK4 / libadwaita frontend.
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 3.1 specifikace OpenCL (Open Computing Language). OpenCL je průmyslový standard pro paralelní programování heterogenních počítačových systémů.
ps, který slouží k výpisu (stavu) běžících procesů, a program kill sloužící k posílání signálů procesům.ps je příkaz sloužící k výpisu informací o právě běžících procesech v systému. Název vychází z anglického process status, což znamená stav procesu.
Spustíte-li ps jen tak (bez argumentů), vypíše pouze procesy, které mají stejný ovládací terminál jako daná instance ps a zároveň stejné efektivní UID.
$ ps PID TTY TIME CMD 6091 pts/5 00:00:06 bash 29766 pts/5 00:00:00 ps
S přepínačem -a vypíše všechny procesy, které mají řídící terminál. Přepínač -A potom vypíše procesy úplně všechny, zrovna tak jako jeho ekvivalent -e. Podrobnější seznam procesů (s více informacemi) program vypíše, předáte-li mu přepínač -f. Pokud je vám i tohle málo, zkuste přidat ještě -l.
# vypíše detailní seznam všech procesů ps -ef # ještě detailnější seznam… ps -elf
Chcete-li vypsat seznam procesů pro dané skupiny či uživatele, potom vám poslouží přepínače -G a -U.
# vypíše seznam procesů skupiny „home“ ps -G home # vypíše detailní seznam procesů uživatele „dave“ ps -flU dave
ps umožňuje sestavení vlastního formátu výpisu informací pomocí přepínače -o, tak to zkusme:
# vypíše seznam všech procesů a od každého procesu # UID, PID, využití RAM (RSS) a název příkazu (CMD) ps -Ao "uid pid rss cmd" # pokud se vám nelíbí hlavička, kterou ps na začátku # vypisuje, zadejte vlastní popisky ps -Ao "uid=Uživatel pid=Proces rss=RAM cmd=Příkaz" # pokud váš popisek obsahuje mezery, zadejte -o vícekrát ps -A -o "user=Uživatelské jméno" -o pid="Číslo procesu (PID)"
Kompletní seznam informací, které si můžete nechat vypsat, a jejich zkratky naleznete v manuálu. Můžete si nechat vypsat pouze zadaná UID:
ps -fl 1 2 F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 1 0 0 80 0 – 974 ? 03:35 ? 0:00 init [3] 1 S root 2 0 0 80 0 – 0 ? 03:35 ? 0:00 [kthreadd]
Doteď jsem popisoval verzi dle standardu, ovšem na GNU/Linuxu se obvykle setkáte s verzí z balíku procps a BSD systémy mají také vlastní implementaci. Tyto implementace obsahují ještě další vymoženosti. Například podporují několik „přepínačů“, které nezačínají znakem „-“.
# vypíše seznam všech procesů (s více informacemi než -ef, ale méně než -el) ps axu # zajistí, aby se vypsal kompletní název příkazu i s argumenty ps axuww # přepínač „f“ slouží s výpisu stromu procesů ps faxu
Příkaz ps se často používá v kombinaci s programem grep. Tato kombinace totiž umožňuje rychle zjistit, zda na systému běží určitý proces.
ps ax | grep lighttpd
Podobný příkaz na Windows je tasklist, případně v PowerShellu je přímo alias ps, který volá Get-Process.
kill je nástroj sloužící k poslání signálu daným PID. Název programu je anglické slovo, které znamená „zabít“ (proces). V tomto kontextu je to myšleno jako „nuceně ukončit“ proces, což dělá pouze jeden ze signálů, které kill může vyslat.
Signály jsou prostředek k jednoduché komunikaci mezi procesy na unixových systémech. Každému procesu lze poslat signál, přičemž máme-li dostatečné oprávnění, proces na něj zareaguje. Pomocí signálů lze proces ukončit, pozastavit, přerušit, atd. Ovšem signál může vyvolat i jinou akci – programátoři mají možnost signály ve svých programech obsluhovat nebo ignorovat. Například když programu přijde signál 15 (tj. TERM – ukončit), tak lze naprogramovat to, aby se nejdříve uložila načatá práce a teprve potom se program ukončil.
Jak jsem naznačil, signály mají přiřazená čísla i názvy. Signály jsme si kdysi pojmenovali nejen proto, abychom si nemuseli pamatovat čísla, ale také proto, že čísla se na různých systémech mohou lišit. Vyjmenujeme a popíšeme si několik používanějších signálů.
| Číslo | Název | Zjednodušený popis |
| 1 | HUP (Hangup) | Tento signál proces obdrží tehdy, když je uzavřen jeho řídící terminál. |
| 2 | INT (Interrupt) | Toto je signál, který proces obdrží, když běží v terminálu a uživatel stiskne Ctrl+C. Obvykle ukončí proces. |
| 3 | QUIT | Ukončí proces a zapíše stav paměti, se kterou program pracoval (tzv. core dump). |
| 4 | ILL (Illegal instruction) | Tento signál posílá operační systém, když proces vyvolá neznámou instrukci. |
| 8 | FPE (Floating point exception) | Tímto signálem jádro trestá programy, které se snaží dělit nulou, atp. |
| 9 | KILL (Kill) | „Zabije“ proces (okamžitě). Nelze obejít. |
| 10 | USR1 (User-defined) | Uživatelsky definovaný signál. |
| 11 | SEGV (Segmentation fault) | Obvykle posílá operační systém programům, které chybně pracují s pamětí. |
| 15 | TERM (Terminate) | Ukončí proces. |
| 19 | STOP | Zastaví proces. Nelze obejít. |
| 20 | TSTP (Terminal stop) | Zastaví proces, ale lze obejít. Tento signál proces obdrží, když běží interaktivně v shellu a uživatel stiskne Ctrl+Z. |
| 18 | CONT (Continue) | Obnoví běh procesu po obdržení některého ze dvou předchozích signálů. |
Názvy signálů vždy začínají řetězcem „SIG“ (jako signál), takže chceme-li ukončit proces signálem, tak říkáme, že mu posíláme SIGTERM.
Nyní k samotnému programu kill. Spustíme-li jej s přepínačem „-l“, vypíše všechny signály podporované danou implementací.
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
Zadáme-li přepínači „-l“ jako argument celé nezáporné číslo, vrátí nám odpovídající název signálu. Zadáme-li jako argument název signálu (bez „SIG“), vrátí nám odpovídající číslo.
$ kill -l 1 HUP $ kill -l TRAP 5
Když programu předáme přepínač -s s číslem nebo názvem signálu a za něj přidáme jedno nebo více PID, kill pošle daným PID daný signál. Totéž se stane, když místo přepínače -s zadáme číslo nebo název signálu rovnou za pomlčku.
# pošle signál SIGHUP procesu s PID 1 (tj. init) kill -s HUP 1 # totéž kill -HUP 1 # totéž kill -1 1
Podobná, ale nestandardní utilita killall (z balíku psmisc) slouží k témuž účelu jako kill, ale místo PID jí předáváme název programu, kterému chceme poslat signál. Pozor, běží-li více instancí programu, signál se pošle všem, ke kterým máme příslušná oprávnění.
# zabije všechny instance programu "firefox" killall -s 9 firefox
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
.
Jen bych, pro nás pohodlné, dodal, že existuje také zajímavá utilita jménem htop (http://htop.sourceforge.net/), která tyto akce včetně spousty voleb, vyhledávání a podobně umožňuje velice příjemně a přehledně provádět v GUI vytvořeném obdobně jako u Midnight Commanderu, tedy GUI běžícím v terminálu a tudíž není třeba žádné rozšiřující grafické prostředí (KDE, Gnome, atd.). Osobně si ji vždy instaluji po nové instalaci Linuxu, protože je to velice pohodlné na ovládání a třeba v OpenSuse je myslím dokonce v základních repozitářích.
+1
ps -A | grep lighttpd
Já zas někdy používám
ps axu | grep proceskdyž chci vidět i jméno uživatele, s jehož právy proces běží.
pgrep?
Tímto signálem jádro trestá programy, které se snaží dělit nulou, atp.:)
pstree nebo ps fax.
pgrep -P X
ps) podívat a dát v ní vyhledat "PPID"? Nebylo by to jednodušší a rychlejší než psát dotaz?