Byla vydána nová verze 4.8.0 programu na úpravu digitálních fotografií darktable (Wikipedie).
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 142 (pdf) a HackSpace 79 (pdf).
Qtractor (Wikipedie) dospěl do verze 1.0.0. Jedná se o Audio/MIDI vícestopý sekvencer.
Byl vydán svobodný kancelářský balík OnlyOffice Docs 8.1. Vedle četných oprav přináší několik funkcí včetně podpory editace textu v PDF a vytváření formulářů v PDF.
Daniel Stenberg, autor nástroje curl, z databáze SteamDB zjistil, že aktuálně 22 734 her na Steamu používá curl.
Společnost Anthropic vydala Claude 3.5 Sonnet, tj. novou verzi své umělé inteligence Claude (Wikipedie). Videoukázky na YouTube. S Claude 3, stejně jak s GPT-3.5, Llama 3 a Mixtral, si lze pokecat bez přihlašování na DuckDuckGo AI Chat.
Byla vydána nová stabilní verze 6.8 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 126. Přehled novinek i s náhledy v příspěvku na blogu a na YouTube. Vypíchnuta jsou vylepšení v integrovaném poštovním klientu.
Příspěvek Aukce domén – měsíc po spuštění na blogu CZ.NIC shrnuje první měsíc provozu Aukce domén .CZ. Aukcemi prošlo celkem 18 174 domén, z toho na 742 z nich byl učiněn alespoň 1 příhoz. Nejdražší aukcí byla na doménu virtualnisidlo.cz s cenou 95 001 Kč, která však nebyla včas uhrazena. Nejdražší aukcí, která byla vydražena i zaplacena je praguecityline.cz s cenovkou 55 600 Kč.
Před 40 lety, 19. června 1984, Bob Scheifler představil první verzi okenního systému X (X Window System). Vycházela z okenního systému W (W Window System).
Desktopové prostředí MATE bylo vydáno ve verzi 1.28. V gitových repozitářích je sice už od února, ale oznámení vydání se na webu objevilo s několikaměsíčním zpožděním (únorové datum zveřejnění je nepravdivé). Jde o první velké vydání od roku 2021. Uživatelsky nejvýznamnější pokrok je v podpoře Waylandu.
U instalace dlouho nepobudeme. Není ničím neobvyklá, na stránce www.opensolaris.com/get/ si stáhnete livecd, které je zároveň instalačním. Můžete zvolit multijazyčnou verzi, nebo verzi jen s pár "základnímí" jazyky. Nijak to neovlivňuje, co se systémem můžete dělat po instalaci, rozdíl je jen v tom, že CD se všemi jazyky je komprimované, a instalace tak zabere víc času.
Nabootované livecd vám nabídne GNOME s instalačním programem a nástrojem pro kontrolu fungování ovladačů na ploše. Druhý jmenovaný sice nabízí i možnost instalace ovladače jedním tlačítkem, ale pokud ovladač není součástí livecd, pravděpodobně neexistuje, takže se hodí jen pro kontrolu kompatibility hardwaru. K instalačnímu programu také není mnoho co dodat, jen se zeptá na časovou zonu, jazyk, uživatelské jméno a heslo, disk, který chcete použít (ZFS se moc nechce používat cache disku, když ho nemá celý, takže doporučeno je použít celý disk). Systém používá schopnost ZFS vytvářet virtuální svazky, takže zvlášť oddíl na swap nebo crashdumpy není potřeba. O tom později. Jestli jste si jisti, pak zbývá jen čekat.
Po instalaci vás přivítá GRUB, grafický boot a nakonec GDM.
Systém privilegií, autorizací, profilů, oprávnění, rolí a uživatelů v (Open)Solarisu je docela složitý a nechci se jím tu zabývat moc do hloubky. Oproti "velkému" Solarisu tady roota jako uživatele nenajdete, stala se z něj role. Pokud toužíte po možnosti v systému něco měnit, můžete použít sudo, které bylo do OpenSolarisu přeportováno "aby usnadnilo přechod uživatelům Linuxu a nemátla je komplexnost systému práv" nebo použít "oficiální způsob": utilitu pfexec.
Jak to funguje? Zjednodušeně řečeno, v systému existují nějaká privilegia. Vznikla tak, že kdykoli někdo viděl v systému konstrukci "pokud je uživatel root, povol, jinak odmítni přístup", přepsal ji na "pokud má proces nějaké privilegium, povol, jinak odmítni přístup". Existují například privilegia pro práci s icmp, změnu vlastnictví souborů, Dtrace, zjišťování informací o procesech a tak dále. I na fork a exec jsou potřeba privilegia, ač ta základní jsou zahrnuta do skupiny basic, kterou mají k dispozici všichni uživatelé. Privilegia lze samozřejmě i odebírat a některé (ne všechny) součásti systému toho využívají, některé démony nesmí mít potomky a někdy ani sáhnout na jakýkoli soubor.
Jaká privilegia má proces, zjistíme pomocí utility ppriv
. Kdo co smí je (v tomhle případě) definováno v /etc/user_attr
. Dozvíte se tam, že váš instalační uživatel má normálně práva "basic" a když požádá o privilegia svého profilu, dostane profil Primary administrator, který smí dělat cokoli, a krom toho bude také systém předstírat, že má UID 0. Popisy profilů, práva na spouštění procesů a další lze najít v /etc/security
a práva uživatelů lze samozřejmě měnit i v GUI nástroji na správu uživatelů (poflakuje se v menu System -> Administraion -> Users and Groups).
O spuštění něčeho v profilu můžeme požádat pomocí pfexec
. Rootshell nejsnáze získáme pomocí pfexec bash
, toužíme-li po bashi. Existují i pfsh
a pfcsh
, což jsou ekvivalenty k pfexec sh
a pfexec csh
, ale tyhle shelly vám asi nebudou připadat příliš pohodlné. pfbash
neexistuje z licenčních důvodů.
Na závěr doplním, že na rozdíl od sudo pfexec
nemění proměnné prostředí, pracovní adresář ani nic podobného, jen nastaví UID a privilegia. Takže pokud budete často používat privilegovaný bash, může se vám stát že polovina souborů ve vašem home bude vlastněna rootem.
Adresářová struktura OpenSolarisu se v detailech liší a abychom se vyhnuli typickému problému "kde je probohy xxx", trochu se na to podíváme. /bin, /root, /mnt, /etc, /sbin, /dev a /tmp asi nikoho nepřekvapí, fungují jako na většině linuxových distribucí (jen /tmp je ramdisk, pro použití, která vyžadují víc místa nebo mají přežít restart, je lepší /var/tmp). V /usr/bin se nachází jak obvyklé GNU nástroje, tak některé standardní nástroje ze Solarisu, které jinak převážně chybí. To spoustě lidí neudělalo radost (tedy, byl o tom flame v konferenci), ale vedení rozhodlo, že OpenSolaris se bude distribuovat s obojím, ale GNU nástroje budou přednastavené, a na návrh mít možnost vybrat si při instalaci nepřistoupilo, protože by to mátlo nové uživatele. Zpátky k adresářům, /usr/X (a taky /usr/X11 a /usr/X11R6) nabídne Xorg i s binárkami v /usr/X/bin. Rozhodně nemá smysl nechat se tím znepokojovat, balíčkovací systém klasické /usr/bin a /usr/sbin moc nepoužívá, takže adresáře jako /usr/php/5.2/bin nejsou ničím zvláštním. /var asi také moc nepřekvapí, jen /var/run je opět ramdisk a logy najdete krom /var/log i ve /var/adm.
Další adresáře už ale zvláštní budou. /devices je obdoba dnes již neexistujícího DevFS v Linuxu, tedy virtuální souborový systém se soubory reprezentujícími zařízení. /dev v OpenSolarisu je plný symlinků do /devices, ale systém se stará o to, aby se zařízení nepřekrývala. Tedy pokud přidám do počítače novou síťovou kartu, systém si zapamatuje její identifikační číslo a když ji potom vyměním za jinou, pojmenuje ji jinak, aby nedocházelo ke konfliktům. Resetovat tuhle paměť lze vytvořením souboru /reconfigure a rebootem systému.
O /home a /net se stará automounter, ale toho si v OpenSolarisu moc neužijete. Skutečné domovské adresáře uživatelů jsou v /export/home. Tohle rozdělení vzniklo proto, je možné mít domovské adresáře na serveru nasdílené pomocí NFS (proto /export) a připojené na pracovních stanicích a člověk může klidně měnit pracovní stanici a přitom mít svoje data k dispozici. Že tohle zůstalo zachováno Solarisu od Sunu, tvůrců NFS, asi nikoho nepřekvapí.
Adresář /system je další v kategorii virtuálních, obsahuje podadresáře object a contract. object nás moc zajímat nebude, obsahuje virtuálně moduly jádra, ale contract je zajímavější. Obsahuje seznam contractů, stejně jako /proc obsahuje seznam procesů. Co je contract? Contract je skupina procesů. Potomci procesu normálně patří do stejného contractu, ale lze vytvořit nový pomocí utility ctrun. U takového nového contractu jde nastavit, jak bude reagovat na ukončení vůdcovského procesu (skončí, ale potomci zůstanou, skončí, ale potomci jsou zabiti, jede dál, dokud neskončí všichni potomci), a nastavit, jestli má být contract po skončení restartován, případně kolikrát. Vytvořit službu, která se bude restartovat po pádu, pak nedá moc práce a OpenSolaris toho v rámci vlastních "initskriptů", tedy toho, co má místo initskriptů, hojně využívá.
Když jsem mluvil o adresářích, záměrně jsem minul /proc. Proč? Protože práce s procesy na (Open)Solarisu se od linuxové liší a zaslouží si vlastní odstavec, než někoho potká nepříjemné překvapení. (Open)Solarisový /proc obsahuje jen podadresáře pro každý proces, žádné /proc/partitions a podobné věci v něm nehledejte. Zjišťovat informace o procesech pomocí grepu a /proc není příliš pohodlné, takže jak na to jinak? Základní přehled vám může poskytnout top portovaný z Linuxu (htop se prý bohužel nechystá), ale podíváme se na nativnější nástroje.
První na řadě je nástroj prstat. Je podobný topu, ale umí toho víc, třeba zobrazit přehled pro jednotlivé uživatele (prstat -t), zóny (prstat -Z, o zónách ještě bude řeč v kapitole o virtualizaci) a různé kombinované přehledy. To LWPS, o kterém prstat mluví u každého procesu, je počet vláken (neboli odlehčených procesů). Krom prstatu je tu samořejmě i klasické ps.
Další dva nástroje jsou ptree a pgrep. ptree se podobá linuxovému pstree, ale je přizpůsobené Solarisu, takže s parametrem -c se s ním například dá prohlížet hierarchie contractů. pgrep funguje jako chytré ps | grep
pgrep -u jakub
a svůj nejnovější proces (což nebude moc užitečné, protože to velmi pravděpodobně bude sám pgrep)
pgrep -u jakub -n
Rozšířením pgrep je pkill, který funguje stejně, jen procesům místo vypsání pošle signál. Dá se použít stejně jako killall na Linuxu, ale třeba i k zabíjení všech procesů některého uživatele. Ale (Open)Solaris už má killall, co ten dělá? Skutečně zabije všechny procesy, přesněji všechny procesy s otevřenými soubory. Používá se při vypínání systému, aby mohly být odpojeny souborové systémy. Zkráceně řečeno, nespouštějte ho.
Příště se připravte na sítě, balíčkovací systém a ZFS.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Co se tyce ZFS a zapisove cache disku, tak je skutecne lepsi dat ZFS cely disk, ale v pripade root partitiony to nejde, protoze PC BIOS by to nedokazal nabootovat. Takze se vytvori klasicka Solarisi partitiona v ni slice a v tom pak ZFS volume. Dokud nebudou umet biosy bootovat z disku s EFI, tak to jinak asi nepujde.
To ja vim, ale tady jde o to jak je vytvoren ZFS volume. Pokud udelam "zpool create ..." a dam mu cely disk, tak ZFS udela EFI label na tom disku, misto klasicke partitiony a pak ho dokaze vyuzit optimalne. Pokud se jedna o root filesystem, z ktereho se bootuje, tak kvuli BIOSu, ktery umi pracovat jen se starou partition table, se musi ten ZFS volume udelat v Solarisi slice. Takze pak ZFS nema cely disk, ale jen jeho cast. A pak se s takto vytvorenou casti zachazi jinak.
To samozřejmě ano, ale Zdeněk poukazuje na něco jiného. U ZFS se doporučuje přidávat do poolu celý disk (to znamená, že na disku není ani partition table, ale celý disk od prvního do posledního sektoru využívá ZFS). Má to několik výhod (možnost bezpečné aktivace write cache disku, efektivnější plánování IO operací, apod.)
Pro root pool to ale není možné použít, protože klasický BIOS neumí z takového disku nabootovat. Proto se to řeší tak, že se na disku vytvoří klasická partition table s MBR, v ní Solaris partition, a teprve v ní se vytvoří slice pro ZFS. Až bude každý BIOS podporovat EFI, pak to nebude nutné a i u root poolu bude možné vynechat partition table a ZFS obsadí celý disk.
Že je řeč o x86 vyplývá minimálně z toho, že Zdeněk mluví o PC BIOSu, který na sparcu určitě není .
Jenom drobné upřesnění - obvyklé GNU nástroje se nenacházejí v /usr/bin, ale v /usr/gnu/bin. V /usr/bin jsou tradiční nástroje Solarisu (vycházející z původních System V R4 nástrojů). Rozdíl oproti Solarisu však spočívá v tom, že standardní PATH je přednastavená jako
/usr/gnu/bin:/usr/bin:/usr/X11/bin
takže pokud zavoláme nějaký příkaz, nejdříve se hledá mezi GNU nástroji. Pokud někdo preferuje tradiční nástroje ze Solarisu, prostě si upraví svoji PATH.
1) co ma nekolizni nazev, jde do /usr/bin
2) GNU tooly s koliznim nazvem jdou do /usr/gnu/bin a pokud to ma smysl (treba u sedu), tak v /usr/bin je hardlink s prefixem
Viz PSARC 2007/047. Jinak, co se tyce cest, viz man standards. Btw. pro ty, kteri chteji pracovat napriklad se ZFS ACLky, GNU tooly jsou na nic a meli by si nastavit cestu nejlepe podle SUSv3.$ tail -1 /etc/auto_home
* localhost:/export/home/&
Netusim, proc v ramci boje za priblizeni Linuxovym distribucim tohle nebylo nastaveno. Jinak opet velice pekny clanek (heh, process kontrakty jsem nikdy dosud nepotkal, diky).Po většině uvedených featur v Linuxu nijak netoužím, ale ty možnosti nastavení práv by se mi líbily. Svého času existovalo v jádře něco zvaného capability, což snad mělo fungovat podobně. Netušíte někdo, jak to bylo, a co se s tím stalo?
Hmmmm,jenze SELinux architektura je implementovana do Solarisu,stejne jako do FreeBSD a Darwinu
http://www.nsa.gov/research/selinux/index.shtml
Od jadra 2.6.25 jsou capabilities jiz pouzitelne, ale distribuce s nimi zatim moc nepocitaji (alespon v Debianu to neni jeste dotazene). Docela obsahla je manualova stranka capabilities(7).
Michal
Fedora-10 (ale musite manualne, neni to default, je jen podpora v jadru):
# chmod u-s /bin/ping
# setcap cap_net_raw=ep /bin/ping
$ ls -la /bin/ping
-rwxr-xr-x 1 root root 41784 2008-09-26 08:02 /bin/ping
$ ping www.google.com
PING www.l.google.com (74.125.43.103) 56(84) bytes of data.
64 bytes from bw-in-f103.google.com (74.125.43.103): icmp_seq=1 ttl=242 time=77.1 ms
(ale pouzivate-li SELinux tak todle resit nemusite...)
Jen pro upresneni cele se to jmenuje v (Open)Solarisu RBAC = Role Based Access Control. White paper zde: www.sun.com/software/whitepapers/wp-rbac/wp-rbac.pdf