<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>https://www.auul.pri.ee/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Imre</id>
	<title>Imre kasutab arvutit - Kasutaja kaastöö [et]</title>
	<link rel="self" type="application/atom+xml" href="https://www.auul.pri.ee/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Imre"/>
	<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/Eri:Kaast%C3%B6%C3%B6/Imre"/>
	<updated>2026-08-06T17:36:04Z</updated>
	<subtitle>Kasutaja kaastöö</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4951</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4951"/>
		<updated>2026-08-05T17:37:24Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* WindBox 4.1 -&amp;gt; 4.2 uuendamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
Non-printable sümbol paistab nt selliselt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-nswa-01:~# systemctl show rsyslog | grep -i nonew&lt;br /&gt;
Invalid unit name &amp;quot;rsyslog &amp;quot; escaped as &amp;quot;rsyslog\xc2\xa0&amp;quot; (maybe you should use systemd-escape?).&lt;br /&gt;
NoNewPrivileges=no&lt;br /&gt;
root@rv-nswa-01:~# systemctl show rsyslog | grep -i nonew&lt;br /&gt;
NoNewPrivileges=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-nswa-01:~# echo &amp;quot;rsyslog &amp;quot; | od -c&lt;br /&gt;
0000000   r   s   y   s   l   o   g 302 240  \n&lt;br /&gt;
0000012&lt;br /&gt;
root@rv-nswa-01:~# echo &amp;quot;rsyslog&amp;quot; | od -c&lt;br /&gt;
0000000   r   s   y   s   l   o   g  \n&lt;br /&gt;
0000010&lt;br /&gt;
root@rv-nswa-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Claude teab, et '\xc2\xa0 is UTF-8 for U+00A0 — a non-breaking space (NBSP)'&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* avanenud värvilise pildi aknas ei ole teist ristkülikut nimega Application, tuleb lohistada Finderisse&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Claude Desktop - MacOS]]&lt;br /&gt;
* [[:Rancher Desktop - MacOS]]&lt;br /&gt;
* [[:Podman Desktop - MacOS]]&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Fail:20260709-mikrotik-01.png&amp;diff=4950</id>
		<title>Fail:20260709-mikrotik-01.png</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Fail:20260709-mikrotik-01.png&amp;diff=4950"/>
		<updated>2026-08-05T17:36:01Z</updated>

		<summary type="html">&lt;p&gt;Imre: Imre laadis üles uue versiooni failist Fail:20260709-mikrotik-01.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4949</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4949"/>
		<updated>2026-08-05T17:13:15Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 2026 suve märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel, nt kasutatakse yubikey või ldap kasutajate keskhaldust, kust tuleb ssh pub võti vms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.01s system 40% cpu 10.025 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 31% cpu 12.028 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.01s system 42% cpu 9.027 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 26% cpu 8.022 total&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* iga järjestikune pöördumine on ka halb&lt;br /&gt;
&lt;br /&gt;
siis võib aidata järgmine seadistus sellisele tulemusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 46% cpu 10.019 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 33% cpu 0.021 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 33% cpu 0.021 total&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esimene pöördumine on viivitusega&lt;br /&gt;
* edasised pöördumised toimuvad väledamalt&lt;br /&gt;
&lt;br /&gt;
Ja seadistus ssh kliendi poolel kasutaja jaoks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ssh -O check root@192.168.10.166&lt;br /&gt;
Master running (pid=19802)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures taustal töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep &amp;quot;\[mux\]&amp;quot; | grep -v grep | grep -v rancher-desktop&lt;br /&gt;
imreoolberg      19923   0.0  0.0 435300976   2640   ??  Ss    8:08PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.210-22-root [mux]&lt;br /&gt;
imreoolberg      19823   0.0  0.0 435300976    992   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.167-22-root [mux]&lt;br /&gt;
imreoolberg      19802   0.0  0.0 435300976   1040   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.166-22-root [mux]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4948</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4948"/>
		<updated>2026-08-05T17:13:01Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 2026 suve märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel, nt kasutatakse yubikey või ldap kasutajate keskhaldust kust tuleb ssh pub võti vms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.01s system 40% cpu 10.025 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 31% cpu 12.028 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.01s system 42% cpu 9.027 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 26% cpu 8.022 total&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* iga järjestikune pöördumine on ka halb&lt;br /&gt;
&lt;br /&gt;
siis võib aidata järgmine seadistus sellisele tulemusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 46% cpu 10.019 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 33% cpu 0.021 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 33% cpu 0.021 total&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esimene pöördumine on viivitusega&lt;br /&gt;
* edasised pöördumised toimuvad väledamalt&lt;br /&gt;
&lt;br /&gt;
Ja seadistus ssh kliendi poolel kasutaja jaoks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ssh -O check root@192.168.10.166&lt;br /&gt;
Master running (pid=19802)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures taustal töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep &amp;quot;\[mux\]&amp;quot; | grep -v grep | grep -v rancher-desktop&lt;br /&gt;
imreoolberg      19923   0.0  0.0 435300976   2640   ??  Ss    8:08PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.210-22-root [mux]&lt;br /&gt;
imreoolberg      19823   0.0  0.0 435300976    992   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.167-22-root [mux]&lt;br /&gt;
imreoolberg      19802   0.0  0.0 435300976   1040   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.166-22-root [mux]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4947</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4947"/>
		<updated>2026-08-05T17:12:10Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 2026 suve märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel, nt kasutatakse yubikey või ldap kasutajate keskhaldust kust tuleb ssh pub võti vms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.01s system 40% cpu 10.025 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 31% cpu 12.028 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.01s system 42% cpu 9.027 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 26% cpu 8.022 total&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siis võib aidata järgmine seadistus sellisele tulemusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 46% cpu 10.019 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 33% cpu 0.021 total&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % time ssh -A root@192.168.10.210 exit&lt;br /&gt;
ssh -A root@192.168.10.210 exit  0.00s user 0.00s system 33% cpu 0.021 total&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ja seadistus ssh kliendi poolel kasutaja jaoks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ssh -O check root@192.168.10.166&lt;br /&gt;
Master running (pid=19802)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures taustal töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep &amp;quot;\[mux\]&amp;quot; | grep -v grep | grep -v rancher-desktop&lt;br /&gt;
imreoolberg      19923   0.0  0.0 435300976   2640   ??  Ss    8:08PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.210-22-root [mux]&lt;br /&gt;
imreoolberg      19823   0.0  0.0 435300976    992   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.167-22-root [mux]&lt;br /&gt;
imreoolberg      19802   0.0  0.0 435300976   1040   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.166-22-root [mux]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4946</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4946"/>
		<updated>2026-08-05T17:09:58Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 2026 suve märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ssh -O check root@192.168.10.166&lt;br /&gt;
Master running (pid=19802)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures taustal töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep &amp;quot;\[mux\]&amp;quot; | grep -v grep | grep -v rancher-desktop&lt;br /&gt;
imreoolberg      19923   0.0  0.0 435300976   2640   ??  Ss    8:08PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.210-22-root [mux]&lt;br /&gt;
imreoolberg      19823   0.0  0.0 435300976    992   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.167-22-root [mux]&lt;br /&gt;
imreoolberg      19802   0.0  0.0 435300976   1040   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.166-22-root [mux]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4945</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4945"/>
		<updated>2026-08-05T17:08:37Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 2026 suve märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % ssh -O check imre@192.168.240.202&lt;br /&gt;
Master running (pid=9642)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures taustal töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep &amp;quot;\[mux\]&amp;quot; | grep -v grep | grep -v rancher-desktop&lt;br /&gt;
imreoolberg      19923   0.0  0.0 435300976   2640   ??  Ss    8:08PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.210-22-root [mux]&lt;br /&gt;
imreoolberg      19823   0.0  0.0 435300976    992   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.167-22-root [mux]&lt;br /&gt;
imreoolberg      19802   0.0  0.0 435300976   1040   ??  Ss    8:07PM   0:00.00 ssh: /tmp/ssh-ctrl-192.168.10.166-22-root [mux]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_Poweradmin&amp;diff=4944</id>
		<title>PowerDNS webfrontend - Poweradmin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_Poweradmin&amp;diff=4944"/>
		<updated>2026-08-05T05:57:28Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Osutub, et 2026 aasta kevadel on tekkinud Poweradmin lahendusele PowerDNS api kasutamise tugi. St enam ei ole tingimata vaja kasutada sama PowerDNS andmebaasi, https://github.com/poweradmin/poweradmin/releases/tag/v4.3.0&lt;br /&gt;
&lt;br /&gt;
'v4.3.0 is the biggest release in the 4.x line so far. Native API-only deployments, a domainmetadata editor, log filtering and exports, hardened auth, and plenty more - see the full changelog for the complete list.'&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_Poweradmin&amp;diff=4943</id>
		<title>PowerDNS webfrontend - Poweradmin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_Poweradmin&amp;diff=4943"/>
		<updated>2026-08-05T05:54:57Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  TODO  ===Kasulikud lisamaterjalid===  * TODO'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4942</id>
		<title>PowerDNS webfrontend - PowerDNS-Admin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4942"/>
		<updated>2026-08-05T05:53:49Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* pdns podman lahendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* ühe operatsioonisüteemi peal kompaktselt lahenduse pidamine - Debian v. 12&lt;br /&gt;
* dns server - PowerDNS&lt;br /&gt;
* webgui haldusliides - PowerDNS-Admin (PDA)&lt;br /&gt;
* dnssec võimekus&lt;br /&gt;
* docker abil kasutatakse konteinerit (PDA)&lt;br /&gt;
* andmeid hoitakse PostgreSQL andmebaasis&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* dnssec kasutab algoritmi nr 13&lt;br /&gt;
* NSEC3 kasutab '1 0 0 -' seadistust&lt;br /&gt;
* sekundaarsete nimeserveritega suhtlemine toimub catalog-zones abil&lt;br /&gt;
* kasutatakse KSK/ZSK ja CSK lähenemist võtmete pidamisel&lt;br /&gt;
&lt;br /&gt;
Protseduuride võimekus&lt;br /&gt;
&lt;br /&gt;
* NSEC, NSEC3 ja NSEC3 param väärtuste muutmine&lt;br /&gt;
* võtme vahetus&lt;br /&gt;
* krüptimise algoritmi vahetus&lt;br /&gt;
&lt;br /&gt;
===Platvormi ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Platvorm koosneb&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 operatsioonisüsteem&lt;br /&gt;
* Docker Community Edition&lt;br /&gt;
* PostgreSQL v. 12&lt;br /&gt;
* NginX&lt;br /&gt;
&lt;br /&gt;
PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-common&lt;br /&gt;
root@pdns:/tmp# mkdir /etc/postgresql-common/createcluster.d&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;initdb_options = '--data-checksums'&amp;quot; &amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;create_main_cluster = false&amp;quot; &amp;gt;&amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-16&lt;br /&gt;
root@pdns:/tmp# pg_createcluster --locale en_US.UTF-8 16 pgcluster_pdns_prod&lt;br /&gt;
 &lt;br /&gt;
postgres=# \x&lt;br /&gt;
Expanded display is on.&lt;br /&gt;
postgres=# \l postgres&lt;br /&gt;
List of databases&lt;br /&gt;
-[ RECORD 1 ]-----+------------&lt;br /&gt;
Name              | postgres&lt;br /&gt;
Owner             | postgres&lt;br /&gt;
Encoding          | UTF8&lt;br /&gt;
Locale Provider   | libc&lt;br /&gt;
Collate           | en_US.UTF-8&lt;br /&gt;
Ctype             | en_US.UTF-8&lt;br /&gt;
ICU Locale        | &lt;br /&gt;
ICU Rules         | &lt;br /&gt;
Access privileges | &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pdns login;&lt;br /&gt;
sql&amp;gt; \password pdns&lt;br /&gt;
sql&amp;gt; create database db_pdns owner = pdns;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pda login;&lt;br /&gt;
sql&amp;gt; \password pda&lt;br /&gt;
sql&amp;gt; create database db_pda owner = pda;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS paigaldamine===&lt;br /&gt;
&lt;br /&gt;
PowerDNS ise ja tema tööks otseselt vajalikud komponendid (nt PostgreSQL andmebaas) töötavad nö tavalisel viisil operatsioonisüsteemi protsesside-teenustena st mitte-konteineritena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install pdns-server pdns-backend-pgsql pdns-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitatakse pdns server ja tema bind backend.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
PostgreSQL backend kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
Password for user pdns: &lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi ligipääs jms kirjeldatakse failis, https://doc.powerdns.com/authoritative/backends/generic-postgresql.html#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# egrep -v &amp;quot;^#|^$&amp;quot; /etc/powerdns/pdns.d/gpgsql.conf&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dbname=db_pdns&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-host=127.0.0.1&lt;br /&gt;
gpgsql-password=parool&lt;br /&gt;
gpgsql-port=5432&lt;br /&gt;
gpgsql-user=pdns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bind eemaldamiseks sobib kustutada fail&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/powerdns/pdns.d/bind.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena töötab pdns server, gpgsql backendiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2024-06-16T16:44:00.877817+03:00 pdns systemd[1]: Starting pdns.service - PowerDNS Authoritative Server...&lt;br /&gt;
2024-06-16T16:44:00.906026+03:00 pdns pdns_server[3916]: Loading '/usr/lib/x86_64-linux-gnu/pdns/libgpgsqlbackend.so'&lt;br /&gt;
2024-06-16T16:44:00.906356+03:00 pdns pdns_server[3916]: This is a standalone pdns&lt;br /&gt;
2024-06-16T16:44:00.906408+03:00 pdns pdns_server[3916]: Listening on controlsocket in '/run/pdns/pdns.controlsocket'&lt;br /&gt;
2024-06-16T16:44:00.906668+03:00 pdns pdns_server[3916]: UDP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906684+03:00 pdns pdns_server[3916]: UDP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906735+03:00 pdns pdns_server[3916]: TCP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906750+03:00 pdns pdns_server[3916]: TCP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906866+03:00 pdns pdns_server[3916]: PowerDNS Authoritative Server 4.9.1 (C) PowerDNS.COM BV&lt;br /&gt;
2024-06-16T16:44:00.906881+03:00 pdns pdns_server[3916]: Using 64-bits mode. Built using gcc 12.2.0 on May 28 2024 07:46:05 by root@localhost.&lt;br /&gt;
2024-06-16T16:44:00.906891+03:00 pdns pdns_server[3916]: PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.&lt;br /&gt;
2024-06-16T16:44:00.915255+03:00 pdns pdns_server[3916]: Polled security status of version 4.9.1 at startup, no known issues reported: OK&lt;br /&gt;
2024-06-16T16:44:00.926644+03:00 pdns pdns_server[3916]: Creating backend connection for TCP&lt;br /&gt;
2024-06-16T16:44:00.935773+03:00 pdns pdns_server[3916]: About to create 3 backend threads for UDP&lt;br /&gt;
2024-06-16T16:44:00.935850+03:00 pdns systemd[1]: Started pdns.service - PowerDNS Authoritative Server.&lt;br /&gt;
2024-06-16T16:44:01.086206+03:00 pdns pdns_server[3916]: Done launching threads, ready to distribute questions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ühtegi tsooni ei ole kirjeldatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# pdnsutil list-all-zones&lt;br /&gt;
root@pdns:/tmp# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS seadistamine===&lt;br /&gt;
&lt;br /&gt;
Seadistamisel tegeldakse&lt;br /&gt;
&lt;br /&gt;
* api sisselülitamine (PDA jaoks)&lt;br /&gt;
* SOA kirje vaikeväärtused&lt;br /&gt;
* DNSSEC vaike krüpto&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - PDA - docker===&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin tarvkara töötab docker konteinerina, aga kasutab host arvutist postgresql andmebaasi. Platvorm ettevalmistamine punktis on vajalik kasutaja ja create database tekitatud. PDA kasutamine eeldab, et PDNS juures on sisse lülitatud api liides (vaikimisi http liiklus üle port 8081).&lt;br /&gt;
&lt;br /&gt;
Docker compose fail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# cat docker-compose-pda.yml&lt;br /&gt;
services:&lt;br /&gt;
  svc_pda:&lt;br /&gt;
    image: powerdnsadmin/pda-legacy:v0.4.2&lt;br /&gt;
     &lt;br /&gt;
    container_name: cn_pda&lt;br /&gt;
    restart: always&lt;br /&gt;
    logging:&lt;br /&gt;
      driver: json-file&lt;br /&gt;
      options:&lt;br /&gt;
        max-size: 50m&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9191:80&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      - SECRET_KEY='saladus'&lt;br /&gt;
      - SQLALCHEMY_DATABASE_URI=postgresql://pda:pdaparool@192.168.10.53/pda&lt;br /&gt;
      - GUNICORN_TIMEOUT=60&lt;br /&gt;
      - GUNICORN_WORKERS=2&lt;br /&gt;
      - GUNICORN_LOGLEVEL=DEBUG&lt;br /&gt;
      - OFFLINE_MODE=False&lt;br /&gt;
      - CSRF_COOKIE_SECURE=False&lt;br /&gt;
 &lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_pda&lt;br /&gt;
       &lt;br /&gt;
networks:&lt;br /&gt;
  nw_pda:&lt;br /&gt;
    name: nw_pda&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # docker compose -f docker-compose-pda.yml up -d&lt;br /&gt;
&lt;br /&gt;
Tulemusena on aadressil http://192.168.10.53:9191/ PDA webgui sisselogimise ekraan. Pressida Create Account ja esimesena tekitatud kasutaja on admin privileegidega.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX operatsioonisüsteem===&lt;br /&gt;
&lt;br /&gt;
NginX https:// frontend kasutamiseks sobib kasutada sellist seadistust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/etc/nginx/sites-enabled# cat /etc/nginx/sites-enabled/pdns &lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    if ($request_uri !~ /.well-known) {&lt;br /&gt;
      return 301 https://pdns.moraal.ee/;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    ssl_certificate /etc/ssl/localcerts/pdns.moraal.ee.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/localcerts/pdns.moraal.ee.key;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:MozSSL:10m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_prefer_server_ciphers off;&lt;br /&gt;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 25m;&lt;br /&gt;
 &lt;br /&gt;
    ssl_stapling off;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=63072000&amp;quot; always;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/access-pdns.moraal.ee-443.log;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
      proxy_set_header Host $http_host;&lt;br /&gt;
      proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
      proxy_set_header X-Forwarded-Proto https;&lt;br /&gt;
      proxy_pass http://192.168.10.53:9191;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX docker===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /srv/pdns/volume/nginx/etc/nginx/nginx.conf&lt;br /&gt;
# nginx.conf&lt;br /&gt;
&lt;br /&gt;
user nginx;&lt;br /&gt;
worker_processes auto;&lt;br /&gt;
error_log /dev/stderr;&lt;br /&gt;
pid /var/run/nginx.pid;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
    include       mime.types;&lt;br /&gt;
    default_type  application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
    log_format  main  '$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; '&lt;br /&gt;
                      '$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; '&lt;br /&gt;
                      '&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;';&lt;br /&gt;
    access_log /dev/stdout main;&lt;br /&gt;
&lt;br /&gt;
    sendfile        on;&lt;br /&gt;
    keepalive_timeout  65;&lt;br /&gt;
&lt;br /&gt;
    # Redirect HTTP to HTTPS&lt;br /&gt;
    server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # HTTPS Configuration&lt;br /&gt;
    server {&lt;br /&gt;
        listen 443 ssl;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        http2 on;&lt;br /&gt;
        ssl_protocols TLSv1.3;&lt;br /&gt;
        ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
        ssl_certificate /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.crt;&lt;br /&gt;
        ssl_certificate_key /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.key;&lt;br /&gt;
&lt;br /&gt;
        # Recommended security settings&lt;br /&gt;
        ssl_session_cache shared:SSL:10m;&lt;br /&gt;
        ssl_session_timeout 10m;&lt;br /&gt;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;&lt;br /&gt;
&lt;br /&gt;
        # Logging&lt;br /&gt;
        access_log /dev/stdout;&lt;br /&gt;
        error_log /dev/stdout;&lt;br /&gt;
&lt;br /&gt;
        # Reverse proxy to the destination&lt;br /&gt;
        location / {&lt;br /&gt;
            proxy_pass http://svc_pdns:8081;&lt;br /&gt;
            proxy_set_header Host $host;&lt;br /&gt;
            proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
            proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab pda webgui poole pöörduda aadressiga https://pdns.moraal.ee/.&lt;br /&gt;
&lt;br /&gt;
PDA kasutaja parooli muutmine postgresql baasis, nb rakendus kasutab tabeli nimena 'user', see on postgresql nö built-in objekt ja name clash ületamiseks tuleb pöörduda rakendusega seotud ressursi poole &amp;quot;user&amp;quot; abil, eriti koos skeemi prefiksiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql db_pda&lt;br /&gt;
pda=# select * from public.&amp;quot;user&amp;quot;;&lt;br /&gt;
-[ RECORD 1 ]------------------------------------------------------------&lt;br /&gt;
id         | 1&lt;br /&gt;
username   | admin&lt;br /&gt;
password   | $2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FF&lt;br /&gt;
firstname  | Imre&lt;br /&gt;
lastname   | Oolberg&lt;br /&gt;
email      | imre.oolberg@auul.pri.ee&lt;br /&gt;
otp_secret | &lt;br /&gt;
role_id    | 1&lt;br /&gt;
confirmed  | f&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
db_pda=# update public.&amp;quot;user&amp;quot; set password='$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC' where username='admin';&lt;br /&gt;
UPDATE 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures password väärtus tekitatakse nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ htpasswd -bnBC 15 &amp;quot;&amp;quot; pdaparool | tr -d ':\n'&lt;br /&gt;
$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into &amp;quot;user&amp;quot; (username, password, firstname, lastname, email, role_id, confirmed) values ('admin',  '$2b$12$4M9qXQaWn95GTregvSO2v.I/1QQT0/Ayqt3jZsMp06FIa5dMme6Gu', 'Administrator', 'Administrator', 'priit@moraal.ee', 1, 'f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pdns api kontakti lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_url', 'http://192.168.10.80:8081');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_key', 'apiparool');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_version', '4.9.11');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# select * from setting;&lt;br /&gt;
 id |     name     |         value&lt;br /&gt;
----+--------------+------------------------&lt;br /&gt;
  7 | pdns_api_url | http://192.168.10.80:8081&lt;br /&gt;
  8 | pdns_api_key | apiparool&lt;br /&gt;
  9 | pdns_version | 4.9.11&lt;br /&gt;
(3 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PDA kasutamise privileegid===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Account - grupi taoline moodustis, praktiliselt võiks vastata domeeni omanik asutusele&lt;br /&gt;
* User - kasutaja taoline moodustis, vastab inimesele kes süsteemi kasutab&lt;br /&gt;
* User ja Account vaheliste seoste abil saab anda hulgale kasutajatele õiguse tegeleda hulga domeenidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-xxx-01:/opt/pda/dc# docker exec -ti e8 sh&lt;br /&gt;
/app $ ps aux&lt;br /&gt;
PID   USER     TIME  COMMAND&lt;br /&gt;
    1 pda       0:00 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    7 pda       0:02 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    8 pda       0:01 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
&lt;br /&gt;
[2025-10-31 13:06:25,927] [record.py:61] ERROR - Cannot fetch zone's record data from remote powerdns api. DETAIL: HTTPSConnectionPool(host='rvxxx-01.test.moraal.ee', port=443): Max retries exceeded with url: /api/v1/servers/localhost/zones/imretest-03.ee (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1007)')))&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
        #      - /opt/pda/volume/pda/etc/ssl/certs/ca-certificates.crt:/usr/lib/python3.10/site-packages/certifi/cacert.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PDA API liidese kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tsooni tekitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -s -L -H 'Content-Type: application/json' -H 'Authorization: Basic xxx' -X POST https://pda.moraal.ee/api/v1/pdnsadmin/zones \&lt;br /&gt;
    --data '{&amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;, &amp;quot;kind&amp;quot;: &amp;quot;MASTER&amp;quot;, &amp;quot;nameservers&amp;quot;: [&amp;quot;ans1.moraal.ee.&amp;quot;, &amp;quot;ans2.moraal.ee.&amp;quot;]}' | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;account&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;api_rectify&amp;quot;: false,&lt;br /&gt;
  &amp;quot;catalog&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;dnssec&amp;quot;: false,&lt;br /&gt;
  &amp;quot;edited_serial&amp;quot;: 2026010802,&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;kind&amp;quot;: &amp;quot;Master&amp;quot;,&lt;br /&gt;
  &amp;quot;last_check&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;master_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;masters&amp;quot;: [],&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;notified_serial&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;nsec3narrow&amp;quot;: false,&lt;br /&gt;
  &amp;quot;nsec3param&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;rrsets&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee. hostmaster.moraal.ee. 2026010801 86400 7200 2419200 10800&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SOA&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans2.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;NS&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;serial&amp;quot;: 2026010801,&lt;br /&gt;
  &amp;quot;slave_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;soa_edit&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;soa_edit_api&amp;quot;: &amp;quot;DEFAULT&amp;quot;,&lt;br /&gt;
  &amp;quot;url&amp;quot;: &amp;quot;/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui pole ligipääsu saab sellise vastuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% curl -s -L -H 'Content-Type: application/json' -H 'X-API-KEY:  xxx' -X GET &amp;quot;https://pda.moraal.ee/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee&amp;quot; | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;msg&amp;quot;: &amp;quot;Zone access not allowed&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns docker lahendus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf&lt;br /&gt;
allow-axfr-ips=127.0.0.1,192.168.10.0/24&lt;br /&gt;
allow-notify-from=&lt;br /&gt;
allow-unsigned-notify=yes&lt;br /&gt;
also-notify=&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=saladus&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-soa-content=ans1.auu.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
disable-syslog=no&lt;br /&gt;
forward-notify=&lt;br /&gt;
include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
launch=&lt;br /&gt;
local-address=172.30.0.15, 10.30.0.15&lt;br /&gt;
local-port=53&lt;br /&gt;
log-dns-details=yes&lt;br /&gt;
log-dns-queries=yes&lt;br /&gt;
log-timestamp=yes&lt;br /&gt;
loglevel=4&lt;br /&gt;
only-notify=&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=10.30.0.15&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
webserver-loglevel=detailed&lt;br /&gt;
webserver-password=saladus&lt;br /&gt;
webserver-port=8081&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns podman lahendus===&lt;br /&gt;
&lt;br /&gt;
PDNS Quadlet Service kirjeldus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
Environment=PDNS_local_port=8053&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pdns.conf seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/pdns/volume/pdns/etc/powerdns/pdns.conf&lt;br /&gt;
local-address=0.0.0.0&lt;br /&gt;
launch=&lt;br /&gt;
# include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=parool&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=0.0.0.0&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
#master=yes&lt;br /&gt;
&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
allow-axfr-ips= 100.20.21.0/24,127.0.0.1/32,172.17.0.0/16&lt;br /&gt;
also-notify=192.168.1.150&lt;br /&gt;
only-notify=&lt;br /&gt;
forward-notify=&lt;br /&gt;
default-soa-content=ans1.auul.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
# default-nsec3-param=1 0 0 -&lt;br /&gt;
&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-extra-connection-parameters=password=parool dbname=db_pdns port=5432 user=pdns host=192.168.1.147&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:PowerDNS Authoritative Server nimeserveri kasutamine]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4941</id>
		<title>PowerDNS webfrontend - PowerDNS-Admin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4941"/>
		<updated>2026-08-05T05:52:44Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* PDA API liidese kasutamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* ühe operatsioonisüteemi peal kompaktselt lahenduse pidamine - Debian v. 12&lt;br /&gt;
* dns server - PowerDNS&lt;br /&gt;
* webgui haldusliides - PowerDNS-Admin (PDA)&lt;br /&gt;
* dnssec võimekus&lt;br /&gt;
* docker abil kasutatakse konteinerit (PDA)&lt;br /&gt;
* andmeid hoitakse PostgreSQL andmebaasis&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* dnssec kasutab algoritmi nr 13&lt;br /&gt;
* NSEC3 kasutab '1 0 0 -' seadistust&lt;br /&gt;
* sekundaarsete nimeserveritega suhtlemine toimub catalog-zones abil&lt;br /&gt;
* kasutatakse KSK/ZSK ja CSK lähenemist võtmete pidamisel&lt;br /&gt;
&lt;br /&gt;
Protseduuride võimekus&lt;br /&gt;
&lt;br /&gt;
* NSEC, NSEC3 ja NSEC3 param väärtuste muutmine&lt;br /&gt;
* võtme vahetus&lt;br /&gt;
* krüptimise algoritmi vahetus&lt;br /&gt;
&lt;br /&gt;
===Platvormi ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Platvorm koosneb&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 operatsioonisüsteem&lt;br /&gt;
* Docker Community Edition&lt;br /&gt;
* PostgreSQL v. 12&lt;br /&gt;
* NginX&lt;br /&gt;
&lt;br /&gt;
PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-common&lt;br /&gt;
root@pdns:/tmp# mkdir /etc/postgresql-common/createcluster.d&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;initdb_options = '--data-checksums'&amp;quot; &amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;create_main_cluster = false&amp;quot; &amp;gt;&amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-16&lt;br /&gt;
root@pdns:/tmp# pg_createcluster --locale en_US.UTF-8 16 pgcluster_pdns_prod&lt;br /&gt;
 &lt;br /&gt;
postgres=# \x&lt;br /&gt;
Expanded display is on.&lt;br /&gt;
postgres=# \l postgres&lt;br /&gt;
List of databases&lt;br /&gt;
-[ RECORD 1 ]-----+------------&lt;br /&gt;
Name              | postgres&lt;br /&gt;
Owner             | postgres&lt;br /&gt;
Encoding          | UTF8&lt;br /&gt;
Locale Provider   | libc&lt;br /&gt;
Collate           | en_US.UTF-8&lt;br /&gt;
Ctype             | en_US.UTF-8&lt;br /&gt;
ICU Locale        | &lt;br /&gt;
ICU Rules         | &lt;br /&gt;
Access privileges | &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pdns login;&lt;br /&gt;
sql&amp;gt; \password pdns&lt;br /&gt;
sql&amp;gt; create database db_pdns owner = pdns;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pda login;&lt;br /&gt;
sql&amp;gt; \password pda&lt;br /&gt;
sql&amp;gt; create database db_pda owner = pda;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS paigaldamine===&lt;br /&gt;
&lt;br /&gt;
PowerDNS ise ja tema tööks otseselt vajalikud komponendid (nt PostgreSQL andmebaas) töötavad nö tavalisel viisil operatsioonisüsteemi protsesside-teenustena st mitte-konteineritena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install pdns-server pdns-backend-pgsql pdns-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitatakse pdns server ja tema bind backend.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
PostgreSQL backend kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
Password for user pdns: &lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi ligipääs jms kirjeldatakse failis, https://doc.powerdns.com/authoritative/backends/generic-postgresql.html#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# egrep -v &amp;quot;^#|^$&amp;quot; /etc/powerdns/pdns.d/gpgsql.conf&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dbname=db_pdns&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-host=127.0.0.1&lt;br /&gt;
gpgsql-password=parool&lt;br /&gt;
gpgsql-port=5432&lt;br /&gt;
gpgsql-user=pdns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bind eemaldamiseks sobib kustutada fail&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/powerdns/pdns.d/bind.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena töötab pdns server, gpgsql backendiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2024-06-16T16:44:00.877817+03:00 pdns systemd[1]: Starting pdns.service - PowerDNS Authoritative Server...&lt;br /&gt;
2024-06-16T16:44:00.906026+03:00 pdns pdns_server[3916]: Loading '/usr/lib/x86_64-linux-gnu/pdns/libgpgsqlbackend.so'&lt;br /&gt;
2024-06-16T16:44:00.906356+03:00 pdns pdns_server[3916]: This is a standalone pdns&lt;br /&gt;
2024-06-16T16:44:00.906408+03:00 pdns pdns_server[3916]: Listening on controlsocket in '/run/pdns/pdns.controlsocket'&lt;br /&gt;
2024-06-16T16:44:00.906668+03:00 pdns pdns_server[3916]: UDP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906684+03:00 pdns pdns_server[3916]: UDP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906735+03:00 pdns pdns_server[3916]: TCP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906750+03:00 pdns pdns_server[3916]: TCP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906866+03:00 pdns pdns_server[3916]: PowerDNS Authoritative Server 4.9.1 (C) PowerDNS.COM BV&lt;br /&gt;
2024-06-16T16:44:00.906881+03:00 pdns pdns_server[3916]: Using 64-bits mode. Built using gcc 12.2.0 on May 28 2024 07:46:05 by root@localhost.&lt;br /&gt;
2024-06-16T16:44:00.906891+03:00 pdns pdns_server[3916]: PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.&lt;br /&gt;
2024-06-16T16:44:00.915255+03:00 pdns pdns_server[3916]: Polled security status of version 4.9.1 at startup, no known issues reported: OK&lt;br /&gt;
2024-06-16T16:44:00.926644+03:00 pdns pdns_server[3916]: Creating backend connection for TCP&lt;br /&gt;
2024-06-16T16:44:00.935773+03:00 pdns pdns_server[3916]: About to create 3 backend threads for UDP&lt;br /&gt;
2024-06-16T16:44:00.935850+03:00 pdns systemd[1]: Started pdns.service - PowerDNS Authoritative Server.&lt;br /&gt;
2024-06-16T16:44:01.086206+03:00 pdns pdns_server[3916]: Done launching threads, ready to distribute questions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ühtegi tsooni ei ole kirjeldatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# pdnsutil list-all-zones&lt;br /&gt;
root@pdns:/tmp# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS seadistamine===&lt;br /&gt;
&lt;br /&gt;
Seadistamisel tegeldakse&lt;br /&gt;
&lt;br /&gt;
* api sisselülitamine (PDA jaoks)&lt;br /&gt;
* SOA kirje vaikeväärtused&lt;br /&gt;
* DNSSEC vaike krüpto&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - PDA - docker===&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin tarvkara töötab docker konteinerina, aga kasutab host arvutist postgresql andmebaasi. Platvorm ettevalmistamine punktis on vajalik kasutaja ja create database tekitatud. PDA kasutamine eeldab, et PDNS juures on sisse lülitatud api liides (vaikimisi http liiklus üle port 8081).&lt;br /&gt;
&lt;br /&gt;
Docker compose fail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# cat docker-compose-pda.yml&lt;br /&gt;
services:&lt;br /&gt;
  svc_pda:&lt;br /&gt;
    image: powerdnsadmin/pda-legacy:v0.4.2&lt;br /&gt;
     &lt;br /&gt;
    container_name: cn_pda&lt;br /&gt;
    restart: always&lt;br /&gt;
    logging:&lt;br /&gt;
      driver: json-file&lt;br /&gt;
      options:&lt;br /&gt;
        max-size: 50m&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9191:80&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      - SECRET_KEY='saladus'&lt;br /&gt;
      - SQLALCHEMY_DATABASE_URI=postgresql://pda:pdaparool@192.168.10.53/pda&lt;br /&gt;
      - GUNICORN_TIMEOUT=60&lt;br /&gt;
      - GUNICORN_WORKERS=2&lt;br /&gt;
      - GUNICORN_LOGLEVEL=DEBUG&lt;br /&gt;
      - OFFLINE_MODE=False&lt;br /&gt;
      - CSRF_COOKIE_SECURE=False&lt;br /&gt;
 &lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_pda&lt;br /&gt;
       &lt;br /&gt;
networks:&lt;br /&gt;
  nw_pda:&lt;br /&gt;
    name: nw_pda&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # docker compose -f docker-compose-pda.yml up -d&lt;br /&gt;
&lt;br /&gt;
Tulemusena on aadressil http://192.168.10.53:9191/ PDA webgui sisselogimise ekraan. Pressida Create Account ja esimesena tekitatud kasutaja on admin privileegidega.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX operatsioonisüsteem===&lt;br /&gt;
&lt;br /&gt;
NginX https:// frontend kasutamiseks sobib kasutada sellist seadistust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/etc/nginx/sites-enabled# cat /etc/nginx/sites-enabled/pdns &lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    if ($request_uri !~ /.well-known) {&lt;br /&gt;
      return 301 https://pdns.moraal.ee/;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    ssl_certificate /etc/ssl/localcerts/pdns.moraal.ee.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/localcerts/pdns.moraal.ee.key;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:MozSSL:10m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_prefer_server_ciphers off;&lt;br /&gt;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 25m;&lt;br /&gt;
 &lt;br /&gt;
    ssl_stapling off;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=63072000&amp;quot; always;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/access-pdns.moraal.ee-443.log;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
      proxy_set_header Host $http_host;&lt;br /&gt;
      proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
      proxy_set_header X-Forwarded-Proto https;&lt;br /&gt;
      proxy_pass http://192.168.10.53:9191;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX docker===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /srv/pdns/volume/nginx/etc/nginx/nginx.conf&lt;br /&gt;
# nginx.conf&lt;br /&gt;
&lt;br /&gt;
user nginx;&lt;br /&gt;
worker_processes auto;&lt;br /&gt;
error_log /dev/stderr;&lt;br /&gt;
pid /var/run/nginx.pid;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
    include       mime.types;&lt;br /&gt;
    default_type  application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
    log_format  main  '$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; '&lt;br /&gt;
                      '$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; '&lt;br /&gt;
                      '&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;';&lt;br /&gt;
    access_log /dev/stdout main;&lt;br /&gt;
&lt;br /&gt;
    sendfile        on;&lt;br /&gt;
    keepalive_timeout  65;&lt;br /&gt;
&lt;br /&gt;
    # Redirect HTTP to HTTPS&lt;br /&gt;
    server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # HTTPS Configuration&lt;br /&gt;
    server {&lt;br /&gt;
        listen 443 ssl;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        http2 on;&lt;br /&gt;
        ssl_protocols TLSv1.3;&lt;br /&gt;
        ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
        ssl_certificate /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.crt;&lt;br /&gt;
        ssl_certificate_key /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.key;&lt;br /&gt;
&lt;br /&gt;
        # Recommended security settings&lt;br /&gt;
        ssl_session_cache shared:SSL:10m;&lt;br /&gt;
        ssl_session_timeout 10m;&lt;br /&gt;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;&lt;br /&gt;
&lt;br /&gt;
        # Logging&lt;br /&gt;
        access_log /dev/stdout;&lt;br /&gt;
        error_log /dev/stdout;&lt;br /&gt;
&lt;br /&gt;
        # Reverse proxy to the destination&lt;br /&gt;
        location / {&lt;br /&gt;
            proxy_pass http://svc_pdns:8081;&lt;br /&gt;
            proxy_set_header Host $host;&lt;br /&gt;
            proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
            proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab pda webgui poole pöörduda aadressiga https://pdns.moraal.ee/.&lt;br /&gt;
&lt;br /&gt;
PDA kasutaja parooli muutmine postgresql baasis, nb rakendus kasutab tabeli nimena 'user', see on postgresql nö built-in objekt ja name clash ületamiseks tuleb pöörduda rakendusega seotud ressursi poole &amp;quot;user&amp;quot; abil, eriti koos skeemi prefiksiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql db_pda&lt;br /&gt;
pda=# select * from public.&amp;quot;user&amp;quot;;&lt;br /&gt;
-[ RECORD 1 ]------------------------------------------------------------&lt;br /&gt;
id         | 1&lt;br /&gt;
username   | admin&lt;br /&gt;
password   | $2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FF&lt;br /&gt;
firstname  | Imre&lt;br /&gt;
lastname   | Oolberg&lt;br /&gt;
email      | imre.oolberg@auul.pri.ee&lt;br /&gt;
otp_secret | &lt;br /&gt;
role_id    | 1&lt;br /&gt;
confirmed  | f&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
db_pda=# update public.&amp;quot;user&amp;quot; set password='$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC' where username='admin';&lt;br /&gt;
UPDATE 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures password väärtus tekitatakse nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ htpasswd -bnBC 15 &amp;quot;&amp;quot; pdaparool | tr -d ':\n'&lt;br /&gt;
$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into &amp;quot;user&amp;quot; (username, password, firstname, lastname, email, role_id, confirmed) values ('admin',  '$2b$12$4M9qXQaWn95GTregvSO2v.I/1QQT0/Ayqt3jZsMp06FIa5dMme6Gu', 'Administrator', 'Administrator', 'priit@moraal.ee', 1, 'f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pdns api kontakti lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_url', 'http://192.168.10.80:8081');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_key', 'apiparool');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_version', '4.9.11');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# select * from setting;&lt;br /&gt;
 id |     name     |         value&lt;br /&gt;
----+--------------+------------------------&lt;br /&gt;
  7 | pdns_api_url | http://192.168.10.80:8081&lt;br /&gt;
  8 | pdns_api_key | apiparool&lt;br /&gt;
  9 | pdns_version | 4.9.11&lt;br /&gt;
(3 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PDA kasutamise privileegid===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Account - grupi taoline moodustis, praktiliselt võiks vastata domeeni omanik asutusele&lt;br /&gt;
* User - kasutaja taoline moodustis, vastab inimesele kes süsteemi kasutab&lt;br /&gt;
* User ja Account vaheliste seoste abil saab anda hulgale kasutajatele õiguse tegeleda hulga domeenidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-xxx-01:/opt/pda/dc# docker exec -ti e8 sh&lt;br /&gt;
/app $ ps aux&lt;br /&gt;
PID   USER     TIME  COMMAND&lt;br /&gt;
    1 pda       0:00 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    7 pda       0:02 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    8 pda       0:01 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
&lt;br /&gt;
[2025-10-31 13:06:25,927] [record.py:61] ERROR - Cannot fetch zone's record data from remote powerdns api. DETAIL: HTTPSConnectionPool(host='rvxxx-01.test.moraal.ee', port=443): Max retries exceeded with url: /api/v1/servers/localhost/zones/imretest-03.ee (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1007)')))&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
        #      - /opt/pda/volume/pda/etc/ssl/certs/ca-certificates.crt:/usr/lib/python3.10/site-packages/certifi/cacert.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PDA API liidese kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tsooni tekitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -s -L -H 'Content-Type: application/json' -H 'Authorization: Basic xxx' -X POST https://pda.moraal.ee/api/v1/pdnsadmin/zones \&lt;br /&gt;
    --data '{&amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;, &amp;quot;kind&amp;quot;: &amp;quot;MASTER&amp;quot;, &amp;quot;nameservers&amp;quot;: [&amp;quot;ans1.moraal.ee.&amp;quot;, &amp;quot;ans2.moraal.ee.&amp;quot;]}' | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;account&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;api_rectify&amp;quot;: false,&lt;br /&gt;
  &amp;quot;catalog&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;dnssec&amp;quot;: false,&lt;br /&gt;
  &amp;quot;edited_serial&amp;quot;: 2026010802,&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;kind&amp;quot;: &amp;quot;Master&amp;quot;,&lt;br /&gt;
  &amp;quot;last_check&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;master_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;masters&amp;quot;: [],&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;notified_serial&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;nsec3narrow&amp;quot;: false,&lt;br /&gt;
  &amp;quot;nsec3param&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;rrsets&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee. hostmaster.moraal.ee. 2026010801 86400 7200 2419200 10800&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SOA&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans2.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;NS&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;serial&amp;quot;: 2026010801,&lt;br /&gt;
  &amp;quot;slave_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;soa_edit&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;soa_edit_api&amp;quot;: &amp;quot;DEFAULT&amp;quot;,&lt;br /&gt;
  &amp;quot;url&amp;quot;: &amp;quot;/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui pole ligipääsu saab sellise vastuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% curl -s -L -H 'Content-Type: application/json' -H 'X-API-KEY:  xxx' -X GET &amp;quot;https://pda.moraal.ee/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee&amp;quot; | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;msg&amp;quot;: &amp;quot;Zone access not allowed&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns docker lahendus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf&lt;br /&gt;
allow-axfr-ips=127.0.0.1,192.168.10.0/24&lt;br /&gt;
allow-notify-from=&lt;br /&gt;
allow-unsigned-notify=yes&lt;br /&gt;
also-notify=&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=saladus&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-soa-content=ans1.auu.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
disable-syslog=no&lt;br /&gt;
forward-notify=&lt;br /&gt;
include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
launch=&lt;br /&gt;
local-address=172.30.0.15, 10.30.0.15&lt;br /&gt;
local-port=53&lt;br /&gt;
log-dns-details=yes&lt;br /&gt;
log-dns-queries=yes&lt;br /&gt;
log-timestamp=yes&lt;br /&gt;
loglevel=4&lt;br /&gt;
only-notify=&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=10.30.0.15&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
webserver-loglevel=detailed&lt;br /&gt;
webserver-password=saladus&lt;br /&gt;
webserver-port=8081&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns podman lahendus===&lt;br /&gt;
&lt;br /&gt;
PDNS Quadlet Service kirjeldus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
Environment=PDNS_local_port=8053&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pdns.conf seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/pdns/volume/pdns/etc/powerdns/pdns.conf&lt;br /&gt;
local-address=0.0.0.0&lt;br /&gt;
launch=&lt;br /&gt;
# include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=parool&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=0.0.0.0&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
#master=yes&lt;br /&gt;
&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
allow-axfr-ips= 100.20.21.0/24,127.0.0.1/32,172.17.0.0/16&lt;br /&gt;
also-notify=192.168.1.150&lt;br /&gt;
only-notify=&lt;br /&gt;
forward-notify=&lt;br /&gt;
default-soa-content=ans1.auul.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
# default-nsec3-param=1 0 0 -&lt;br /&gt;
&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-extra-connection-parameters=password=parool dbname=db_pdns port=5432 user=pdns host=192.168.1.147&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4940</id>
		<title>PowerDNS webfrontend - PowerDNS-Admin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4940"/>
		<updated>2026-08-05T05:52:38Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* PDA kasutamise privileegid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* ühe operatsioonisüteemi peal kompaktselt lahenduse pidamine - Debian v. 12&lt;br /&gt;
* dns server - PowerDNS&lt;br /&gt;
* webgui haldusliides - PowerDNS-Admin (PDA)&lt;br /&gt;
* dnssec võimekus&lt;br /&gt;
* docker abil kasutatakse konteinerit (PDA)&lt;br /&gt;
* andmeid hoitakse PostgreSQL andmebaasis&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* dnssec kasutab algoritmi nr 13&lt;br /&gt;
* NSEC3 kasutab '1 0 0 -' seadistust&lt;br /&gt;
* sekundaarsete nimeserveritega suhtlemine toimub catalog-zones abil&lt;br /&gt;
* kasutatakse KSK/ZSK ja CSK lähenemist võtmete pidamisel&lt;br /&gt;
&lt;br /&gt;
Protseduuride võimekus&lt;br /&gt;
&lt;br /&gt;
* NSEC, NSEC3 ja NSEC3 param väärtuste muutmine&lt;br /&gt;
* võtme vahetus&lt;br /&gt;
* krüptimise algoritmi vahetus&lt;br /&gt;
&lt;br /&gt;
===Platvormi ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Platvorm koosneb&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 operatsioonisüsteem&lt;br /&gt;
* Docker Community Edition&lt;br /&gt;
* PostgreSQL v. 12&lt;br /&gt;
* NginX&lt;br /&gt;
&lt;br /&gt;
PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-common&lt;br /&gt;
root@pdns:/tmp# mkdir /etc/postgresql-common/createcluster.d&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;initdb_options = '--data-checksums'&amp;quot; &amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;create_main_cluster = false&amp;quot; &amp;gt;&amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-16&lt;br /&gt;
root@pdns:/tmp# pg_createcluster --locale en_US.UTF-8 16 pgcluster_pdns_prod&lt;br /&gt;
 &lt;br /&gt;
postgres=# \x&lt;br /&gt;
Expanded display is on.&lt;br /&gt;
postgres=# \l postgres&lt;br /&gt;
List of databases&lt;br /&gt;
-[ RECORD 1 ]-----+------------&lt;br /&gt;
Name              | postgres&lt;br /&gt;
Owner             | postgres&lt;br /&gt;
Encoding          | UTF8&lt;br /&gt;
Locale Provider   | libc&lt;br /&gt;
Collate           | en_US.UTF-8&lt;br /&gt;
Ctype             | en_US.UTF-8&lt;br /&gt;
ICU Locale        | &lt;br /&gt;
ICU Rules         | &lt;br /&gt;
Access privileges | &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pdns login;&lt;br /&gt;
sql&amp;gt; \password pdns&lt;br /&gt;
sql&amp;gt; create database db_pdns owner = pdns;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pda login;&lt;br /&gt;
sql&amp;gt; \password pda&lt;br /&gt;
sql&amp;gt; create database db_pda owner = pda;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS paigaldamine===&lt;br /&gt;
&lt;br /&gt;
PowerDNS ise ja tema tööks otseselt vajalikud komponendid (nt PostgreSQL andmebaas) töötavad nö tavalisel viisil operatsioonisüsteemi protsesside-teenustena st mitte-konteineritena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install pdns-server pdns-backend-pgsql pdns-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitatakse pdns server ja tema bind backend.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
PostgreSQL backend kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
Password for user pdns: &lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi ligipääs jms kirjeldatakse failis, https://doc.powerdns.com/authoritative/backends/generic-postgresql.html#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# egrep -v &amp;quot;^#|^$&amp;quot; /etc/powerdns/pdns.d/gpgsql.conf&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dbname=db_pdns&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-host=127.0.0.1&lt;br /&gt;
gpgsql-password=parool&lt;br /&gt;
gpgsql-port=5432&lt;br /&gt;
gpgsql-user=pdns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bind eemaldamiseks sobib kustutada fail&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/powerdns/pdns.d/bind.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena töötab pdns server, gpgsql backendiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2024-06-16T16:44:00.877817+03:00 pdns systemd[1]: Starting pdns.service - PowerDNS Authoritative Server...&lt;br /&gt;
2024-06-16T16:44:00.906026+03:00 pdns pdns_server[3916]: Loading '/usr/lib/x86_64-linux-gnu/pdns/libgpgsqlbackend.so'&lt;br /&gt;
2024-06-16T16:44:00.906356+03:00 pdns pdns_server[3916]: This is a standalone pdns&lt;br /&gt;
2024-06-16T16:44:00.906408+03:00 pdns pdns_server[3916]: Listening on controlsocket in '/run/pdns/pdns.controlsocket'&lt;br /&gt;
2024-06-16T16:44:00.906668+03:00 pdns pdns_server[3916]: UDP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906684+03:00 pdns pdns_server[3916]: UDP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906735+03:00 pdns pdns_server[3916]: TCP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906750+03:00 pdns pdns_server[3916]: TCP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906866+03:00 pdns pdns_server[3916]: PowerDNS Authoritative Server 4.9.1 (C) PowerDNS.COM BV&lt;br /&gt;
2024-06-16T16:44:00.906881+03:00 pdns pdns_server[3916]: Using 64-bits mode. Built using gcc 12.2.0 on May 28 2024 07:46:05 by root@localhost.&lt;br /&gt;
2024-06-16T16:44:00.906891+03:00 pdns pdns_server[3916]: PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.&lt;br /&gt;
2024-06-16T16:44:00.915255+03:00 pdns pdns_server[3916]: Polled security status of version 4.9.1 at startup, no known issues reported: OK&lt;br /&gt;
2024-06-16T16:44:00.926644+03:00 pdns pdns_server[3916]: Creating backend connection for TCP&lt;br /&gt;
2024-06-16T16:44:00.935773+03:00 pdns pdns_server[3916]: About to create 3 backend threads for UDP&lt;br /&gt;
2024-06-16T16:44:00.935850+03:00 pdns systemd[1]: Started pdns.service - PowerDNS Authoritative Server.&lt;br /&gt;
2024-06-16T16:44:01.086206+03:00 pdns pdns_server[3916]: Done launching threads, ready to distribute questions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ühtegi tsooni ei ole kirjeldatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# pdnsutil list-all-zones&lt;br /&gt;
root@pdns:/tmp# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS seadistamine===&lt;br /&gt;
&lt;br /&gt;
Seadistamisel tegeldakse&lt;br /&gt;
&lt;br /&gt;
* api sisselülitamine (PDA jaoks)&lt;br /&gt;
* SOA kirje vaikeväärtused&lt;br /&gt;
* DNSSEC vaike krüpto&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - PDA - docker===&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin tarvkara töötab docker konteinerina, aga kasutab host arvutist postgresql andmebaasi. Platvorm ettevalmistamine punktis on vajalik kasutaja ja create database tekitatud. PDA kasutamine eeldab, et PDNS juures on sisse lülitatud api liides (vaikimisi http liiklus üle port 8081).&lt;br /&gt;
&lt;br /&gt;
Docker compose fail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# cat docker-compose-pda.yml&lt;br /&gt;
services:&lt;br /&gt;
  svc_pda:&lt;br /&gt;
    image: powerdnsadmin/pda-legacy:v0.4.2&lt;br /&gt;
     &lt;br /&gt;
    container_name: cn_pda&lt;br /&gt;
    restart: always&lt;br /&gt;
    logging:&lt;br /&gt;
      driver: json-file&lt;br /&gt;
      options:&lt;br /&gt;
        max-size: 50m&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9191:80&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      - SECRET_KEY='saladus'&lt;br /&gt;
      - SQLALCHEMY_DATABASE_URI=postgresql://pda:pdaparool@192.168.10.53/pda&lt;br /&gt;
      - GUNICORN_TIMEOUT=60&lt;br /&gt;
      - GUNICORN_WORKERS=2&lt;br /&gt;
      - GUNICORN_LOGLEVEL=DEBUG&lt;br /&gt;
      - OFFLINE_MODE=False&lt;br /&gt;
      - CSRF_COOKIE_SECURE=False&lt;br /&gt;
 &lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_pda&lt;br /&gt;
       &lt;br /&gt;
networks:&lt;br /&gt;
  nw_pda:&lt;br /&gt;
    name: nw_pda&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # docker compose -f docker-compose-pda.yml up -d&lt;br /&gt;
&lt;br /&gt;
Tulemusena on aadressil http://192.168.10.53:9191/ PDA webgui sisselogimise ekraan. Pressida Create Account ja esimesena tekitatud kasutaja on admin privileegidega.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX operatsioonisüsteem===&lt;br /&gt;
&lt;br /&gt;
NginX https:// frontend kasutamiseks sobib kasutada sellist seadistust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/etc/nginx/sites-enabled# cat /etc/nginx/sites-enabled/pdns &lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    if ($request_uri !~ /.well-known) {&lt;br /&gt;
      return 301 https://pdns.moraal.ee/;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    ssl_certificate /etc/ssl/localcerts/pdns.moraal.ee.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/localcerts/pdns.moraal.ee.key;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:MozSSL:10m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_prefer_server_ciphers off;&lt;br /&gt;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 25m;&lt;br /&gt;
 &lt;br /&gt;
    ssl_stapling off;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=63072000&amp;quot; always;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/access-pdns.moraal.ee-443.log;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
      proxy_set_header Host $http_host;&lt;br /&gt;
      proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
      proxy_set_header X-Forwarded-Proto https;&lt;br /&gt;
      proxy_pass http://192.168.10.53:9191;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX docker===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /srv/pdns/volume/nginx/etc/nginx/nginx.conf&lt;br /&gt;
# nginx.conf&lt;br /&gt;
&lt;br /&gt;
user nginx;&lt;br /&gt;
worker_processes auto;&lt;br /&gt;
error_log /dev/stderr;&lt;br /&gt;
pid /var/run/nginx.pid;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
    include       mime.types;&lt;br /&gt;
    default_type  application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
    log_format  main  '$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; '&lt;br /&gt;
                      '$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; '&lt;br /&gt;
                      '&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;';&lt;br /&gt;
    access_log /dev/stdout main;&lt;br /&gt;
&lt;br /&gt;
    sendfile        on;&lt;br /&gt;
    keepalive_timeout  65;&lt;br /&gt;
&lt;br /&gt;
    # Redirect HTTP to HTTPS&lt;br /&gt;
    server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # HTTPS Configuration&lt;br /&gt;
    server {&lt;br /&gt;
        listen 443 ssl;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        http2 on;&lt;br /&gt;
        ssl_protocols TLSv1.3;&lt;br /&gt;
        ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
        ssl_certificate /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.crt;&lt;br /&gt;
        ssl_certificate_key /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.key;&lt;br /&gt;
&lt;br /&gt;
        # Recommended security settings&lt;br /&gt;
        ssl_session_cache shared:SSL:10m;&lt;br /&gt;
        ssl_session_timeout 10m;&lt;br /&gt;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;&lt;br /&gt;
&lt;br /&gt;
        # Logging&lt;br /&gt;
        access_log /dev/stdout;&lt;br /&gt;
        error_log /dev/stdout;&lt;br /&gt;
&lt;br /&gt;
        # Reverse proxy to the destination&lt;br /&gt;
        location / {&lt;br /&gt;
            proxy_pass http://svc_pdns:8081;&lt;br /&gt;
            proxy_set_header Host $host;&lt;br /&gt;
            proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
            proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab pda webgui poole pöörduda aadressiga https://pdns.moraal.ee/.&lt;br /&gt;
&lt;br /&gt;
PDA kasutaja parooli muutmine postgresql baasis, nb rakendus kasutab tabeli nimena 'user', see on postgresql nö built-in objekt ja name clash ületamiseks tuleb pöörduda rakendusega seotud ressursi poole &amp;quot;user&amp;quot; abil, eriti koos skeemi prefiksiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql db_pda&lt;br /&gt;
pda=# select * from public.&amp;quot;user&amp;quot;;&lt;br /&gt;
-[ RECORD 1 ]------------------------------------------------------------&lt;br /&gt;
id         | 1&lt;br /&gt;
username   | admin&lt;br /&gt;
password   | $2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FF&lt;br /&gt;
firstname  | Imre&lt;br /&gt;
lastname   | Oolberg&lt;br /&gt;
email      | imre.oolberg@auul.pri.ee&lt;br /&gt;
otp_secret | &lt;br /&gt;
role_id    | 1&lt;br /&gt;
confirmed  | f&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
db_pda=# update public.&amp;quot;user&amp;quot; set password='$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC' where username='admin';&lt;br /&gt;
UPDATE 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures password väärtus tekitatakse nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ htpasswd -bnBC 15 &amp;quot;&amp;quot; pdaparool | tr -d ':\n'&lt;br /&gt;
$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into &amp;quot;user&amp;quot; (username, password, firstname, lastname, email, role_id, confirmed) values ('admin',  '$2b$12$4M9qXQaWn95GTregvSO2v.I/1QQT0/Ayqt3jZsMp06FIa5dMme6Gu', 'Administrator', 'Administrator', 'priit@moraal.ee', 1, 'f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pdns api kontakti lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_url', 'http://192.168.10.80:8081');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_key', 'apiparool');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_version', '4.9.11');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# select * from setting;&lt;br /&gt;
 id |     name     |         value&lt;br /&gt;
----+--------------+------------------------&lt;br /&gt;
  7 | pdns_api_url | http://192.168.10.80:8081&lt;br /&gt;
  8 | pdns_api_key | apiparool&lt;br /&gt;
  9 | pdns_version | 4.9.11&lt;br /&gt;
(3 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PDA kasutamise privileegid===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Account - grupi taoline moodustis, praktiliselt võiks vastata domeeni omanik asutusele&lt;br /&gt;
* User - kasutaja taoline moodustis, vastab inimesele kes süsteemi kasutab&lt;br /&gt;
* User ja Account vaheliste seoste abil saab anda hulgale kasutajatele õiguse tegeleda hulga domeenidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-xxx-01:/opt/pda/dc# docker exec -ti e8 sh&lt;br /&gt;
/app $ ps aux&lt;br /&gt;
PID   USER     TIME  COMMAND&lt;br /&gt;
    1 pda       0:00 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    7 pda       0:02 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    8 pda       0:01 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
&lt;br /&gt;
[2025-10-31 13:06:25,927] [record.py:61] ERROR - Cannot fetch zone's record data from remote powerdns api. DETAIL: HTTPSConnectionPool(host='rvxxx-01.test.moraal.ee', port=443): Max retries exceeded with url: /api/v1/servers/localhost/zones/imretest-03.ee (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1007)')))&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
        #      - /opt/pda/volume/pda/etc/ssl/certs/ca-certificates.crt:/usr/lib/python3.10/site-packages/certifi/cacert.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PDA API liidese kasutamine====&lt;br /&gt;
&lt;br /&gt;
Tsooni tekitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -s -L -H 'Content-Type: application/json' -H 'Authorization: Basic xxx' -X POST https://pda.moraal.ee/api/v1/pdnsadmin/zones \&lt;br /&gt;
    --data '{&amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;, &amp;quot;kind&amp;quot;: &amp;quot;MASTER&amp;quot;, &amp;quot;nameservers&amp;quot;: [&amp;quot;ans1.moraal.ee.&amp;quot;, &amp;quot;ans2.moraal.ee.&amp;quot;]}' | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;account&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;api_rectify&amp;quot;: false,&lt;br /&gt;
  &amp;quot;catalog&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;dnssec&amp;quot;: false,&lt;br /&gt;
  &amp;quot;edited_serial&amp;quot;: 2026010802,&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;kind&amp;quot;: &amp;quot;Master&amp;quot;,&lt;br /&gt;
  &amp;quot;last_check&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;master_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;masters&amp;quot;: [],&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;notified_serial&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;nsec3narrow&amp;quot;: false,&lt;br /&gt;
  &amp;quot;nsec3param&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;rrsets&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee. hostmaster.moraal.ee. 2026010801 86400 7200 2419200 10800&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SOA&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans2.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;NS&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;serial&amp;quot;: 2026010801,&lt;br /&gt;
  &amp;quot;slave_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;soa_edit&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;soa_edit_api&amp;quot;: &amp;quot;DEFAULT&amp;quot;,&lt;br /&gt;
  &amp;quot;url&amp;quot;: &amp;quot;/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui pole ligipääsu saab sellise vastuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% curl -s -L -H 'Content-Type: application/json' -H 'X-API-KEY:  xxx' -X GET &amp;quot;https://pda.moraal.ee/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee&amp;quot; | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;msg&amp;quot;: &amp;quot;Zone access not allowed&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns docker lahendus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf&lt;br /&gt;
allow-axfr-ips=127.0.0.1,192.168.10.0/24&lt;br /&gt;
allow-notify-from=&lt;br /&gt;
allow-unsigned-notify=yes&lt;br /&gt;
also-notify=&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=saladus&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-soa-content=ans1.auu.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
disable-syslog=no&lt;br /&gt;
forward-notify=&lt;br /&gt;
include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
launch=&lt;br /&gt;
local-address=172.30.0.15, 10.30.0.15&lt;br /&gt;
local-port=53&lt;br /&gt;
log-dns-details=yes&lt;br /&gt;
log-dns-queries=yes&lt;br /&gt;
log-timestamp=yes&lt;br /&gt;
loglevel=4&lt;br /&gt;
only-notify=&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=10.30.0.15&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
webserver-loglevel=detailed&lt;br /&gt;
webserver-password=saladus&lt;br /&gt;
webserver-port=8081&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns podman lahendus===&lt;br /&gt;
&lt;br /&gt;
PDNS Quadlet Service kirjeldus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
Environment=PDNS_local_port=8053&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pdns.conf seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/pdns/volume/pdns/etc/powerdns/pdns.conf&lt;br /&gt;
local-address=0.0.0.0&lt;br /&gt;
launch=&lt;br /&gt;
# include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=parool&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=0.0.0.0&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
#master=yes&lt;br /&gt;
&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
allow-axfr-ips= 100.20.21.0/24,127.0.0.1/32,172.17.0.0/16&lt;br /&gt;
also-notify=192.168.1.150&lt;br /&gt;
only-notify=&lt;br /&gt;
forward-notify=&lt;br /&gt;
default-soa-content=ans1.auul.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
# default-nsec3-param=1 0 0 -&lt;br /&gt;
&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-extra-connection-parameters=password=parool dbname=db_pdns port=5432 user=pdns host=192.168.1.147&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4939</id>
		<title>PowerDNS webfrontend - PowerDNS-Admin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4939"/>
		<updated>2026-08-05T05:52:08Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* ühe operatsioonisüteemi peal kompaktselt lahenduse pidamine - Debian v. 12&lt;br /&gt;
* dns server - PowerDNS&lt;br /&gt;
* webgui haldusliides - PowerDNS-Admin (PDA)&lt;br /&gt;
* dnssec võimekus&lt;br /&gt;
* docker abil kasutatakse konteinerit (PDA)&lt;br /&gt;
* andmeid hoitakse PostgreSQL andmebaasis&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* dnssec kasutab algoritmi nr 13&lt;br /&gt;
* NSEC3 kasutab '1 0 0 -' seadistust&lt;br /&gt;
* sekundaarsete nimeserveritega suhtlemine toimub catalog-zones abil&lt;br /&gt;
* kasutatakse KSK/ZSK ja CSK lähenemist võtmete pidamisel&lt;br /&gt;
&lt;br /&gt;
Protseduuride võimekus&lt;br /&gt;
&lt;br /&gt;
* NSEC, NSEC3 ja NSEC3 param väärtuste muutmine&lt;br /&gt;
* võtme vahetus&lt;br /&gt;
* krüptimise algoritmi vahetus&lt;br /&gt;
&lt;br /&gt;
===Platvormi ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Platvorm koosneb&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 operatsioonisüsteem&lt;br /&gt;
* Docker Community Edition&lt;br /&gt;
* PostgreSQL v. 12&lt;br /&gt;
* NginX&lt;br /&gt;
&lt;br /&gt;
PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-common&lt;br /&gt;
root@pdns:/tmp# mkdir /etc/postgresql-common/createcluster.d&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;initdb_options = '--data-checksums'&amp;quot; &amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;create_main_cluster = false&amp;quot; &amp;gt;&amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-16&lt;br /&gt;
root@pdns:/tmp# pg_createcluster --locale en_US.UTF-8 16 pgcluster_pdns_prod&lt;br /&gt;
 &lt;br /&gt;
postgres=# \x&lt;br /&gt;
Expanded display is on.&lt;br /&gt;
postgres=# \l postgres&lt;br /&gt;
List of databases&lt;br /&gt;
-[ RECORD 1 ]-----+------------&lt;br /&gt;
Name              | postgres&lt;br /&gt;
Owner             | postgres&lt;br /&gt;
Encoding          | UTF8&lt;br /&gt;
Locale Provider   | libc&lt;br /&gt;
Collate           | en_US.UTF-8&lt;br /&gt;
Ctype             | en_US.UTF-8&lt;br /&gt;
ICU Locale        | &lt;br /&gt;
ICU Rules         | &lt;br /&gt;
Access privileges | &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pdns login;&lt;br /&gt;
sql&amp;gt; \password pdns&lt;br /&gt;
sql&amp;gt; create database db_pdns owner = pdns;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pda login;&lt;br /&gt;
sql&amp;gt; \password pda&lt;br /&gt;
sql&amp;gt; create database db_pda owner = pda;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS paigaldamine===&lt;br /&gt;
&lt;br /&gt;
PowerDNS ise ja tema tööks otseselt vajalikud komponendid (nt PostgreSQL andmebaas) töötavad nö tavalisel viisil operatsioonisüsteemi protsesside-teenustena st mitte-konteineritena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install pdns-server pdns-backend-pgsql pdns-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitatakse pdns server ja tema bind backend.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
PostgreSQL backend kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
Password for user pdns: &lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi ligipääs jms kirjeldatakse failis, https://doc.powerdns.com/authoritative/backends/generic-postgresql.html#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# egrep -v &amp;quot;^#|^$&amp;quot; /etc/powerdns/pdns.d/gpgsql.conf&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dbname=db_pdns&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-host=127.0.0.1&lt;br /&gt;
gpgsql-password=parool&lt;br /&gt;
gpgsql-port=5432&lt;br /&gt;
gpgsql-user=pdns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bind eemaldamiseks sobib kustutada fail&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/powerdns/pdns.d/bind.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena töötab pdns server, gpgsql backendiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2024-06-16T16:44:00.877817+03:00 pdns systemd[1]: Starting pdns.service - PowerDNS Authoritative Server...&lt;br /&gt;
2024-06-16T16:44:00.906026+03:00 pdns pdns_server[3916]: Loading '/usr/lib/x86_64-linux-gnu/pdns/libgpgsqlbackend.so'&lt;br /&gt;
2024-06-16T16:44:00.906356+03:00 pdns pdns_server[3916]: This is a standalone pdns&lt;br /&gt;
2024-06-16T16:44:00.906408+03:00 pdns pdns_server[3916]: Listening on controlsocket in '/run/pdns/pdns.controlsocket'&lt;br /&gt;
2024-06-16T16:44:00.906668+03:00 pdns pdns_server[3916]: UDP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906684+03:00 pdns pdns_server[3916]: UDP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906735+03:00 pdns pdns_server[3916]: TCP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906750+03:00 pdns pdns_server[3916]: TCP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906866+03:00 pdns pdns_server[3916]: PowerDNS Authoritative Server 4.9.1 (C) PowerDNS.COM BV&lt;br /&gt;
2024-06-16T16:44:00.906881+03:00 pdns pdns_server[3916]: Using 64-bits mode. Built using gcc 12.2.0 on May 28 2024 07:46:05 by root@localhost.&lt;br /&gt;
2024-06-16T16:44:00.906891+03:00 pdns pdns_server[3916]: PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.&lt;br /&gt;
2024-06-16T16:44:00.915255+03:00 pdns pdns_server[3916]: Polled security status of version 4.9.1 at startup, no known issues reported: OK&lt;br /&gt;
2024-06-16T16:44:00.926644+03:00 pdns pdns_server[3916]: Creating backend connection for TCP&lt;br /&gt;
2024-06-16T16:44:00.935773+03:00 pdns pdns_server[3916]: About to create 3 backend threads for UDP&lt;br /&gt;
2024-06-16T16:44:00.935850+03:00 pdns systemd[1]: Started pdns.service - PowerDNS Authoritative Server.&lt;br /&gt;
2024-06-16T16:44:01.086206+03:00 pdns pdns_server[3916]: Done launching threads, ready to distribute questions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ühtegi tsooni ei ole kirjeldatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# pdnsutil list-all-zones&lt;br /&gt;
root@pdns:/tmp# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS seadistamine===&lt;br /&gt;
&lt;br /&gt;
Seadistamisel tegeldakse&lt;br /&gt;
&lt;br /&gt;
* api sisselülitamine (PDA jaoks)&lt;br /&gt;
* SOA kirje vaikeväärtused&lt;br /&gt;
* DNSSEC vaike krüpto&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - PDA - docker===&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin tarvkara töötab docker konteinerina, aga kasutab host arvutist postgresql andmebaasi. Platvorm ettevalmistamine punktis on vajalik kasutaja ja create database tekitatud. PDA kasutamine eeldab, et PDNS juures on sisse lülitatud api liides (vaikimisi http liiklus üle port 8081).&lt;br /&gt;
&lt;br /&gt;
Docker compose fail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# cat docker-compose-pda.yml&lt;br /&gt;
services:&lt;br /&gt;
  svc_pda:&lt;br /&gt;
    image: powerdnsadmin/pda-legacy:v0.4.2&lt;br /&gt;
     &lt;br /&gt;
    container_name: cn_pda&lt;br /&gt;
    restart: always&lt;br /&gt;
    logging:&lt;br /&gt;
      driver: json-file&lt;br /&gt;
      options:&lt;br /&gt;
        max-size: 50m&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9191:80&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      - SECRET_KEY='saladus'&lt;br /&gt;
      - SQLALCHEMY_DATABASE_URI=postgresql://pda:pdaparool@192.168.10.53/pda&lt;br /&gt;
      - GUNICORN_TIMEOUT=60&lt;br /&gt;
      - GUNICORN_WORKERS=2&lt;br /&gt;
      - GUNICORN_LOGLEVEL=DEBUG&lt;br /&gt;
      - OFFLINE_MODE=False&lt;br /&gt;
      - CSRF_COOKIE_SECURE=False&lt;br /&gt;
 &lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_pda&lt;br /&gt;
       &lt;br /&gt;
networks:&lt;br /&gt;
  nw_pda:&lt;br /&gt;
    name: nw_pda&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # docker compose -f docker-compose-pda.yml up -d&lt;br /&gt;
&lt;br /&gt;
Tulemusena on aadressil http://192.168.10.53:9191/ PDA webgui sisselogimise ekraan. Pressida Create Account ja esimesena tekitatud kasutaja on admin privileegidega.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX operatsioonisüsteem===&lt;br /&gt;
&lt;br /&gt;
NginX https:// frontend kasutamiseks sobib kasutada sellist seadistust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/etc/nginx/sites-enabled# cat /etc/nginx/sites-enabled/pdns &lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    if ($request_uri !~ /.well-known) {&lt;br /&gt;
      return 301 https://pdns.moraal.ee/;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    ssl_certificate /etc/ssl/localcerts/pdns.moraal.ee.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/localcerts/pdns.moraal.ee.key;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:MozSSL:10m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_prefer_server_ciphers off;&lt;br /&gt;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 25m;&lt;br /&gt;
 &lt;br /&gt;
    ssl_stapling off;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=63072000&amp;quot; always;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/access-pdns.moraal.ee-443.log;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
      proxy_set_header Host $http_host;&lt;br /&gt;
      proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
      proxy_set_header X-Forwarded-Proto https;&lt;br /&gt;
      proxy_pass http://192.168.10.53:9191;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PowerDNS-Admin paigaldamine - NginX docker===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /srv/pdns/volume/nginx/etc/nginx/nginx.conf&lt;br /&gt;
# nginx.conf&lt;br /&gt;
&lt;br /&gt;
user nginx;&lt;br /&gt;
worker_processes auto;&lt;br /&gt;
error_log /dev/stderr;&lt;br /&gt;
pid /var/run/nginx.pid;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
    include       mime.types;&lt;br /&gt;
    default_type  application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
    log_format  main  '$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; '&lt;br /&gt;
                      '$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; '&lt;br /&gt;
                      '&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;';&lt;br /&gt;
    access_log /dev/stdout main;&lt;br /&gt;
&lt;br /&gt;
    sendfile        on;&lt;br /&gt;
    keepalive_timeout  65;&lt;br /&gt;
&lt;br /&gt;
    # Redirect HTTP to HTTPS&lt;br /&gt;
    server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # HTTPS Configuration&lt;br /&gt;
    server {&lt;br /&gt;
        listen 443 ssl;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        http2 on;&lt;br /&gt;
        ssl_protocols TLSv1.3;&lt;br /&gt;
        ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
        ssl_certificate /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.crt;&lt;br /&gt;
        ssl_certificate_key /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.key;&lt;br /&gt;
&lt;br /&gt;
        # Recommended security settings&lt;br /&gt;
        ssl_session_cache shared:SSL:10m;&lt;br /&gt;
        ssl_session_timeout 10m;&lt;br /&gt;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;&lt;br /&gt;
&lt;br /&gt;
        # Logging&lt;br /&gt;
        access_log /dev/stdout;&lt;br /&gt;
        error_log /dev/stdout;&lt;br /&gt;
&lt;br /&gt;
        # Reverse proxy to the destination&lt;br /&gt;
        location / {&lt;br /&gt;
            proxy_pass http://svc_pdns:8081;&lt;br /&gt;
            proxy_set_header Host $host;&lt;br /&gt;
            proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
            proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab pda webgui poole pöörduda aadressiga https://pdns.moraal.ee/.&lt;br /&gt;
&lt;br /&gt;
PDA kasutaja parooli muutmine postgresql baasis, nb rakendus kasutab tabeli nimena 'user', see on postgresql nö built-in objekt ja name clash ületamiseks tuleb pöörduda rakendusega seotud ressursi poole &amp;quot;user&amp;quot; abil, eriti koos skeemi prefiksiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql db_pda&lt;br /&gt;
pda=# select * from public.&amp;quot;user&amp;quot;;&lt;br /&gt;
-[ RECORD 1 ]------------------------------------------------------------&lt;br /&gt;
id         | 1&lt;br /&gt;
username   | admin&lt;br /&gt;
password   | $2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FF&lt;br /&gt;
firstname  | Imre&lt;br /&gt;
lastname   | Oolberg&lt;br /&gt;
email      | imre.oolberg@auul.pri.ee&lt;br /&gt;
otp_secret | &lt;br /&gt;
role_id    | 1&lt;br /&gt;
confirmed  | f&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
db_pda=# update public.&amp;quot;user&amp;quot; set password='$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC' where username='admin';&lt;br /&gt;
UPDATE 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures password väärtus tekitatakse nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ htpasswd -bnBC 15 &amp;quot;&amp;quot; pdaparool | tr -d ':\n'&lt;br /&gt;
$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into &amp;quot;user&amp;quot; (username, password, firstname, lastname, email, role_id, confirmed) values ('admin',  '$2b$12$4M9qXQaWn95GTregvSO2v.I/1QQT0/Ayqt3jZsMp06FIa5dMme6Gu', 'Administrator', 'Administrator', 'priit@moraal.ee', 1, 'f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pdns api kontakti lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_url', 'http://192.168.10.80:8081');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_key', 'apiparool');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_version', '4.9.11');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# select * from setting;&lt;br /&gt;
 id |     name     |         value&lt;br /&gt;
----+--------------+------------------------&lt;br /&gt;
  7 | pdns_api_url | http://192.168.10.80:8081&lt;br /&gt;
  8 | pdns_api_key | apiparool&lt;br /&gt;
  9 | pdns_version | 4.9.11&lt;br /&gt;
(3 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PDA kasutamise privileegid====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Account - grupi taoline moodustis, praktiliselt võiks vastata domeeni omanik asutusele&lt;br /&gt;
* User - kasutaja taoline moodustis, vastab inimesele kes süsteemi kasutab&lt;br /&gt;
* User ja Account vaheliste seoste abil saab anda hulgale kasutajatele õiguse tegeleda hulga domeenidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-xxx-01:/opt/pda/dc# docker exec -ti e8 sh&lt;br /&gt;
/app $ ps aux&lt;br /&gt;
PID   USER     TIME  COMMAND&lt;br /&gt;
    1 pda       0:00 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    7 pda       0:02 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    8 pda       0:01 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
&lt;br /&gt;
[2025-10-31 13:06:25,927] [record.py:61] ERROR - Cannot fetch zone's record data from remote powerdns api. DETAIL: HTTPSConnectionPool(host='rvxxx-01.test.moraal.ee', port=443): Max retries exceeded with url: /api/v1/servers/localhost/zones/imretest-03.ee (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1007)')))&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
        #      - /opt/pda/volume/pda/etc/ssl/certs/ca-certificates.crt:/usr/lib/python3.10/site-packages/certifi/cacert.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PDA API liidese kasutamine====&lt;br /&gt;
&lt;br /&gt;
Tsooni tekitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -s -L -H 'Content-Type: application/json' -H 'Authorization: Basic xxx' -X POST https://pda.moraal.ee/api/v1/pdnsadmin/zones \&lt;br /&gt;
    --data '{&amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;, &amp;quot;kind&amp;quot;: &amp;quot;MASTER&amp;quot;, &amp;quot;nameservers&amp;quot;: [&amp;quot;ans1.moraal.ee.&amp;quot;, &amp;quot;ans2.moraal.ee.&amp;quot;]}' | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;account&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;api_rectify&amp;quot;: false,&lt;br /&gt;
  &amp;quot;catalog&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;dnssec&amp;quot;: false,&lt;br /&gt;
  &amp;quot;edited_serial&amp;quot;: 2026010802,&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;kind&amp;quot;: &amp;quot;Master&amp;quot;,&lt;br /&gt;
  &amp;quot;last_check&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;master_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;masters&amp;quot;: [],&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;notified_serial&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;nsec3narrow&amp;quot;: false,&lt;br /&gt;
  &amp;quot;nsec3param&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;rrsets&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee. hostmaster.moraal.ee. 2026010801 86400 7200 2419200 10800&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SOA&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans2.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;NS&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;serial&amp;quot;: 2026010801,&lt;br /&gt;
  &amp;quot;slave_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;soa_edit&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;soa_edit_api&amp;quot;: &amp;quot;DEFAULT&amp;quot;,&lt;br /&gt;
  &amp;quot;url&amp;quot;: &amp;quot;/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui pole ligipääsu saab sellise vastuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% curl -s -L -H 'Content-Type: application/json' -H 'X-API-KEY:  xxx' -X GET &amp;quot;https://pda.moraal.ee/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee&amp;quot; | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;msg&amp;quot;: &amp;quot;Zone access not allowed&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns docker lahendus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf&lt;br /&gt;
allow-axfr-ips=127.0.0.1,192.168.10.0/24&lt;br /&gt;
allow-notify-from=&lt;br /&gt;
allow-unsigned-notify=yes&lt;br /&gt;
also-notify=&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=saladus&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-soa-content=ans1.auu.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
disable-syslog=no&lt;br /&gt;
forward-notify=&lt;br /&gt;
include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
launch=&lt;br /&gt;
local-address=172.30.0.15, 10.30.0.15&lt;br /&gt;
local-port=53&lt;br /&gt;
log-dns-details=yes&lt;br /&gt;
log-dns-queries=yes&lt;br /&gt;
log-timestamp=yes&lt;br /&gt;
loglevel=4&lt;br /&gt;
only-notify=&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=10.30.0.15&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
webserver-loglevel=detailed&lt;br /&gt;
webserver-password=saladus&lt;br /&gt;
webserver-port=8081&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns podman lahendus===&lt;br /&gt;
&lt;br /&gt;
PDNS Quadlet Service kirjeldus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
Environment=PDNS_local_port=8053&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pdns.conf seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/pdns/volume/pdns/etc/powerdns/pdns.conf&lt;br /&gt;
local-address=0.0.0.0&lt;br /&gt;
launch=&lt;br /&gt;
# include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=parool&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=0.0.0.0&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
#master=yes&lt;br /&gt;
&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
allow-axfr-ips= 100.20.21.0/24,127.0.0.1/32,172.17.0.0/16&lt;br /&gt;
also-notify=192.168.1.150&lt;br /&gt;
only-notify=&lt;br /&gt;
forward-notify=&lt;br /&gt;
default-soa-content=ans1.auul.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
# default-nsec3-param=1 0 0 -&lt;br /&gt;
&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-extra-connection-parameters=password=parool dbname=db_pdns port=5432 user=pdns host=192.168.1.147&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_Authoritative_Server_nimeserveri_kasutamine&amp;diff=4938</id>
		<title>PowerDNS Authoritative Server nimeserveri kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_Authoritative_Server_nimeserveri_kasutamine&amp;diff=4938"/>
		<updated>2026-08-05T05:50:55Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Kasulikud lisamaterjalid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
PowerDNS https://www.powerdns.com/ on üks populaarsetest vaba tarkvaralistest nn alternatiivsetest DNS serveritest, kuigi 'alternatiivse' kohta väidetavalt teda kasutatakse väga massiliselt DNSSEC jaoks. PowerDNS tarkvara võimaldab pidada täielist DNS infrastruktuuri, sh slave ja master pädevate nimeserverite erinevad konfiguratsioonid. PowerDNS tarkvara komplekti kuuluvad&lt;br /&gt;
&lt;br /&gt;
* PowerDNS Authoritative Server - pädev nimeserver&lt;br /&gt;
* PowerDNS Recursor - rekursiivne nimeserver&lt;br /&gt;
* dnsdist - koormusjaotur&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative Server tarkvaral on sellised tunnused&lt;br /&gt;
&lt;br /&gt;
* võimalus kasutada andmete salvestamiseks erinevaid nn backend'isid (nn plain text, sql andmebaas, ldap kataloog jne)&lt;br /&gt;
* väga mugavalt korraldada DNSSEC tsooni pidamist&lt;br /&gt;
* DNSSEC puhul on PowerDNS tarkvarale iseloomulik, et kõik DNSSEC moodustatakse käigult, st midagi ei ole salvestatud (well, midagi puhverdatakse, aga rrsig moodi kirjeid jms ei hoita nö tsoonifaili kujul)&lt;br /&gt;
* tsoonide käsitlemine (tekitamine, sisu muutmine, eemaldamine) on võimalik üle nn API&lt;br /&gt;
* eksisteerivad mitmesugused veebipõhised tsoonide haldusliidesed (otse baasi ja üle API)&lt;br /&gt;
* ebamugav on kontrollida, kust tsooni kopeeritakse, kuhu notify saadetakse ja kust lubatakse tsooni kopeerida&lt;br /&gt;
&lt;br /&gt;
Haldusliidesed jagunevad kaheks&lt;br /&gt;
&lt;br /&gt;
* kirjutavad otse samasse sql baasi, mida kasutab PowerDNS ja tegelikult töötavadki ainult SQL backendide puhul - nt Poweradmin, http://www.poweradmin.org/&lt;br /&gt;
* suhtlevad PowerDNS'iga üle API, töötavad kõigi backendide puhul - nt nsedit, https://github.com/tuxis-ie/nsedit&lt;br /&gt;
&lt;br /&gt;
Järgnevas tekstis öeldakse lühiduse mõttes PowerDNS ja mõeldakse PowerDNS Authoritative Server ehk pädevat komponenti.&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
PowerDNS tarkvara saab kasutada erinevates konfiguratsioonides&lt;br /&gt;
&lt;br /&gt;
* nö suure pildi mõttes, nt PowerDNS on varjatud master ja avalikus võrgus teenindavad NSD nimeserverid (alternatiiv oleks pidada PowerDNS nimeserverit otse avalikus võrgus)&lt;br /&gt;
* PowerDNS enda komponentidest on välja valitud mingi komplekt, nt baas osa ja PostgreSQL backend (alternatiiv oleks BIND formaadis tekstifailid failisüsteemis)&lt;br /&gt;
* tsooniandmete haldamiseks kasutatakse käsurea utiliiti pdnsutil ja nsedit php rakendust&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis keskendutakse just mainitud konfiguratsioonile. Kui PowerDNS kasutab SQL backendi, siis avaliku pädeva DNS teenuse pakkumise juures tekitab see vähemalt esmapilgul kahtlusi. Võib olla on hea mõte tekitada varjatud masteriga lahendus&lt;br /&gt;
&lt;br /&gt;
      ans1 (NSD)                                   ans2 (NSD)&lt;br /&gt;
      _____                                        _____&lt;br /&gt;
     |     |                                      |     |&lt;br /&gt;
     |     |                                      |     |&lt;br /&gt;
     |_____| port 8952                            |_____| port 8952&lt;br /&gt;
        |                                            |&lt;br /&gt;
        |                                            |&lt;br /&gt;
    ----|---------------------|----------------------|----&lt;br /&gt;
                              |&lt;br /&gt;
                            __|__&lt;br /&gt;
                           |     | nimetaja (PowerDNS)&lt;br /&gt;
                           |     |&lt;br /&gt;
                           |_____|&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ans1, ans2 - avalikud pädevad nimeserverid, tehniliselt slave'id&lt;br /&gt;
* nimetaja - varjatud pädev nimeserver, tehniliselt master&lt;br /&gt;
* üle port 8952 saab nsd protsessi eemalt juhtida (alternatiiv on juhtida nö tavalisel viisil, lokaalselt)&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis pööratakse NSD tarkvara kasutamisele tähelepanu minimaalselt. NSD tekst asub aadressil [[:Pädeva nimeserveri NSD v. 4 kasutamine operatsioonisüsteemiga Debian]].&lt;br /&gt;
&lt;br /&gt;
===Tarkvara paigaldamine ja seadistamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks on üldiselt kaks võimalust&lt;br /&gt;
&lt;br /&gt;
* operatsioonisüsteemi paketihaldus&lt;br /&gt;
* PowerDNS repositoorium - https://repo.powerdns.com/&lt;br /&gt;
&lt;br /&gt;
PowerDNS tarkvara on jaotatud komponentideks&lt;br /&gt;
&lt;br /&gt;
* üldosa&lt;br /&gt;
* tsoonidega seotud andmete salvesamiseks erinevad backendid (failisüsteem, SQL andembaas jne)&lt;br /&gt;
&lt;br /&gt;
Kui asutakse kasutama SQL backendi, siis võib olla otstarbekas enne PowerDNS vastava backendi paigaldamist baas ise paigaldada ja käivitada; nt nt see baas ei pruugi olla tingimata samas arvutis. Teisipidi, mugavam on samas arvutis, kuna sel juhul baasi saab lähtestada dbconfig süsteemi abil; lisaks, kui kasutatakse DNSSEC'i, siis arvestada, et krüptomaterjal asub baasis. Käesolevas tekstis paigaldatakse tarkvara PowerDNS repositooriumist kuna seal on alati kõige värskem.&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL andmebaasi ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
PowerDNS tarkvara ei ole PostgreSQL andmebaasi versiooni suhtes nõudlik, tõenäoliselt sobib igasugune v. 9.x ja nt en_US.UTF-8 kodeering&lt;br /&gt;
&lt;br /&gt;
 # apt-get install postgresql&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine PowerDNS repositooriumist====&lt;br /&gt;
&lt;br /&gt;
PowerDNS repositoorium asub aadressil https://repo.powerdns.com/ ja kasutamine (Debian v. 9 Stretch juhtumil)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/pdns.list &lt;br /&gt;
 deb http://repo.powerdns.com/debian stretch-auth-master main&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add -&lt;br /&gt;
 # apt-get update&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks öelda (paistab, et bind backend paigaldatakse lisaks paratamatult)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdns-server pdns-backend-pgsql&lt;br /&gt;
&lt;br /&gt;
seejuures on valik paigaldada baas db-config süsteemi abil ja see validagi. Tulemusena tekitatakse baasi baasi kasutaja, create database, initsiliseeritakse baasi sisu ning kirjeldatakse PowerDNS backend seadistus&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/powerdns/pdns.d/pdns.local.gpgsql.conf&lt;br /&gt;
 # PostgreSQL Configuration&lt;br /&gt;
 #&lt;br /&gt;
 # Launch gpgsql backend&lt;br /&gt;
 launch+=gpgsql&lt;br /&gt;
 &lt;br /&gt;
 # gpgsql parameters&lt;br /&gt;
 gpgsql-host=127.0.0.1&lt;br /&gt;
 gpgsql-port=&lt;br /&gt;
 gpgsql-dbname=pdns&lt;br /&gt;
 gpgsql-user=pdns&lt;br /&gt;
 gpgsql-password=pdnsparool&lt;br /&gt;
 gpgsql-dnssec=yes&lt;br /&gt;
&lt;br /&gt;
Vaikimisi käivitatakse PowerDNS protsessid ning natuke saab asuda süsteemi kasutama&lt;br /&gt;
&lt;br /&gt;
 # pdns_control list-zones&lt;br /&gt;
 All zonecount:0&lt;br /&gt;
&lt;br /&gt;
Järgmisena tuleb PowerDNS server seadistada.&lt;br /&gt;
&lt;br /&gt;
====Käsitsi baasi lähtestamine====&lt;br /&gt;
&lt;br /&gt;
Kui db-config süsteemi mitte kasutada, sobib tekitada kasutaja ja create database andmebaas käsitsi&lt;br /&gt;
&lt;br /&gt;
 # su - postgres&lt;br /&gt;
 $ psql&lt;br /&gt;
 ..&lt;br /&gt;
 postgres=# create role pdns login password 'pdnsparool' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;&lt;br /&gt;
 postgres=# create database pdns owner = pdns;&lt;br /&gt;
&lt;br /&gt;
ning seejärel laadida baasi sisu, õieti struktuur&lt;br /&gt;
&lt;br /&gt;
 # psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
&lt;br /&gt;
Lisaks peab olema seadistusfail /etc/powerdns/pdns.d/pdns.local.gpgsql.conf sobiva sisuga, vt. eelmist punkti.&lt;br /&gt;
&lt;br /&gt;
===Tarkvara seadistamine===&lt;br /&gt;
&lt;br /&gt;
Üldosa sobiks kokkuvõttes seadistada nt nii&lt;br /&gt;
&lt;br /&gt;
 # egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf &lt;br /&gt;
 allow-axfr-ips=127.0.0.0/8,::1,192.168.1.210&lt;br /&gt;
 also-notify=192.168.1.210&lt;br /&gt;
 api=yes&lt;br /&gt;
 api-key=midagisalajast123&lt;br /&gt;
 default-soa-mail=hostmaster.moraal.ee.&lt;br /&gt;
 default-soa-name=ans1.moraal.ee.&lt;br /&gt;
 include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
 launch=&lt;br /&gt;
 master=yes&lt;br /&gt;
 only-notify=192.168.1.210&lt;br /&gt;
 security-poll-suffix=&lt;br /&gt;
 setgid=pdns&lt;br /&gt;
 setuid=pdns&lt;br /&gt;
 slave=yes&lt;br /&gt;
 soa-expire-default=3600000&lt;br /&gt;
 soa-minimum-ttl=3600&lt;br /&gt;
 soa-refresh-default=86400&lt;br /&gt;
 soa-retry-default=7200&lt;br /&gt;
 webserver=yes&lt;br /&gt;
 webserver-address=192.168.1.248&lt;br /&gt;
 webserver-allow-from=0.0.0.0/0,::/0,192.168.10.0/24&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* allow-axfr-ips - millistelt ip aadressidelt on lubatud axfr&lt;br /&gt;
* also-notify - millistele ip aadressidel töötavatele nimeserveritele saata notify&lt;br /&gt;
* api* - api kasutamine (vajalik veebipõhise haldusliidese nsedit jaoks)&lt;br /&gt;
* default-soa-* - uue tsooni sisu moodustamisel kasutatavad vaikeväärtused&lt;br /&gt;
* only-notify - notify saadetakse ainult näidatud ip aadressidele (mitte tsoonifailides siselduvatele NS serveritele)&lt;br /&gt;
* soa-* uue tsooni sisu moodustamisel kasutatavad vaikeväärtused&lt;br /&gt;
* webserver* - powerdns sisemise veebiserveri ip aadress jms (saab uurida protsesside statistikat)&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks lõpetada ja käivitada pdns protsessid&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop pdns&lt;br /&gt;
 # systemctl start pdns&lt;br /&gt;
&lt;br /&gt;
===Tsooni sisu haldamine käsurealt===&lt;br /&gt;
&lt;br /&gt;
Tsooni sisu haldamine käsurealt toimub utiliidi pdnsutil abil. Uue tühja tsooni tekitamine (sisaldab SOA kirjet), seejärel tuleb vähemalt NS kirje tekitada (nb! nii tekib Native tüüpi tsoon)&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil create-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tulemuse küsimine&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tsooni Native -&amp;gt; Master teisendus&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil set-kind moraal.ee master&lt;br /&gt;
&lt;br /&gt;
Tsooni sisu esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil list-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Sisu muutmiseks, sh muuta käsitsi SOA serial&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil edit-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
utiliidiga seriali suurendamiseks&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil increase-serial moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tulemuse küsimine&lt;br /&gt;
&lt;br /&gt;
 # dig @127.0.0.1 moraal.ee axfr&lt;br /&gt;
&lt;br /&gt;
Notify käsitsi välja saatmiseks&lt;br /&gt;
&lt;br /&gt;
 # pdns_control notify moraal.ee&lt;br /&gt;
 Added to queue&lt;br /&gt;
&lt;br /&gt;
Kirje lisamine (lisaks tuleb increase serial öelda)&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-record moraal.ee imre5 A 300 &amp;quot;127.0.0.5&amp;quot;&lt;br /&gt;
 Feb 21 10:20:54 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 New rrset:&lt;br /&gt;
 imre5.moraal.ee. IN A 300 127.0.0.5&lt;br /&gt;
&lt;br /&gt;
===Veebipõhine haldusliides nsedit===&lt;br /&gt;
&lt;br /&gt;
Veebipõhiste haldusliideste abil saab&lt;br /&gt;
&lt;br /&gt;
* tekitada ja kustutada tsoone, muuta tsoonide sisu&lt;br /&gt;
* loodetavasti haldusliidese abil jäävad tegemata mingid süntaksivead, mida on kerge teha nn BIND-ühilduvat tsoonifaili tavalise tekstieditoriga otse muutes&lt;br /&gt;
* tsooni sisu halduse saab usaldada mitte-vi/joe/nano ekspertiisiga inimesele&lt;br /&gt;
&lt;br /&gt;
Paistab, et veebipõhiseid haldusliideseid on omajagu, https://github.com/PowerDNS/pdns/wiki/WebFrontends. nsedit on PHP rakendus. Märkused&lt;br /&gt;
&lt;br /&gt;
* Tsoonis tehtud muudatustega kaasneb automaatselt SOA seriali suurenemine&lt;br /&gt;
* Veebiliideses tehtud muudatused ei kajastu alati sama veebiliideses koheselt (nt SOA seriali muutumine, välja ja sisselogimise järel on näha)&lt;br /&gt;
* nsedit esitab muudatuste logi&lt;br /&gt;
* toimib ipv6 jaoks&lt;br /&gt;
* nn õäöü tähti sisaldavaid nimesid sisestada otseselt ei saa&lt;br /&gt;
* rakenduse võib paigaldada http:// peale ja seejärel muuta veebiserveri seadistusi ning kasutada edasi https:// abil&lt;br /&gt;
* nsedit ei pea asuma samas arvutis PowerDNS serveriga, suhtlemine toimub üle võrgu ja kasutades API liidest&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistused====&lt;br /&gt;
&lt;br /&gt;
nsedit kasutamise eelduseks on selline tarkvara&lt;br /&gt;
&lt;br /&gt;
 # apt-get install apache2 php git php-sqlite3 php-curl&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine ja seadistamine====&lt;br /&gt;
&lt;br /&gt;
Kopeerida tarkvara, tundub, et 2017 aasta alguses on praktiline võtta git repo viimane ots&lt;br /&gt;
&lt;br /&gt;
 # cd /var/www/html&lt;br /&gt;
 # git clone https://github.com/tuxis-ie/nsedit.git&lt;br /&gt;
&lt;br /&gt;
Tekitada php skriptide jaoks kasutaja:grupp&lt;br /&gt;
&lt;br /&gt;
 # groupadd nsedit&lt;br /&gt;
 # useradd -g nsedit -m -d /opt/nsedit -s /bin/false nsedit&lt;br /&gt;
&lt;br /&gt;
Avades brauseris http://pdns.moraal.ee/nsedit küsitakse parooli, vaikimisi sobib admin ja admin mille järel&lt;br /&gt;
&lt;br /&gt;
* kontrollitakse vajalike teekide olemasolu&lt;br /&gt;
* moodustatakse sqlite3 andmebaas&lt;br /&gt;
&lt;br /&gt;
 # sqlite3 /var/www/html/etc/pdns.users.sqlite3&lt;br /&gt;
 ..&lt;br /&gt;
 sqlite&amp;gt; .tables&lt;br /&gt;
 logs   users  zones&lt;br /&gt;
&lt;br /&gt;
nsedit seadistatakse failis /var/www/html/nsedit/includes/config.inc.php&lt;br /&gt;
&lt;br /&gt;
 # cp includes/config.inc.php-dist includes/config.inc.php&lt;br /&gt;
&lt;br /&gt;
* ühendust powerdns serveriga üle api juhib sektsioon&lt;br /&gt;
&lt;br /&gt;
 # cat /var/www/html/nsedit/includes/config.inc.php | grep '^$api'&lt;br /&gt;
 $apipass = 'apiparool';           # The PowerDNS API-key&lt;br /&gt;
 $apiip   = '10.0.9.18';           # The IP of the PowerDNS API&lt;br /&gt;
 $apiport = '8081';       # The port of the PowerDNS API&lt;br /&gt;
 $apiproto      = 'http'; # http | https&lt;br /&gt;
 $apisslverify  = FALSE;  # Verify SSL Certificate if using https for apiproto&lt;br /&gt;
&lt;br /&gt;
* vaikeväärtuste kasutamiset haldusliideses kontrollib&lt;br /&gt;
&lt;br /&gt;
 $defaults['soa_edit']    = 'INCEPTION-INCREMENT';&lt;br /&gt;
 $defaults['soa_edit_api'] = 'INCEPTION-INCREMENT';&lt;br /&gt;
 $defaults['defaulttype'] = 'Master';                    # Choose between 'Native' or 'Master'&lt;br /&gt;
 $defaults['ns'][0] = 'ns1.moraal.ee.';         # The value of the first NS-record&lt;br /&gt;
 $defaults['ns'][1] = 'ns2.moraal.ee.';       # The value of the second NS-record&lt;br /&gt;
 $defaults['ttl']   = 3600;                              # Default TTL for records&lt;br /&gt;
 $defaults['disabled'] = false;                          # Default disabled state&lt;br /&gt;
&lt;br /&gt;
Kasutajaliides paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Pdns-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Kui rakendus töötab, muuta rakenduse failide omanik:grupp ära&lt;br /&gt;
&lt;br /&gt;
 # chown -R nsedit:nsedit /var/www/html/nsedit&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Kasutajate lisamine, valida (ning märkida linnuke admin user jaoks), tulemusena on nsedit logid paremad&lt;br /&gt;
&lt;br /&gt;
 Users -&amp;gt; Add new user &lt;br /&gt;
&lt;br /&gt;
* Uue tsooni lisamine, valida&lt;br /&gt;
&lt;br /&gt;
 Zones -&amp;gt; Add new zone&lt;br /&gt;
&lt;br /&gt;
ning sisestada Domain lahtrisse domeeninimi, lõpetades punktiga, nt&lt;br /&gt;
&lt;br /&gt;
 test-1.ee.&lt;br /&gt;
&lt;br /&gt;
Kõik muud valikud jätta vaikimisi&lt;br /&gt;
&lt;br /&gt;
 Account - admin&lt;br /&gt;
 Type - master&lt;br /&gt;
 Template - None&lt;br /&gt;
&lt;br /&gt;
Kuna pdns serveri seadistusfailisis on näidatus SOA kirje väärtused ja nsedit seadisusfailis on kirjeldatud nimeserverid, siis tekib vaikimisi kastutatav tulemus.&lt;br /&gt;
&lt;br /&gt;
* Uue tsooni lisamine kirjeldades korraga palju kirjeid (nt tsooni ületoomisel eelmise dns teenusepakkuja juurest)&lt;br /&gt;
&lt;br /&gt;
 Zones -&amp;gt; Import a new zone&lt;br /&gt;
&lt;br /&gt;
seejuures&lt;br /&gt;
&lt;br /&gt;
 avanenud dialoogi pasteda tsoonifaili sisu&lt;br /&gt;
 eemaldada SOA kirje&lt;br /&gt;
 asendada NS kirjetesse õiged väärtused&lt;br /&gt;
 kõik nimed (kirje kõige vasem positsioon) peavad olema pikad ja lõppema punktiga&lt;br /&gt;
 eemaldada linnuke 'Overwrite Nameservers' juurest&lt;br /&gt;
&lt;br /&gt;
* Mitme elemendilise väärtuse puhul tuleb see nii sisestada, nt MX kirje puhul&lt;br /&gt;
&lt;br /&gt;
 10 mx.moraal.ee.&lt;br /&gt;
&lt;br /&gt;
* Eeldusel, et on olemas Content tulbas kasutatav A kirje ip aadressile vastav in-addr.arpa tsoon, saab nsedit abil tekitada automaatselt PTR kirje.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tuxis-ie/nsedit&lt;br /&gt;
&lt;br /&gt;
===DNSSEC tsooni esmane juurutamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et uuemal ajal saab DNSSEC juures kasatada CSK (Combined Signing Key) võtit ja seda kasutab PowerDNS vaikimisi, kuid samas CSK võtmeid registripidajad eriti ei toeta. Ja PowerDNS toetab ka nö klassikalist KSK+ZSK komplekti kasutamist.&lt;br /&gt;
&lt;br /&gt;
====KSK ja ZSK võtmete kasutamine====&lt;br /&gt;
&lt;br /&gt;
Võtmete tsooniga seostamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee ksk 2048 active rsasha256&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee zsk 1024 active rsasha256&lt;br /&gt;
 # pdnsutil set-nsec3 moraal.ee '1 0 5 0...f'&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT-API INCEPTION-INCREMENT&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT INCEPTION-INCREMENT&lt;br /&gt;
 # pdnsutil increase-serial moraal.ee&lt;br /&gt;
 # pdnsutil rectify-zone moraal.ee&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
mis&lt;br /&gt;
&lt;br /&gt;
* tekitab võtmed&lt;br /&gt;
* kui set-meta kogemata vääratab, nt lisati SOA-EDIT-SOA, siis saab meta data eemaldada, st näitamata väärtust&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT-SOA&lt;br /&gt;
&lt;br /&gt;
* võtab kasutusele nsec3 hash'ide arvutamiseks vajaliku materjali (0-f on 16-elemendiline juhuslik hex järgnevus, mis saadake nt nii&lt;br /&gt;
&lt;br /&gt;
 $ head -c 512 /dev/urandom | sha1sum | cut -b 1-16&lt;br /&gt;
 7bc59a6dd87fa477&lt;br /&gt;
&lt;br /&gt;
ja ideaalis võiks seda regulaarselt muuta), nt&lt;br /&gt;
&lt;br /&gt;
 $ dig +short moraal.ee nsec3param&lt;br /&gt;
 1 0 5 E7544BB6070C3E0F&lt;br /&gt;
&lt;br /&gt;
(kus 1 - sha1, 0 - opt-out, 5 - iterations, E7544BB6070C3E0F - salt)&lt;br /&gt;
&lt;br /&gt;
* INCEPTION-INCREMENT rida seadistab selliselt, et kui automaaselt tsooni andmed resigneeritakse, siis suurendatakse ka seriali (muidu ei toimu notify ja andmed ei jõua avalikesse pädevatesse nimeserveritesse)&lt;br /&gt;
* rectify tuleb põhimõtteliselt öelda peale iga tsooni muudatust, et olla täiesti kindel tsooni toimimises; kui PowerDNS kasutatakse avalike nimeserverite varjatud masterina, pole see probleem&lt;br /&gt;
&lt;br /&gt;
ning tsooni andmed paistavad&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
 Nov 06 23:49:44 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 This is a Master zone&lt;br /&gt;
 Last SOA serial number we notified: 2016103003 == 2016103003 (serial in the database)&lt;br /&gt;
 Metadata items: &lt;br /&gt;
        SOA-EDIT        INCEPTION-INCREMENT&lt;br /&gt;
        SOA-EDIT-API    INCEPTION-INCREMENT&lt;br /&gt;
 Zone has NSEC3 semantics, configuration: 1 0 1 ab&lt;br /&gt;
 keys: &lt;br /&gt;
 ID = 11 (ZSK), flags = 256, tag = 26589, algo = 8, bits = 1024    Active ( RSASHA256 ) &lt;br /&gt;
 ID = 10 (KSK), flags = 257, tag = 53461, algo = 8, bits = 2048    Active ( RSASHA256 ) &lt;br /&gt;
 KSK DNSKEY = moraal.ee. IN DNSKEY 257 3 8  AwEAAcn... TQcnQstT+tU= ; ( RSASHA256 )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 1 6c123b39076072da... c66f62b1e3c388b86b7f ; ( SHA1 digest )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 2 b85dee98efa6e3bb... 57ce193f728f6b2b1d0dd262 ; ( SHA256 digest )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 3 1359b0b2b97e60b2... 844b207e84bf5c109eb2e151 ; ( GOST R 34.11-94 digest )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 4 6d735926cd5cf68b... 9ca2af1f72b3b8f67900bb32a94c ; ( SHA-384 digest )&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kaks võtit, ID väärtustega 10 ja 11&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb registripidajale öelda DS väärtus.&lt;br /&gt;
&lt;br /&gt;
Tulemuse saab kontrollida nt aadressil http://dnsviz.net/d/moraal.ee/dnssec/.&lt;br /&gt;
&lt;br /&gt;
DNSSEC eemaldamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* esmalt eemaldada registripidaja juurest DS kirje (reeglina see õnnestub, aga nt 2017 aasta kevadel .org domeenide puhul on tulemuseks dnssec viga, tavaline servfail)&lt;br /&gt;
* tsoonis dnssec väljalülitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil disable-dnssec moraal.ee&lt;br /&gt;
&lt;br /&gt;
====Tulemuse kontrollimine====&lt;br /&gt;
&lt;br /&gt;
Kui kõik juba töötab (ja on vist on vajalik, et kasutada on mõni dnssec-võimeline rekursiivne nimeserver), saab tulemust kontrollida nt nii&lt;br /&gt;
&lt;br /&gt;
 $ ldns-rrsig moraal.ee a&lt;br /&gt;
 moraal.ee RRSIG(a):  Thu Oct 27 00:00:00 2016 - Thu Nov 17 00:00:00 2016&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
* DNSSEC RRSIG signatuure arvutatakse iga 2 nädala tagant üle selleks, et piirata replay attack võimalusi. Põhimõtteliselt saab pahalane päringule vastuseks saata mõne varasemalt võrgus olnud vastuse (st RRSet + RRSIG komplekti) eeldusel, et ta kontrollib kasutaja võrguliiklust. Tänu RRSIG piiratud kehtivusajale (nt 2 nädalat) saab ta seda teha mitte vanemate kui 2 nädalat andmetega, lisaks ta on piiratud saatma mitte suvalisi vastuseid, vaid viimase kahe nädala jooksul kasutuses olnud vastuseid.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://blog.powerdns.com/2016/02/02/powerdns-authoritative-the-new-old-way-to-manage-domains/&lt;br /&gt;
&lt;br /&gt;
====CSK võtme kasutamine====&lt;br /&gt;
&lt;br /&gt;
Märkus 2016 lõpus: tundub, et see CSK on mingi tulevikutehnoloogia.&lt;br /&gt;
&lt;br /&gt;
Olemasoleva tsooni jaoks DNSSEC sisselülitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil secure-zone moraal.ee&lt;br /&gt;
 # pdnsutil set-nsec3 moraal.ee '1 0 1 ab'&lt;br /&gt;
 # pdnsutil rectify-zone moraal.ee&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT-API INCEPTION-INCREMENT&lt;br /&gt;
 # pdnsutil increase-serial moraal.ee&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb registripidajale öelda DS väärtus.&lt;br /&gt;
&lt;br /&gt;
Tulemuse saab kontrollida nt aadressil http://dnsviz.net/d/moraal.ee/dnssec/.&lt;br /&gt;
&lt;br /&gt;
DNSSEC eemaldamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* esmalt eemaldada registripidaja juurest DS kirje&lt;br /&gt;
* tsoonis dnssec väljalülitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil disable-dnssec moraal.ee&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* tagasi nsec peale viimiseks&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil unset-nsec3 moraal.ee&lt;br /&gt;
&lt;br /&gt;
===DNSSEC tsooni seostamine DS sissekande abil ülevalpool oleva tsooniga===&lt;br /&gt;
&lt;br /&gt;
DNSSEC tsooni seostamiseks ülevalpool oleva tsooniga on vaja teada selliseid andmeid&lt;br /&gt;
&lt;br /&gt;
* võtme silt&lt;br /&gt;
* võtme tüüp&lt;br /&gt;
* algoritm&lt;br /&gt;
* avalik võti (või DS mis on avaliku võtme räsi vms)&lt;br /&gt;
&lt;br /&gt;
Need kõik on avalik info ja kättesaadavad domeeni pädevast nimeserverist, aga PowerDNS haldusutiliidiga saab selle küsida otsekoheselt&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Ühesõnaga, kui ise kasutatakse PowerDNS'i või partner saadab need andmed, siis allpool toodud dig käsuga tegelemist pole tarvis läbi teha. Tulemust sobib kontrollida nt aadressil http://dnsviz.net/.&lt;br /&gt;
&lt;br /&gt;
====zone.ee keskkonnas - .ee tsoonis====&lt;br /&gt;
&lt;br /&gt;
Logida sisse oma kasutajaga ja valida vasakult paneelist 'Teenuste ülevaade', kõnelaluse tsooni juures pressida rohelist + märki DNSSEC tulbas. Avanenud uuel eraanil vajutada üleval sinist nuppu Aktiveeri (muutub roheliseks), vajutada võtmete nimekirjas + märki ja täita lahtrid&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Pdns-3.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võtme silt - (antud juhul 53461), selle saab teada päringu väjundist&lt;br /&gt;
&lt;br /&gt;
 $ dig @ns.auul.pri.ee moraal.ee dnskey rrsig | grep DNSKEY&lt;br /&gt;
 moraal.ee.              10800   IN      RRSIG   DNSKEY 8 2 10800 20161208000000 20161117000000 53461 moraal.ee. rVy+HAzSKkTRv6...&lt;br /&gt;
&lt;br /&gt;
* võtme tüüp - KSK&lt;br /&gt;
* algoritm - 8 (RSA-SHA256)&lt;br /&gt;
* avalik võti,  selle saab teada päringu väljundist, alates Aw kuni tU= (võib sisaldada tühikuid nagu päringu vastuses on)&lt;br /&gt;
&lt;br /&gt;
 $ dig @ns.auul.pri.ee moraal.ee dnskey | grep 257&lt;br /&gt;
 moraal.ee. 3600 IN DNSKEY 257 3 8 AwEAAcnmmnnOlkRfK9NDYEI6F ... SD6 TQcnQstT+tU=&lt;br /&gt;
&lt;br /&gt;
Vajutada all nuppu Kinnita, muudatus kehtestub peaaegu koheselt (ehk minutite jooksul), aga kasutajaliideses öeldakse&lt;br /&gt;
&lt;br /&gt;
 DNSSEC kaitse domeenil MORAAL.EE&lt;br /&gt;
 Hetkestaatus: DNSSEC on aktiveerimata&lt;br /&gt;
 Eesootavad muutused: DNSSEC aktiveeritakse&lt;br /&gt;
&lt;br /&gt;
Teha brauseris refresh ja peab olema domeenide nimekirjas DNSSEC tulbas + asemel kilbi kujutis. Edasi läheb nn 15 minutit kuni muudatus zone.ee juurest eestiinternet.ee juurde jõuab ning kehtestub ee. tld (top level domain) nimeserverites. Kontrolliks maksab küsida tld nimeserverilt ds kirjet&lt;br /&gt;
&lt;br /&gt;
 $ dig +short @ns.tld.ee moraal.ee ds&lt;br /&gt;
 30607 8 2 EAC8A17DD2128573F08EE76C18B4AB01734467CD4A376768F5358B0C A2B9463F&lt;br /&gt;
&lt;br /&gt;
====zone.ee keskkonnas - .org tsoonis====&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Pdns-6.gif]]&lt;br /&gt;
&lt;br /&gt;
====GoDaddy keskkonnas====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DNSSEC võtmete asendamine===&lt;br /&gt;
&lt;br /&gt;
====ZSK====&lt;br /&gt;
&lt;br /&gt;
====KSK====&lt;br /&gt;
&lt;br /&gt;
KSK moodi võtme lisamiseks sobib öelda, selliselt võib tsooniga siduda ka enam kui kaks võtit&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee ksk 2048 active rsasha256&lt;br /&gt;
&lt;br /&gt;
Tsooniga seotud võtmed paistavad käsu väljundis&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab dnsviz keskkonnas selline pilt&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
Tsooniga seotud võtme eemaldamiseks sobib öelda, kus ID on show-zone väljundist välja valitud võtme ID väärtus&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil remove-zone-key moraal.ee ID&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://doc.powerdns.com/md/authoritative/howtos/#zsk-rollover&lt;br /&gt;
&lt;br /&gt;
===Mitmesugused haldusprotseduurid===&lt;br /&gt;
&lt;br /&gt;
====tsooni backend muutmine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====tsooni toomine PowerDNS kontrolli alla====&lt;br /&gt;
&lt;br /&gt;
Tsooni migreerimiseks suvalisest AXFR-võimelisest nimeserverist sobib&lt;br /&gt;
&lt;br /&gt;
* kirjeldada PowerDNS peal slave&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil create-slave-zone moraal.ee 10.0.6.15&lt;br /&gt;
 Feb 21 22:09:52 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 Creating slave zone 'moraal.ee', with master(s) '10.0.6.15:53'&lt;br /&gt;
&lt;br /&gt;
* kopeerida andmed axfr abil üle, kopeerimist kiirendab&lt;br /&gt;
&lt;br /&gt;
 # pdns_control retrieve moraal.ee&lt;br /&gt;
&lt;br /&gt;
* muuta PowerDNS tsooni jaoks masteriks, öeldes&lt;br /&gt;
&lt;br /&gt;
 SQL&amp;gt; UPDATE domains set type='MASTER' where type='SLAVE';&lt;br /&gt;
&lt;br /&gt;
Kui allikaks on nt BIND ning tsoonifailis on kasutatud generate konstruktsiooni, siis need lahenduvad automaatselt ära&lt;br /&gt;
&lt;br /&gt;
 $GENERATE 1-255 $ IN CNAME $.1-255.40.184.10.in-addr.arpa.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://doc.powerdns.com/md/authoritative/migration/&lt;br /&gt;
&lt;br /&gt;
====dnssec tsooni toomine PowerDNS kontrolli alla====&lt;br /&gt;
&lt;br /&gt;
Analoogiliselt eelmisele punktile, aga&lt;br /&gt;
&lt;br /&gt;
* esmalt lülitada dnssec välja, kustutades DS kirje parent tsoonist ja oodates vähemalt DS kirje TTL aja enne järgmise punkti juurde asumist; seejärel on tsooni sisu endine st vanade võtmetega signeeritud andmestik&lt;br /&gt;
* tegevused eelmises punktis + uute võtmetega krüptimine&lt;br /&gt;
* asuda kasutama uute võtmetega krüptitud tsooni sisu, ja oodata nt 6 tundi&lt;br /&gt;
* juurutada parent tsoonis uus DS kirje&lt;br /&gt;
&lt;br /&gt;
====dnssec tsooni toomine PowerDNS kontrolli alla OpenDNSSEC keskkonnast koos vana KSK krüptomaterjaliga====&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et OpenDNSSEC kasutab SoftHSM backendi saab KSK krüptomaterjalid eksportida ja taaskasutada. Ettevalmistuseks tuleb kõnealune tsoon muus osas tavalisel viisil kasutusele võtta. SoftHSM pealt krüptomaterjali eksportimiseks tuleb esmalt teha kindlaks kolm väärust&lt;br /&gt;
&lt;br /&gt;
* SoftHSM label ja pin vaadata nt /etc/opendnssec/conf.xml failist&lt;br /&gt;
* kõnealuse tsooni ksk võtme id, vaadata KSK active realt tulp 'CKA_ID'&lt;br /&gt;
&lt;br /&gt;
 # ods-ksmutil key list -v&lt;br /&gt;
&lt;br /&gt;
sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # softhsm --export moraal.ee-ksk.pem --slot 0 --label &amp;quot;vaartus&amp;quot; --pin vaartus --id vaartus&lt;br /&gt;
 The key pair has been written to moraal.ee-ksk.pem&lt;br /&gt;
&lt;br /&gt;
teisendada nn BIND kujule&lt;br /&gt;
&lt;br /&gt;
 # softhsm-keyconv --tobind --in ksk.pem --name moraal.ee --ksk --algorithm RSASHA256&lt;br /&gt;
 The private key has been written to Kmoraal.ee+008+09122.private&lt;br /&gt;
 The public key has been written to Kmoraal.ee+008+09122.key&lt;br /&gt;
&lt;br /&gt;
ning võtta kasutusele PowerDNS juures&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil import-zone-key moraal.ee Kksk+008+53675.private active ksk&lt;br /&gt;
&lt;br /&gt;
Edasi seadistatakse DNSSEC analoogliselt nagu seada ikka PowerDNS puhul seadistatakse. Kusjuures 'pdnsutil import-zone-key ...' tulemus on sarnane nagu oleks öeldud&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee ksk 2048 active rsasha256&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.molnar-peter.hu/en/&lt;br /&gt;
&lt;br /&gt;
====pdns-control utiliidi kasutamine====&lt;br /&gt;
&lt;br /&gt;
PowerDNS kus on master tsoon saadab notify oma slavedele (nagu on tsoonifaili NS kirjetes kirjas)&lt;br /&gt;
&lt;br /&gt;
 # pdns_control notify &amp;lt;domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või näidatud ip aadressile&lt;br /&gt;
&lt;br /&gt;
 # pdns_control notify-host &amp;lt;domain&amp;gt; &amp;lt;ip-address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TSIG kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nimeserverite vahelise tsooniedastuse juures TSIG juurutamiseks tuleb esmalt tekitada võti&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil generate-tsig-key from_dns_to_itm hmac-sha256&lt;br /&gt;
 Generating new key with 64 bytes (this can take a while)&lt;br /&gt;
 Nov 26 13:10:37 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 Create new TSIG key from_dns_to_itm hmac-sha256 WLuS4o6CX35+yGerdHpl2h3+PDKt76rgam9rqkRg8N+fTP6cGtC6H17rDidKl7FzEu0fukg3apxnZUxdDRDhkQ==&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
ning seejärel võti ühe või enama tsooniedastusega seostada&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil activate-tsig-key moraal.ee from_dns_to_itm master&lt;br /&gt;
&lt;br /&gt;
Tulemus paistab nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil show-zone moraal.ee&lt;br /&gt;
Nov 26 14:09:44 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
This is a Master zone&lt;br /&gt;
Last SOA serial number we notified: 2016112602 == 2016112602 (serial in the database)&lt;br /&gt;
Zone is not actively secured&lt;br /&gt;
Zone has following allowed TSIG key(s): from_dns_to_itm&lt;br /&gt;
Metadata items: &lt;br /&gt;
        SOA-EDIT-API    DEFAULT&lt;br /&gt;
        TSIG-ALLOW-AXFR from_dns_to_itm&lt;br /&gt;
No keys for zone 'moraal.ee'.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks sobib kopeerida öeldes&lt;br /&gt;
&lt;br /&gt;
 $ dig @192.168.1.248 moraal.ee axfr -y &amp;quot;hmac-sha256:from_dns_to_itm:WLuS4o6CX35+yGerdHpl2h3+PDKt76rgam9rqkRg8N+fTP6cGtC6H17rDidKl7FzEu0fukg3apxnZUxdDRDhkQ==&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kusjuures vastuses on üks preudokirje lisaks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 from_dns_to_itm.        0       ANY     TSIG    hmac-sha256. 1480164029 300 32 t96WhnpNiAiL5KHXa8UzNthM6/p3ciQptF3Br2ZfhFk= 3538 NOERROR 0&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Sama TSIG võtit saab kasutada mitme tsooni jaoks ja nii on mugavam nt NSD patternit kasutada&lt;br /&gt;
* tundub, et tsooni jaoks TSIG juurutamisega kaasneb, et tsooni kopeerimise ip piirang enam ei kehti (lubatud ip pealt pöördudes ei ole võtme esitamine vajalik)&lt;br /&gt;
* kui tsooni juures on tsig sisse lülitatud, siis see mõjub nii notify kui xfr jaoks&lt;br /&gt;
* TSIG pseudokirjete arv suureneb vastavalt tsooni mahu suurenemisele, https://tools.ietf.org/html/rfc2845 'The TSIG MUST be included on the first and last DNS envelopes.  It can be optionally placed on any intermediary envelopes. It is expensive to include it on every envelopes, but it MUST be placed on at least every 100'th envelope.'&lt;br /&gt;
&lt;br /&gt;
Alternatiiv on kasutada -y asemel -k suvandit ja argumendiks failinime, faili sisuga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key &amp;quot;from_yks_to_teine&amp;quot; {&lt;br /&gt;
algorithm HMAC-SHA256;&lt;br /&gt;
secret &amp;quot;YY8xvlL6yGjrt1G4xlfLBaidQOFdvixHgRXN6tXUPMitEKZUs7kl7qixJ0nSN1bbDJQxaFGkoKkBamNS7EPXbw==&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API kasutamine===&lt;br /&gt;
&lt;br /&gt;
Üle API muudatuse tegemiseks peab eelnevalt PowerDNS serveris lülitama API sisse ning sisemise webserver käivitama&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/powerdns/pdns.conf&lt;br /&gt;
 ..&lt;br /&gt;
 api=yes&lt;br /&gt;
 api-key=apiparool&lt;br /&gt;
 webserver=yes&lt;br /&gt;
 webserver-address=192.168.1.248&lt;br /&gt;
 webserver-allow-from=0.0.0.0/0,::/0,192.168.10.0/24&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ja kasutama nt sellist skripti (töökohaarvutis on seejuures abil kasutada nt jq utiliiti)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat pdns-api.sh&lt;br /&gt;
curl -X PATCH --data \&lt;br /&gt;
'{&amp;quot;rrsets&amp;quot;: &lt;br /&gt;
  [{ &amp;quot;name&amp;quot;: &amp;quot;www.moraal.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [{ &amp;quot;content&amp;quot;: &amp;quot;192.168.254.5&amp;quot;, &amp;quot;disabled&amp;quot;: false }],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 86000,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;A&amp;quot;,&lt;br /&gt;
      &amp;quot;changetype&amp;quot;: &amp;quot;REPLACE&amp;quot;&lt;br /&gt;
  }]&lt;br /&gt;
}' -H 'X-API-Key: midagisalajast123' http://192.168.1.248:8081/api/v1/servers/localhost/zones/moraal.ee. | jq .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
kas käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 $ sh pdns-api.sh&lt;br /&gt;
&lt;br /&gt;
API'ga tutvumiseks võib olla hea mõte kuulata pealt mingi olemasoleva API-rakenduse ja serveri vahelist liiklust ja siis seda Wireshark abil uurida.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://doc.powerdns.com/md/httpapi/README/ - tundub, et süntaks pole seal kõigis näidetes päris korrektne&lt;br /&gt;
&lt;br /&gt;
===PowerDNS kasutusstatistika===&lt;br /&gt;
&lt;br /&gt;
PowerDNS sisaldab sisemist veebiserverit, mille käest saab küsida teenuse kasutusstatistikat, TODO.&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et vaikimisi logitakse syslog'i.&lt;br /&gt;
&lt;br /&gt;
===Varundamine ja taaste===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine operatsioonisüsteemi paketihaldusest====&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda, tuleb paigalda üldosa + mingi backend, nt BIND-ühilduvate tsoonifailide käsitlemise komponent (st failisüsteem)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdns-server pdns-backend-bind&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib failisüsteemi&lt;br /&gt;
&lt;br /&gt;
* /etc/powerdns/pdns.conf - peamine seadistusfail&lt;br /&gt;
&lt;br /&gt;
====MySQL backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
Teoreetliselt võib sodida tsooni sisu muutmiseks üldotstarbelise sql editoriga (nt PgAdmin) ka otse baasis, aga praktilisem on kasutada ehk pdnsutil või api't kasutava tarkvara abil, nt nsedit veebiliides.&lt;br /&gt;
&lt;br /&gt;
====pdns-backend-mysql paigaldamine ja seadistamine====&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et MySQL baas juba töötab samas arvutis, sobib paigaldamiseks sobib öelda (seejuures kasutades db-config sistemat, mis paigaldamise käigus tekitab create database baasi, kasutaja, sätib privileegid jne)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdns-backend-mysql&lt;br /&gt;
 ..&lt;br /&gt;
 Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.&lt;br /&gt;
 dbconfig-common: writing config to /etc/dbconfig-common/pdns-backend-mysql.conf&lt;br /&gt;
 &lt;br /&gt;
 Creating config file /etc/dbconfig-common/pdns-backend-mysql.conf with new version&lt;br /&gt;
 &lt;br /&gt;
 Creating config file /etc/powerdns/pdns.d/pdns.local.gmysql.conf with new version&lt;br /&gt;
 checking privileges on database pdns for pdns@localhost: user creation needed.&lt;br /&gt;
 granting access to database pdns for pdns@localhost: success.&lt;br /&gt;
 verifying access for pdns@localhost: success.&lt;br /&gt;
 creating database pdns: success.&lt;br /&gt;
 verifying database pdns exists: success.&lt;br /&gt;
 populating database via sql...  done.&lt;br /&gt;
 dbconfig-common: flushing administrative password&lt;br /&gt;
 Processing triggers for libc-bin (2.24-3) ...&lt;br /&gt;
 Processing triggers for pdns-server (4.0.1-5) ...&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
* tekitatakse MySQL kasutaja pdns&lt;br /&gt;
* tekitatakse MySQL create database pdns&lt;br /&gt;
&lt;br /&gt;
====BIND backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
Tundub, et otsekoheselt failisüsteemis tsoonifaili redigeerimise teel on mõeldav töötada ainult BIND-formaadis backendiga. Muudega tuleks kasutada pdnsutil utiliiti või API liidest. Tsoonide nimekiri kirjeldatakse failis&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/powerdns/named.conf&lt;br /&gt;
 # Debian default: supermaster created zones are written here:&lt;br /&gt;
 include &amp;quot;/var/lib/powerdns/supermaster.conf&amp;quot;;&lt;br /&gt;
 # Example for a manually configured slave zone:&lt;br /&gt;
 #&lt;br /&gt;
 zone &amp;quot;example.net&amp;quot; {&lt;br /&gt;
    file &amp;quot;/var/lib/powerdns/zones.slave.d/example.net.zone&amp;quot;;&lt;br /&gt;
    type master;&lt;br /&gt;
    masters { 192.0.2.53; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Tsoon kirjeldatakse failis&lt;br /&gt;
&lt;br /&gt;
 # cat /var/lib/powerdns/zones.slave.d/example.net.zone&lt;br /&gt;
 $TTL 180&lt;br /&gt;
 @           IN    SOA     ns1.example.net.      hostmaster.example.net. (&lt;br /&gt;
                        2014080705      ; Serial Number (date YYYYMMDD++)&lt;br /&gt;
                        86400           ; Refresh (24 hours)&lt;br /&gt;
                        1800            ; Retry (1/2 hour)&lt;br /&gt;
                        3600000         ; Expire (42 days)&lt;br /&gt;
                        21600)          ; Minimum (6 hours)&lt;br /&gt;
                        IN      NS      ns1.example.net.&lt;br /&gt;
                        IN      NS      ns2.example.net.&lt;br /&gt;
 &lt;br /&gt;
 @           IN    A       192.168.0.15&lt;br /&gt;
             IN    MX   10 mail.example.net.&lt;br /&gt;
 www         IN    A       192.168.0.15&lt;br /&gt;
 mail        IN    A       192.168.0.2&lt;br /&gt;
 ns1         IN    A       10.1.1.171&lt;br /&gt;
 ns2         IN    A       10.1.1.172&lt;br /&gt;
 imre        IN    A       10.1.1.173&lt;br /&gt;
&lt;br /&gt;
Muudatuse kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # pdns_control bind-reload-now example.net&lt;br /&gt;
 example.net:    parsed into memory at 2016-10-26 20:43:14 +0300&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
Teoreetliselt võib sodida tsooni sisu muutmiseks üldotstarbelise sql editoriga (nt PgAdmin) ka otse baasis, aga praktilisem on kasutada ehk pdnsutil või api't kasutava tarkvara abil, nt nsedit veebiliides.&lt;br /&gt;
&lt;br /&gt;
====BIND backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
pdns-backend-bind seadistatakse failist&lt;br /&gt;
&lt;br /&gt;
 # egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.d/bind.conf &lt;br /&gt;
 launch+=bind&lt;br /&gt;
 bind-config=/etc/powerdns/named.conf&lt;br /&gt;
 bind-supermaster-config=/var/lib/powerdns/supermaster.conf&lt;br /&gt;
 bind-supermaster-destdir=/var/lib/powerdns/zones.slave.d&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* /etc/powerdns/named.conf - tsoonide nimekiri&lt;br /&gt;
* /var/lib/powerdns/supermaster.conf - lihtsal juhul tühi&lt;br /&gt;
* /var/lib/powerdns/zones.slave.d - BIND formaadis tsoonifailide kataloog&lt;br /&gt;
&lt;br /&gt;
Tsoonide haldamisega tegeleb edasi allpool olev punkt.&lt;br /&gt;
&lt;br /&gt;
====Poweradmin====&lt;br /&gt;
&lt;br /&gt;
Märkus: tõenäoliselt ei ole Poweradmin tarvkara kasutamine hea mõte kuna rakendus sodib otse PowerDNS andmebaasis ja 2016 aasta sügisel on hakanud tekkima paremaid alternatiive, nt nsedit.&lt;br /&gt;
&lt;br /&gt;
Poweradmin kasutamiseks peab PowerDNS kasutama SQL andmebaasi ja Poweradmin peab töötama vastu sama andmebaasi. Tundub, et Poweradmin töötab paremini MySQL + PHP5 keskkonnas. Kui Poweradmin PHP rakendus töötab teises arvutis kui MySQL baas, sobib baasis öelda&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; grant all privileges on pdns.* to 'pdns'@'%' identified by 'dbconfig sisestatud parool';&lt;br /&gt;
 mysql&amp;gt; grant all privileges on pdns.* to 'pdns'@'localhost' identified by 'dbconfig sisestatud parool';&lt;br /&gt;
 mysql&amp;gt; flush privileges;&lt;br /&gt;
&lt;br /&gt;
 # pdns_control retrieve moraal.ee&lt;br /&gt;
 Added retrieval request for 'moraal.ee.' from master 192.168.1.247&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-powerdns-with-a-mariadb-backend-on-ubuntu-14-04&lt;br /&gt;
&lt;br /&gt;
====Tsooni andmestikust otsing====&lt;br /&gt;
&lt;br /&gt;
* Kõigi forward tsoonide sisust ip aadressi kasutamise leidmine&lt;br /&gt;
&lt;br /&gt;
 # for i in `pdns_control list-zones | grep -v All | grep -v in-addr`; do pdnsutil list-zone $i 2&amp;gt;&amp;amp;1 ; done | grep 10.20.123.154&lt;br /&gt;
 ftp.moraal.ee	300	IN	A	10.20.123.154&lt;br /&gt;
&lt;br /&gt;
===Tsooni migreerimine pädeva pdns peale===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* SOA-EDIT - &lt;br /&gt;
&lt;br /&gt;
====Protseduur====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Käsundamine====&lt;br /&gt;
&lt;br /&gt;
Eksport&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil show-zone moraal.ee&lt;br /&gt;
# pdnsutil export-zone-key moraal.ee 17 &amp;gt; moraal.ee.ksk&lt;br /&gt;
# pdnsutil list-zone moraal.ee &amp;gt; moraal.ee.zone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Import&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil load-zone moraal.ee.zone&lt;br /&gt;
# pdnsutil set-kind moraal.ee master&lt;br /&gt;
# pdnsutil set-meta moraal.ee SOA-EDIT-API DEFAULT&lt;br /&gt;
# pdnsutil set-meta moraal.ee SOA-EDIT INCEPTION-INCREMENT&lt;br /&gt;
# pdnsutil import-zone-key moraal.ee moraal.ee.ksk ksk&lt;br /&gt;
# pdnsutil set-nsec3 moraal.ee '1 0 0 -'&lt;br /&gt;
# pdnsutil rectify-zone moraal.ee&lt;br /&gt;
# pdnsutil show-zone moraal.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Käsundamine - 2nd abil====&lt;br /&gt;
&lt;br /&gt;
Tekitatakse migreeritava tsooni sekundaar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil create-secondary-zone moraal.ee 192.168.1.148&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:PowerDNS webfrontend - PowerDNS-Admin]]&lt;br /&gt;
* https://www.powerdns.com/&lt;br /&gt;
* http://www.poweradmin.org/&lt;br /&gt;
* https://github.com/PowerDNS/pdns/wiki/WebFrontends&lt;br /&gt;
* http://jpmens.net/2010/10/29/alternative-dns-servers-the-book-as-pdf/&lt;br /&gt;
* https://blog.powerdns.com/2016/02/02/powerdns-authoritative-the-new-old-way-to-manage-domains/&lt;br /&gt;
* https://www.cloudflare.com/dns/dnssec/how-dnssec-works/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_Authoritative_Server_nimeserveri_kasutamine&amp;diff=4937</id>
		<title>PowerDNS Authoritative Server nimeserveri kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_Authoritative_Server_nimeserveri_kasutamine&amp;diff=4937"/>
		<updated>2026-08-05T05:50:30Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
PowerDNS https://www.powerdns.com/ on üks populaarsetest vaba tarkvaralistest nn alternatiivsetest DNS serveritest, kuigi 'alternatiivse' kohta väidetavalt teda kasutatakse väga massiliselt DNSSEC jaoks. PowerDNS tarkvara võimaldab pidada täielist DNS infrastruktuuri, sh slave ja master pädevate nimeserverite erinevad konfiguratsioonid. PowerDNS tarkvara komplekti kuuluvad&lt;br /&gt;
&lt;br /&gt;
* PowerDNS Authoritative Server - pädev nimeserver&lt;br /&gt;
* PowerDNS Recursor - rekursiivne nimeserver&lt;br /&gt;
* dnsdist - koormusjaotur&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative Server tarkvaral on sellised tunnused&lt;br /&gt;
&lt;br /&gt;
* võimalus kasutada andmete salvestamiseks erinevaid nn backend'isid (nn plain text, sql andmebaas, ldap kataloog jne)&lt;br /&gt;
* väga mugavalt korraldada DNSSEC tsooni pidamist&lt;br /&gt;
* DNSSEC puhul on PowerDNS tarkvarale iseloomulik, et kõik DNSSEC moodustatakse käigult, st midagi ei ole salvestatud (well, midagi puhverdatakse, aga rrsig moodi kirjeid jms ei hoita nö tsoonifaili kujul)&lt;br /&gt;
* tsoonide käsitlemine (tekitamine, sisu muutmine, eemaldamine) on võimalik üle nn API&lt;br /&gt;
* eksisteerivad mitmesugused veebipõhised tsoonide haldusliidesed (otse baasi ja üle API)&lt;br /&gt;
* ebamugav on kontrollida, kust tsooni kopeeritakse, kuhu notify saadetakse ja kust lubatakse tsooni kopeerida&lt;br /&gt;
&lt;br /&gt;
Haldusliidesed jagunevad kaheks&lt;br /&gt;
&lt;br /&gt;
* kirjutavad otse samasse sql baasi, mida kasutab PowerDNS ja tegelikult töötavadki ainult SQL backendide puhul - nt Poweradmin, http://www.poweradmin.org/&lt;br /&gt;
* suhtlevad PowerDNS'iga üle API, töötavad kõigi backendide puhul - nt nsedit, https://github.com/tuxis-ie/nsedit&lt;br /&gt;
&lt;br /&gt;
Järgnevas tekstis öeldakse lühiduse mõttes PowerDNS ja mõeldakse PowerDNS Authoritative Server ehk pädevat komponenti.&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
PowerDNS tarkvara saab kasutada erinevates konfiguratsioonides&lt;br /&gt;
&lt;br /&gt;
* nö suure pildi mõttes, nt PowerDNS on varjatud master ja avalikus võrgus teenindavad NSD nimeserverid (alternatiiv oleks pidada PowerDNS nimeserverit otse avalikus võrgus)&lt;br /&gt;
* PowerDNS enda komponentidest on välja valitud mingi komplekt, nt baas osa ja PostgreSQL backend (alternatiiv oleks BIND formaadis tekstifailid failisüsteemis)&lt;br /&gt;
* tsooniandmete haldamiseks kasutatakse käsurea utiliiti pdnsutil ja nsedit php rakendust&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis keskendutakse just mainitud konfiguratsioonile. Kui PowerDNS kasutab SQL backendi, siis avaliku pädeva DNS teenuse pakkumise juures tekitab see vähemalt esmapilgul kahtlusi. Võib olla on hea mõte tekitada varjatud masteriga lahendus&lt;br /&gt;
&lt;br /&gt;
      ans1 (NSD)                                   ans2 (NSD)&lt;br /&gt;
      _____                                        _____&lt;br /&gt;
     |     |                                      |     |&lt;br /&gt;
     |     |                                      |     |&lt;br /&gt;
     |_____| port 8952                            |_____| port 8952&lt;br /&gt;
        |                                            |&lt;br /&gt;
        |                                            |&lt;br /&gt;
    ----|---------------------|----------------------|----&lt;br /&gt;
                              |&lt;br /&gt;
                            __|__&lt;br /&gt;
                           |     | nimetaja (PowerDNS)&lt;br /&gt;
                           |     |&lt;br /&gt;
                           |_____|&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ans1, ans2 - avalikud pädevad nimeserverid, tehniliselt slave'id&lt;br /&gt;
* nimetaja - varjatud pädev nimeserver, tehniliselt master&lt;br /&gt;
* üle port 8952 saab nsd protsessi eemalt juhtida (alternatiiv on juhtida nö tavalisel viisil, lokaalselt)&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis pööratakse NSD tarkvara kasutamisele tähelepanu minimaalselt. NSD tekst asub aadressil [[:Pädeva nimeserveri NSD v. 4 kasutamine operatsioonisüsteemiga Debian]].&lt;br /&gt;
&lt;br /&gt;
===Tarkvara paigaldamine ja seadistamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks on üldiselt kaks võimalust&lt;br /&gt;
&lt;br /&gt;
* operatsioonisüsteemi paketihaldus&lt;br /&gt;
* PowerDNS repositoorium - https://repo.powerdns.com/&lt;br /&gt;
&lt;br /&gt;
PowerDNS tarkvara on jaotatud komponentideks&lt;br /&gt;
&lt;br /&gt;
* üldosa&lt;br /&gt;
* tsoonidega seotud andmete salvesamiseks erinevad backendid (failisüsteem, SQL andembaas jne)&lt;br /&gt;
&lt;br /&gt;
Kui asutakse kasutama SQL backendi, siis võib olla otstarbekas enne PowerDNS vastava backendi paigaldamist baas ise paigaldada ja käivitada; nt nt see baas ei pruugi olla tingimata samas arvutis. Teisipidi, mugavam on samas arvutis, kuna sel juhul baasi saab lähtestada dbconfig süsteemi abil; lisaks, kui kasutatakse DNSSEC'i, siis arvestada, et krüptomaterjal asub baasis. Käesolevas tekstis paigaldatakse tarkvara PowerDNS repositooriumist kuna seal on alati kõige värskem.&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL andmebaasi ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
PowerDNS tarkvara ei ole PostgreSQL andmebaasi versiooni suhtes nõudlik, tõenäoliselt sobib igasugune v. 9.x ja nt en_US.UTF-8 kodeering&lt;br /&gt;
&lt;br /&gt;
 # apt-get install postgresql&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine PowerDNS repositooriumist====&lt;br /&gt;
&lt;br /&gt;
PowerDNS repositoorium asub aadressil https://repo.powerdns.com/ ja kasutamine (Debian v. 9 Stretch juhtumil)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/pdns.list &lt;br /&gt;
 deb http://repo.powerdns.com/debian stretch-auth-master main&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add -&lt;br /&gt;
 # apt-get update&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks öelda (paistab, et bind backend paigaldatakse lisaks paratamatult)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdns-server pdns-backend-pgsql&lt;br /&gt;
&lt;br /&gt;
seejuures on valik paigaldada baas db-config süsteemi abil ja see validagi. Tulemusena tekitatakse baasi baasi kasutaja, create database, initsiliseeritakse baasi sisu ning kirjeldatakse PowerDNS backend seadistus&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/powerdns/pdns.d/pdns.local.gpgsql.conf&lt;br /&gt;
 # PostgreSQL Configuration&lt;br /&gt;
 #&lt;br /&gt;
 # Launch gpgsql backend&lt;br /&gt;
 launch+=gpgsql&lt;br /&gt;
 &lt;br /&gt;
 # gpgsql parameters&lt;br /&gt;
 gpgsql-host=127.0.0.1&lt;br /&gt;
 gpgsql-port=&lt;br /&gt;
 gpgsql-dbname=pdns&lt;br /&gt;
 gpgsql-user=pdns&lt;br /&gt;
 gpgsql-password=pdnsparool&lt;br /&gt;
 gpgsql-dnssec=yes&lt;br /&gt;
&lt;br /&gt;
Vaikimisi käivitatakse PowerDNS protsessid ning natuke saab asuda süsteemi kasutama&lt;br /&gt;
&lt;br /&gt;
 # pdns_control list-zones&lt;br /&gt;
 All zonecount:0&lt;br /&gt;
&lt;br /&gt;
Järgmisena tuleb PowerDNS server seadistada.&lt;br /&gt;
&lt;br /&gt;
====Käsitsi baasi lähtestamine====&lt;br /&gt;
&lt;br /&gt;
Kui db-config süsteemi mitte kasutada, sobib tekitada kasutaja ja create database andmebaas käsitsi&lt;br /&gt;
&lt;br /&gt;
 # su - postgres&lt;br /&gt;
 $ psql&lt;br /&gt;
 ..&lt;br /&gt;
 postgres=# create role pdns login password 'pdnsparool' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;&lt;br /&gt;
 postgres=# create database pdns owner = pdns;&lt;br /&gt;
&lt;br /&gt;
ning seejärel laadida baasi sisu, õieti struktuur&lt;br /&gt;
&lt;br /&gt;
 # psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
&lt;br /&gt;
Lisaks peab olema seadistusfail /etc/powerdns/pdns.d/pdns.local.gpgsql.conf sobiva sisuga, vt. eelmist punkti.&lt;br /&gt;
&lt;br /&gt;
===Tarkvara seadistamine===&lt;br /&gt;
&lt;br /&gt;
Üldosa sobiks kokkuvõttes seadistada nt nii&lt;br /&gt;
&lt;br /&gt;
 # egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf &lt;br /&gt;
 allow-axfr-ips=127.0.0.0/8,::1,192.168.1.210&lt;br /&gt;
 also-notify=192.168.1.210&lt;br /&gt;
 api=yes&lt;br /&gt;
 api-key=midagisalajast123&lt;br /&gt;
 default-soa-mail=hostmaster.moraal.ee.&lt;br /&gt;
 default-soa-name=ans1.moraal.ee.&lt;br /&gt;
 include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
 launch=&lt;br /&gt;
 master=yes&lt;br /&gt;
 only-notify=192.168.1.210&lt;br /&gt;
 security-poll-suffix=&lt;br /&gt;
 setgid=pdns&lt;br /&gt;
 setuid=pdns&lt;br /&gt;
 slave=yes&lt;br /&gt;
 soa-expire-default=3600000&lt;br /&gt;
 soa-minimum-ttl=3600&lt;br /&gt;
 soa-refresh-default=86400&lt;br /&gt;
 soa-retry-default=7200&lt;br /&gt;
 webserver=yes&lt;br /&gt;
 webserver-address=192.168.1.248&lt;br /&gt;
 webserver-allow-from=0.0.0.0/0,::/0,192.168.10.0/24&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* allow-axfr-ips - millistelt ip aadressidelt on lubatud axfr&lt;br /&gt;
* also-notify - millistele ip aadressidel töötavatele nimeserveritele saata notify&lt;br /&gt;
* api* - api kasutamine (vajalik veebipõhise haldusliidese nsedit jaoks)&lt;br /&gt;
* default-soa-* - uue tsooni sisu moodustamisel kasutatavad vaikeväärtused&lt;br /&gt;
* only-notify - notify saadetakse ainult näidatud ip aadressidele (mitte tsoonifailides siselduvatele NS serveritele)&lt;br /&gt;
* soa-* uue tsooni sisu moodustamisel kasutatavad vaikeväärtused&lt;br /&gt;
* webserver* - powerdns sisemise veebiserveri ip aadress jms (saab uurida protsesside statistikat)&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks lõpetada ja käivitada pdns protsessid&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop pdns&lt;br /&gt;
 # systemctl start pdns&lt;br /&gt;
&lt;br /&gt;
===Tsooni sisu haldamine käsurealt===&lt;br /&gt;
&lt;br /&gt;
Tsooni sisu haldamine käsurealt toimub utiliidi pdnsutil abil. Uue tühja tsooni tekitamine (sisaldab SOA kirjet), seejärel tuleb vähemalt NS kirje tekitada (nb! nii tekib Native tüüpi tsoon)&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil create-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tulemuse küsimine&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tsooni Native -&amp;gt; Master teisendus&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil set-kind moraal.ee master&lt;br /&gt;
&lt;br /&gt;
Tsooni sisu esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil list-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Sisu muutmiseks, sh muuta käsitsi SOA serial&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil edit-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
utiliidiga seriali suurendamiseks&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil increase-serial moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tulemuse küsimine&lt;br /&gt;
&lt;br /&gt;
 # dig @127.0.0.1 moraal.ee axfr&lt;br /&gt;
&lt;br /&gt;
Notify käsitsi välja saatmiseks&lt;br /&gt;
&lt;br /&gt;
 # pdns_control notify moraal.ee&lt;br /&gt;
 Added to queue&lt;br /&gt;
&lt;br /&gt;
Kirje lisamine (lisaks tuleb increase serial öelda)&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-record moraal.ee imre5 A 300 &amp;quot;127.0.0.5&amp;quot;&lt;br /&gt;
 Feb 21 10:20:54 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 New rrset:&lt;br /&gt;
 imre5.moraal.ee. IN A 300 127.0.0.5&lt;br /&gt;
&lt;br /&gt;
===Veebipõhine haldusliides nsedit===&lt;br /&gt;
&lt;br /&gt;
Veebipõhiste haldusliideste abil saab&lt;br /&gt;
&lt;br /&gt;
* tekitada ja kustutada tsoone, muuta tsoonide sisu&lt;br /&gt;
* loodetavasti haldusliidese abil jäävad tegemata mingid süntaksivead, mida on kerge teha nn BIND-ühilduvat tsoonifaili tavalise tekstieditoriga otse muutes&lt;br /&gt;
* tsooni sisu halduse saab usaldada mitte-vi/joe/nano ekspertiisiga inimesele&lt;br /&gt;
&lt;br /&gt;
Paistab, et veebipõhiseid haldusliideseid on omajagu, https://github.com/PowerDNS/pdns/wiki/WebFrontends. nsedit on PHP rakendus. Märkused&lt;br /&gt;
&lt;br /&gt;
* Tsoonis tehtud muudatustega kaasneb automaatselt SOA seriali suurenemine&lt;br /&gt;
* Veebiliideses tehtud muudatused ei kajastu alati sama veebiliideses koheselt (nt SOA seriali muutumine, välja ja sisselogimise järel on näha)&lt;br /&gt;
* nsedit esitab muudatuste logi&lt;br /&gt;
* toimib ipv6 jaoks&lt;br /&gt;
* nn õäöü tähti sisaldavaid nimesid sisestada otseselt ei saa&lt;br /&gt;
* rakenduse võib paigaldada http:// peale ja seejärel muuta veebiserveri seadistusi ning kasutada edasi https:// abil&lt;br /&gt;
* nsedit ei pea asuma samas arvutis PowerDNS serveriga, suhtlemine toimub üle võrgu ja kasutades API liidest&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistused====&lt;br /&gt;
&lt;br /&gt;
nsedit kasutamise eelduseks on selline tarkvara&lt;br /&gt;
&lt;br /&gt;
 # apt-get install apache2 php git php-sqlite3 php-curl&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine ja seadistamine====&lt;br /&gt;
&lt;br /&gt;
Kopeerida tarkvara, tundub, et 2017 aasta alguses on praktiline võtta git repo viimane ots&lt;br /&gt;
&lt;br /&gt;
 # cd /var/www/html&lt;br /&gt;
 # git clone https://github.com/tuxis-ie/nsedit.git&lt;br /&gt;
&lt;br /&gt;
Tekitada php skriptide jaoks kasutaja:grupp&lt;br /&gt;
&lt;br /&gt;
 # groupadd nsedit&lt;br /&gt;
 # useradd -g nsedit -m -d /opt/nsedit -s /bin/false nsedit&lt;br /&gt;
&lt;br /&gt;
Avades brauseris http://pdns.moraal.ee/nsedit küsitakse parooli, vaikimisi sobib admin ja admin mille järel&lt;br /&gt;
&lt;br /&gt;
* kontrollitakse vajalike teekide olemasolu&lt;br /&gt;
* moodustatakse sqlite3 andmebaas&lt;br /&gt;
&lt;br /&gt;
 # sqlite3 /var/www/html/etc/pdns.users.sqlite3&lt;br /&gt;
 ..&lt;br /&gt;
 sqlite&amp;gt; .tables&lt;br /&gt;
 logs   users  zones&lt;br /&gt;
&lt;br /&gt;
nsedit seadistatakse failis /var/www/html/nsedit/includes/config.inc.php&lt;br /&gt;
&lt;br /&gt;
 # cp includes/config.inc.php-dist includes/config.inc.php&lt;br /&gt;
&lt;br /&gt;
* ühendust powerdns serveriga üle api juhib sektsioon&lt;br /&gt;
&lt;br /&gt;
 # cat /var/www/html/nsedit/includes/config.inc.php | grep '^$api'&lt;br /&gt;
 $apipass = 'apiparool';           # The PowerDNS API-key&lt;br /&gt;
 $apiip   = '10.0.9.18';           # The IP of the PowerDNS API&lt;br /&gt;
 $apiport = '8081';       # The port of the PowerDNS API&lt;br /&gt;
 $apiproto      = 'http'; # http | https&lt;br /&gt;
 $apisslverify  = FALSE;  # Verify SSL Certificate if using https for apiproto&lt;br /&gt;
&lt;br /&gt;
* vaikeväärtuste kasutamiset haldusliideses kontrollib&lt;br /&gt;
&lt;br /&gt;
 $defaults['soa_edit']    = 'INCEPTION-INCREMENT';&lt;br /&gt;
 $defaults['soa_edit_api'] = 'INCEPTION-INCREMENT';&lt;br /&gt;
 $defaults['defaulttype'] = 'Master';                    # Choose between 'Native' or 'Master'&lt;br /&gt;
 $defaults['ns'][0] = 'ns1.moraal.ee.';         # The value of the first NS-record&lt;br /&gt;
 $defaults['ns'][1] = 'ns2.moraal.ee.';       # The value of the second NS-record&lt;br /&gt;
 $defaults['ttl']   = 3600;                              # Default TTL for records&lt;br /&gt;
 $defaults['disabled'] = false;                          # Default disabled state&lt;br /&gt;
&lt;br /&gt;
Kasutajaliides paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Pdns-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Kui rakendus töötab, muuta rakenduse failide omanik:grupp ära&lt;br /&gt;
&lt;br /&gt;
 # chown -R nsedit:nsedit /var/www/html/nsedit&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Kasutajate lisamine, valida (ning märkida linnuke admin user jaoks), tulemusena on nsedit logid paremad&lt;br /&gt;
&lt;br /&gt;
 Users -&amp;gt; Add new user &lt;br /&gt;
&lt;br /&gt;
* Uue tsooni lisamine, valida&lt;br /&gt;
&lt;br /&gt;
 Zones -&amp;gt; Add new zone&lt;br /&gt;
&lt;br /&gt;
ning sisestada Domain lahtrisse domeeninimi, lõpetades punktiga, nt&lt;br /&gt;
&lt;br /&gt;
 test-1.ee.&lt;br /&gt;
&lt;br /&gt;
Kõik muud valikud jätta vaikimisi&lt;br /&gt;
&lt;br /&gt;
 Account - admin&lt;br /&gt;
 Type - master&lt;br /&gt;
 Template - None&lt;br /&gt;
&lt;br /&gt;
Kuna pdns serveri seadistusfailisis on näidatus SOA kirje väärtused ja nsedit seadisusfailis on kirjeldatud nimeserverid, siis tekib vaikimisi kastutatav tulemus.&lt;br /&gt;
&lt;br /&gt;
* Uue tsooni lisamine kirjeldades korraga palju kirjeid (nt tsooni ületoomisel eelmise dns teenusepakkuja juurest)&lt;br /&gt;
&lt;br /&gt;
 Zones -&amp;gt; Import a new zone&lt;br /&gt;
&lt;br /&gt;
seejuures&lt;br /&gt;
&lt;br /&gt;
 avanenud dialoogi pasteda tsoonifaili sisu&lt;br /&gt;
 eemaldada SOA kirje&lt;br /&gt;
 asendada NS kirjetesse õiged väärtused&lt;br /&gt;
 kõik nimed (kirje kõige vasem positsioon) peavad olema pikad ja lõppema punktiga&lt;br /&gt;
 eemaldada linnuke 'Overwrite Nameservers' juurest&lt;br /&gt;
&lt;br /&gt;
* Mitme elemendilise väärtuse puhul tuleb see nii sisestada, nt MX kirje puhul&lt;br /&gt;
&lt;br /&gt;
 10 mx.moraal.ee.&lt;br /&gt;
&lt;br /&gt;
* Eeldusel, et on olemas Content tulbas kasutatav A kirje ip aadressile vastav in-addr.arpa tsoon, saab nsedit abil tekitada automaatselt PTR kirje.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tuxis-ie/nsedit&lt;br /&gt;
&lt;br /&gt;
===DNSSEC tsooni esmane juurutamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et uuemal ajal saab DNSSEC juures kasatada CSK (Combined Signing Key) võtit ja seda kasutab PowerDNS vaikimisi, kuid samas CSK võtmeid registripidajad eriti ei toeta. Ja PowerDNS toetab ka nö klassikalist KSK+ZSK komplekti kasutamist.&lt;br /&gt;
&lt;br /&gt;
====KSK ja ZSK võtmete kasutamine====&lt;br /&gt;
&lt;br /&gt;
Võtmete tsooniga seostamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee ksk 2048 active rsasha256&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee zsk 1024 active rsasha256&lt;br /&gt;
 # pdnsutil set-nsec3 moraal.ee '1 0 5 0...f'&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT-API INCEPTION-INCREMENT&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT INCEPTION-INCREMENT&lt;br /&gt;
 # pdnsutil increase-serial moraal.ee&lt;br /&gt;
 # pdnsutil rectify-zone moraal.ee&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
mis&lt;br /&gt;
&lt;br /&gt;
* tekitab võtmed&lt;br /&gt;
* kui set-meta kogemata vääratab, nt lisati SOA-EDIT-SOA, siis saab meta data eemaldada, st näitamata väärtust&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT-SOA&lt;br /&gt;
&lt;br /&gt;
* võtab kasutusele nsec3 hash'ide arvutamiseks vajaliku materjali (0-f on 16-elemendiline juhuslik hex järgnevus, mis saadake nt nii&lt;br /&gt;
&lt;br /&gt;
 $ head -c 512 /dev/urandom | sha1sum | cut -b 1-16&lt;br /&gt;
 7bc59a6dd87fa477&lt;br /&gt;
&lt;br /&gt;
ja ideaalis võiks seda regulaarselt muuta), nt&lt;br /&gt;
&lt;br /&gt;
 $ dig +short moraal.ee nsec3param&lt;br /&gt;
 1 0 5 E7544BB6070C3E0F&lt;br /&gt;
&lt;br /&gt;
(kus 1 - sha1, 0 - opt-out, 5 - iterations, E7544BB6070C3E0F - salt)&lt;br /&gt;
&lt;br /&gt;
* INCEPTION-INCREMENT rida seadistab selliselt, et kui automaaselt tsooni andmed resigneeritakse, siis suurendatakse ka seriali (muidu ei toimu notify ja andmed ei jõua avalikesse pädevatesse nimeserveritesse)&lt;br /&gt;
* rectify tuleb põhimõtteliselt öelda peale iga tsooni muudatust, et olla täiesti kindel tsooni toimimises; kui PowerDNS kasutatakse avalike nimeserverite varjatud masterina, pole see probleem&lt;br /&gt;
&lt;br /&gt;
ning tsooni andmed paistavad&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
 Nov 06 23:49:44 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 This is a Master zone&lt;br /&gt;
 Last SOA serial number we notified: 2016103003 == 2016103003 (serial in the database)&lt;br /&gt;
 Metadata items: &lt;br /&gt;
        SOA-EDIT        INCEPTION-INCREMENT&lt;br /&gt;
        SOA-EDIT-API    INCEPTION-INCREMENT&lt;br /&gt;
 Zone has NSEC3 semantics, configuration: 1 0 1 ab&lt;br /&gt;
 keys: &lt;br /&gt;
 ID = 11 (ZSK), flags = 256, tag = 26589, algo = 8, bits = 1024    Active ( RSASHA256 ) &lt;br /&gt;
 ID = 10 (KSK), flags = 257, tag = 53461, algo = 8, bits = 2048    Active ( RSASHA256 ) &lt;br /&gt;
 KSK DNSKEY = moraal.ee. IN DNSKEY 257 3 8  AwEAAcn... TQcnQstT+tU= ; ( RSASHA256 )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 1 6c123b39076072da... c66f62b1e3c388b86b7f ; ( SHA1 digest )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 2 b85dee98efa6e3bb... 57ce193f728f6b2b1d0dd262 ; ( SHA256 digest )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 3 1359b0b2b97e60b2... 844b207e84bf5c109eb2e151 ; ( GOST R 34.11-94 digest )&lt;br /&gt;
 DS = moraal.ee. IN DS 53461 8 4 6d735926cd5cf68b... 9ca2af1f72b3b8f67900bb32a94c ; ( SHA-384 digest )&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kaks võtit, ID väärtustega 10 ja 11&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb registripidajale öelda DS väärtus.&lt;br /&gt;
&lt;br /&gt;
Tulemuse saab kontrollida nt aadressil http://dnsviz.net/d/moraal.ee/dnssec/.&lt;br /&gt;
&lt;br /&gt;
DNSSEC eemaldamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* esmalt eemaldada registripidaja juurest DS kirje (reeglina see õnnestub, aga nt 2017 aasta kevadel .org domeenide puhul on tulemuseks dnssec viga, tavaline servfail)&lt;br /&gt;
* tsoonis dnssec väljalülitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil disable-dnssec moraal.ee&lt;br /&gt;
&lt;br /&gt;
====Tulemuse kontrollimine====&lt;br /&gt;
&lt;br /&gt;
Kui kõik juba töötab (ja on vist on vajalik, et kasutada on mõni dnssec-võimeline rekursiivne nimeserver), saab tulemust kontrollida nt nii&lt;br /&gt;
&lt;br /&gt;
 $ ldns-rrsig moraal.ee a&lt;br /&gt;
 moraal.ee RRSIG(a):  Thu Oct 27 00:00:00 2016 - Thu Nov 17 00:00:00 2016&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
* DNSSEC RRSIG signatuure arvutatakse iga 2 nädala tagant üle selleks, et piirata replay attack võimalusi. Põhimõtteliselt saab pahalane päringule vastuseks saata mõne varasemalt võrgus olnud vastuse (st RRSet + RRSIG komplekti) eeldusel, et ta kontrollib kasutaja võrguliiklust. Tänu RRSIG piiratud kehtivusajale (nt 2 nädalat) saab ta seda teha mitte vanemate kui 2 nädalat andmetega, lisaks ta on piiratud saatma mitte suvalisi vastuseid, vaid viimase kahe nädala jooksul kasutuses olnud vastuseid.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://blog.powerdns.com/2016/02/02/powerdns-authoritative-the-new-old-way-to-manage-domains/&lt;br /&gt;
&lt;br /&gt;
====CSK võtme kasutamine====&lt;br /&gt;
&lt;br /&gt;
Märkus 2016 lõpus: tundub, et see CSK on mingi tulevikutehnoloogia.&lt;br /&gt;
&lt;br /&gt;
Olemasoleva tsooni jaoks DNSSEC sisselülitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil secure-zone moraal.ee&lt;br /&gt;
 # pdnsutil set-nsec3 moraal.ee '1 0 1 ab'&lt;br /&gt;
 # pdnsutil rectify-zone moraal.ee&lt;br /&gt;
 # pdnsutil set-meta moraal.ee SOA-EDIT-API INCEPTION-INCREMENT&lt;br /&gt;
 # pdnsutil increase-serial moraal.ee&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb registripidajale öelda DS väärtus.&lt;br /&gt;
&lt;br /&gt;
Tulemuse saab kontrollida nt aadressil http://dnsviz.net/d/moraal.ee/dnssec/.&lt;br /&gt;
&lt;br /&gt;
DNSSEC eemaldamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* esmalt eemaldada registripidaja juurest DS kirje&lt;br /&gt;
* tsoonis dnssec väljalülitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil disable-dnssec moraal.ee&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* tagasi nsec peale viimiseks&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil unset-nsec3 moraal.ee&lt;br /&gt;
&lt;br /&gt;
===DNSSEC tsooni seostamine DS sissekande abil ülevalpool oleva tsooniga===&lt;br /&gt;
&lt;br /&gt;
DNSSEC tsooni seostamiseks ülevalpool oleva tsooniga on vaja teada selliseid andmeid&lt;br /&gt;
&lt;br /&gt;
* võtme silt&lt;br /&gt;
* võtme tüüp&lt;br /&gt;
* algoritm&lt;br /&gt;
* avalik võti (või DS mis on avaliku võtme räsi vms)&lt;br /&gt;
&lt;br /&gt;
Need kõik on avalik info ja kättesaadavad domeeni pädevast nimeserverist, aga PowerDNS haldusutiliidiga saab selle küsida otsekoheselt&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Ühesõnaga, kui ise kasutatakse PowerDNS'i või partner saadab need andmed, siis allpool toodud dig käsuga tegelemist pole tarvis läbi teha. Tulemust sobib kontrollida nt aadressil http://dnsviz.net/.&lt;br /&gt;
&lt;br /&gt;
====zone.ee keskkonnas - .ee tsoonis====&lt;br /&gt;
&lt;br /&gt;
Logida sisse oma kasutajaga ja valida vasakult paneelist 'Teenuste ülevaade', kõnelaluse tsooni juures pressida rohelist + märki DNSSEC tulbas. Avanenud uuel eraanil vajutada üleval sinist nuppu Aktiveeri (muutub roheliseks), vajutada võtmete nimekirjas + märki ja täita lahtrid&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Pdns-3.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võtme silt - (antud juhul 53461), selle saab teada päringu väjundist&lt;br /&gt;
&lt;br /&gt;
 $ dig @ns.auul.pri.ee moraal.ee dnskey rrsig | grep DNSKEY&lt;br /&gt;
 moraal.ee.              10800   IN      RRSIG   DNSKEY 8 2 10800 20161208000000 20161117000000 53461 moraal.ee. rVy+HAzSKkTRv6...&lt;br /&gt;
&lt;br /&gt;
* võtme tüüp - KSK&lt;br /&gt;
* algoritm - 8 (RSA-SHA256)&lt;br /&gt;
* avalik võti,  selle saab teada päringu väljundist, alates Aw kuni tU= (võib sisaldada tühikuid nagu päringu vastuses on)&lt;br /&gt;
&lt;br /&gt;
 $ dig @ns.auul.pri.ee moraal.ee dnskey | grep 257&lt;br /&gt;
 moraal.ee. 3600 IN DNSKEY 257 3 8 AwEAAcnmmnnOlkRfK9NDYEI6F ... SD6 TQcnQstT+tU=&lt;br /&gt;
&lt;br /&gt;
Vajutada all nuppu Kinnita, muudatus kehtestub peaaegu koheselt (ehk minutite jooksul), aga kasutajaliideses öeldakse&lt;br /&gt;
&lt;br /&gt;
 DNSSEC kaitse domeenil MORAAL.EE&lt;br /&gt;
 Hetkestaatus: DNSSEC on aktiveerimata&lt;br /&gt;
 Eesootavad muutused: DNSSEC aktiveeritakse&lt;br /&gt;
&lt;br /&gt;
Teha brauseris refresh ja peab olema domeenide nimekirjas DNSSEC tulbas + asemel kilbi kujutis. Edasi läheb nn 15 minutit kuni muudatus zone.ee juurest eestiinternet.ee juurde jõuab ning kehtestub ee. tld (top level domain) nimeserverites. Kontrolliks maksab küsida tld nimeserverilt ds kirjet&lt;br /&gt;
&lt;br /&gt;
 $ dig +short @ns.tld.ee moraal.ee ds&lt;br /&gt;
 30607 8 2 EAC8A17DD2128573F08EE76C18B4AB01734467CD4A376768F5358B0C A2B9463F&lt;br /&gt;
&lt;br /&gt;
====zone.ee keskkonnas - .org tsoonis====&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Pdns-6.gif]]&lt;br /&gt;
&lt;br /&gt;
====GoDaddy keskkonnas====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DNSSEC võtmete asendamine===&lt;br /&gt;
&lt;br /&gt;
====ZSK====&lt;br /&gt;
&lt;br /&gt;
====KSK====&lt;br /&gt;
&lt;br /&gt;
KSK moodi võtme lisamiseks sobib öelda, selliselt võib tsooniga siduda ka enam kui kaks võtit&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee ksk 2048 active rsasha256&lt;br /&gt;
&lt;br /&gt;
Tsooniga seotud võtmed paistavad käsu väljundis&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil show-zone moraal.ee&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab dnsviz keskkonnas selline pilt&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
Tsooniga seotud võtme eemaldamiseks sobib öelda, kus ID on show-zone väljundist välja valitud võtme ID väärtus&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil remove-zone-key moraal.ee ID&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://doc.powerdns.com/md/authoritative/howtos/#zsk-rollover&lt;br /&gt;
&lt;br /&gt;
===Mitmesugused haldusprotseduurid===&lt;br /&gt;
&lt;br /&gt;
====tsooni backend muutmine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====tsooni toomine PowerDNS kontrolli alla====&lt;br /&gt;
&lt;br /&gt;
Tsooni migreerimiseks suvalisest AXFR-võimelisest nimeserverist sobib&lt;br /&gt;
&lt;br /&gt;
* kirjeldada PowerDNS peal slave&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil create-slave-zone moraal.ee 10.0.6.15&lt;br /&gt;
 Feb 21 22:09:52 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 Creating slave zone 'moraal.ee', with master(s) '10.0.6.15:53'&lt;br /&gt;
&lt;br /&gt;
* kopeerida andmed axfr abil üle, kopeerimist kiirendab&lt;br /&gt;
&lt;br /&gt;
 # pdns_control retrieve moraal.ee&lt;br /&gt;
&lt;br /&gt;
* muuta PowerDNS tsooni jaoks masteriks, öeldes&lt;br /&gt;
&lt;br /&gt;
 SQL&amp;gt; UPDATE domains set type='MASTER' where type='SLAVE';&lt;br /&gt;
&lt;br /&gt;
Kui allikaks on nt BIND ning tsoonifailis on kasutatud generate konstruktsiooni, siis need lahenduvad automaatselt ära&lt;br /&gt;
&lt;br /&gt;
 $GENERATE 1-255 $ IN CNAME $.1-255.40.184.10.in-addr.arpa.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://doc.powerdns.com/md/authoritative/migration/&lt;br /&gt;
&lt;br /&gt;
====dnssec tsooni toomine PowerDNS kontrolli alla====&lt;br /&gt;
&lt;br /&gt;
Analoogiliselt eelmisele punktile, aga&lt;br /&gt;
&lt;br /&gt;
* esmalt lülitada dnssec välja, kustutades DS kirje parent tsoonist ja oodates vähemalt DS kirje TTL aja enne järgmise punkti juurde asumist; seejärel on tsooni sisu endine st vanade võtmetega signeeritud andmestik&lt;br /&gt;
* tegevused eelmises punktis + uute võtmetega krüptimine&lt;br /&gt;
* asuda kasutama uute võtmetega krüptitud tsooni sisu, ja oodata nt 6 tundi&lt;br /&gt;
* juurutada parent tsoonis uus DS kirje&lt;br /&gt;
&lt;br /&gt;
====dnssec tsooni toomine PowerDNS kontrolli alla OpenDNSSEC keskkonnast koos vana KSK krüptomaterjaliga====&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et OpenDNSSEC kasutab SoftHSM backendi saab KSK krüptomaterjalid eksportida ja taaskasutada. Ettevalmistuseks tuleb kõnealune tsoon muus osas tavalisel viisil kasutusele võtta. SoftHSM pealt krüptomaterjali eksportimiseks tuleb esmalt teha kindlaks kolm väärust&lt;br /&gt;
&lt;br /&gt;
* SoftHSM label ja pin vaadata nt /etc/opendnssec/conf.xml failist&lt;br /&gt;
* kõnealuse tsooni ksk võtme id, vaadata KSK active realt tulp 'CKA_ID'&lt;br /&gt;
&lt;br /&gt;
 # ods-ksmutil key list -v&lt;br /&gt;
&lt;br /&gt;
sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # softhsm --export moraal.ee-ksk.pem --slot 0 --label &amp;quot;vaartus&amp;quot; --pin vaartus --id vaartus&lt;br /&gt;
 The key pair has been written to moraal.ee-ksk.pem&lt;br /&gt;
&lt;br /&gt;
teisendada nn BIND kujule&lt;br /&gt;
&lt;br /&gt;
 # softhsm-keyconv --tobind --in ksk.pem --name moraal.ee --ksk --algorithm RSASHA256&lt;br /&gt;
 The private key has been written to Kmoraal.ee+008+09122.private&lt;br /&gt;
 The public key has been written to Kmoraal.ee+008+09122.key&lt;br /&gt;
&lt;br /&gt;
ning võtta kasutusele PowerDNS juures&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil import-zone-key moraal.ee Kksk+008+53675.private active ksk&lt;br /&gt;
&lt;br /&gt;
Edasi seadistatakse DNSSEC analoogliselt nagu seada ikka PowerDNS puhul seadistatakse. Kusjuures 'pdnsutil import-zone-key ...' tulemus on sarnane nagu oleks öeldud&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil add-zone-key moraal.ee ksk 2048 active rsasha256&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.molnar-peter.hu/en/&lt;br /&gt;
&lt;br /&gt;
====pdns-control utiliidi kasutamine====&lt;br /&gt;
&lt;br /&gt;
PowerDNS kus on master tsoon saadab notify oma slavedele (nagu on tsoonifaili NS kirjetes kirjas)&lt;br /&gt;
&lt;br /&gt;
 # pdns_control notify &amp;lt;domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või näidatud ip aadressile&lt;br /&gt;
&lt;br /&gt;
 # pdns_control notify-host &amp;lt;domain&amp;gt; &amp;lt;ip-address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TSIG kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nimeserverite vahelise tsooniedastuse juures TSIG juurutamiseks tuleb esmalt tekitada võti&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil generate-tsig-key from_dns_to_itm hmac-sha256&lt;br /&gt;
 Generating new key with 64 bytes (this can take a while)&lt;br /&gt;
 Nov 26 13:10:37 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
 Create new TSIG key from_dns_to_itm hmac-sha256 WLuS4o6CX35+yGerdHpl2h3+PDKt76rgam9rqkRg8N+fTP6cGtC6H17rDidKl7FzEu0fukg3apxnZUxdDRDhkQ==&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
ning seejärel võti ühe või enama tsooniedastusega seostada&lt;br /&gt;
&lt;br /&gt;
 # pdnsutil activate-tsig-key moraal.ee from_dns_to_itm master&lt;br /&gt;
&lt;br /&gt;
Tulemus paistab nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil show-zone moraal.ee&lt;br /&gt;
Nov 26 14:09:44 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed&lt;br /&gt;
This is a Master zone&lt;br /&gt;
Last SOA serial number we notified: 2016112602 == 2016112602 (serial in the database)&lt;br /&gt;
Zone is not actively secured&lt;br /&gt;
Zone has following allowed TSIG key(s): from_dns_to_itm&lt;br /&gt;
Metadata items: &lt;br /&gt;
        SOA-EDIT-API    DEFAULT&lt;br /&gt;
        TSIG-ALLOW-AXFR from_dns_to_itm&lt;br /&gt;
No keys for zone 'moraal.ee'.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks sobib kopeerida öeldes&lt;br /&gt;
&lt;br /&gt;
 $ dig @192.168.1.248 moraal.ee axfr -y &amp;quot;hmac-sha256:from_dns_to_itm:WLuS4o6CX35+yGerdHpl2h3+PDKt76rgam9rqkRg8N+fTP6cGtC6H17rDidKl7FzEu0fukg3apxnZUxdDRDhkQ==&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kusjuures vastuses on üks preudokirje lisaks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 from_dns_to_itm.        0       ANY     TSIG    hmac-sha256. 1480164029 300 32 t96WhnpNiAiL5KHXa8UzNthM6/p3ciQptF3Br2ZfhFk= 3538 NOERROR 0&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Sama TSIG võtit saab kasutada mitme tsooni jaoks ja nii on mugavam nt NSD patternit kasutada&lt;br /&gt;
* tundub, et tsooni jaoks TSIG juurutamisega kaasneb, et tsooni kopeerimise ip piirang enam ei kehti (lubatud ip pealt pöördudes ei ole võtme esitamine vajalik)&lt;br /&gt;
* kui tsooni juures on tsig sisse lülitatud, siis see mõjub nii notify kui xfr jaoks&lt;br /&gt;
* TSIG pseudokirjete arv suureneb vastavalt tsooni mahu suurenemisele, https://tools.ietf.org/html/rfc2845 'The TSIG MUST be included on the first and last DNS envelopes.  It can be optionally placed on any intermediary envelopes. It is expensive to include it on every envelopes, but it MUST be placed on at least every 100'th envelope.'&lt;br /&gt;
&lt;br /&gt;
Alternatiiv on kasutada -y asemel -k suvandit ja argumendiks failinime, faili sisuga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key &amp;quot;from_yks_to_teine&amp;quot; {&lt;br /&gt;
algorithm HMAC-SHA256;&lt;br /&gt;
secret &amp;quot;YY8xvlL6yGjrt1G4xlfLBaidQOFdvixHgRXN6tXUPMitEKZUs7kl7qixJ0nSN1bbDJQxaFGkoKkBamNS7EPXbw==&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===API kasutamine===&lt;br /&gt;
&lt;br /&gt;
Üle API muudatuse tegemiseks peab eelnevalt PowerDNS serveris lülitama API sisse ning sisemise webserver käivitama&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/powerdns/pdns.conf&lt;br /&gt;
 ..&lt;br /&gt;
 api=yes&lt;br /&gt;
 api-key=apiparool&lt;br /&gt;
 webserver=yes&lt;br /&gt;
 webserver-address=192.168.1.248&lt;br /&gt;
 webserver-allow-from=0.0.0.0/0,::/0,192.168.10.0/24&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ja kasutama nt sellist skripti (töökohaarvutis on seejuures abil kasutada nt jq utiliiti)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat pdns-api.sh&lt;br /&gt;
curl -X PATCH --data \&lt;br /&gt;
'{&amp;quot;rrsets&amp;quot;: &lt;br /&gt;
  [{ &amp;quot;name&amp;quot;: &amp;quot;www.moraal.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [{ &amp;quot;content&amp;quot;: &amp;quot;192.168.254.5&amp;quot;, &amp;quot;disabled&amp;quot;: false }],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 86000,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;A&amp;quot;,&lt;br /&gt;
      &amp;quot;changetype&amp;quot;: &amp;quot;REPLACE&amp;quot;&lt;br /&gt;
  }]&lt;br /&gt;
}' -H 'X-API-Key: midagisalajast123' http://192.168.1.248:8081/api/v1/servers/localhost/zones/moraal.ee. | jq .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
kas käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 $ sh pdns-api.sh&lt;br /&gt;
&lt;br /&gt;
API'ga tutvumiseks võib olla hea mõte kuulata pealt mingi olemasoleva API-rakenduse ja serveri vahelist liiklust ja siis seda Wireshark abil uurida.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://doc.powerdns.com/md/httpapi/README/ - tundub, et süntaks pole seal kõigis näidetes päris korrektne&lt;br /&gt;
&lt;br /&gt;
===PowerDNS kasutusstatistika===&lt;br /&gt;
&lt;br /&gt;
PowerDNS sisaldab sisemist veebiserverit, mille käest saab küsida teenuse kasutusstatistikat, TODO.&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et vaikimisi logitakse syslog'i.&lt;br /&gt;
&lt;br /&gt;
===Varundamine ja taaste===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine operatsioonisüsteemi paketihaldusest====&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda, tuleb paigalda üldosa + mingi backend, nt BIND-ühilduvate tsoonifailide käsitlemise komponent (st failisüsteem)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdns-server pdns-backend-bind&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib failisüsteemi&lt;br /&gt;
&lt;br /&gt;
* /etc/powerdns/pdns.conf - peamine seadistusfail&lt;br /&gt;
&lt;br /&gt;
====MySQL backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
Teoreetliselt võib sodida tsooni sisu muutmiseks üldotstarbelise sql editoriga (nt PgAdmin) ka otse baasis, aga praktilisem on kasutada ehk pdnsutil või api't kasutava tarkvara abil, nt nsedit veebiliides.&lt;br /&gt;
&lt;br /&gt;
====pdns-backend-mysql paigaldamine ja seadistamine====&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et MySQL baas juba töötab samas arvutis, sobib paigaldamiseks sobib öelda (seejuures kasutades db-config sistemat, mis paigaldamise käigus tekitab create database baasi, kasutaja, sätib privileegid jne)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdns-backend-mysql&lt;br /&gt;
 ..&lt;br /&gt;
 Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.&lt;br /&gt;
 dbconfig-common: writing config to /etc/dbconfig-common/pdns-backend-mysql.conf&lt;br /&gt;
 &lt;br /&gt;
 Creating config file /etc/dbconfig-common/pdns-backend-mysql.conf with new version&lt;br /&gt;
 &lt;br /&gt;
 Creating config file /etc/powerdns/pdns.d/pdns.local.gmysql.conf with new version&lt;br /&gt;
 checking privileges on database pdns for pdns@localhost: user creation needed.&lt;br /&gt;
 granting access to database pdns for pdns@localhost: success.&lt;br /&gt;
 verifying access for pdns@localhost: success.&lt;br /&gt;
 creating database pdns: success.&lt;br /&gt;
 verifying database pdns exists: success.&lt;br /&gt;
 populating database via sql...  done.&lt;br /&gt;
 dbconfig-common: flushing administrative password&lt;br /&gt;
 Processing triggers for libc-bin (2.24-3) ...&lt;br /&gt;
 Processing triggers for pdns-server (4.0.1-5) ...&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
* tekitatakse MySQL kasutaja pdns&lt;br /&gt;
* tekitatakse MySQL create database pdns&lt;br /&gt;
&lt;br /&gt;
====BIND backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
Tundub, et otsekoheselt failisüsteemis tsoonifaili redigeerimise teel on mõeldav töötada ainult BIND-formaadis backendiga. Muudega tuleks kasutada pdnsutil utiliiti või API liidest. Tsoonide nimekiri kirjeldatakse failis&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/powerdns/named.conf&lt;br /&gt;
 # Debian default: supermaster created zones are written here:&lt;br /&gt;
 include &amp;quot;/var/lib/powerdns/supermaster.conf&amp;quot;;&lt;br /&gt;
 # Example for a manually configured slave zone:&lt;br /&gt;
 #&lt;br /&gt;
 zone &amp;quot;example.net&amp;quot; {&lt;br /&gt;
    file &amp;quot;/var/lib/powerdns/zones.slave.d/example.net.zone&amp;quot;;&lt;br /&gt;
    type master;&lt;br /&gt;
    masters { 192.0.2.53; };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Tsoon kirjeldatakse failis&lt;br /&gt;
&lt;br /&gt;
 # cat /var/lib/powerdns/zones.slave.d/example.net.zone&lt;br /&gt;
 $TTL 180&lt;br /&gt;
 @           IN    SOA     ns1.example.net.      hostmaster.example.net. (&lt;br /&gt;
                        2014080705      ; Serial Number (date YYYYMMDD++)&lt;br /&gt;
                        86400           ; Refresh (24 hours)&lt;br /&gt;
                        1800            ; Retry (1/2 hour)&lt;br /&gt;
                        3600000         ; Expire (42 days)&lt;br /&gt;
                        21600)          ; Minimum (6 hours)&lt;br /&gt;
                        IN      NS      ns1.example.net.&lt;br /&gt;
                        IN      NS      ns2.example.net.&lt;br /&gt;
 &lt;br /&gt;
 @           IN    A       192.168.0.15&lt;br /&gt;
             IN    MX   10 mail.example.net.&lt;br /&gt;
 www         IN    A       192.168.0.15&lt;br /&gt;
 mail        IN    A       192.168.0.2&lt;br /&gt;
 ns1         IN    A       10.1.1.171&lt;br /&gt;
 ns2         IN    A       10.1.1.172&lt;br /&gt;
 imre        IN    A       10.1.1.173&lt;br /&gt;
&lt;br /&gt;
Muudatuse kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # pdns_control bind-reload-now example.net&lt;br /&gt;
 example.net:    parsed into memory at 2016-10-26 20:43:14 +0300&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
Teoreetliselt võib sodida tsooni sisu muutmiseks üldotstarbelise sql editoriga (nt PgAdmin) ka otse baasis, aga praktilisem on kasutada ehk pdnsutil või api't kasutava tarkvara abil, nt nsedit veebiliides.&lt;br /&gt;
&lt;br /&gt;
====BIND backend kasutamine====&lt;br /&gt;
&lt;br /&gt;
pdns-backend-bind seadistatakse failist&lt;br /&gt;
&lt;br /&gt;
 # egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.d/bind.conf &lt;br /&gt;
 launch+=bind&lt;br /&gt;
 bind-config=/etc/powerdns/named.conf&lt;br /&gt;
 bind-supermaster-config=/var/lib/powerdns/supermaster.conf&lt;br /&gt;
 bind-supermaster-destdir=/var/lib/powerdns/zones.slave.d&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* /etc/powerdns/named.conf - tsoonide nimekiri&lt;br /&gt;
* /var/lib/powerdns/supermaster.conf - lihtsal juhul tühi&lt;br /&gt;
* /var/lib/powerdns/zones.slave.d - BIND formaadis tsoonifailide kataloog&lt;br /&gt;
&lt;br /&gt;
Tsoonide haldamisega tegeleb edasi allpool olev punkt.&lt;br /&gt;
&lt;br /&gt;
====Poweradmin====&lt;br /&gt;
&lt;br /&gt;
Märkus: tõenäoliselt ei ole Poweradmin tarvkara kasutamine hea mõte kuna rakendus sodib otse PowerDNS andmebaasis ja 2016 aasta sügisel on hakanud tekkima paremaid alternatiive, nt nsedit.&lt;br /&gt;
&lt;br /&gt;
Poweradmin kasutamiseks peab PowerDNS kasutama SQL andmebaasi ja Poweradmin peab töötama vastu sama andmebaasi. Tundub, et Poweradmin töötab paremini MySQL + PHP5 keskkonnas. Kui Poweradmin PHP rakendus töötab teises arvutis kui MySQL baas, sobib baasis öelda&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; grant all privileges on pdns.* to 'pdns'@'%' identified by 'dbconfig sisestatud parool';&lt;br /&gt;
 mysql&amp;gt; grant all privileges on pdns.* to 'pdns'@'localhost' identified by 'dbconfig sisestatud parool';&lt;br /&gt;
 mysql&amp;gt; flush privileges;&lt;br /&gt;
&lt;br /&gt;
 # pdns_control retrieve moraal.ee&lt;br /&gt;
 Added retrieval request for 'moraal.ee.' from master 192.168.1.247&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-powerdns-with-a-mariadb-backend-on-ubuntu-14-04&lt;br /&gt;
&lt;br /&gt;
====Tsooni andmestikust otsing====&lt;br /&gt;
&lt;br /&gt;
* Kõigi forward tsoonide sisust ip aadressi kasutamise leidmine&lt;br /&gt;
&lt;br /&gt;
 # for i in `pdns_control list-zones | grep -v All | grep -v in-addr`; do pdnsutil list-zone $i 2&amp;gt;&amp;amp;1 ; done | grep 10.20.123.154&lt;br /&gt;
 ftp.moraal.ee	300	IN	A	10.20.123.154&lt;br /&gt;
&lt;br /&gt;
===Tsooni migreerimine pädeva pdns peale===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* SOA-EDIT - &lt;br /&gt;
&lt;br /&gt;
====Protseduur====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Käsundamine====&lt;br /&gt;
&lt;br /&gt;
Eksport&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil show-zone moraal.ee&lt;br /&gt;
# pdnsutil export-zone-key moraal.ee 17 &amp;gt; moraal.ee.ksk&lt;br /&gt;
# pdnsutil list-zone moraal.ee &amp;gt; moraal.ee.zone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Import&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil load-zone moraal.ee.zone&lt;br /&gt;
# pdnsutil set-kind moraal.ee master&lt;br /&gt;
# pdnsutil set-meta moraal.ee SOA-EDIT-API DEFAULT&lt;br /&gt;
# pdnsutil set-meta moraal.ee SOA-EDIT INCEPTION-INCREMENT&lt;br /&gt;
# pdnsutil import-zone-key moraal.ee moraal.ee.ksk ksk&lt;br /&gt;
# pdnsutil set-nsec3 moraal.ee '1 0 0 -'&lt;br /&gt;
# pdnsutil rectify-zone moraal.ee&lt;br /&gt;
# pdnsutil show-zone moraal.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Käsundamine - 2nd abil====&lt;br /&gt;
&lt;br /&gt;
Tekitatakse migreeritava tsooni sekundaar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pdnsutil create-secondary-zone moraal.ee 192.168.1.148&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://www.powerdns.com/&lt;br /&gt;
* http://www.poweradmin.org/&lt;br /&gt;
* https://github.com/PowerDNS/pdns/wiki/WebFrontends&lt;br /&gt;
* http://jpmens.net/2010/10/29/alternative-dns-servers-the-book-as-pdf/&lt;br /&gt;
* https://blog.powerdns.com/2016/02/02/powerdns-authoritative-the-new-old-way-to-manage-domains/&lt;br /&gt;
* https://www.cloudflare.com/dns/dnssec/how-dnssec-works/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4936</id>
		<title>PowerDNS webfrontend - PowerDNS-Admin</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=PowerDNS_webfrontend_-_PowerDNS-Admin&amp;diff=4936"/>
		<updated>2026-08-05T05:50:27Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===2024 aasta kevade tähelepanekud===  Eesmärk  * ühe operatsioonisüteemi peal kompaktselt lahenduse pidamine - Debian v. 12 * dns server - PowerDNS * webgui haldusliides - PowerDNS-Admin (PDA) * dnssec võimekus * docker abil kasutatakse konteinerit (PDA) * andmeid hoitakse PostgreSQL andmebaasis  ====Tööpõhimõte====  Väited  * dnssec kasutab algoritmi nr 13 * NSEC3 kasutab '1 0 0 -' seadistust * sekundaarsete nimeserveritega suhtlemine toimub catalog-zones abil *...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===2024 aasta kevade tähelepanekud===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* ühe operatsioonisüteemi peal kompaktselt lahenduse pidamine - Debian v. 12&lt;br /&gt;
* dns server - PowerDNS&lt;br /&gt;
* webgui haldusliides - PowerDNS-Admin (PDA)&lt;br /&gt;
* dnssec võimekus&lt;br /&gt;
* docker abil kasutatakse konteinerit (PDA)&lt;br /&gt;
* andmeid hoitakse PostgreSQL andmebaasis&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* dnssec kasutab algoritmi nr 13&lt;br /&gt;
* NSEC3 kasutab '1 0 0 -' seadistust&lt;br /&gt;
* sekundaarsete nimeserveritega suhtlemine toimub catalog-zones abil&lt;br /&gt;
* kasutatakse KSK/ZSK ja CSK lähenemist võtmete pidamisel&lt;br /&gt;
&lt;br /&gt;
Protseduuride võimekus&lt;br /&gt;
&lt;br /&gt;
* NSEC, NSEC3 ja NSEC3 param väärtuste muutmine&lt;br /&gt;
* võtme vahetus&lt;br /&gt;
* krüptimise algoritmi vahetus&lt;br /&gt;
&lt;br /&gt;
====Platvormi ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Platvorm koosneb&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 operatsioonisüsteem&lt;br /&gt;
* Docker Community Edition&lt;br /&gt;
* PostgreSQL v. 12&lt;br /&gt;
* NginX&lt;br /&gt;
&lt;br /&gt;
PostgreSQL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-common&lt;br /&gt;
root@pdns:/tmp# mkdir /etc/postgresql-common/createcluster.d&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;initdb_options = '--data-checksums'&amp;quot; &amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# echo &amp;quot;create_main_cluster = false&amp;quot; &amp;gt;&amp;gt; /etc/postgresql-common/createcluster.d/moraal.conf&lt;br /&gt;
root@pdns:/tmp# apt-get install postgresql-16&lt;br /&gt;
root@pdns:/tmp# pg_createcluster --locale en_US.UTF-8 16 pgcluster_pdns_prod&lt;br /&gt;
 &lt;br /&gt;
postgres=# \x&lt;br /&gt;
Expanded display is on.&lt;br /&gt;
postgres=# \l postgres&lt;br /&gt;
List of databases&lt;br /&gt;
-[ RECORD 1 ]-----+------------&lt;br /&gt;
Name              | postgres&lt;br /&gt;
Owner             | postgres&lt;br /&gt;
Encoding          | UTF8&lt;br /&gt;
Locale Provider   | libc&lt;br /&gt;
Collate           | en_US.UTF-8&lt;br /&gt;
Ctype             | en_US.UTF-8&lt;br /&gt;
ICU Locale        | &lt;br /&gt;
ICU Rules         | &lt;br /&gt;
Access privileges | &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pdns login;&lt;br /&gt;
sql&amp;gt; \password pdns&lt;br /&gt;
sql&amp;gt; create database db_pdns owner = pdns;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin kasutaja ja create database baasi tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql&lt;br /&gt;
sql&amp;gt; create role pda login;&lt;br /&gt;
sql&amp;gt; \password pda&lt;br /&gt;
sql&amp;gt; create database db_pda owner = pda;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PowerDNS paigaldamine====&lt;br /&gt;
&lt;br /&gt;
PowerDNS ise ja tema tööks otseselt vajalikud komponendid (nt PostgreSQL andmebaas) töötavad nö tavalisel viisil operatsioonisüsteemi protsesside-teenustena st mitte-konteineritena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install pdns-server pdns-backend-pgsql pdns-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitatakse pdns server ja tema bind backend.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
PostgreSQL backend kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# psql -h 127.0.0.1 -U pdns pdns &amp;lt; /usr/share/doc/pdns-backend-pgsql/schema.pgsql.sql&lt;br /&gt;
Password for user pdns: &lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
CREATE INDEX&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi ligipääs jms kirjeldatakse failis, https://doc.powerdns.com/authoritative/backends/generic-postgresql.html#&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# egrep -v &amp;quot;^#|^$&amp;quot; /etc/powerdns/pdns.d/gpgsql.conf&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dbname=db_pdns&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-host=127.0.0.1&lt;br /&gt;
gpgsql-password=parool&lt;br /&gt;
gpgsql-port=5432&lt;br /&gt;
gpgsql-user=pdns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bind eemaldamiseks sobib kustutada fail&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/powerdns/pdns.d/bind.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena töötab pdns server, gpgsql backendiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2024-06-16T16:44:00.877817+03:00 pdns systemd[1]: Starting pdns.service - PowerDNS Authoritative Server...&lt;br /&gt;
2024-06-16T16:44:00.906026+03:00 pdns pdns_server[3916]: Loading '/usr/lib/x86_64-linux-gnu/pdns/libgpgsqlbackend.so'&lt;br /&gt;
2024-06-16T16:44:00.906356+03:00 pdns pdns_server[3916]: This is a standalone pdns&lt;br /&gt;
2024-06-16T16:44:00.906408+03:00 pdns pdns_server[3916]: Listening on controlsocket in '/run/pdns/pdns.controlsocket'&lt;br /&gt;
2024-06-16T16:44:00.906668+03:00 pdns pdns_server[3916]: UDP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906684+03:00 pdns pdns_server[3916]: UDP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906735+03:00 pdns pdns_server[3916]: TCP server bound to 0.0.0.0:53&lt;br /&gt;
2024-06-16T16:44:00.906750+03:00 pdns pdns_server[3916]: TCP server bound to [::]:53&lt;br /&gt;
2024-06-16T16:44:00.906866+03:00 pdns pdns_server[3916]: PowerDNS Authoritative Server 4.9.1 (C) PowerDNS.COM BV&lt;br /&gt;
2024-06-16T16:44:00.906881+03:00 pdns pdns_server[3916]: Using 64-bits mode. Built using gcc 12.2.0 on May 28 2024 07:46:05 by root@localhost.&lt;br /&gt;
2024-06-16T16:44:00.906891+03:00 pdns pdns_server[3916]: PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.&lt;br /&gt;
2024-06-16T16:44:00.915255+03:00 pdns pdns_server[3916]: Polled security status of version 4.9.1 at startup, no known issues reported: OK&lt;br /&gt;
2024-06-16T16:44:00.926644+03:00 pdns pdns_server[3916]: Creating backend connection for TCP&lt;br /&gt;
2024-06-16T16:44:00.935773+03:00 pdns pdns_server[3916]: About to create 3 backend threads for UDP&lt;br /&gt;
2024-06-16T16:44:00.935850+03:00 pdns systemd[1]: Started pdns.service - PowerDNS Authoritative Server.&lt;br /&gt;
2024-06-16T16:44:01.086206+03:00 pdns pdns_server[3916]: Done launching threads, ready to distribute questions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ühtegi tsooni ei ole kirjeldatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/tmp# pdnsutil list-all-zones&lt;br /&gt;
root@pdns:/tmp# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PowerDNS seadistamine====&lt;br /&gt;
&lt;br /&gt;
Seadistamisel tegeldakse&lt;br /&gt;
&lt;br /&gt;
* api sisselülitamine (PDA jaoks)&lt;br /&gt;
* SOA kirje vaikeväärtused&lt;br /&gt;
* DNSSEC vaike krüpto&lt;br /&gt;
&lt;br /&gt;
====PowerDNS-Admin paigaldamine - PDA - docker====&lt;br /&gt;
&lt;br /&gt;
PowerDNS-Admin tarvkara töötab docker konteinerina, aga kasutab host arvutist postgresql andmebaasi. Platvorm ettevalmistamine punktis on vajalik kasutaja ja create database tekitatud. PDA kasutamine eeldab, et PDNS juures on sisse lülitatud api liides (vaikimisi http liiklus üle port 8081).&lt;br /&gt;
&lt;br /&gt;
Docker compose fail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:~# cat docker-compose-pda.yml&lt;br /&gt;
services:&lt;br /&gt;
  svc_pda:&lt;br /&gt;
    image: powerdnsadmin/pda-legacy:v0.4.2&lt;br /&gt;
     &lt;br /&gt;
    container_name: cn_pda&lt;br /&gt;
    restart: always&lt;br /&gt;
    logging:&lt;br /&gt;
      driver: json-file&lt;br /&gt;
      options:&lt;br /&gt;
        max-size: 50m&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9191:80&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      - SECRET_KEY='saladus'&lt;br /&gt;
      - SQLALCHEMY_DATABASE_URI=postgresql://pda:pdaparool@192.168.10.53/pda&lt;br /&gt;
      - GUNICORN_TIMEOUT=60&lt;br /&gt;
      - GUNICORN_WORKERS=2&lt;br /&gt;
      - GUNICORN_LOGLEVEL=DEBUG&lt;br /&gt;
      - OFFLINE_MODE=False&lt;br /&gt;
      - CSRF_COOKIE_SECURE=False&lt;br /&gt;
 &lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_pda&lt;br /&gt;
       &lt;br /&gt;
networks:&lt;br /&gt;
  nw_pda:&lt;br /&gt;
    name: nw_pda&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # docker compose -f docker-compose-pda.yml up -d&lt;br /&gt;
&lt;br /&gt;
Tulemusena on aadressil http://192.168.10.53:9191/ PDA webgui sisselogimise ekraan. Pressida Create Account ja esimesena tekitatud kasutaja on admin privileegidega.&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====PowerDNS-Admin paigaldamine - NginX operatsioonisüsteem====&lt;br /&gt;
&lt;br /&gt;
NginX https:// frontend kasutamiseks sobib kasutada sellist seadistust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pdns:/etc/nginx/sites-enabled# cat /etc/nginx/sites-enabled/pdns &lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    if ($request_uri !~ /.well-known) {&lt;br /&gt;
      return 301 https://pdns.moraal.ee/;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name pdns.moraal.ee;&lt;br /&gt;
    ssl_certificate /etc/ssl/localcerts/pdns.moraal.ee.pem;&lt;br /&gt;
    ssl_certificate_key /etc/ssl/localcerts/pdns.moraal.ee.key;&lt;br /&gt;
    ssl_session_timeout 1d;&lt;br /&gt;
    ssl_session_cache shared:MozSSL:10m;&lt;br /&gt;
    ssl_session_tickets off;&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
    ssl_prefer_server_ciphers off;&lt;br /&gt;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;&lt;br /&gt;
 &lt;br /&gt;
    client_max_body_size 25m;&lt;br /&gt;
 &lt;br /&gt;
    ssl_stapling off;&lt;br /&gt;
    add_header Strict-Transport-Security &amp;quot;max-age=63072000&amp;quot; always;&lt;br /&gt;
 &lt;br /&gt;
    access_log /var/log/nginx/access-pdns.moraal.ee-443.log;&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
 &lt;br /&gt;
    location / {&lt;br /&gt;
      proxy_set_header Host $http_host;&lt;br /&gt;
      proxy_set_header X-Forwarded-For $remote_addr;&lt;br /&gt;
      proxy_set_header X-Forwarded-Proto https;&lt;br /&gt;
      proxy_pass http://192.168.10.53:9191;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PowerDNS-Admin paigaldamine - NginX docker====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /srv/pdns/volume/nginx/etc/nginx/nginx.conf&lt;br /&gt;
# nginx.conf&lt;br /&gt;
&lt;br /&gt;
user nginx;&lt;br /&gt;
worker_processes auto;&lt;br /&gt;
error_log /dev/stderr;&lt;br /&gt;
pid /var/run/nginx.pid;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
    worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
    include       mime.types;&lt;br /&gt;
    default_type  application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
    log_format  main  '$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; '&lt;br /&gt;
                      '$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; '&lt;br /&gt;
                      '&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;';&lt;br /&gt;
    access_log /dev/stdout main;&lt;br /&gt;
&lt;br /&gt;
    sendfile        on;&lt;br /&gt;
    keepalive_timeout  65;&lt;br /&gt;
&lt;br /&gt;
    # Redirect HTTP to HTTPS&lt;br /&gt;
    server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # HTTPS Configuration&lt;br /&gt;
    server {&lt;br /&gt;
        listen 443 ssl;&lt;br /&gt;
        server_name _;&lt;br /&gt;
        http2 on;&lt;br /&gt;
        ssl_protocols TLSv1.3;&lt;br /&gt;
        ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
        ssl_certificate /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.crt;&lt;br /&gt;
        ssl_certificate_key /etc/ssl/localcerts/ns-pdns-01.auul.pri.ee.key;&lt;br /&gt;
&lt;br /&gt;
        # Recommended security settings&lt;br /&gt;
        ssl_session_cache shared:SSL:10m;&lt;br /&gt;
        ssl_session_timeout 10m;&lt;br /&gt;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;&lt;br /&gt;
&lt;br /&gt;
        # Logging&lt;br /&gt;
        access_log /dev/stdout;&lt;br /&gt;
        error_log /dev/stdout;&lt;br /&gt;
&lt;br /&gt;
        # Reverse proxy to the destination&lt;br /&gt;
        location / {&lt;br /&gt;
            proxy_pass http://svc_pdns:8081;&lt;br /&gt;
            proxy_set_header Host $host;&lt;br /&gt;
            proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
            proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab pda webgui poole pöörduda aadressiga https://pdns.moraal.ee/.&lt;br /&gt;
&lt;br /&gt;
PDA kasutaja parooli muutmine postgresql baasis, nb rakendus kasutab tabeli nimena 'user', see on postgresql nö built-in objekt ja name clash ületamiseks tuleb pöörduda rakendusega seotud ressursi poole &amp;quot;user&amp;quot; abil, eriti koos skeemi prefiksiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# su - postgres&lt;br /&gt;
$ psql db_pda&lt;br /&gt;
pda=# select * from public.&amp;quot;user&amp;quot;;&lt;br /&gt;
-[ RECORD 1 ]------------------------------------------------------------&lt;br /&gt;
id         | 1&lt;br /&gt;
username   | admin&lt;br /&gt;
password   | $2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FF&lt;br /&gt;
firstname  | Imre&lt;br /&gt;
lastname   | Oolberg&lt;br /&gt;
email      | imre.oolberg@auul.pri.ee&lt;br /&gt;
otp_secret | &lt;br /&gt;
role_id    | 1&lt;br /&gt;
confirmed  | f&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
db_pda=# update public.&amp;quot;user&amp;quot; set password='$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC' where username='admin';&lt;br /&gt;
UPDATE 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures password väärtus tekitatakse nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ htpasswd -bnBC 15 &amp;quot;&amp;quot; pdaparool | tr -d ':\n'&lt;br /&gt;
$2y$15$NgdA4JSsKb1RyaiWBdKjcODfgxkwmhMB.95sa07PX/d9a9QxZ/4FC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into &amp;quot;user&amp;quot; (username, password, firstname, lastname, email, role_id, confirmed) values ('admin',  '$2b$12$4M9qXQaWn95GTregvSO2v.I/1QQT0/Ayqt3jZsMp06FIa5dMme6Gu', 'Administrator', 'Administrator', 'priit@moraal.ee', 1, 'f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pdns api kontakti lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_url', 'http://192.168.10.80:8081');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_api_key', 'apiparool');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# insert into setting (name, value) values ('pdns_version', '4.9.11');&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
db_pda=# select * from setting;&lt;br /&gt;
 id |     name     |         value&lt;br /&gt;
----+--------------+------------------------&lt;br /&gt;
  7 | pdns_api_url | http://192.168.10.80:8081&lt;br /&gt;
  8 | pdns_api_key | apiparool&lt;br /&gt;
  9 | pdns_version | 4.9.11&lt;br /&gt;
(3 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PDA kasutamise privileegid====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Account - grupi taoline moodustis, praktiliselt võiks vastata domeeni omanik asutusele&lt;br /&gt;
* User - kasutaja taoline moodustis, vastab inimesele kes süsteemi kasutab&lt;br /&gt;
* User ja Account vaheliste seoste abil saab anda hulgale kasutajatele õiguse tegeleda hulga domeenidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-xxx-01:/opt/pda/dc# docker exec -ti e8 sh&lt;br /&gt;
/app $ ps aux&lt;br /&gt;
PID   USER     TIME  COMMAND&lt;br /&gt;
    1 pda       0:00 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    7 pda       0:02 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
    8 pda       0:01 {gunicorn} /usr/bin/python3 /usr/bin/gunicorn powerdnsadmin:create_app() -t 60 --workers 2 --bind 0.0.0.0:80 --log-level DEBUG&lt;br /&gt;
&lt;br /&gt;
[2025-10-31 13:06:25,927] [record.py:61] ERROR - Cannot fetch zone's record data from remote powerdns api. DETAIL: HTTPSConnectionPool(host='rvxxx-01.test.moraal.ee', port=443): Max retries exceeded with url: /api/v1/servers/localhost/zones/imretest-03.ee (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1007)')))&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
        #      - /opt/pda/volume/pda/etc/ssl/certs/ca-certificates.crt:/usr/lib/python3.10/site-packages/certifi/cacert.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PDA API liidese kasutamine====&lt;br /&gt;
&lt;br /&gt;
Tsooni tekitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -s -L -H 'Content-Type: application/json' -H 'Authorization: Basic xxx' -X POST https://pda.moraal.ee/api/v1/pdnsadmin/zones \&lt;br /&gt;
    --data '{&amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;, &amp;quot;kind&amp;quot;: &amp;quot;MASTER&amp;quot;, &amp;quot;nameservers&amp;quot;: [&amp;quot;ans1.moraal.ee.&amp;quot;, &amp;quot;ans2.moraal.ee.&amp;quot;]}' | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;account&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;api_rectify&amp;quot;: false,&lt;br /&gt;
  &amp;quot;catalog&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;dnssec&amp;quot;: false,&lt;br /&gt;
  &amp;quot;edited_serial&amp;quot;: 2026010802,&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;kind&amp;quot;: &amp;quot;Master&amp;quot;,&lt;br /&gt;
  &amp;quot;last_check&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;master_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;masters&amp;quot;: [],&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
  &amp;quot;notified_serial&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;nsec3narrow&amp;quot;: false,&lt;br /&gt;
  &amp;quot;nsec3param&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;rrsets&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee. hostmaster.moraal.ee. 2026010801 86400 7200 2419200 10800&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SOA&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;comments&amp;quot;: [],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zone-moraal-imre-test-01.ee.&amp;quot;,&lt;br /&gt;
      &amp;quot;records&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans1.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;content&amp;quot;: &amp;quot;ans2.moraal.ee.&amp;quot;,&lt;br /&gt;
          &amp;quot;disabled&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;ttl&amp;quot;: 3600,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;NS&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;serial&amp;quot;: 2026010801,&lt;br /&gt;
  &amp;quot;slave_tsig_key_ids&amp;quot;: [],&lt;br /&gt;
  &amp;quot;soa_edit&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;soa_edit_api&amp;quot;: &amp;quot;DEFAULT&amp;quot;,&lt;br /&gt;
  &amp;quot;url&amp;quot;: &amp;quot;/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui pole ligipääsu saab sellise vastuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% curl -s -L -H 'Content-Type: application/json' -H 'X-API-KEY:  xxx' -X GET &amp;quot;https://pda.moraal.ee/api/v1/servers/localhost/zones/zone-moraal-imre-test-01.ee&amp;quot; | jq .&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;msg&amp;quot;: &amp;quot;Zone access not allowed&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns docker lahendus===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# egrep -v &amp;quot;^$|^#&amp;quot; /etc/powerdns/pdns.conf&lt;br /&gt;
allow-axfr-ips=127.0.0.1,192.168.10.0/24&lt;br /&gt;
allow-notify-from=&lt;br /&gt;
allow-unsigned-notify=yes&lt;br /&gt;
also-notify=&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=saladus&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-soa-content=ans1.auu.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
disable-syslog=no&lt;br /&gt;
forward-notify=&lt;br /&gt;
include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
launch=&lt;br /&gt;
local-address=172.30.0.15, 10.30.0.15&lt;br /&gt;
local-port=53&lt;br /&gt;
log-dns-details=yes&lt;br /&gt;
log-dns-queries=yes&lt;br /&gt;
log-timestamp=yes&lt;br /&gt;
loglevel=4&lt;br /&gt;
only-notify=&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=10.30.0.15&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
webserver-loglevel=detailed&lt;br /&gt;
webserver-password=saladus&lt;br /&gt;
webserver-port=8081&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdns podman lahendus===&lt;br /&gt;
&lt;br /&gt;
PDNS Quadlet Service kirjeldus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
Environment=PDNS_local_port=8053&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pdns.conf seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/pdns/volume/pdns/etc/powerdns/pdns.conf&lt;br /&gt;
local-address=0.0.0.0&lt;br /&gt;
launch=&lt;br /&gt;
# include-dir=/etc/powerdns/pdns.d&lt;br /&gt;
api=yes&lt;br /&gt;
api-key=parool&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=0.0.0.0&lt;br /&gt;
webserver-allow-from=0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
#master=yes&lt;br /&gt;
&lt;br /&gt;
primary=yes&lt;br /&gt;
secondary=yes&lt;br /&gt;
allow-axfr-ips= 100.20.21.0/24,127.0.0.1/32,172.17.0.0/16&lt;br /&gt;
also-notify=192.168.1.150&lt;br /&gt;
only-notify=&lt;br /&gt;
forward-notify=&lt;br /&gt;
default-soa-content=ans1.auul.pri.ee hostmaster.auul.pri.ee 0 86400 7200 2419200 10800&lt;br /&gt;
default-soa-edit=INCEPTION-INCREMENT&lt;br /&gt;
default-soa-edit-signed=INCEPTION-INCREMENT&lt;br /&gt;
default-ttl=3600&lt;br /&gt;
&lt;br /&gt;
default-ksk-algorithm=ecdsa256&lt;br /&gt;
default-api-rectify=yes&lt;br /&gt;
# default-nsec3-param=1 0 0 -&lt;br /&gt;
&lt;br /&gt;
launch+=gpgsql&lt;br /&gt;
gpgsql-dnssec=yes&lt;br /&gt;
gpgsql-extra-connection-parameters=password=parool dbname=db_pdns port=5432 user=pdns host=192.168.1.147&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Nimes%C3%BCsteem&amp;diff=4935</id>
		<title>Nimesüsteem</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Nimes%C3%BCsteem&amp;diff=4935"/>
		<updated>2026-08-05T05:47:32Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[:DNS lahendusest üldiselt]]&lt;br /&gt;
* [[:Rekursiivse resolveri Unbound kasutamine operatsioonisüsteemiga OpenBSD]]&lt;br /&gt;
* [[:Rekursiivse resolveri Unbound kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Pädeva nimeserveri NSD v. 3 kasutamine]]&lt;br /&gt;
* [[:Pädeva nimeserveri NSD v. 4 kasutamine operatsioonisüsteemiga OpenBSD]]&lt;br /&gt;
* [[:Pädeva nimeserveri NSD v. 4 kasutamine operatsioonisüsteemiga Debian v. 8 Jessie]]&lt;br /&gt;
* [[:DNSSEC lahendusest üldiselt]]&lt;br /&gt;
* [[:DNSSEC kasutamine ldns, Unbound ja NSD tarkvaraga]]&lt;br /&gt;
* [[:DNSSEC kasutamine BIND tarkvara ja Debian Squeeze v. 6 operatsioonisüsteemiga]]&lt;br /&gt;
* [[:BIND nimeserveri kasutamine Debian Squeeze v. 6 operatsioonisüsteemiga]]&lt;br /&gt;
* [[:PowerDNS Authoritative Server nimeserveri kasutamine]]&lt;br /&gt;
* [[:OpenDNSSEC kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Misc DNS]]&lt;br /&gt;
* [[:dnstap]]&lt;br /&gt;
* [[:knot kasutamine - protsess operatsioonisüsteemis]]&lt;br /&gt;
* [[:knot kasutamine - protsess docker konteineris]]&lt;br /&gt;
* [[:Kõrgkäigeldav pädev nimeserveri lahendus - NSD]]&lt;br /&gt;
* [[:PowerDNS webfrontend - PowerDNS-Admin]]&lt;br /&gt;
* [[:PowerDNS webfrontend - Poweradmin]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Podman_kasutamine&amp;diff=4934</id>
		<title>Podman kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Podman_kasutamine&amp;diff=4934"/>
		<updated>2026-08-03T20:35:03Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Quadlet kasutamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* slirp4netns&lt;br /&gt;
* slip&lt;br /&gt;
* netavark&lt;br /&gt;
* uidmap&lt;br /&gt;
&lt;br /&gt;
===Ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Antud juhuks kasutatakse Debian v. 13 operatsioonisüsteemi, siin on olemas&lt;br /&gt;
&lt;br /&gt;
* kernel v. 6.12&lt;br /&gt;
* podman v. 5 (mitte v. 4 nagu näiteks Ubuntu 24.04)&lt;br /&gt;
&lt;br /&gt;
podman tarkvara paigaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# apt-get install podman -d&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree... Done&lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following additional packages will be installed:&lt;br /&gt;
  aardvark-dns buildah catatonit conmon containernetworking-plugins containers-storage cpp cpp-14 cpp-14-x86-64-linux-gnu&lt;br /&gt;
  cpp-x86-64-linux-gnu criu crun dirmngr fuse-overlayfs fuse3 gnupg gnupg-l10n gnupg-utils golang-github-containers-common&lt;br /&gt;
  golang-github-containers-image gpg gpg-agent gpg-wks-client gpgconf gpgsm gpgv iptables libassuan9 libcompel1 libcriu2 libgcrypt20&lt;br /&gt;
  libgpg-error-l10n libgpg-error0 libgpgme11t64 libip4tc2 libip6tc2 libisl23 libksba8 libldap-common libldap2 libmpc3 libmpfr6 libnet1&lt;br /&gt;
  libnetfilter-conntrack3 libnfnetlink0 libnl-3-200 libnpth0t64 libprotobuf32t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libslirp0&lt;br /&gt;
  libsubid5 libyajl2 netavark passt pinentry-curses python3-protobuf python3-pycriu slirp4netns uidmap&lt;br /&gt;
Suggested packages:&lt;br /&gt;
  cpp-doc gcc-14-locales cpp-14-doc libwasmedge0 pinentry-gnome3 tor gpg-wks-server parcimonie xloadimage scdaemon tpm2daemon firewalld&lt;br /&gt;
  rng-tools libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql&lt;br /&gt;
  pinentry-doc docker-compose&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldatakse lisaks passt ja slirp4nets, uidmap conman, netavark, criu, crun&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl --user enable --now podman.socket&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chatgpt soovitus, 'you might need to increase your &amp;quot;unprivileged ports&amp;quot; or &amp;quot;max user namespaces&amp;quot; in /etc/sysctl.conf'&lt;br /&gt;
&lt;br /&gt;
Võrgukontroll&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps aux | grep -E 'pasta|slirp4netns'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Quadlet kasutamine===&lt;br /&gt;
&lt;br /&gt;
Root kasutaja promptist kasutaja prompti jõudmiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# machinectl shell kasutaja@&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user mask podman-user-wait-network-online.service&lt;br /&gt;
&lt;br /&gt;
kasutaja@ph-minio-01:~$ cat .config/containers/systemd/nginx-08.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
PublishPort=8098:80&lt;br /&gt;
ContainerName=nginx-08&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user daemon-reload&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user start nginx-08.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kuna unit genereeritakse, siis '... enable --now ...' vms ei ole asjakohane (saab veateate)&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user status nginx-07&lt;br /&gt;
● nginx-07.service - My Nginx Quadlet Service - 07&lt;br /&gt;
     Loaded: loaded (/home/kasutaja/.config/containers/systemd/nginx-07.container; generated)&lt;br /&gt;
     Active: active (running) since Sun 2026-04-19 20:26:21 EEST; 5min ago&lt;br /&gt;
 Invocation: 2954482c56c64789a40f697e6d660f2f&lt;br /&gt;
   Main PID: 4344 (conmon)&lt;br /&gt;
      Tasks: 5 (limit: 6982)&lt;br /&gt;
     Memory: 30.9M (peak: 46.6M)&lt;br /&gt;
        CPU: 94ms&lt;br /&gt;
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/nginx-07.service&lt;br /&gt;
             ├─libpod-payload-448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70&lt;br /&gt;
             │ ├─4346 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
             │ ├─4372 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
             │ └─4373 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
             └─runtime&lt;br /&gt;
               ├─4341 /usr/bin/pasta --config-net -t 8097-8097:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-5f134e7f-f63d-6728-4123-10ffea79d4e9 --map-guest-addr 169.254.1.2&lt;br /&gt;
               └─4344 /usr/bin/conmon --api-version 1 -c 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70 -u 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70 -r /usr/bin/crun -b /home/kasutaja/.local/share/containers/storage/overlay-containers/448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70/userdata -p /run/user/1000/containers/overlay-containers/448f5affd046e479f&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4324]: 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 podman[4324]: 2026-04-19 20:26:21.222328815 +0300 EEST m=+0.015770124 image pull 5bd7bd52e5bcab15a093466b90e37472b0d0c0081052522afb8924cbdaf15f56 docker.io/library/nginx:alpine&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: using the &amp;quot;epoll&amp;quot; event method&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: nginx/1.29.8&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0)&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: OS: Linux 6.12.74+deb13+1-amd64&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 524288:524288&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker processes&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker process 25&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker process 26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Olukorra küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ loginctl user-status&lt;br /&gt;
kasutaja (1000)&lt;br /&gt;
   Since: Sun 2026-04-19 18:59:50 EEST; 1h 15min ago&lt;br /&gt;
   State: active&lt;br /&gt;
Sessions: *69 68&lt;br /&gt;
  Linger: no&lt;br /&gt;
    Unit: user-1000.slice&lt;br /&gt;
          ├─session-69.scope&lt;br /&gt;
          │ ├─3556 &amp;quot;sshd-session: kasutaja [priv]&amp;quot;&lt;br /&gt;
          │ ├─3563 &amp;quot;sshd-session: kasutaja@pts/1&amp;quot;&lt;br /&gt;
          │ ├─3564 -bash&lt;br /&gt;
          │ ├─3883 loginctl user-status&lt;br /&gt;
          │ └─3884 pager&lt;br /&gt;
          └─user@1000.service&lt;br /&gt;
            ├─app.slice&lt;br /&gt;
            │ ├─nginx-08.service&lt;br /&gt;
            │ │ ├─libpod-payload-bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045&lt;br /&gt;
            │ │ │ ├─3485 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
            │ │ │ ├─3537 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │ │ │ └─3538 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │ │ └─runtime&lt;br /&gt;
            │ │   ├─3464 /usr/bin/pasta --config-net -t 8098-8098:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-91377314-f55f-138d-42af-3d324176cd02 --map-guest-addr &amp;gt;&lt;br /&gt;
            │ │   └─3480 /usr/bin/conmon --api-version 1 -c bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045 -u bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045 -r /usr/bin/crun -b /home/kasutaja/.lo&amp;gt;&lt;br /&gt;
            │ └─nginx-09.service&lt;br /&gt;
            │   ├─libpod-payload-a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a&lt;br /&gt;
            │   │ ├─3484 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
            │   │ ├─3511 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │   │ └─3512 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │   └─runtime&lt;br /&gt;
            │     ├─3476 /usr/bin/pasta --config-net -t 8099-8099:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-ec2cfa9a-6c8b-0edf-24a2-be75c53feb34 --map-guest-addr &amp;gt;&lt;br /&gt;
            │     └─3481 /usr/bin/conmon --api-version 1 -c a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a -u a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a -r /usr/bin/crun -b /home/kasutaja/.lo&amp;gt;&lt;br /&gt;
            ├─init.scope&lt;br /&gt;
            │ ├─3376 /usr/lib/systemd/systemd --user&lt;br /&gt;
            │ └─3378 &amp;quot;(sd-pam)&amp;quot;&lt;br /&gt;
            ├─session.slice&lt;br /&gt;
            │ └─dbus.service&lt;br /&gt;
            │   └─3536 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only&lt;br /&gt;
            └─user.slice&lt;br /&gt;
              └─podman-pause-407bd36c.scope&lt;br /&gt;
                └─3427 catatonit -P&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selleks, et konteiner automaatselt käivituks süsteemi käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl enable-linger kasutaja&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Konteineri uuendamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman pull docker.io/library/nginx:alpine&lt;br /&gt;
kasutaja@ns-pdns-01:~$ systemctl --user restart nginx-01.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatselt uuendab quatlet juures Pull= direktiivi kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
..&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
Pull=newer&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===podhost podide vaheline võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi töötavad podhost peal pod'id nii, et iga pod sisse nö peegeldatakse host'i enda võrguliides, st pod arvab, et ta on host. Ja kui nüüd pod pöördub mõne teise pod poole, siis ta ei saa kuna tema võrguliiklus takerdub. Sellest olukorrast saab üle järgnevalt kirjeldatud asjakorraldusega&lt;br /&gt;
&lt;br /&gt;
* pod sisse moodustatakse eraldi 10.x.x.x aadressiga võrguliidesed&lt;br /&gt;
* kõigi asjasse puutuvate pod'ide võrguliidesed asuvad ühe nö switchi küljes&lt;br /&gt;
* podhost peal toimetab nn rootlessport nimeline protsess&lt;br /&gt;
* kuidagi protsessi sisemiselt teisendatakse internetist saabunud paketid nendeks privaatsete aadressidega pakettideks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ühe pod systemd unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=8081:8081/tcp&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
# Environment=PDNS_local_port=8053&lt;br /&gt;
Network=dns-net.network&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teise systemd unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/nginx-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 01&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
PublishPort=8091:80&lt;br /&gt;
ContainerName=nginx-01&lt;br /&gt;
Volume=%h/volume/nginx/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro&lt;br /&gt;
Network=dns-net.network&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võrgu unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/dns-net.network&lt;br /&gt;
[Network]&lt;br /&gt;
NetworkName=dns-net&lt;br /&gt;
Options=dns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekivad podhost peale sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# netstat -lnpt | grep rootle&lt;br /&gt;
tcp6       0      0 :::8081                 :::*                    LISTEN      63597/rootlessport&lt;br /&gt;
tcp6       0      0 :::8091                 :::*                    LISTEN      63627/rootlessport&lt;br /&gt;
tcp6       0      0 :::1053                 :::*                    LISTEN      63597/rootlessport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures nad on erinevad namespace'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# lsns -T | grep rootlessport&lt;br /&gt;
│ ├─4026532532 net         4 63597 kasutaja        rootlessport&lt;br /&gt;
│ ├─4026532647 net         5 63627 kasutaja        rootlessport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning nende sees on sellised võrguliidesed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63597 -n ip addr show dev eth0&lt;br /&gt;
2: eth0@if4: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 65520 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
    link/ether ce:90:e6:c1:2e:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0&lt;br /&gt;
    inet 10.89.0.5/24 brd 10.89.0.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::cc90:e6ff:fec1:2e42/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63627 -n ip addr show dev eth0&lt;br /&gt;
2: eth0@if5: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 65520 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
    link/ether 7e:9d:11:fa:3b:24 brd ff:ff:ff:ff:ff:ff link-netnsid 0&lt;br /&gt;
    inet 10.89.0.6/24 brd 10.89.0.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::7c9d:11ff:fefa:3b24/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja arp tabelid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63597 -n arp -an&lt;br /&gt;
? (10.89.0.6) at 7e:9d:11:fa:3b:24 [ether] on eth0&lt;br /&gt;
? (10.89.0.1) at 9a:1f:56:3d:e4:d6 [ether] on eth0&lt;br /&gt;
&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63627 -n arp -an&lt;br /&gt;
? (10.89.0.1) at 9a:1f:56:3d:e4:d6 [ether] on eth0&lt;br /&gt;
? (10.89.0.5) at ce:90:e6:c1:2e:42 [ether] on eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja nt pod'i sisse minnes võrk töötab teise pod'iga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman exec -ti nginx-01 ping -c 2 pdns-01&lt;br /&gt;
PING pdns-01 (10.89.0.5): 56 data bytes&lt;br /&gt;
64 bytes from 10.89.0.5: seq=0 ttl=42 time=0.020 ms&lt;br /&gt;
64 bytes from 10.89.0.5: seq=1 ttl=42 time=0.064 ms&lt;br /&gt;
&lt;br /&gt;
--- pdns-01 ping statistics ---&lt;br /&gt;
2 packets transmitted, 2 packets received, 0% packet loss&lt;br /&gt;
round-trip min/avg/max = 0.020/0.042/0.064 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures huvitav, et interneti ei saa pingida (see on passt võrgunduse eripära)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman exec -ti nginx-01 ping -c 2 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8): 56 data bytes&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 packets received, 100% packet loss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://passt.top/&lt;br /&gt;
* youtube 'Getting started with Podman' by SRKMasterStack&lt;br /&gt;
* 'Podman for DevOps - Second Edition' - Alessandro Arrichiello, Gianni Salinetti&lt;br /&gt;
* https://www.hackerstack.org/understanding-linux-namespaces/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Podman_kasutamine&amp;diff=4933</id>
		<title>Podman kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Podman_kasutamine&amp;diff=4933"/>
		<updated>2026-08-03T20:33:39Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Quadlet kasutamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* slirp4netns&lt;br /&gt;
* slip&lt;br /&gt;
* netavark&lt;br /&gt;
* uidmap&lt;br /&gt;
&lt;br /&gt;
===Ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Antud juhuks kasutatakse Debian v. 13 operatsioonisüsteemi, siin on olemas&lt;br /&gt;
&lt;br /&gt;
* kernel v. 6.12&lt;br /&gt;
* podman v. 5 (mitte v. 4 nagu näiteks Ubuntu 24.04)&lt;br /&gt;
&lt;br /&gt;
podman tarkvara paigaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# apt-get install podman -d&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree... Done&lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following additional packages will be installed:&lt;br /&gt;
  aardvark-dns buildah catatonit conmon containernetworking-plugins containers-storage cpp cpp-14 cpp-14-x86-64-linux-gnu&lt;br /&gt;
  cpp-x86-64-linux-gnu criu crun dirmngr fuse-overlayfs fuse3 gnupg gnupg-l10n gnupg-utils golang-github-containers-common&lt;br /&gt;
  golang-github-containers-image gpg gpg-agent gpg-wks-client gpgconf gpgsm gpgv iptables libassuan9 libcompel1 libcriu2 libgcrypt20&lt;br /&gt;
  libgpg-error-l10n libgpg-error0 libgpgme11t64 libip4tc2 libip6tc2 libisl23 libksba8 libldap-common libldap2 libmpc3 libmpfr6 libnet1&lt;br /&gt;
  libnetfilter-conntrack3 libnfnetlink0 libnl-3-200 libnpth0t64 libprotobuf32t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libslirp0&lt;br /&gt;
  libsubid5 libyajl2 netavark passt pinentry-curses python3-protobuf python3-pycriu slirp4netns uidmap&lt;br /&gt;
Suggested packages:&lt;br /&gt;
  cpp-doc gcc-14-locales cpp-14-doc libwasmedge0 pinentry-gnome3 tor gpg-wks-server parcimonie xloadimage scdaemon tpm2daemon firewalld&lt;br /&gt;
  rng-tools libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql&lt;br /&gt;
  pinentry-doc docker-compose&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldatakse lisaks passt ja slirp4nets, uidmap conman, netavark, criu, crun&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl --user enable --now podman.socket&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chatgpt soovitus, 'you might need to increase your &amp;quot;unprivileged ports&amp;quot; or &amp;quot;max user namespaces&amp;quot; in /etc/sysctl.conf'&lt;br /&gt;
&lt;br /&gt;
Võrgukontroll&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps aux | grep -E 'pasta|slirp4netns'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Quadlet kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user mask podman-user-wait-network-online.service&lt;br /&gt;
&lt;br /&gt;
kasutaja@ph-minio-01:~$ cat .config/containers/systemd/nginx-08.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
PublishPort=8098:80&lt;br /&gt;
ContainerName=nginx-08&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user daemon-reload&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user start nginx-08.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kuna unit genereeritakse, siis '... enable --now ...' vms ei ole asjakohane (saab veateate)&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user status nginx-07&lt;br /&gt;
● nginx-07.service - My Nginx Quadlet Service - 07&lt;br /&gt;
     Loaded: loaded (/home/kasutaja/.config/containers/systemd/nginx-07.container; generated)&lt;br /&gt;
     Active: active (running) since Sun 2026-04-19 20:26:21 EEST; 5min ago&lt;br /&gt;
 Invocation: 2954482c56c64789a40f697e6d660f2f&lt;br /&gt;
   Main PID: 4344 (conmon)&lt;br /&gt;
      Tasks: 5 (limit: 6982)&lt;br /&gt;
     Memory: 30.9M (peak: 46.6M)&lt;br /&gt;
        CPU: 94ms&lt;br /&gt;
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/nginx-07.service&lt;br /&gt;
             ├─libpod-payload-448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70&lt;br /&gt;
             │ ├─4346 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
             │ ├─4372 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
             │ └─4373 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
             └─runtime&lt;br /&gt;
               ├─4341 /usr/bin/pasta --config-net -t 8097-8097:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-5f134e7f-f63d-6728-4123-10ffea79d4e9 --map-guest-addr 169.254.1.2&lt;br /&gt;
               └─4344 /usr/bin/conmon --api-version 1 -c 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70 -u 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70 -r /usr/bin/crun -b /home/kasutaja/.local/share/containers/storage/overlay-containers/448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70/userdata -p /run/user/1000/containers/overlay-containers/448f5affd046e479f&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4324]: 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 podman[4324]: 2026-04-19 20:26:21.222328815 +0300 EEST m=+0.015770124 image pull 5bd7bd52e5bcab15a093466b90e37472b0d0c0081052522afb8924cbdaf15f56 docker.io/library/nginx:alpine&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: using the &amp;quot;epoll&amp;quot; event method&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: nginx/1.29.8&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0)&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: OS: Linux 6.12.74+deb13+1-amd64&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 524288:524288&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker processes&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker process 25&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker process 26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Olukorra küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ loginctl user-status&lt;br /&gt;
kasutaja (1000)&lt;br /&gt;
   Since: Sun 2026-04-19 18:59:50 EEST; 1h 15min ago&lt;br /&gt;
   State: active&lt;br /&gt;
Sessions: *69 68&lt;br /&gt;
  Linger: no&lt;br /&gt;
    Unit: user-1000.slice&lt;br /&gt;
          ├─session-69.scope&lt;br /&gt;
          │ ├─3556 &amp;quot;sshd-session: kasutaja [priv]&amp;quot;&lt;br /&gt;
          │ ├─3563 &amp;quot;sshd-session: kasutaja@pts/1&amp;quot;&lt;br /&gt;
          │ ├─3564 -bash&lt;br /&gt;
          │ ├─3883 loginctl user-status&lt;br /&gt;
          │ └─3884 pager&lt;br /&gt;
          └─user@1000.service&lt;br /&gt;
            ├─app.slice&lt;br /&gt;
            │ ├─nginx-08.service&lt;br /&gt;
            │ │ ├─libpod-payload-bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045&lt;br /&gt;
            │ │ │ ├─3485 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
            │ │ │ ├─3537 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │ │ │ └─3538 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │ │ └─runtime&lt;br /&gt;
            │ │   ├─3464 /usr/bin/pasta --config-net -t 8098-8098:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-91377314-f55f-138d-42af-3d324176cd02 --map-guest-addr &amp;gt;&lt;br /&gt;
            │ │   └─3480 /usr/bin/conmon --api-version 1 -c bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045 -u bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045 -r /usr/bin/crun -b /home/kasutaja/.lo&amp;gt;&lt;br /&gt;
            │ └─nginx-09.service&lt;br /&gt;
            │   ├─libpod-payload-a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a&lt;br /&gt;
            │   │ ├─3484 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
            │   │ ├─3511 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │   │ └─3512 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │   └─runtime&lt;br /&gt;
            │     ├─3476 /usr/bin/pasta --config-net -t 8099-8099:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-ec2cfa9a-6c8b-0edf-24a2-be75c53feb34 --map-guest-addr &amp;gt;&lt;br /&gt;
            │     └─3481 /usr/bin/conmon --api-version 1 -c a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a -u a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a -r /usr/bin/crun -b /home/kasutaja/.lo&amp;gt;&lt;br /&gt;
            ├─init.scope&lt;br /&gt;
            │ ├─3376 /usr/lib/systemd/systemd --user&lt;br /&gt;
            │ └─3378 &amp;quot;(sd-pam)&amp;quot;&lt;br /&gt;
            ├─session.slice&lt;br /&gt;
            │ └─dbus.service&lt;br /&gt;
            │   └─3536 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only&lt;br /&gt;
            └─user.slice&lt;br /&gt;
              └─podman-pause-407bd36c.scope&lt;br /&gt;
                └─3427 catatonit -P&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selleks, et konteiner automaatselt käivituks süsteemi käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl enable-linger kasutaja&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Konteineri uuendamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman pull docker.io/library/nginx:alpine&lt;br /&gt;
kasutaja@ns-pdns-01:~$ systemctl --user restart nginx-01.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatselt uuendab quatlet juures Pull= direktiivi kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
..&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
Pull=newer&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===podhost podide vaheline võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi töötavad podhost peal pod'id nii, et iga pod sisse nö peegeldatakse host'i enda võrguliides, st pod arvab, et ta on host. Ja kui nüüd pod pöördub mõne teise pod poole, siis ta ei saa kuna tema võrguliiklus takerdub. Sellest olukorrast saab üle järgnevalt kirjeldatud asjakorraldusega&lt;br /&gt;
&lt;br /&gt;
* pod sisse moodustatakse eraldi 10.x.x.x aadressiga võrguliidesed&lt;br /&gt;
* kõigi asjasse puutuvate pod'ide võrguliidesed asuvad ühe nö switchi küljes&lt;br /&gt;
* podhost peal toimetab nn rootlessport nimeline protsess&lt;br /&gt;
* kuidagi protsessi sisemiselt teisendatakse internetist saabunud paketid nendeks privaatsete aadressidega pakettideks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ühe pod systemd unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=8081:8081/tcp&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
# Environment=PDNS_local_port=8053&lt;br /&gt;
Network=dns-net.network&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teise systemd unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/nginx-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 01&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
PublishPort=8091:80&lt;br /&gt;
ContainerName=nginx-01&lt;br /&gt;
Volume=%h/volume/nginx/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro&lt;br /&gt;
Network=dns-net.network&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võrgu unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/dns-net.network&lt;br /&gt;
[Network]&lt;br /&gt;
NetworkName=dns-net&lt;br /&gt;
Options=dns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekivad podhost peale sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# netstat -lnpt | grep rootle&lt;br /&gt;
tcp6       0      0 :::8081                 :::*                    LISTEN      63597/rootlessport&lt;br /&gt;
tcp6       0      0 :::8091                 :::*                    LISTEN      63627/rootlessport&lt;br /&gt;
tcp6       0      0 :::1053                 :::*                    LISTEN      63597/rootlessport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures nad on erinevad namespace'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# lsns -T | grep rootlessport&lt;br /&gt;
│ ├─4026532532 net         4 63597 kasutaja        rootlessport&lt;br /&gt;
│ ├─4026532647 net         5 63627 kasutaja        rootlessport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning nende sees on sellised võrguliidesed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63597 -n ip addr show dev eth0&lt;br /&gt;
2: eth0@if4: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 65520 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
    link/ether ce:90:e6:c1:2e:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0&lt;br /&gt;
    inet 10.89.0.5/24 brd 10.89.0.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::cc90:e6ff:fec1:2e42/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63627 -n ip addr show dev eth0&lt;br /&gt;
2: eth0@if5: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 65520 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
    link/ether 7e:9d:11:fa:3b:24 brd ff:ff:ff:ff:ff:ff link-netnsid 0&lt;br /&gt;
    inet 10.89.0.6/24 brd 10.89.0.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::7c9d:11ff:fefa:3b24/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja arp tabelid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63597 -n arp -an&lt;br /&gt;
? (10.89.0.6) at 7e:9d:11:fa:3b:24 [ether] on eth0&lt;br /&gt;
? (10.89.0.1) at 9a:1f:56:3d:e4:d6 [ether] on eth0&lt;br /&gt;
&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63627 -n arp -an&lt;br /&gt;
? (10.89.0.1) at 9a:1f:56:3d:e4:d6 [ether] on eth0&lt;br /&gt;
? (10.89.0.5) at ce:90:e6:c1:2e:42 [ether] on eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja nt pod'i sisse minnes võrk töötab teise pod'iga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman exec -ti nginx-01 ping -c 2 pdns-01&lt;br /&gt;
PING pdns-01 (10.89.0.5): 56 data bytes&lt;br /&gt;
64 bytes from 10.89.0.5: seq=0 ttl=42 time=0.020 ms&lt;br /&gt;
64 bytes from 10.89.0.5: seq=1 ttl=42 time=0.064 ms&lt;br /&gt;
&lt;br /&gt;
--- pdns-01 ping statistics ---&lt;br /&gt;
2 packets transmitted, 2 packets received, 0% packet loss&lt;br /&gt;
round-trip min/avg/max = 0.020/0.042/0.064 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures huvitav, et interneti ei saa pingida (see on passt võrgunduse eripära)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman exec -ti nginx-01 ping -c 2 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8): 56 data bytes&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 packets received, 100% packet loss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://passt.top/&lt;br /&gt;
* youtube 'Getting started with Podman' by SRKMasterStack&lt;br /&gt;
* 'Podman for DevOps - Second Edition' - Alessandro Arrichiello, Gianni Salinetti&lt;br /&gt;
* https://www.hackerstack.org/understanding-linux-namespaces/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Podman_kasutamine&amp;diff=4932</id>
		<title>Podman kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Podman_kasutamine&amp;diff=4932"/>
		<updated>2026-08-03T20:31:06Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* slirp4netns&lt;br /&gt;
* slip&lt;br /&gt;
* netavark&lt;br /&gt;
* uidmap&lt;br /&gt;
&lt;br /&gt;
===Ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Antud juhuks kasutatakse Debian v. 13 operatsioonisüsteemi, siin on olemas&lt;br /&gt;
&lt;br /&gt;
* kernel v. 6.12&lt;br /&gt;
* podman v. 5 (mitte v. 4 nagu näiteks Ubuntu 24.04)&lt;br /&gt;
&lt;br /&gt;
podman tarkvara paigaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# apt-get install podman -d&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree... Done&lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following additional packages will be installed:&lt;br /&gt;
  aardvark-dns buildah catatonit conmon containernetworking-plugins containers-storage cpp cpp-14 cpp-14-x86-64-linux-gnu&lt;br /&gt;
  cpp-x86-64-linux-gnu criu crun dirmngr fuse-overlayfs fuse3 gnupg gnupg-l10n gnupg-utils golang-github-containers-common&lt;br /&gt;
  golang-github-containers-image gpg gpg-agent gpg-wks-client gpgconf gpgsm gpgv iptables libassuan9 libcompel1 libcriu2 libgcrypt20&lt;br /&gt;
  libgpg-error-l10n libgpg-error0 libgpgme11t64 libip4tc2 libip6tc2 libisl23 libksba8 libldap-common libldap2 libmpc3 libmpfr6 libnet1&lt;br /&gt;
  libnetfilter-conntrack3 libnfnetlink0 libnl-3-200 libnpth0t64 libprotobuf32t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libslirp0&lt;br /&gt;
  libsubid5 libyajl2 netavark passt pinentry-curses python3-protobuf python3-pycriu slirp4netns uidmap&lt;br /&gt;
Suggested packages:&lt;br /&gt;
  cpp-doc gcc-14-locales cpp-14-doc libwasmedge0 pinentry-gnome3 tor gpg-wks-server parcimonie xloadimage scdaemon tpm2daemon firewalld&lt;br /&gt;
  rng-tools libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql&lt;br /&gt;
  pinentry-doc docker-compose&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldatakse lisaks passt ja slirp4nets, uidmap conman, netavark, criu, crun&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl --user enable --now podman.socket&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chatgpt soovitus, 'you might need to increase your &amp;quot;unprivileged ports&amp;quot; or &amp;quot;max user namespaces&amp;quot; in /etc/sysctl.conf'&lt;br /&gt;
&lt;br /&gt;
Võrgukontroll&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps aux | grep -E 'pasta|slirp4netns'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Quadlet kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user mask podman-user-wait-network-online.service&lt;br /&gt;
&lt;br /&gt;
kasutaja@ph-minio-01:~$ cat .config/containers/systemd/nginx-08.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
PublishPort=8098:80&lt;br /&gt;
ContainerName=nginx-08&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user daemon-reload&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user start nginx-08.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kuna unit genereeritakse, siis '... enable --now ...' vms ei ole asjakohane (saab veateate)&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemctl --user status nginx-07&lt;br /&gt;
● nginx-07.service - My Nginx Quadlet Service - 07&lt;br /&gt;
     Loaded: loaded (/home/kasutaja/.config/containers/systemd/nginx-07.container; generated)&lt;br /&gt;
     Active: active (running) since Sun 2026-04-19 20:26:21 EEST; 5min ago&lt;br /&gt;
 Invocation: 2954482c56c64789a40f697e6d660f2f&lt;br /&gt;
   Main PID: 4344 (conmon)&lt;br /&gt;
      Tasks: 5 (limit: 6982)&lt;br /&gt;
     Memory: 30.9M (peak: 46.6M)&lt;br /&gt;
        CPU: 94ms&lt;br /&gt;
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/nginx-07.service&lt;br /&gt;
             ├─libpod-payload-448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70&lt;br /&gt;
             │ ├─4346 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
             │ ├─4372 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
             │ └─4373 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
             └─runtime&lt;br /&gt;
               ├─4341 /usr/bin/pasta --config-net -t 8097-8097:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-5f134e7f-f63d-6728-4123-10ffea79d4e9 --map-guest-addr 169.254.1.2&lt;br /&gt;
               └─4344 /usr/bin/conmon --api-version 1 -c 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70 -u 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70 -r /usr/bin/crun -b /home/kasutaja/.local/share/containers/storage/overlay-containers/448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70/userdata -p /run/user/1000/containers/overlay-containers/448f5affd046e479f&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4324]: 448f5affd046e479f93a85fa1870aa1c9b1a9cc3d83b1f782999d464c7f41c70&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 podman[4324]: 2026-04-19 20:26:21.222328815 +0300 EEST m=+0.015770124 image pull 5bd7bd52e5bcab15a093466b90e37472b0d0c0081052522afb8924cbdaf15f56 docker.io/library/nginx:alpine&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: using the &amp;quot;epoll&amp;quot; event method&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: nginx/1.29.8&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0)&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: OS: Linux 6.12.74+deb13+1-amd64&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 524288:524288&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker processes&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker process 25&lt;br /&gt;
Apr 19 20:26:21 ph-minio-01 nginx-07[4344]: 2026/04/19 17:26:21 [notice] 1#1: start worker process 26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Olukorra küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ loginctl user-status&lt;br /&gt;
kasutaja (1000)&lt;br /&gt;
   Since: Sun 2026-04-19 18:59:50 EEST; 1h 15min ago&lt;br /&gt;
   State: active&lt;br /&gt;
Sessions: *69 68&lt;br /&gt;
  Linger: no&lt;br /&gt;
    Unit: user-1000.slice&lt;br /&gt;
          ├─session-69.scope&lt;br /&gt;
          │ ├─3556 &amp;quot;sshd-session: kasutaja [priv]&amp;quot;&lt;br /&gt;
          │ ├─3563 &amp;quot;sshd-session: kasutaja@pts/1&amp;quot;&lt;br /&gt;
          │ ├─3564 -bash&lt;br /&gt;
          │ ├─3883 loginctl user-status&lt;br /&gt;
          │ └─3884 pager&lt;br /&gt;
          └─user@1000.service&lt;br /&gt;
            ├─app.slice&lt;br /&gt;
            │ ├─nginx-08.service&lt;br /&gt;
            │ │ ├─libpod-payload-bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045&lt;br /&gt;
            │ │ │ ├─3485 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
            │ │ │ ├─3537 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │ │ │ └─3538 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │ │ └─runtime&lt;br /&gt;
            │ │   ├─3464 /usr/bin/pasta --config-net -t 8098-8098:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-91377314-f55f-138d-42af-3d324176cd02 --map-guest-addr &amp;gt;&lt;br /&gt;
            │ │   └─3480 /usr/bin/conmon --api-version 1 -c bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045 -u bc852e3e18307519d4aa9da53a695a32a41de08994596114cbe36b400b47e045 -r /usr/bin/crun -b /home/kasutaja/.lo&amp;gt;&lt;br /&gt;
            │ └─nginx-09.service&lt;br /&gt;
            │   ├─libpod-payload-a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a&lt;br /&gt;
            │   │ ├─3484 &amp;quot;nginx: master process nginx -g daemon off;&amp;quot;&lt;br /&gt;
            │   │ ├─3511 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │   │ └─3512 &amp;quot;nginx: worker process&amp;quot;&lt;br /&gt;
            │   └─runtime&lt;br /&gt;
            │     ├─3476 /usr/bin/pasta --config-net -t 8099-8099:80-80 --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --quiet --netns /run/user/1000/netns/netns-ec2cfa9a-6c8b-0edf-24a2-be75c53feb34 --map-guest-addr &amp;gt;&lt;br /&gt;
            │     └─3481 /usr/bin/conmon --api-version 1 -c a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a -u a390c5429a53870b2175d1869d0e5aab0c990e9f8cb511b3cac04582b346c35a -r /usr/bin/crun -b /home/kasutaja/.lo&amp;gt;&lt;br /&gt;
            ├─init.scope&lt;br /&gt;
            │ ├─3376 /usr/lib/systemd/systemd --user&lt;br /&gt;
            │ └─3378 &amp;quot;(sd-pam)&amp;quot;&lt;br /&gt;
            ├─session.slice&lt;br /&gt;
            │ └─dbus.service&lt;br /&gt;
            │   └─3536 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only&lt;br /&gt;
            └─user.slice&lt;br /&gt;
              └─podman-pause-407bd36c.scope&lt;br /&gt;
                └─3427 catatonit -P&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Konteineri uuendamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman pull docker.io/library/nginx:alpine&lt;br /&gt;
kasutaja@ns-pdns-01:~$ systemctl --user restart nginx-01.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatselt uuendab quatlet juures Pull= direktiivi kasutamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
..&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
Pull=newer&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===podhost podide vaheline võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi töötavad podhost peal pod'id nii, et iga pod sisse nö peegeldatakse host'i enda võrguliides, st pod arvab, et ta on host. Ja kui nüüd pod pöördub mõne teise pod poole, siis ta ei saa kuna tema võrguliiklus takerdub. Sellest olukorrast saab üle järgnevalt kirjeldatud asjakorraldusega&lt;br /&gt;
&lt;br /&gt;
* pod sisse moodustatakse eraldi 10.x.x.x aadressiga võrguliidesed&lt;br /&gt;
* kõigi asjasse puutuvate pod'ide võrguliidesed asuvad ühe nö switchi küljes&lt;br /&gt;
* podhost peal toimetab nn rootlessport nimeline protsess&lt;br /&gt;
* kuidagi protsessi sisemiselt teisendatakse internetist saabunud paketid nendeks privaatsete aadressidega pakettideks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ühe pod systemd unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/pdns-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My PDNS Quadlet Service&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/powerdns/pdns-auth-49:latest&lt;br /&gt;
PublishPort=8081:8081/tcp&lt;br /&gt;
PublishPort=1053:8053/tcp&lt;br /&gt;
PublishPort=1053:8053/udp&lt;br /&gt;
ContainerName=pdns-01&lt;br /&gt;
Volume=%h/volume/pdns/etc/powerdns/pdns.conf:/etc/powerdns/pdns.conf:ro&lt;br /&gt;
# Environment=PDNS_local_port=8053&lt;br /&gt;
Network=dns-net.network&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teise systemd unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/nginx-01.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 01&lt;br /&gt;
DefaultDependencies=no&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Container]&lt;br /&gt;
Image=docker.io/library/nginx:alpine&lt;br /&gt;
PublishPort=8091:80&lt;br /&gt;
ContainerName=nginx-01&lt;br /&gt;
Volume=%h/volume/nginx/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro&lt;br /&gt;
Network=dns-net.network&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This tells systemd to start it when you log in&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võrgu unit seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ cat .config/containers/systemd/dns-net.network&lt;br /&gt;
[Network]&lt;br /&gt;
NetworkName=dns-net&lt;br /&gt;
Options=dns&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekivad podhost peale sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# netstat -lnpt | grep rootle&lt;br /&gt;
tcp6       0      0 :::8081                 :::*                    LISTEN      63597/rootlessport&lt;br /&gt;
tcp6       0      0 :::8091                 :::*                    LISTEN      63627/rootlessport&lt;br /&gt;
tcp6       0      0 :::1053                 :::*                    LISTEN      63597/rootlessport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures nad on erinevad namespace'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# lsns -T | grep rootlessport&lt;br /&gt;
│ ├─4026532532 net         4 63597 kasutaja        rootlessport&lt;br /&gt;
│ ├─4026532647 net         5 63627 kasutaja        rootlessport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning nende sees on sellised võrguliidesed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63597 -n ip addr show dev eth0&lt;br /&gt;
2: eth0@if4: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 65520 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
    link/ether ce:90:e6:c1:2e:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0&lt;br /&gt;
    inet 10.89.0.5/24 brd 10.89.0.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::cc90:e6ff:fec1:2e42/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63627 -n ip addr show dev eth0&lt;br /&gt;
2: eth0@if5: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 65520 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
    link/ether 7e:9d:11:fa:3b:24 brd ff:ff:ff:ff:ff:ff link-netnsid 0&lt;br /&gt;
    inet 10.89.0.6/24 brd 10.89.0.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::7c9d:11ff:fefa:3b24/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja arp tabelid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63597 -n arp -an&lt;br /&gt;
? (10.89.0.6) at 7e:9d:11:fa:3b:24 [ether] on eth0&lt;br /&gt;
? (10.89.0.1) at 9a:1f:56:3d:e4:d6 [ether] on eth0&lt;br /&gt;
&lt;br /&gt;
root@ns-pdns-01:~# nsenter -t 63627 -n arp -an&lt;br /&gt;
? (10.89.0.1) at 9a:1f:56:3d:e4:d6 [ether] on eth0&lt;br /&gt;
? (10.89.0.5) at ce:90:e6:c1:2e:42 [ether] on eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja nt pod'i sisse minnes võrk töötab teise pod'iga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman exec -ti nginx-01 ping -c 2 pdns-01&lt;br /&gt;
PING pdns-01 (10.89.0.5): 56 data bytes&lt;br /&gt;
64 bytes from 10.89.0.5: seq=0 ttl=42 time=0.020 ms&lt;br /&gt;
64 bytes from 10.89.0.5: seq=1 ttl=42 time=0.064 ms&lt;br /&gt;
&lt;br /&gt;
--- pdns-01 ping statistics ---&lt;br /&gt;
2 packets transmitted, 2 packets received, 0% packet loss&lt;br /&gt;
round-trip min/avg/max = 0.020/0.042/0.064 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures huvitav, et interneti ei saa pingida (see on passt võrgunduse eripära)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ns-pdns-01:~$ podman exec -ti nginx-01 ping -c 2 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8): 56 data bytes&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 packets received, 100% packet loss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://passt.top/&lt;br /&gt;
* youtube 'Getting started with Podman' by SRKMasterStack&lt;br /&gt;
* 'Podman for DevOps - Second Edition' - Alessandro Arrichiello, Gianni Salinetti&lt;br /&gt;
* https://www.hackerstack.org/understanding-linux-namespaces/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Rancher_Desktop_-_MacOS&amp;diff=4931</id>
		<title>Rancher Desktop - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Rancher_Desktop_-_MacOS&amp;diff=4931"/>
		<updated>2026-08-03T18:18:02Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Claude Code kasutamine konteineris - litellm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* https://rancherdesktop.io/&lt;br /&gt;
* https://docs.rancherdesktop.io/getting-started/installation/&lt;br /&gt;
* https://github.com/rancher-sandbox/rancher-desktop&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* MacOS XNU kernel ise ei oma selliseid nö isolatsiooni võimeid, mida eeldab nn OCI (open container initiative) moodi workload käitamine&lt;br /&gt;
* MacOS XNU kerneli võimestamiseks kasutatakse automaatselt docker workload käitamisel nö vahel virtuaalset arvutit ja linux kernelit&lt;br /&gt;
* virtuaalset arvutit ja linux kernelit kasutatakse nö loogiliseks teisendamiseks, operatsioonisüsteem linux -&amp;gt; macos, mitte riistvara platvorm x86 -&amp;gt; arm64&lt;br /&gt;
* virtuaalse arvuti käivitamisel on võimalus valida qemu ja 'Apple Virtualization framework' vahel&lt;br /&gt;
&lt;br /&gt;
Seda nähtust illustreerib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % docker run --rm ubuntu uname -a&lt;br /&gt;
Linux f727300fb889 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ % docker run --rm debian uname -a&lt;br /&gt;
Linux 779bb27224d4 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ % docker run --rm fedora uname -a&lt;br /&gt;
Linux dae1ddad3271 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kõik erinevad linux distributsioonid raporteerivad sama Alpine nimelise kompileerimiskorra arm linux kerneli kasutamist&lt;br /&gt;
&lt;br /&gt;
Joonis (claude.ai tehtud)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-rancher-desktop-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Rancher desktop kasutamisel käivitatakse taustal üks Apple Virtualization.framework virtuaalne arvuti&lt;br /&gt;
* virtuaalse arvuti sees töötab operatsioonisüsteem Alpine&lt;br /&gt;
* virtuaalse arvuti sees töötavad docker konteinerid&lt;br /&gt;
* võrgu töötamine on natuke sarnane pssta/pasta lahendusele, st macos host peal töötab limectl protsess ja selle kaudu toimub virtuaalselt arvutist välja pöördumine&lt;br /&gt;
* eemalt sisse pöördumine toimub sõna otses mõttes viisil, et ssh abil pöördutakse macos hostist virtuaalsesse arvutisse (limectl protsessi kaudu), tehakse port forward&lt;br /&gt;
* võimalik on forwardida tcp protokolli põhist liiklust konteineritele (seda ssh forward seadistamist hallatakse automaatselt kui teha nö tavaline 'docker expose'&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara saab kopeerida nt github keskkonnast&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-rancher-desktop-macos-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sobiv on valida arm arhitektuur&lt;br /&gt;
&lt;br /&gt;
Tavalisel viisil monteerida .dmg&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-rancher-desktop-macos-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldamiseks nihutada hiirega rakendus tavalisel viisil -&amp;gt; Applications osakonda&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-rancher-desktop-01.png|400px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* antud juhul keskendutakse docker workloadile, st Kubernetes valiku võiks välja lülitada&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-rancher-desktop-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Kokkuvõttes on töötava rancher desktop puhul näha ta&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-rancher-desktop-macos-02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Failisüsteemis asub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/rancher-desktop&lt;br /&gt;
/Users/imreoolberg/Library/Preferences/rancher-desktop&lt;br /&gt;
/Users/imreoolberg/Library/Logs/rancher-desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rancher desktop enda protsessideks on nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i Rancher&lt;br /&gt;
..&lt;br /&gt;
imreoolberg      36680   0.0  0.6 1949692784  97648   ??  S    10:50PM   2:00.60 /Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning konkreetsele virtuaalsele arvutile (millel töötab linux, mille sees on docker)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i virtualizat&lt;br /&gt;
imreoolberg      36900   1.6  1.6 439638656 266272   ??  Ss   10:50PM  32:55.69 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % lsof -p 36900 -P -n | grep rancher-desktop&lt;br /&gt;
com.apple 36900 imreoolberg  txt     REG               1,13       131072           124449068 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/vz-efi&lt;br /&gt;
com.apple 36900 imreoolberg    3w    REG               1,13         7423           124449069 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/serialv.log&lt;br /&gt;
com.apple 36900 imreoolberg    4u    REG               1,13 107374182400           124448998 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/disk&lt;br /&gt;
com.apple 36900 imreoolberg    5r    REG               1,13    301281280           124448997 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/iso&lt;br /&gt;
com.apple 36900 imreoolberg    6r    REG               1,13     19736576           124607540 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/cidata.iso&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* muu hulgas on paista virtuaalse arvutiga seotud plokkseadmetele vastavad failid macos failisüsteemis&lt;br /&gt;
&lt;br /&gt;
===Kasutamine - docker===&lt;br /&gt;
&lt;br /&gt;
Paigaldamise tulemusena on kasutada sellised utiliidid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld .rd/bin/docker*&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff   80 Jul 20 16:56 .rd/bin/docker -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  102 Jul 20 16:56 .rd/bin/docker-buildx -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-buildx&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  103 Jul 20 16:56 .rd/bin/docker-compose -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-compose&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  101 Jul 20 16:56 .rd/bin/docker-credential-ecr-login -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-ecr-login&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff   96 Jul 20 16:56 .rd/bin/docker-credential-none -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-none&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  103 Jul 20 16:56 .rd/bin/docker-credential-osxkeychain -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-osxkeychain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* utiliidid on nii kavalasti realiseeritud, et macos peal käivitades nad tegelikult opereerivad virtuaalse arvuti sees&lt;br /&gt;
&lt;br /&gt;
docker jt utiliidid peavad olema path peal, vaikimisi nad sinna pannakse, kasutamiseks tuleb avada uus nt iterm2 aken&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % cat .zshrc&lt;br /&gt;
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)&lt;br /&gt;
export PATH=&amp;quot;/Users/imreoolberg/.rd/bin:$PATH&amp;quot;&lt;br /&gt;
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
macos peal hostis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-01 ubuntu bash&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-02 ubuntu bash&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-03 ubuntu bash&lt;br /&gt;
&lt;br /&gt;
# lsof -nP -iTCP -sTCP:LISTEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning linux vm docker pidamise arvutisse sisenemiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % rdctl shell&lt;br /&gt;
lima-rancher-desktop:/Users/imre$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning seal sees toimetamiseks nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lima-rancher-desktop:/Users/imre$ sudo -i&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# docker version&lt;br /&gt;
Client:&lt;br /&gt;
 Version:           29.5.2&lt;br /&gt;
 API version:       1.54&lt;br /&gt;
 Go version:        go1.25.10&lt;br /&gt;
 Git commit:        79eb04c7d8e1d73247cb7fe011eecc645063e0f0&lt;br /&gt;
 Built:             Sun May 31 13:53:18 2026&lt;br /&gt;
 OS/Arch:           linux/arm64&lt;br /&gt;
 Context:           default&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# docker ps&lt;br /&gt;
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES&lt;br /&gt;
1be37b403d0d   ubuntu    &amp;quot;bash&amp;quot;    26 minutes ago   Up 26 minutes             ubuntu-imre-03&lt;br /&gt;
1662f4905b26   ubuntu    &amp;quot;bash&amp;quot;    26 minutes ago   Up 26 minutes             ubuntu-imre-02&lt;br /&gt;
b6dbbc4dae3a   ubuntu    &amp;quot;bash&amp;quot;    27 minutes ago   Up 27 minutes             ubuntu-imre-01&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Alpine Linux&amp;quot;&lt;br /&gt;
ID=alpine&lt;br /&gt;
VERSION_ID=3.23.5&lt;br /&gt;
PRETTY_NAME=&amp;quot;Alpine Linux v3.23&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://alpinelinux.org/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;https://gitlab.alpinelinux.org/alpine/aports/-/issues&amp;quot;&lt;br /&gt;
BUILD_ID=&amp;quot;v0.2.47.rd8&amp;quot;&lt;br /&gt;
VARIANT_ID=&amp;quot;rd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# brctl show&lt;br /&gt;
bridge name	bridge id		STP enabled	interfaces&lt;br /&gt;
docker0		8000.d61e94e66512	no		veth9d3c213&lt;br /&gt;
							veth627ad00&lt;br /&gt;
							vethbc5522e&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# ip route&lt;br /&gt;
default via 192.168.5.2 dev eth0 metric 202&lt;br /&gt;
default via 192.168.65.1 dev vznat metric 203&lt;br /&gt;
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1&lt;br /&gt;
192.168.5.0/24 dev eth0 proto kernel scope link src 192.168.5.15&lt;br /&gt;
192.168.65.0/24 dev vznat proto kernel scope link src 192.168.65.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Claude Code kasutamine konteineris===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Claude Code kasutamine nö käsurea rakendusena annab otsekohesema positsiooni nt claude abil arvutitega tegelemiseks üle võrgu&lt;br /&gt;
* Claude Code kasutamine konteinerist tekitab selgema piiri töökohaarvuti ja claude tegevuste vahel (nt on väga selgesti kontrollitud mis osadele saab töökohaarvuti failisüsteemile juurde&lt;br /&gt;
* antud juhul on tegu klient-rakendus tüüpi konteineriga (mitte server-rakendus tüüpi konteineriga nagu tavaliselt, st konteiner pakub mingi teenust mille poole pöördutakse)&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistused operatsioonisüsteemis====&lt;br /&gt;
&lt;br /&gt;
Ettevalmistused MacOS keskkonnas, tühjad kataloogid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/dc&lt;br /&gt;
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/workspace&lt;br /&gt;
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/home/node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tõmmise moodustamine====&lt;br /&gt;
&lt;br /&gt;
Osutub, et ei ole nö usaldusväärset valmis claude-code docker tõmmist, st tuleb Dockerfile abiga ise tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat Dockerfile&lt;br /&gt;
FROM node:24-trixie&lt;br /&gt;
&lt;br /&gt;
RUN apt-get update &amp;amp;&amp;amp; \&lt;br /&gt;
  DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \&lt;br /&gt;
  less \&lt;br /&gt;
  git \&lt;br /&gt;
  procps \&lt;br /&gt;
  sudo \&lt;br /&gt;
  fzf \&lt;br /&gt;
  zsh \&lt;br /&gt;
  man-db \&lt;br /&gt;
  unzip \&lt;br /&gt;
  gnupg2 \&lt;br /&gt;
  gh \&lt;br /&gt;
  iptables \&lt;br /&gt;
  ipset \&lt;br /&gt;
  iproute2 \&lt;br /&gt;
  dnsutils \&lt;br /&gt;
  aggregate \&lt;br /&gt;
  jq \&lt;br /&gt;
  nano \&lt;br /&gt;
  vim \&lt;br /&gt;
  openssh-client \&lt;br /&gt;
  ripgrep \&lt;br /&gt;
  bash \&lt;br /&gt;
  fd-find \&lt;br /&gt;
  bat \&lt;br /&gt;
  tmux \&lt;br /&gt;
  tree \&lt;br /&gt;
  htop \&lt;br /&gt;
  iputils-ping \&lt;br /&gt;
  traceroute \&lt;br /&gt;
  net-tools \&lt;br /&gt;
  lsof \&lt;br /&gt;
  python3-pip \&lt;br /&gt;
  python3-venv \&lt;br /&gt;
  zip \&lt;br /&gt;
  rsync \&lt;br /&gt;
  &amp;amp;&amp;amp; apt-get clean &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;br /&gt;
&lt;br /&gt;
RUN npm install -g @anthropic-ai/claude-code&lt;br /&gt;
WORKDIR /workspace&lt;br /&gt;
ENTRYPOINT [&amp;quot;claude&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alusena kasutatakse ausat node v 24 ja debian v 13 tõmmist (node v 24 on lts kestab kuni 2028)&lt;br /&gt;
* paigaldatakse lisa tarkvara, mida on niisama vajadusel hea kasutada või claude protsessil on vaja (nt openssh-client, et logida üle võrgu sisse teisse arvutisse)&lt;br /&gt;
* npm abil claude-code kasutamine tegelikult on pigem paketihalduse kui sisuline javascript runtime kasutamine; claude-code on juba kompileeritud-assembleeritud-lingitud jne&lt;br /&gt;
* kirjeldatakse entry point väärtuseks claude rakendus ise (node image enda puhul on selleks programm node)&lt;br /&gt;
&lt;br /&gt;
tõmmise moodustamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker build -t claude-code .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker image ls&lt;br /&gt;
&lt;br /&gt;
IMAGE                                                      ID             DISK USAGE   CONTENT SIZE   EXTRA&lt;br /&gt;
claude-code:latest                                         0b7fb18a11e4       1.27GB          344MB&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selline tarkvara koosseis on turvaline kuna kasutusel olev dockerhost kernel on uuemast ajast kui userspace'ile vastav kernel&lt;br /&gt;
&lt;br /&gt;
* linux kernel ja userspace sobivuse lubadus on, et uuem kernel on tagasiühilduv (Linus Torvalds fraas 'never break userspace' - nt mõtlemisega, et uuema kerneliga arvestavas userspace'is võivad olla kasutuses olematud syscallid kui kasutada vastu vanemat kernelit)&lt;br /&gt;
* debian v. 13 enda naturaalne kernel on v. 6.12&lt;br /&gt;
* dockerhost kernel on v. 6.18&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell uname -a&lt;br /&gt;
Linux lima-rancher-desktop 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Käivitamine====&lt;br /&gt;
&lt;br /&gt;
Käsurealt käivitamiseks (ajutiseks katseks)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air 20260721 % docker run -it -v $(pwd):/workspace claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
docker compose abil käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml&lt;br /&gt;
name: p_claude-code&lt;br /&gt;
services:&lt;br /&gt;
  svc_claude-code:&lt;br /&gt;
    image: claude-code&lt;br /&gt;
    container_name: cn_claude-code&lt;br /&gt;
    init: true&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/workspace:/workspace&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/root:/root&lt;br /&gt;
&lt;br /&gt;
    working_dir: /workspace&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&lt;br /&gt;
&lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_claude-code&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  nw_claude-code:&lt;br /&gt;
    name: nw_claude-code&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* init: true - oluline kuna konteineri tõmmis ise ei sisalda init-kvaliteediga protsessi (init kvaliteet on vajalik nö descendant protsesside eemaldamiseks vajadusel, nn zombie tõrjeks)&lt;br /&gt;
* protsessid võiksid töötada non-root kasutajana konteineri sees, st seda praegu ei ole&lt;br /&gt;
* stdin_open ja tty on iseloomulikud nn kliend-rakendus konteinerile&lt;br /&gt;
&lt;br /&gt;
ning käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % pwd&lt;br /&gt;
/Users/imreoolberg/cc/dc&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker compose run --name cn_claude-code --rm svc_claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* docker compose'i ei käivitata nö backgroundis (kunagi ei öelda nö tavalist 'docker compose up -d')&lt;br /&gt;
* käivitatakse viidates docker compose faili service elemendile&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-rancher-desktop-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ja esitab vastuse mõõdukalt vabas vormis, aga sisuliselt väga korrektse&lt;br /&gt;
&lt;br /&gt;
Vaatlemine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker compose ls&lt;br /&gt;
NAME                  STATUS              CONFIG FILES&lt;br /&gt;
p_claude-code         running(1)          /Users/imreoolberg/cc/dc/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker ps&lt;br /&gt;
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES&lt;br /&gt;
7731d1366371   claude-code         &amp;quot;claude&amp;quot;                 14 minutes ago   Up 14 minutes             cn_claude_code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker compose exec svc_claude-code bash&lt;br /&gt;
root@7731d1366371:/workspace# ps -ef&lt;br /&gt;
UID          PID    PPID  C STIME TTY          TIME CMD&lt;br /&gt;
root           1       0  0 09:40 pts/0    00:00:00 /sbin/docker-init -- claude&lt;br /&gt;
root           7       1  2 09:40 pts/0    00:00:15 claude&lt;br /&gt;
root         109       7  0 09:51 ?        00:00:00 /usr/bin/zsh -c source /root/.claude/shell-snapshots/snapshot-zsh-1784713826690-ovcwwb.sh 2&amp;gt;/dev/null || true &amp;amp;&amp;amp; setopt NO_EXTENDED_GLOB NO_BARE_GLOB_QUAL 2&amp;gt;/dev/null || true &amp;amp;&amp;amp; eval 'ssh -o Batch&lt;br /&gt;
root         111     109  0 09:51 ?        00:00:00 ssh -o BatchMode=yes -o ConnectTimeout=10 root@192.168.10.52 ping -c 20 8.8.8.8&lt;br /&gt;
root         114       0  0 09:52 pts/2    00:00:00 bash&lt;br /&gt;
root         121     114  0 09:52 pts/2    00:00:00 ps -ef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* parasjagu paluti arvutist .52 pingida 8.8.8.8&lt;br /&gt;
* on näha, et docker enda init on pid 1&lt;br /&gt;
* initist tuleb claude protsess&lt;br /&gt;
* claude protsessist tulevad shellid&lt;br /&gt;
* shellist ssh abil sisselogimine teisse arvutisse&lt;br /&gt;
&lt;br /&gt;
Moniteeritud bind failisüsteemid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node@99e63ae3a184:/workspace$ findmnt -t virtiofs&lt;br /&gt;
TARGET     SOURCE                                      FSTYPE   OPTIONS&lt;br /&gt;
/workspace lima-f07754c14865dffc[/cc/volume/workspace] virtiofs rw,relatime&lt;br /&gt;
/home/node lima-f07754c14865dffc[/cc/volume/home/node] virtiofs rw,relatime&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasutamisega on seotud sellised asjaolud, tõenäoliselt on asjakohased ssh võtmed, mille abil saab teistesse arvutitesse sisse logida üle ssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.ssh/*&lt;br /&gt;
-rw-------  1 imreoolberg  staff  2602 Jul 22 01:09 volume/root/.ssh/id_rsa&lt;br /&gt;
-rw-r--r--  1 imreoolberg  staff   571 Jul 22 01:09 volume/root/.ssh/id_rsa.pub&lt;br /&gt;
-rw-------  1 imreoolberg  staff  1120 Jul 22 01:23 volume/root/.ssh/known_hosts&lt;br /&gt;
-rw-r--r--  1 imreoolberg  staff   142 Jul 22 01:10 volume/root/.ssh/known_hosts.old&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Claude seadistused, eriti ligipääs oma isanda juurde internetti (credentials)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.claude volume/root/.claude.json&lt;br /&gt;
drwxr-xr-x  15 imreoolberg  staff    480 Jul 22 13:00 volume/root/.claude&lt;br /&gt;
-rw-------   1 imreoolberg  staff  37603 Jul 22 13:00 volume/root/.claude.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Töö lõpetamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude rakenduses&lt;br /&gt;
&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena eemaldatakse konteiner, aga alles jäävad nn bind-volume'id.&lt;br /&gt;
&lt;br /&gt;
====non-root konteiner====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml&lt;br /&gt;
name: p_claude-code&lt;br /&gt;
services:&lt;br /&gt;
  svc_claude-code:&lt;br /&gt;
    image: claude-code&lt;br /&gt;
    container_name: cn_claude-code&lt;br /&gt;
    init: true&lt;br /&gt;
    user: node&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/workspace:/workspace&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/home/node:/home/node&lt;br /&gt;
      - /run/host-services/ssh-auth.sock:/ssh-agent&lt;br /&gt;
&lt;br /&gt;
    environment:&lt;br /&gt;
      - SSH_AUTH_SOCK=/ssh-agent&lt;br /&gt;
&lt;br /&gt;
    working_dir: /workspace&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&lt;br /&gt;
&lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_claude-code&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  nw_claude-code:&lt;br /&gt;
    name: nw_claude-code&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et node tõmmis on ise selline mis ei luba eleveerida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell&lt;br /&gt;
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i&lt;br /&gt;
lima-rancher-desktop:~# egrep &amp;quot;node|root&amp;quot; /var/lib/docker/rootfs/overlayfs/98fa407430c5fe80b3c3012dd471e95521e4ea94abc9797bd29aa99dd3a61c2d/etc/shadow&lt;br /&gt;
root:*:20647:0:99999:7:::&lt;br /&gt;
node:!:20648:0:99999:7:::&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Konteinerist edasipääsu kontrollimiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell sh -c 'sudo iptables -I DOCKER-USER -d 8.8.8.8 -j DROP'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh-agent forward ning taaskäivitada Rancher Desktop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat ~/Library/Application\ Support/rancher-desktop/lima/_config/override.yaml&lt;br /&gt;
ssh:&lt;br /&gt;
  forwardAgent: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell&lt;br /&gt;
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i&lt;br /&gt;
lima-rancher-desktop:~# apk add acl&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# ls -ld /run/host-services/ssh-auth.sock&lt;br /&gt;
lrwxrwxrwx    1 imreoolberg root            63 Jul 23 16:57 /run/host-services/ssh-auth.sock -&amp;gt; /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# setfacl -m u:1000:rw /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on tekkinud hulka konteinereid ja korraga kustutada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % for i in `docker ps -a | awk {'print $1'} | grep -v CONT`; do echo &amp;quot;docker rm $i&amp;quot;; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja korraga kustutada imaged&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % for i in `docker images | awk {'print $2'} | grep -v ID | grep -v Info` ; do echo &amp;quot;docker rmi $i&amp;quot;; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
node tarkvara konteineris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker exec -ti cn_claude-code npm list -g&lt;br /&gt;
/usr/local/lib&lt;br /&gt;
+-- @anthropic-ai/claude-code@2.1.218&lt;br /&gt;
+-- corepack@0.35.0&lt;br /&gt;
`-- npm@11.16.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selleks, et nö 'rdctl shell' virtuaalse arvuti käest ruum kätte saada macos host operatsioonisüsteemi failisüsteemis tuleb peale nt docker image kustutamist öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lima-rancher-desktop:~# fstrim -av&lt;br /&gt;
/mnt/data: 9.3 GiB (9953943552 bytes) trimmed on /dev/vda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Uuendamiseks tuleks kusutada senine claude-code tõmmis ja moodustada uuesti.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* vestlus Claude Chat osakonnas&lt;br /&gt;
* https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile&lt;br /&gt;
&lt;br /&gt;
===Claude Code kasutamine konteineris - litellm===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name: p_claude-code-lllm&lt;br /&gt;
services:&lt;br /&gt;
  svc_claude-code-lllm:&lt;br /&gt;
    image: claude-code&lt;br /&gt;
    container_name: cn_claude-code-lllm&lt;br /&gt;
    init: true&lt;br /&gt;
    user: node&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /Users/imreoolberg/cc-lllm/volume/workspace:/workspace&lt;br /&gt;
      - /Users/imreoolberg/cc-lllm/volume/home/node:/home/node&lt;br /&gt;
      - /run/host-services/ssh-auth.sock:/ssh-agent&lt;br /&gt;
&lt;br /&gt;
    environment:&lt;br /&gt;
      - SSH_AUTH_SOCK=/ssh-agent&lt;br /&gt;
      - ANTHROPIC_BASE_URL=https://skm-litellm-01.auul.pri.ee&lt;br /&gt;
      - ANTHROPIC_API_KEY=${LITELLM_API_KEY}&lt;br /&gt;
      - ANTHROPIC_MODEL=claude-sonnet-4-6&lt;br /&gt;
      - DISABLE_UPDATES=1&lt;br /&gt;
&lt;br /&gt;
    working_dir: /workspace&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&lt;br /&gt;
&lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_claude-code-lllm&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  nw_claude-code-lllm:&lt;br /&gt;
    name: nw_claude-code-lllm&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Claude_Desktop_-_MacOS&amp;diff=4930</id>
		<title>Claude Desktop - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Claude_Desktop_-_MacOS&amp;diff=4930"/>
		<updated>2026-08-03T16:39:55Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Claude tähistab üldiselt tootja Anthropic ühte toodete komplekti - keelemudel, teenus, klienttarkavara, protokoll jne&lt;br /&gt;
* käesolev tekst keskendub Claude abil agentse lahenduse kasutamisele - st eesmärgiks on, et inimene istub koos agendiga samas aruvutis ja nad koos teevad midagi aktiivselt (nt paigaldavad arvutisse tarkvara, analüüsivad arvutis toimuvaid protsesse jne (jutt ei ole inimese töökohaarvutist, aga mingist muust arvutist, nt serverist)&lt;br /&gt;
* Claude agentset kasutamist tähistatakse 'Claude Code'&lt;br /&gt;
* Claude Code kasutamiseks on tingimata tarvis paigaldada kas töökohaarvutisse või serverisse Claude agendi tarkvara&lt;br /&gt;
* Claude Code kasutamiseks on tingimata tarvis kasutada sobivat kommerts teenust (nt Pro taseme subscription abil)&lt;br /&gt;
* kuigi käesolev tekst soovib keskenduda agentsele kasutamisele on Claude Desktop rakendus praktiliselt nii Chat, Code ja Cowork funktsioonidega&lt;br /&gt;
* Claude rakenduse Chat funktsioon on analoogne veebikoha https://claude.ai/ kasutamisele&lt;br /&gt;
* Claude Desktop app ei sisalda otseselt käsurea kasutamise st terminalis töötamise võimalust (nii, et visuaalselt on prompt kasutada)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* https://claude.com/ - korporatiivne veebikoht (info kasutajaks saamise kohta, tarkvara allalaadimine, kasutusjuhised jne)&lt;br /&gt;
* https://claude.ai/ - online chat teenus&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
====Claude Chat režiim====&lt;br /&gt;
&lt;br /&gt;
Claude Desktop App kasutamine Chat režiimis paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-03.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====Claude Code režiim====&lt;br /&gt;
&lt;br /&gt;
Claude Desktop App kasutamine Code režiimis paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-04.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* käsundamine toimub selles operatsioonisüsteemis, kus claude desktop protsess töötab st macos operatsioonisüsteemis enda (mitte mõnes virtuaalses arvutis)&lt;br /&gt;
&lt;br /&gt;
Tegevustega seotud tulemused asuvad kaustas (mis esmakordsel käivitamisel saab rakendusele ütlelda, st et toimetagu '/Users/imreoolberg/cc-01' kaustas ja sealt edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % pwd&lt;br /&gt;
/Users/imreoolberg/cc-01&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % find . -ls&lt;br /&gt;
123993344        0 drwxr-xr-x    3 imreoolberg      staff                  96 Jul 17 14:04 .&lt;br /&gt;
123993560        0 drwxr-xr-x    4 imreoolberg      staff                 128 Jul 17 14:13 ./imre-test-01&lt;br /&gt;
123995650        8 -rw-r--r--    1 imreoolberg      staff                 822 Jul 17 14:13 ./imre-test-01/random.auul.pri.ee.cert.pem&lt;br /&gt;
123995649        8 -rw-r--r--    1 imreoolberg      staff                 227 Jul 17 14:13 ./imre-test-01/random.auul.pri.ee.key.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Claude Cowork režiim====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* cowork režiim on turvalisem kui claude-code režiim, sest tegevused toimuvad eraldi abistavas virtuaalses arvutis&lt;br /&gt;
* cowork virtuaalne arvuti ei saa tavalises mõttes võrku (tcp/ip mõttes) - suhtlemine ümbrusega toimub connectorite abil&lt;br /&gt;
* abistavad vahendid on plugins, connectors ja skills (plugin kombineerib hulga skille ja konnektoreid)&lt;br /&gt;
&lt;br /&gt;
Cowork režiimis esmalt moodustatakse projekt ning seostada folderiga&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-03.png|450px]]&lt;br /&gt;
&lt;br /&gt;
seejärel palve midagi teha, nt 'please create self-signed x509 certificate for dns name p-cowork-03.auul.pri.ee, rsa crypto, 2048 bit and 1 year expiration, save certificate and key in this project associated shared folder'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-04.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
seejärel palve tulemust esitada nimekirja kujul, kui tulemus paluda salvestada faili, siis saab seda esitada eraldi paremal olevas kolmandas paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-05.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
ja lõpuks palve midagi väljendada enda keskkonna kohta - siis saab kinnituse, et tegu on macos peal töötava ajutise abistama Ubuntu v. 22.04 virtuaalse arvutiga&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-06.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
Lõpuks on kogunenud projekti kataloogi sellised failid, macos poolelt vaadates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find p-cowork-03-fld-01 -type f -ls&lt;br /&gt;
124551478        8 -rw-------    1 imreoolberg      staff                1704 Jul 21 15:22 p-cowork-03-fld-01/p-cowork-03.auul.pri.ee.key&lt;br /&gt;
124551676        8 -rw-r--r--    1 imreoolberg      staff                 386 Jul 21 15:24 p-cowork-03-fld-01/cat-os-release.txt&lt;br /&gt;
124551477        8 -rw-------    1 imreoolberg      staff                1200 Jul 21 15:22 p-cowork-03-fld-01/p-cowork-03.auul.pri.ee.crt&lt;br /&gt;
124551577        8 -rw-r--r--    1 imreoolberg      staff                 484 Jul 21 15:23 p-cowork-03-fld-01/find-ls.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Komponent joonis (claude.ai tehtud)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Claude Desktop ja Claude Code kasutamisel osa tegevusi toimub taustal töötavas virtuaalses arvutis - MacOS puhul VZ virtuaalses arvutis&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://aaddrick.com/blog/claude-desktop-cowork-mode-vm-architecture-analysis&lt;br /&gt;
&lt;br /&gt;
===Claude teenusele ligipääs===&lt;br /&gt;
&lt;br /&gt;
Claude teenusele ligipääsu ostmine toimub https://claude.com/ veebikohas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-cc-app-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* realistliku toimetamise jaoks võiks olla sobiv Pro ligipääs&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine - Claude Desktop App===&lt;br /&gt;
&lt;br /&gt;
Claude app kasutamiseks tuleb tarkvara kopeerida tootja veebikohast&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* navigeerides 'https://claude.com/ -&amp;gt; Meet Claude -&amp;gt; Claude Code'&lt;br /&gt;
* või navigeerides 'https://claude.com/ -&amp;gt; Meet Claude -&amp;gt; Claude Cowork'&lt;br /&gt;
* tundub, et kõigil juhtudel pakutakse alla laadida sama Claude.dmg fail (320 MBait)&lt;br /&gt;
&lt;br /&gt;
Paigaldamine toimub nö tavaliselt .dmg viisil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Käivitamine ja seadistamine===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse autentimist isandaga, nt Google kaudu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-05.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab rakenduse käivitada ja paistab Tööpõhimõte punktis esitatud pilt, arvutis töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i claude | grep -v grep&lt;br /&gt;
imreoolberg      21245   0.1  1.4 1951100112 230368   ??  S     1:02PM   0:02.89 /Applications/Claude.app/Contents/MacOS/Claude&lt;br /&gt;
imreoolberg      21278   0.0  0.4 1949258624  65536   ??  S     1:02PM   0:00.09 /Applications/Claude.app/Contents/Frameworks/Claude Helper.app/Contents/MacOS/Claude Helper --type=utility --utility-sub-type=node.mojom.NodeService ...&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* saab aimu, et tegu on javascript vms põhise lahendusega&lt;br /&gt;
&lt;br /&gt;
nt logitakse sellistesse failidesse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % lsof -p 21245 -P -n | grep log&lt;br /&gt;
Claude  21245 imreoolberg   36w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   37w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   42w      REG               1,20      6944           124005039 /Users/imreoolberg/Library/Application Support/Claude/Local Storage/leveldb/000183.log&lt;br /&gt;
Claude  21245 imreoolberg   47w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   48w      REG               1,20        68           123983932 /Users/imreoolberg/Library/Application Support/Claude/Partitions/cowork-file-preview/Local Storage/leveldb/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   51w      REG               1,20        68           123983933 /Users/imreoolberg/Library/Application Support/Claude/Partitions/launch-preview-static/Local Storage/leveldb/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   67w      REG               1,20        30           123983949 /Users/imreoolberg/Library/Application Support/Claude/Partitions/launch-preview-static/Session Storage/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   84w      REG               1,20      9994           123984082 /Users/imreoolberg/Library/Application Support/Claude/Session Storage/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   89w      REG               1,20       224           123984215 /Users/imreoolberg/Library/Logs/Claude/ssh.log&lt;br /&gt;
Claude  21245 imreoolberg   90w      REG               1,20       626           123984216 /Users/imreoolberg/Library/Logs/Claude/cowork_vm_node.log&lt;br /&gt;
Claude  21245 imreoolberg   92w      REG               1,20      1032           123987914 /Users/imreoolberg/Library/Logs/Claude/unknown-window.log&lt;br /&gt;
Claude  21245 imreoolberg   97w      REG               1,20      2012           123984251 /Users/imreoolberg/Library/Logs/Claude/claude.ai-web.log&lt;br /&gt;
Claude  21245 imreoolberg   98w      REG               1,20    231448           123984147 /Users/imreoolberg/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.leveldb/000003.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tarkvara uuendamine===&lt;br /&gt;
&lt;br /&gt;
Claude Desktop tarkvara uuendamiseks sobib&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-cc-app-macos-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida ühte või teist Update nuppu&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Claude teenuse erinevatest komponentidest annab aimu avalik https://status.claude.com/&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260719-cc-app-macos-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus töökohaarvutil puudub võrguühndus, siis Desktop app ei tööta&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-cc-app-macos-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/LiteLLM&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Claude_Desktop_-_MacOS&amp;diff=4929</id>
		<title>Claude Desktop - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Claude_Desktop_-_MacOS&amp;diff=4929"/>
		<updated>2026-08-03T16:38:18Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Claude tähistab üldiselt tootja Anthropic ühte toodete komplekti - keelemudel, teenus, klient-tarkavara, protokoll jne&lt;br /&gt;
* käesolev tekst keskendub Claude abil agentse lahenduse kasutamisele - st eesmärgiks on, et inimene istub koos agendiga samas aruvutis ja nad koos teevad midagi aktiivselt (nt paigaldavad arvutisse tarkvara, analüüsivad arvutis toimuvaid protsesse jne (jutt ei ole inimese töökohaarvutist, aga mingist muust arvutist, nt serverist)&lt;br /&gt;
* Claude agentset kasutamist tähistatakse 'Claude Code'&lt;br /&gt;
* Claude Code kasutamiseks on tingimata tarvis paigaldada kas töökohaarvutisse või serverisse Claude agendi tarkvara&lt;br /&gt;
* Claude Code kasutamiseks on tingimata tarvis kasutada sobivat kommerts teenust (nt Pro taseme subscription abil)&lt;br /&gt;
* kuigi käesolev tekst soovib keskenduda agentsele kasutamisele on Claude Desktop rakendus praktiliselt nii Chat, Code ja Cowork funktsioonidega&lt;br /&gt;
* Claude rakenduse Chat funktsioon on analoogne veebikoha https://claude.ai/ kasutamisele&lt;br /&gt;
* Claude Desktop app ei sisalda otseselt käsurea kasutamise st terminalis töötamise võimalust (nii, et visuaalselt on prompt kasutada)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* https://claude.com/ - korporatiivne veebikoht (info kasutajaks saamise kohta, tarkvara allalaadimine, kasutusjuhised jne)&lt;br /&gt;
* https://claude.ai/ - online chat teenus&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
====Claude Chat režiim====&lt;br /&gt;
&lt;br /&gt;
Claude Desktop App kasutamine Chat režiimis paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-03.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====Claude Code režiim====&lt;br /&gt;
&lt;br /&gt;
Claude Desktop App kasutamine Code režiimis paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-04.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* käsundamine toimub selles operatsioonisüsteemis, kus claude desktop protsess töötab st macos operatsioonisüsteemis enda (mitte mõnes virtuaalses arvutis)&lt;br /&gt;
&lt;br /&gt;
Tegevustega seotud tulemused asuvad kaustas (mis esmakordsel käivitamisel saab rakendusele ütlelda, st et toimetagu '/Users/imreoolberg/cc-01' kaustas ja sealt edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % pwd&lt;br /&gt;
/Users/imreoolberg/cc-01&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % find . -ls&lt;br /&gt;
123993344        0 drwxr-xr-x    3 imreoolberg      staff                  96 Jul 17 14:04 .&lt;br /&gt;
123993560        0 drwxr-xr-x    4 imreoolberg      staff                 128 Jul 17 14:13 ./imre-test-01&lt;br /&gt;
123995650        8 -rw-r--r--    1 imreoolberg      staff                 822 Jul 17 14:13 ./imre-test-01/random.auul.pri.ee.cert.pem&lt;br /&gt;
123995649        8 -rw-r--r--    1 imreoolberg      staff                 227 Jul 17 14:13 ./imre-test-01/random.auul.pri.ee.key.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Claude Cowork režiim====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* cowork režiim on turvalisem kui claude-code režiim, sest tegevused toimuvad eraldi abistavas virtuaalses arvutis&lt;br /&gt;
* cowork virtuaalne arvuti ei saa tavalises mõttes võrku (tcp/ip mõttes) - suhtlemine ümbrusega toimub connectorite abil&lt;br /&gt;
* abistavad vahendid on plugins, connectors ja skills (plugin kombineerib hulga skille ja konnektoreid)&lt;br /&gt;
&lt;br /&gt;
Cowork režiimis esmalt moodustatakse projekt ning seostada folderiga&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-03.png|450px]]&lt;br /&gt;
&lt;br /&gt;
seejärel palve midagi teha, nt 'please create self-signed x509 certificate for dns name p-cowork-03.auul.pri.ee, rsa crypto, 2048 bit and 1 year expiration, save certificate and key in this project associated shared folder'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-04.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
seejärel palve tulemust esitada nimekirja kujul, kui tulemus paluda salvestada faili, siis saab seda esitada eraldi paremal olevas kolmandas paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-05.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
ja lõpuks palve midagi väljendada enda keskkonna kohta - siis saab kinnituse, et tegu on macos peal töötava ajutise abistama Ubuntu v. 22.04 virtuaalse arvutiga&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-06.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
Lõpuks on kogunenud projekti kataloogi sellised failid, macos poolelt vaadates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find p-cowork-03-fld-01 -type f -ls&lt;br /&gt;
124551478        8 -rw-------    1 imreoolberg      staff                1704 Jul 21 15:22 p-cowork-03-fld-01/p-cowork-03.auul.pri.ee.key&lt;br /&gt;
124551676        8 -rw-r--r--    1 imreoolberg      staff                 386 Jul 21 15:24 p-cowork-03-fld-01/cat-os-release.txt&lt;br /&gt;
124551477        8 -rw-------    1 imreoolberg      staff                1200 Jul 21 15:22 p-cowork-03-fld-01/p-cowork-03.auul.pri.ee.crt&lt;br /&gt;
124551577        8 -rw-r--r--    1 imreoolberg      staff                 484 Jul 21 15:23 p-cowork-03-fld-01/find-ls.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Komponent joonis (claude.ai tehtud)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Claude Desktop ja Claude Code kasutamisel osa tegevusi toimub taustal töötavas virtuaalses arvutis - MacOS puhul VZ virtuaalses arvutis&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://aaddrick.com/blog/claude-desktop-cowork-mode-vm-architecture-analysis&lt;br /&gt;
&lt;br /&gt;
===Claude teenusele ligipääs===&lt;br /&gt;
&lt;br /&gt;
Claude teenusele ligipääsu ostmine toimub https://claude.com/ veebikohas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-cc-app-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* realistliku toimetamise jaoks võiks olla sobiv Pro ligipääs&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine - Claude Desktop App===&lt;br /&gt;
&lt;br /&gt;
Claude app kasutamiseks tuleb tarkvara kopeerida tootja veebikohast&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* navigeerides 'https://claude.com/ -&amp;gt; Meet Claude -&amp;gt; Claude Code'&lt;br /&gt;
* või navigeerides 'https://claude.com/ -&amp;gt; Meet Claude -&amp;gt; Claude Cowork'&lt;br /&gt;
* tundub, et kõigil juhtudel pakutakse alla laadida sama Claude.dmg fail (320 MBait)&lt;br /&gt;
&lt;br /&gt;
Paigaldamine toimub nö tavaliselt .dmg viisil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Käivitamine ja seadistamine===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse autentimist isandaga, nt Google kaudu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-05.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab rakenduse käivitada ja paistab Tööpõhimõte punktis esitatud pilt, arvutis töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i claude | grep -v grep&lt;br /&gt;
imreoolberg      21245   0.1  1.4 1951100112 230368   ??  S     1:02PM   0:02.89 /Applications/Claude.app/Contents/MacOS/Claude&lt;br /&gt;
imreoolberg      21278   0.0  0.4 1949258624  65536   ??  S     1:02PM   0:00.09 /Applications/Claude.app/Contents/Frameworks/Claude Helper.app/Contents/MacOS/Claude Helper --type=utility --utility-sub-type=node.mojom.NodeService ...&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* saab aimu, et tegu on javascript vms põhise lahendusega&lt;br /&gt;
&lt;br /&gt;
nt logitakse sellistesse failidesse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % lsof -p 21245 -P -n | grep log&lt;br /&gt;
Claude  21245 imreoolberg   36w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   37w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   42w      REG               1,20      6944           124005039 /Users/imreoolberg/Library/Application Support/Claude/Local Storage/leveldb/000183.log&lt;br /&gt;
Claude  21245 imreoolberg   47w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   48w      REG               1,20        68           123983932 /Users/imreoolberg/Library/Application Support/Claude/Partitions/cowork-file-preview/Local Storage/leveldb/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   51w      REG               1,20        68           123983933 /Users/imreoolberg/Library/Application Support/Claude/Partitions/launch-preview-static/Local Storage/leveldb/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   67w      REG               1,20        30           123983949 /Users/imreoolberg/Library/Application Support/Claude/Partitions/launch-preview-static/Session Storage/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   84w      REG               1,20      9994           123984082 /Users/imreoolberg/Library/Application Support/Claude/Session Storage/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   89w      REG               1,20       224           123984215 /Users/imreoolberg/Library/Logs/Claude/ssh.log&lt;br /&gt;
Claude  21245 imreoolberg   90w      REG               1,20       626           123984216 /Users/imreoolberg/Library/Logs/Claude/cowork_vm_node.log&lt;br /&gt;
Claude  21245 imreoolberg   92w      REG               1,20      1032           123987914 /Users/imreoolberg/Library/Logs/Claude/unknown-window.log&lt;br /&gt;
Claude  21245 imreoolberg   97w      REG               1,20      2012           123984251 /Users/imreoolberg/Library/Logs/Claude/claude.ai-web.log&lt;br /&gt;
Claude  21245 imreoolberg   98w      REG               1,20    231448           123984147 /Users/imreoolberg/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.leveldb/000003.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tarkvara uuendamine===&lt;br /&gt;
&lt;br /&gt;
Claude Desktop tarkvara uuendamiseks sobib&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-cc-app-macos-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida ühte või teist Update nuppu&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Claude teenuse erinevatest komponentidest annab aimu avalik https://status.claude.com/&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260719-cc-app-macos-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus töökohaarvutil puudub võrguühndus, siis Desktop app ei tööta&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-cc-app-macos-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/LiteLLM&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Claude_Desktop_-_MacOS&amp;diff=4928</id>
		<title>Claude Desktop - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Claude_Desktop_-_MacOS&amp;diff=4928"/>
		<updated>2026-08-03T16:37:35Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Claude tähistab üldiselt tootja Anthropic ühte toodete komplekti - keelemudel, teenus, klienttarkavara, protokoll jne&lt;br /&gt;
* käesolev tekst keskendub Claude abil agentse lahenduse kasutamisele - st eesmärgiks on, et inimene istub koos agendiga samas aruvutis ja nad koos teevad midagi aktiivselt (nt paigaldavad arvutisse tarkvara, analüüsivad arvutis toimuvaid protsesse jne (jutt ei ole inimese töökohaarvutist, aga mingist muust arvutist, nt serverist)&lt;br /&gt;
* Claude agentset kasutamist tähistatakse 'Claude Code'&lt;br /&gt;
* Claude Code kasutamiseks on tingimata tarvis paigaldada kas töökohaarvutisse või serverisse Claude agendi tarkvara&lt;br /&gt;
* Claude Code kasutamiseks on tingimata tarvis kasutada sobivat kommerts teenust (nt Pro taseme subscription abil)&lt;br /&gt;
* kuigi käesolev tekst soovib keskenduda agentsele kasutamisele on Claude Desktop rakendus praktiliselt nii Chat, Code ja Cowork funktsioonidega&lt;br /&gt;
* Claude rakenduse Chat funktsioon on analoogne veebikoha https://claude.ai/ kasutamisele&lt;br /&gt;
* Claude Desktop app ei sisalda otseselt käsurea kasutamise st terminalis töötamise võimalust (nii, et visuaalselt on prompt kasutada)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* https://claude.com/ - korporatiivne veebikoht (info kasutajaks saamise kohta, tarkvara allalaadimine, kasutusjuhised jne)&lt;br /&gt;
* https://claude.ai/ - online chat teenus&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
====Claude Chat režiim====&lt;br /&gt;
&lt;br /&gt;
Claude Desktop App kasutamine Chat režiimis paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-03.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====Claude Code režiim====&lt;br /&gt;
&lt;br /&gt;
Claude Desktop App kasutamine Code režiimis paistab välja selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-04.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* käsundamine toimub selles operatsioonisüsteemis, kus claude desktop protsess töötab st macos operatsioonisüsteemis enda (mitte mõnes virtuaalses arvutis)&lt;br /&gt;
&lt;br /&gt;
Tegevustega seotud tulemused asuvad kaustas (mis esmakordsel käivitamisel saab rakendusele ütlelda, st et toimetagu '/Users/imreoolberg/cc-01' kaustas ja sealt edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % pwd&lt;br /&gt;
/Users/imreoolberg/cc-01&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % find . -ls&lt;br /&gt;
123993344        0 drwxr-xr-x    3 imreoolberg      staff                  96 Jul 17 14:04 .&lt;br /&gt;
123993560        0 drwxr-xr-x    4 imreoolberg      staff                 128 Jul 17 14:13 ./imre-test-01&lt;br /&gt;
123995650        8 -rw-r--r--    1 imreoolberg      staff                 822 Jul 17 14:13 ./imre-test-01/random.auul.pri.ee.cert.pem&lt;br /&gt;
123995649        8 -rw-r--r--    1 imreoolberg      staff                 227 Jul 17 14:13 ./imre-test-01/random.auul.pri.ee.key.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Claude Cowork režiim====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* cowork režiim on turvalisem kui claude-code režiim, sest tegevused toimuvad eraldi abistavas virtuaalses arvutis&lt;br /&gt;
* cowork virtuaalne arvuti ei saa tavalises mõttes võrku (tcp/ip mõttes) - suhtlemine ümbrusega toimub connectorite abil&lt;br /&gt;
* abistavad vahendid on plugins, connectors ja skills (plugin kombineerib hulga skille ja konnektoreid)&lt;br /&gt;
&lt;br /&gt;
Cowork režiimis esmalt moodustatakse projekt ning seostada folderiga&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-03.png|450px]]&lt;br /&gt;
&lt;br /&gt;
seejärel palve midagi teha, nt 'please create self-signed x509 certificate for dns name p-cowork-03.auul.pri.ee, rsa crypto, 2048 bit and 1 year expiration, save certificate and key in this project associated shared folder'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-04.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
seejärel palve tulemust esitada nimekirja kujul, kui tulemus paluda salvestada faili, siis saab seda esitada eraldi paremal olevas kolmandas paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-05.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
ja lõpuks palve midagi väljendada enda keskkonna kohta - siis saab kinnituse, et tegu on macos peal töötava ajutise abistama Ubuntu v. 22.04 virtuaalse arvutiga&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-06.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
Lõpuks on kogunenud projekti kataloogi sellised failid, macos poolelt vaadates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find p-cowork-03-fld-01 -type f -ls&lt;br /&gt;
124551478        8 -rw-------    1 imreoolberg      staff                1704 Jul 21 15:22 p-cowork-03-fld-01/p-cowork-03.auul.pri.ee.key&lt;br /&gt;
124551676        8 -rw-r--r--    1 imreoolberg      staff                 386 Jul 21 15:24 p-cowork-03-fld-01/cat-os-release.txt&lt;br /&gt;
124551477        8 -rw-------    1 imreoolberg      staff                1200 Jul 21 15:22 p-cowork-03-fld-01/p-cowork-03.auul.pri.ee.crt&lt;br /&gt;
124551577        8 -rw-r--r--    1 imreoolberg      staff                 484 Jul 21 15:23 p-cowork-03-fld-01/find-ls.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Komponent joonis (claude.ai tehtud)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-cc-app-macos-02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Claude Desktop ja Claude Code kasutamisel osa tegevusi toimub taustal töötavas virtuaalses arvutis - MacOS puhul VZ virtuaalses arvutis&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://aaddrick.com/blog/claude-desktop-cowork-mode-vm-architecture-analysis&lt;br /&gt;
&lt;br /&gt;
===Claude teenusele ligipääs===&lt;br /&gt;
&lt;br /&gt;
Claude teenusele ligipääsu ostmine toimub https://claude.com/ veebikohas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-cc-app-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* realistliku toimetamise jaoks võiks olla sobiv Pro ligipääs&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine - Claude Desktop App===&lt;br /&gt;
&lt;br /&gt;
Claude app kasutamiseks tuleb tarkvara kopeerida tootja veebikohast&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* navigeerides 'https://claude.com/ -&amp;gt; Meet Claude -&amp;gt; Claude Code'&lt;br /&gt;
* või navigeerides 'https://claude.com/ -&amp;gt; Meet Claude -&amp;gt; Claude Cowork'&lt;br /&gt;
* tundub, et kõigil juhtudel pakutakse alla laadida sama Claude.dmg fail (320 MBait)&lt;br /&gt;
&lt;br /&gt;
Paigaldamine toimub nö tavaliselt .dmg viisil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Käivitamine ja seadistamine===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse autentimist isandaga, nt Google kaudu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-cc-app-macos-05.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab rakenduse käivitada ja paistab Tööpõhimõte punktis esitatud pilt, arvutis töötavad sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i claude | grep -v grep&lt;br /&gt;
imreoolberg      21245   0.1  1.4 1951100112 230368   ??  S     1:02PM   0:02.89 /Applications/Claude.app/Contents/MacOS/Claude&lt;br /&gt;
imreoolberg      21278   0.0  0.4 1949258624  65536   ??  S     1:02PM   0:00.09 /Applications/Claude.app/Contents/Frameworks/Claude Helper.app/Contents/MacOS/Claude Helper --type=utility --utility-sub-type=node.mojom.NodeService ...&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* saab aimu, et tegu on javascript vms põhise lahendusega&lt;br /&gt;
&lt;br /&gt;
nt logitakse sellistesse failidesse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc-01 % lsof -p 21245 -P -n | grep log&lt;br /&gt;
Claude  21245 imreoolberg   36w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   37w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   42w      REG               1,20      6944           124005039 /Users/imreoolberg/Library/Application Support/Claude/Local Storage/leveldb/000183.log&lt;br /&gt;
Claude  21245 imreoolberg   47w      REG               1,20    311739           123983838 /Users/imreoolberg/Library/Logs/Claude/main.log&lt;br /&gt;
Claude  21245 imreoolberg   48w      REG               1,20        68           123983932 /Users/imreoolberg/Library/Application Support/Claude/Partitions/cowork-file-preview/Local Storage/leveldb/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   51w      REG               1,20        68           123983933 /Users/imreoolberg/Library/Application Support/Claude/Partitions/launch-preview-static/Local Storage/leveldb/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   67w      REG               1,20        30           123983949 /Users/imreoolberg/Library/Application Support/Claude/Partitions/launch-preview-static/Session Storage/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   84w      REG               1,20      9994           123984082 /Users/imreoolberg/Library/Application Support/Claude/Session Storage/000003.log&lt;br /&gt;
Claude  21245 imreoolberg   89w      REG               1,20       224           123984215 /Users/imreoolberg/Library/Logs/Claude/ssh.log&lt;br /&gt;
Claude  21245 imreoolberg   90w      REG               1,20       626           123984216 /Users/imreoolberg/Library/Logs/Claude/cowork_vm_node.log&lt;br /&gt;
Claude  21245 imreoolberg   92w      REG               1,20      1032           123987914 /Users/imreoolberg/Library/Logs/Claude/unknown-window.log&lt;br /&gt;
Claude  21245 imreoolberg   97w      REG               1,20      2012           123984251 /Users/imreoolberg/Library/Logs/Claude/claude.ai-web.log&lt;br /&gt;
Claude  21245 imreoolberg   98w      REG               1,20    231448           123984147 /Users/imreoolberg/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.leveldb/000003.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tarkvara uuendamine===&lt;br /&gt;
&lt;br /&gt;
Claude Desktop tarkvara uuendamiseks sobib&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-cc-app-macos-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida ühte või teist Update nuppu&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Claude teenuse erinevatest komponentidest annab aimu avalik https://status.claude.com/&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260719-cc-app-macos-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus töökohaarvutil puudub võrguühndus, siis Desktop app ei tööta&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-cc-app-macos-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/LiteLLM&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4927</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4927"/>
		<updated>2026-08-03T10:57:46Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* iterm2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
Non-printable sümbol paistab nt selliselt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-nswa-01:~# systemctl show rsyslog | grep -i nonew&lt;br /&gt;
Invalid unit name &amp;quot;rsyslog &amp;quot; escaped as &amp;quot;rsyslog\xc2\xa0&amp;quot; (maybe you should use systemd-escape?).&lt;br /&gt;
NoNewPrivileges=no&lt;br /&gt;
root@rv-nswa-01:~# systemctl show rsyslog | grep -i nonew&lt;br /&gt;
NoNewPrivileges=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rv-nswa-01:~# echo &amp;quot;rsyslog &amp;quot; | od -c&lt;br /&gt;
0000000   r   s   y   s   l   o   g 302 240  \n&lt;br /&gt;
0000012&lt;br /&gt;
root@rv-nswa-01:~# echo &amp;quot;rsyslog&amp;quot; | od -c&lt;br /&gt;
0000000   r   s   y   s   l   o   g  \n&lt;br /&gt;
0000010&lt;br /&gt;
root@rv-nswa-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Claude teab, et '\xc2\xa0 is UTF-8 for U+00A0 — a non-breaking space (NBSP)'&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Claude Desktop - MacOS]]&lt;br /&gt;
* [[:Rancher Desktop - MacOS]]&lt;br /&gt;
* [[:Podman Desktop - MacOS]]&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4926</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4926"/>
		<updated>2026-08-01T09:00:53Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Kasulikud lisamaterjalid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Claude Desktop - MacOS]]&lt;br /&gt;
* [[:Rancher Desktop - MacOS]]&lt;br /&gt;
* [[:Podman Desktop - MacOS]]&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4925</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4925"/>
		<updated>2026-08-01T09:00:24Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Kasulikud lisamaterjalid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Claude Desktop - MacOS]]&lt;br /&gt;
* [[:Rancher Desktop - MacOS]]&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4924</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4924"/>
		<updated>2026-08-01T08:59:31Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Rancher desktop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Fail:Openssh-1.gif&amp;diff=4923</id>
		<title>Fail:Openssh-1.gif</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Fail:Openssh-1.gif&amp;diff=4923"/>
		<updated>2026-07-30T21:22:43Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Autentimine_ja_autoriseerimine&amp;diff=4922</id>
		<title>Autentimine ja autoriseerimine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Autentimine_ja_autoriseerimine&amp;diff=4922"/>
		<updated>2026-07-30T21:19:59Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kerberos&lt;br /&gt;
&lt;br /&gt;
* [[:Kerberoseeritud süsteemi kirjeldus]]&lt;br /&gt;
* [[:MIT Kerberose kasutamine Debianiga]]&lt;br /&gt;
* [[:MIT Kerberose kasutamine Windowsiga]]&lt;br /&gt;
* [[:Heimdal Kerberose kasutamine OpenBSDga]]&lt;br /&gt;
* [[:MIT Kerberose ja OpenLDAP kataloogiga kasutajate haldamine]]&lt;br /&gt;
* [[:Debiani kasutamine Windows AD'ga]]&lt;br /&gt;
&lt;br /&gt;
LDAP&lt;br /&gt;
&lt;br /&gt;
* [[:OpenLDAP kasutamine Debianiga]]&lt;br /&gt;
* [[:GOsa kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy]]&lt;br /&gt;
* [[:FusionDirectory kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy]]&lt;br /&gt;
* [[:Active Directory kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy]]&lt;br /&gt;
* [[:LDAP ToolBox Self Service Password]]&lt;br /&gt;
&lt;br /&gt;
PKI&lt;br /&gt;
&lt;br /&gt;
* [[:Krüptimine]]&lt;br /&gt;
* [[:PKI halduse tarkvara XCA kasutamine]]&lt;br /&gt;
* [[:PKI halduse tarkvara Portecle kasutamine]]&lt;br /&gt;
* [[:OpenSSL]]&lt;br /&gt;
* [[:EJBCA OCSP responder]]&lt;br /&gt;
* [[:EJBCA CA ja OCSP kasutamine WildFly v. 10 rakendusserveriga]]&lt;br /&gt;
* [[:EJBCA CA haldamine]]&lt;br /&gt;
* [[:SignServer kasutamine JBoss v. 7.1.1 rakendusserveriga]]&lt;br /&gt;
* [[:SignServer kasutamine WildFly v. 10 rakendusserveriga]]&lt;br /&gt;
* [[:Krüptimine]]&lt;br /&gt;
* [[:SoftHSM2]]&lt;br /&gt;
* [[:NetHSM]]&lt;br /&gt;
* [[:CMP ja EJBCA kasutamine]]&lt;br /&gt;
* [[:SCEP ja EJBCA kasutamine]]&lt;br /&gt;
* [[:Certmonger kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* [[:FreeRADIUS kasutamine]]&lt;br /&gt;
* [[:TACACS+ kasutamine]]&lt;br /&gt;
* [[:Ident kasutamine]]&lt;br /&gt;
* [[:SSO kasutamine]]&lt;br /&gt;
* [[:Let's Encrypt kasutamine]]&lt;br /&gt;
* [[:Realmd, adcli, sssd ja Active Directory kasutamine]]&lt;br /&gt;
* [[:ID kaardi kasutamine kasutaja seisukohast]]&lt;br /&gt;
* [[:Kahetasemeline autentimine tarkvaraga OpenSSH]]&lt;br /&gt;
* [[:kpcli]]&lt;br /&gt;
* [[:cfssl]]&lt;br /&gt;
* [[:Keycloak]]&lt;br /&gt;
* [[:Yubikey]]&lt;br /&gt;
* [[:Authentik]]&lt;br /&gt;
* [[:Let's Encrypt kasutamine]]&lt;br /&gt;
* [[:Authelia]]&lt;br /&gt;
* [[:OpenSSH kasutamine]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Kahetasemeline_autentimine_tarkvaraga_OpenSSH&amp;diff=4921</id>
		<title>Kahetasemeline autentimine tarkvaraga OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Kahetasemeline_autentimine_tarkvaraga_OpenSSH&amp;diff=4921"/>
		<updated>2026-07-30T21:18:39Z</updated>

		<summary type="html">&lt;p&gt;Imre: Imre teisaldas lehekülje Kahetasemeline autentimine tarkvaraga OpenSSH pealkirja OpenSSH kasutamine alla&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#suuna [[OpenSSH kasutamine]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4920</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4920"/>
		<updated>2026-07-30T21:18:39Z</updated>

		<summary type="html">&lt;p&gt;Imre: Imre teisaldas lehekülje Kahetasemeline autentimine tarkvaraga OpenSSH pealkirja OpenSSH kasutamine alla&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % ssh -O check imre@192.168.240.202&lt;br /&gt;
Master running (pid=9642)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4919</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4919"/>
		<updated>2026-07-30T21:15:52Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Sessioonide multipleksimine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
====2026 suve märkused====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % cat .ssh/config&lt;br /&gt;
Host *&lt;br /&gt;
  TCPKeepAlive yes&lt;br /&gt;
  ServerAliveInterval 60&lt;br /&gt;
  User imre&lt;br /&gt;
  ControlMaster auto&lt;br /&gt;
  ControlPath /tmp/ssh-ctrl-%h-%p-%r&lt;br /&gt;
  ControlPersist 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % ssh -O check imre@192.168.240.202&lt;br /&gt;
Master running (pid=9642)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4918</id>
		<title>OpenSSH kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenSSH_kasutamine&amp;diff=4918"/>
		<updated>2026-07-30T21:14:31Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
OpenSSH http://www.openssh.org/ tarkvara võimaldab turvalist kaugligipääsu võrku ühendatud seadmetele, nt arvutitele ja ruuteritele. OpenSSH on üks OpenBSD projekti ettevõtmistest, mis on osutunud niivõrd populaarseks, et sellest on kujunenud praktiliselt kõigi 2009 aastal kasutuses olevate vabade operatsioonisüsteemide standardne kaugligipääsu korraldamise instrument. Lisaks on OpenSSH kasutuses ka mitmete mitte-vabade lahenduste juures, nt erinevate tootjate ruuterites.&lt;br /&gt;
&lt;br /&gt;
Peale üle võrgu nö teise arvuti käsureale jõudmise sisaldab OpenSSH muu hulga selliseid võimalusi&lt;br /&gt;
&lt;br /&gt;
* andmete kopeerimine - sftp, scp&lt;br /&gt;
* turvaline transport muudele programmidele - rsync, subversion, pppd, X Window System&lt;br /&gt;
* portide edasisuunamine&lt;br /&gt;
* SOCKS server&lt;br /&gt;
* failisüsteemi külgeühendamine - sshfs (FUSE tehnoloogia abil)&lt;br /&gt;
&lt;br /&gt;
Kõik need juhud eeldavad, et teil on kasutajatunnus ka teises masinas. SSH põhineb klient-server mudelil kusjuures ühenduse algatab alati SSH klient. Edaspidises kasutatakse väljendit SSH server, mille all mõeldakse teist masinat ning millel on SSH kliendiga suhtlemiseks sobiv tarkvara.&lt;br /&gt;
&lt;br /&gt;
OpenSSH kasutamist kirjeldatakse Kuutõrvajas kahes tekstis&lt;br /&gt;
&lt;br /&gt;
* käesolev tekst on mõeldud nö süsteemi tavakasutajatele oluliste ülesannete lahendamiseks OpenSSH abil&lt;br /&gt;
* aadressil [[:OpenSSH administreerimine]] olev tekst kirjeldab OpenSSH serveri haldamist ning keerulisemad kasutusvõimalusi&lt;br /&gt;
&lt;br /&gt;
===Teise masinasse sisselogimine ja ühenduse lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Kirjeldame lihtsustatult, kuidas toimub SSHga teise masinasse sisselogimine. &lt;br /&gt;
&lt;br /&gt;
Logimisel on kolm etappi: &lt;br /&gt;
&lt;br /&gt;
Protokollide kontroll. Seansi algus ei ole krüptitud. Selle käigus teevad osapooled kindlaks, et nad kasutavad omavahel sobivaid SSH versioone. &lt;br /&gt;
Klient veendub serveri ehtsuses. Serveril on kaks RSA võtit: salajane ja avalik. Et klient saaks veenduda, serveri ehtsuses peab ta eelnevalt teadma serveri avalikku võtit. Teatavasti on avaliku võtme krüptograafia kõige nõrgemaks kohaks avaliku võtme edastamine selle kasutajale. Selle võib klient saada, nt disketil, serveri administraatori käest isiklikult, kuid levinum on riskantsem viis. Nimelt esmakordsel ühendusevõtmisel usaldab klient serverit. Saades serveri avaliku võtme ning kliendi so kasutaja nõusoleku, lisatakse see faili ~/.ssh/known_hosts. Kui edaspidi võetakse ühendust sama serveriga, siis on võimalik juba kasutada standardset avaliku võtme krüptograafiat: &lt;br /&gt;
&lt;br /&gt;
Server genereerib ja krüptib juhusliku järgnevuse (ingl. k. challenge) oma salajase võtmega ja saadab selle kliendile. &lt;br /&gt;
Klient püüab saadetist lahti krüptida tema käsutuses oleva vastava avaliku võtmega. &lt;br /&gt;
Kui see õnnestub, on server ehtne; kui mitte, siis on server võlts või on ta vahepeal endale uud võtmed tekitanud. &lt;br /&gt;
Klient saadab serverile tagasi ühe võtmega krüptimise shifri nime (DES, 3DES, IDEA) ja serveri avaliku võtmega krüpteeritud sessioonivõtme. Saadetis on avatav ainult vastava salajase võtmega, mis on eeldatavasti vaid õigel serveril. &lt;br /&gt;
Edasine infovahetus serveri ja kliendi vahel toimub üle krüptitud kanali, kusjuures mõlemad pooled kasutavad kokkulepitud shifrit ja sessioonivõtit. &lt;br /&gt;
&lt;br /&gt;
Andmevahetuse alustamist kirjeldab pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Openssh-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Diffe-Hellmani võtmevahetuse protseduuri abil lepitakse kokku salajane võti&lt;br /&gt;
&lt;br /&gt;
Server veendub kliendi ehtsuses. Esmalt püütakse kasutajat autentida automatiseeritud viisil. Kui see ei õnnestu, kontrollitakse kasutaja UNIXi parooli, kasutades loodud turvalist kanalit. &lt;br /&gt;
&lt;br /&gt;
Praktiliselt algatab klient serveriga ühenduse käsuga ssh, näiteks &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Host key not found from the list of known hosts.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
 Host 'reptilus.zoo.tartu.ee' added to the list of known hosts.&lt;br /&gt;
 Creating random seed file ~/.ssh/random_seed. This may take a while.&lt;br /&gt;
 priit@reptilus.zoo.tartu.ee's password:&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Seejuures:&lt;br /&gt;
* tekitatakse kliendile kataloog ~/.ssh milles sisalduvad SSHle olulised failid,&lt;br /&gt;
* serveri avalik võti lisatakse faili ~/.ssh/known_hosts,&lt;br /&gt;
* tekitatakse SSH sisemisteks vajadusteks juhuslikku alget sisaldav fail ~/.ssh/random_seed,&lt;br /&gt;
* küsitakse kasutaja UNIXi parooli, kuna kasutaja RSA võtmetega automaatne autentimine ebaõnnestus.&lt;br /&gt;
&lt;br /&gt;
Tulemusena saadi äsjases näites ette teise masina viip ja võiks hakata seal toimetama. Sarnase tulemuse oleksite võinud saada telnetiga, kuid SSH abil tekitatud ühendust krüptitakse. &lt;br /&gt;
&lt;br /&gt;
Seansi lõpetamine toimub tavalisel moel välja-logimisega &lt;br /&gt;
 reptilus~$ logout&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Niisiis,&lt;br /&gt;
SSH klient teeb SSH serveri avaliku võtme abil kindlaks SSH serveri ehtsuse ja &lt;br /&gt;
seejärel SSH server autendib kasutaja.&lt;br /&gt;
&lt;br /&gt;
'''Märkus:''' Kujutleme olukorda, kus teil on harjumus külastada SSHga mõnda masinat ning te ühtäkki märkate sisselogimisel, et server vastab teile hoiatava veateatega, öeldes, et serveri avalik võti ei klapi, pakkudes aga teile võimalust jätkata sisselogimist. Sama toimub ka igal järgmisel korral. Sel juhul on kaks võimalust: &lt;br /&gt;
# Te suhtlete võltsserveriga ning ei tohiks sisselogimist jätkata. Tuleks muude vahenditega kindlaks teha, mis täpselt toimub. &lt;br /&gt;
# Server on õige, kuid ta kasutab uusi RSA võtmeid. Sel juhul peab kasutaja oma ~/.ssh/known_hosts failist vastava serveri avaliku võtme rea käepärase tekstiredaktori abil kustutama. Järgmisel külastusel kirjutatakse sinna faili uus serveri avalik võti.&lt;br /&gt;
&lt;br /&gt;
===SSH kliendi seadistamine===&lt;br /&gt;
&lt;br /&gt;
SSH klienti tööd saab juhtida kolmel moel, kusjuures esitatud nimekirja lõpupool asuvatel on kõrgem prioriteet&lt;br /&gt;
&lt;br /&gt;
* /etc/ssh/ssh_config - globaalne seadistusfail&lt;br /&gt;
* ~/.ssh/config - kasutaja seadistusfail&lt;br /&gt;
* käsureal kasutatud suvandid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailis saab Host parameetrile järgnevate ja enne järgmist Host parameetrit asuvate direktiividega kehtestada kuidas SSH klient käitub esimese Host parameetriga klappivate arvutite SSH serveritega. Lisaks, toimib esimene direktiivi väärtustamine, st et täpsemad määratlused tuleb teha seadistusfaili alguses ning üldisemad lõpus. Näiteks selline /etc/ssh/ssh_config&lt;br /&gt;
&lt;br /&gt;
 Host 192.168.10.0/24&lt;br /&gt;
   GSSAPIAuthentication yes&lt;br /&gt;
   GSSAPIDelegateCredentials yes&lt;br /&gt;
 &lt;br /&gt;
 Host *&lt;br /&gt;
   ForwardX11 yes&lt;br /&gt;
   GSSAPIAuthentication no&lt;br /&gt;
   GSSAPIDelegateCredentials no&lt;br /&gt;
   SendEnv LANG LC_*&lt;br /&gt;
   HashKnownHosts yes&lt;br /&gt;
&lt;br /&gt;
kehtestab, et&lt;br /&gt;
&lt;br /&gt;
* Kerberose piletite kasutamine ja edasiandmine on lubatud 192.168.10.0/24 võrku kuuluvate arvutitega &lt;br /&gt;
* kõigi muude arvutitega suhtelemisel on Kerberose kasutamine keelatud&lt;br /&gt;
* Kuna LANG ja LC_* keskkonnamuutujate osas ei ole esimeses Host sektsioonis midagi öeldud, siis viimases näidatud direktiivid kehtivad kõigi SSH serverite puhul&lt;br /&gt;
&lt;br /&gt;
=== Kasututaja autentimine tema RSA võtmetega ===&lt;br /&gt;
&lt;br /&gt;
Teatavasti pakuvad r-korraldused suhteliselt automaatset, kuid ebaturvalist autentimist. Näitame, kuidas eelmises punktis kirjeldatud sisselogimisele ja seansi krüptimisele lisaks korraldada SSH abil automaatset kasutaja autentimist. &lt;br /&gt;
&lt;br /&gt;
Autentimine toimub kasutaja enda moodustatud RSA võtmepaari abil. Rääkides seonduvalt SSHga RSA võtmetest, tuleb teha vahet, millal kõneldakse SSH serveri RSA võtmepaarist ja kunas kasutaja RSA võtmepaarist. &lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete moodustamine ====&lt;br /&gt;
&lt;br /&gt;
Esmalt moodustab kasutaja, näiteks priit@gnoom.zoo.tartu.ee endale RSA võtmepaari käsuga ssh-keygen&lt;br /&gt;
&lt;br /&gt;
  $ ssh-keygen&lt;br /&gt;
  Generating public/private rsa key pair.&lt;br /&gt;
  Enter file in which to save the key (/home/mart/.ssh/id_rsa): &lt;br /&gt;
  Enter passphrase (empty for no passphrase): &lt;br /&gt;
  Enter same passphrase again: &lt;br /&gt;
  Your identification has been saved in /home/mart/.ssh/id_rsa.&lt;br /&gt;
  Your public key has been saved in /home/mart/.ssh/id_rsa.pub.&lt;br /&gt;
  The key fingerprint is:&lt;br /&gt;
  41:89:34:41:90:c1:6e:27:f1:89:a9:16:09:aa:71:41 mart@moraal&lt;br /&gt;
  The key's randomart image is:&lt;br /&gt;
  +--[ RSA 2048]----+&lt;br /&gt;
  |o.E+o*=o..       |&lt;br /&gt;
  |.oo.= .o.        |&lt;br /&gt;
  |o.o. +  .        |&lt;br /&gt;
  |o+  + o  .       |&lt;br /&gt;
  |o  . o  S        |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  |                 |&lt;br /&gt;
  +-----------------+&lt;br /&gt;
&lt;br /&gt;
kus võtme moodustamisel päritakse kasutajalt RSA salajase võtme parooli; selle peab ta sisestama iga kord enne oma salajase võtme kasutamist. &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse kaks võtit:&lt;br /&gt;
&lt;br /&gt;
* ~/.ssh/id_rsa - kasutaja RSA salajane võti&lt;br /&gt;
* ~/.ssh/id_rsa.pub - kasutaja RSA avalik võti&lt;br /&gt;
&lt;br /&gt;
Pange tähele, et avaliku võtme faili sees teksti lõpus on kirjas, kellele see kuulub. Salajane võti on küll parooliga kaitstud, kuid võti peaks siiski olema vaid kasutajale endale loetav.&lt;br /&gt;
&lt;br /&gt;
ssh-keygen võimaldab kasutada sellised võtmeid&lt;br /&gt;
&lt;br /&gt;
* -t rsa või -t dsa - kontrollib, kas moodustatakse rsa või dsa võti&lt;br /&gt;
* -b 4096 - võtme pikkus&lt;br /&gt;
* -f failinimi - millega algavad võtmetele vastavad failinimed, vaikimisi .ssh/id_rsa*&lt;br /&gt;
&lt;br /&gt;
==== RSA avaliku võtme paigutamine SSH serverisse ====&lt;br /&gt;
&lt;br /&gt;
Oma avaliku võtme peate te lisama külastatava (so. SSH serveri, nt reptilus.zoo.tartu.ee) masina faili ~/.ssh/authorized_keys ja salajase võtme jätma sinna, kuhu ta tekitati. Kuna ~/.ssh/authorized_keys faili sisu on kõigile loetav, pole avaliku võtme edastamisel vaja võtta tarvitusele erilisi ettevaatusabinõusid: peaasi, et võtme sisu jääks muutumatuks. Failis ~/.ssh/authorized_keys võivad sisalduda mitmed avalikud võtmed, igaüks eraldi real ning fail on ASCII kujul. Nii on võimalik külastada SSH serverit erinevatest klient-masinatest. Kõige lihtsam on teha ~/.ssh/identity.pub failist koopia ning see ftp abil SSH serverisse toimetada. Seal andke selle faili lugemis- ja kirjutamisõigus ainult endale &lt;br /&gt;
&lt;br /&gt;
 $ chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Kui te nüüd külastate ssh'ga seda SSH serverit, siis esmalt klient autendib serveri varemkirjeldatud tavapärasel moel. Aga server autendib kliendi selliselt: &lt;br /&gt;
server genereerib juhusliku järgnevuse baite ja krüptib need talle teadaoleva kasutaja avaliku võtmega &lt;br /&gt;
klient kasutab ainult tal olemasolevat vastavat sajalast võtit ja krüptib saadetise lahti; tulemus saadetakse serverile tagasi &lt;br /&gt;
server võrdleb esialgset järgnevust kliendi poolt lahti krüptituga ja nende identsuse korral loeb autentimise õnnestunuks ning kasutajale antakse ette viip.&lt;br /&gt;
&lt;br /&gt;
Lisaks võtmele saab iga authorized_keys faili rea alguses kasutada man sshd tekstis kirjeldatud suvandeid, nt&lt;br /&gt;
&lt;br /&gt;
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,\&lt;br /&gt;
   command=&amp;quot;~/bin/skriptinimi.sh&amp;quot;,from=&amp;quot;192.168.96.138&amp;quot; ssh-rsa AAAAB3NzaC1y ....&lt;br /&gt;
&lt;br /&gt;
kasutamise tulemusena peale kasutaja ssh võtmega sisselogimist täidetakse skript ~/bin/skriptinimi.sh.&lt;br /&gt;
&lt;br /&gt;
Avaliku võtme paigutamist teisse arvutisse lihtsustab ssh-copy-id skript, nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-copy-id mart@ns.auul&lt;br /&gt;
 mart@ns.auul's password: &lt;br /&gt;
 Now try logging into the machine, with &amp;quot;ssh 'mart@ns.auul'&amp;quot;, and check in:&lt;br /&gt;
 &lt;br /&gt;
   .ssh/authorized_keys&lt;br /&gt;
 &lt;br /&gt;
 to make sure we haven't added extra keys that you weren't expecting.&lt;br /&gt;
&lt;br /&gt;
==== RSA võtmete kasutamine ====&lt;br /&gt;
&lt;br /&gt;
Näide automaatsest kasutaja RSA võtmetega autentimisest&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l priit reptilus.zoo.tartu.ee&lt;br /&gt;
 Enter passphrase for RSA key 'priit@gnoom.zoo.tartu.ee':&lt;br /&gt;
 Last login: Thu Nov 11 11:16:09 1999 from mammal.zoo.tartu.ee&lt;br /&gt;
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994&lt;br /&gt;
 The Regents of University of California. All rights reserved.&lt;br /&gt;
 reptilus~$&lt;br /&gt;
&lt;br /&gt;
Kuna kasutaja autentimisel läheb tarvis tema salajast võtit, siis küsitakse salajase võtme parooli; '-l kasutajanimi' on vajalik, kui kasutajal on teises masinas erinev kasutajanimi. Siiski, kui ka kasutajal on erinevad kasutajanimed erinevates 'teistes masinates', siis ei pruugi ta '-l' võtit kasutada. Selle asemel võib ta kasutajanime ja vastava teise masina nime ära näidata failis ~/.ssh/config; võib kirjeldada mitmeid SSH servereid: &lt;br /&gt;
&lt;br /&gt;
 Host reptilus.zoo.tartu.ee&lt;br /&gt;
 User priidu&lt;br /&gt;
 Host mammal.zoo.tartu.ee&lt;br /&gt;
 User priidik&lt;br /&gt;
&lt;br /&gt;
Näites autenditakse gnoomi kasutajat 'priit' masinas reptilus kasutajana 'priidu'; ja masinas mammal kasutajana 'priidik'. Niisiis, et gnoomist logida sisse mammalisse kasutajana 'priidik' piisab kirjeldatud konfiguratsioonifaili olemasolul anda käsk &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh mammal.zoo.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Niisiis, standardne UNIXi paroolikontroll on asendatud SSH vahenditega. Hoiatuseks märgime, et juhul, kui teine masin võimaldab vaid SSHga sisselogimist ja te olete oma authorized_keys faili seal moodustanud ning te eksite, nt. ei mäleta oma salajase võtme parooli, siis peate kuidagi eemaldama authorized_keys faili; või vähemalt sellele masinale vastava sissekande, kust te SSH serverit ebaõnnestunult külastada püüate. Loodetavasti on seda võimalik FTPga teha. Kui ei, peate paluma SSH serveri administraatorit. &lt;br /&gt;
&lt;br /&gt;
==== Võtmete mälus hoidmine ====&lt;br /&gt;
&lt;br /&gt;
Eelmises punktis nägime, kuidas korraldada kasutaja (enda) autentimist. Seejuures võib tunduda ebamugavana vajadus iga kord oma salajase võtme parooli sisestada. Tõsi, tehniliselt võite võtmete moodustamisel ka parooli panemata jätta (vajutades Enterit), kuid see oleks turvaline seni, kuni teie salajane võti kindlalt ainult teie valduses on. Tõsi, reeglina see nii ka on. SSH pakub võimaluse salajasi võtmeid kliendi masina mälus hoida kuigi ka see pole väga turvaline, kuid enamasti piisav praktiliseks kasutamiseks. &lt;br /&gt;
&lt;br /&gt;
Selleks käivitatakse võtmete mälus hoidmise agendi abil programm, millele (ja millest käivitatud uutele programmidele) saab teha kasutaja salajase võtme kättesaadavaks. Näiteks koorik &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-agent bash&lt;br /&gt;
&lt;br /&gt;
kus uues shellis on muu hulgas kaks olulist keskkonnamuutujat kirjeldatud, nt selliste väärtustega&lt;br /&gt;
&lt;br /&gt;
 SSH_AGENT_PID=23280&lt;br /&gt;
 SSH_AUTH_SOCK=/tmp/ssh-AFJwe23279/agent.23279&lt;br /&gt;
&lt;br /&gt;
Kui sama kasutajana ja nende muutujate olemasolul käivitada ssh klient, siis ta automaatselt saab ligi kasutada kasutaja privaatset võtit. Seejuures on oluline, et ssh-agent ei anna võtit ennast nö küsijale välja, aga krüptib esitatud materjali ning tagastab tulemuse küsijale.&lt;br /&gt;
&lt;br /&gt;
Eeldades, et te hoiate oma salajasi võtmeid failis ~/.ssh/indentity, saate nad mällu laadida korraldusega ssh-add &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add&lt;br /&gt;
 Need passphrase for /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
 Enter passphrase:&lt;br /&gt;
 Identity added: /home/priit/.ssh/identity (priit@gnoom.zoo.tartu.ee)&lt;br /&gt;
&lt;br /&gt;
Nüüd saavad kõik uuest koorikust järgnevalt käivitatud programmid, näiteks ssh ja cvs, vajadusel kasutada mällu laaditud SSH RSA sajalasi võtmeid. &lt;br /&gt;
&lt;br /&gt;
Mälus olevate salajaste võtmete vaatamiseks on korraldus&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -l&lt;br /&gt;
&lt;br /&gt;
Salajaste võtmete mälust eemaldamiseks on korraldus &lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh-add -D&lt;br /&gt;
&lt;br /&gt;
====Agent forwarding====&lt;br /&gt;
&lt;br /&gt;
Kui ssh-agent kasutamisel tavaliselt saab teisse arvutisse siis ja sellega lõpeb, siis agent forwarding kasutamisel tekitatakse peale teisse arvutisse sinna /tmp kataloogi vastav unix soket ning teisest arvutist saab edasi logida kusjuures kasutatakse esimese arvuti ssh-agent'i teenuseid. ssh agent forwarding on tavaliselt vaikimisi välja lülitatud, kävitamiseks tuleb kasutad ssh kliendi juures nt -A võtit (ka serveri poolel peab olema AllowAgentForwarding sisse lülitatud, vaikimisi tavaliselt on)&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -A mart@teine.arvuti&lt;br /&gt;
&lt;br /&gt;
Seejuures tuleb arvestada nn ssh agendi kaaperdamise võimalusega, http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#sec. St kui teises arvutis saab pahatahtlik kasutaja (nt root) ligi /tmp kataloogi tehtud soketile, siis on tal võimalus igale poole sisse logida teie nimel kuhu te oma võtmega saaks (eeldusel, et teisest arvutist on võrguühenduse mõttes ligipääs olemas).&lt;br /&gt;
&lt;br /&gt;
====Mitme ssh võtmekomplekti kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui mingil põhjusel kasutaja ei usalda ühte ja sama ssh avalikku võtit kasutada mitmes muus arvutis, siis saab ta kasutada ka erinevaid võtmekomplekte. Täiendava võtmepaari genereerimiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -b 4096 -t rsa -f .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
mille tulemusena tekitatakse kaks faili&lt;br /&gt;
&lt;br /&gt;
 .ssh/loomaaed&lt;br /&gt;
 .ssh/loomaaed.pub&lt;br /&gt;
&lt;br /&gt;
Alternatiivse võtme kasutamiseks tuleb avalik osa loomaaed.pub kopeerida teisse arvutisse ning privaatset osa kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 $ ssh loomaaed.tartu.ee -i .ssh/loomaaed&lt;br /&gt;
&lt;br /&gt;
=== Korralduste täitmine teises masinas ===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab lasta korraldusi täita teises masinas, kasutades järgmist süntaksit &lt;br /&gt;
 ssh -l kasutaja2 teise.masina.nimi käsk käsu-võtmed&lt;br /&gt;
&lt;br /&gt;
kasutaja2 on kasutajanimi teises masinas, kelle õigustes seal tegutsetakse. &lt;br /&gt;
&lt;br /&gt;
Sõltuvalt korralduse iseloomust võib väljund esituda ekraanil. Korralduse täitmisele eelneb varemkirjeldatud autentimine. &lt;br /&gt;
&lt;br /&gt;
Anname näiteks teises masinas korralduse 'hostname -f'&lt;br /&gt;
&lt;br /&gt;
 gnoom~$ ssh -l kasutaja2 reptilus.zoo.tartu.ee hostname -f&lt;br /&gt;
 reptilus.zoo.tartu.ee&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
või korralduse 'w' &lt;br /&gt;
 gnoom~$ ssh kasutaja2@reptilus.zoo.tartu.ee w&lt;br /&gt;
 12:10PM     up 9 days, 21:18, 8 users, load averages: 0.02, 0.03, 0.00&lt;br /&gt;
 USER    TTY        FROM       LOGIN@   IDLE       WHAT&lt;br /&gt;
 mart    tty2       mammal     11:09AM  0:05       bash&lt;br /&gt;
 gnoom~$&lt;br /&gt;
&lt;br /&gt;
Paralleelselt on lubatud kasutada ka konstruktsiooni kasutajanimi@masina.nimi. &lt;br /&gt;
&lt;br /&gt;
Mõned programmid, nagu näiteks mc eeldavad, et neile eraldatakse kauges masinas terminal, seda peab näitama võtmega -t &lt;br /&gt;
 gnoom~$ ssh -t kasutaja2@reptilus.zoo.tartu.ee mc&lt;br /&gt;
&lt;br /&gt;
===Andmete kopeerimine===&lt;br /&gt;
&lt;br /&gt;
SSH võimaldab mitmel viisil andmed arvutite vahel kopeerida&lt;br /&gt;
&lt;br /&gt;
* scp&lt;br /&gt;
* sftp&lt;br /&gt;
* kasutada ssh stdio võimalusi&lt;br /&gt;
&lt;br /&gt;
====SCP====&lt;br /&gt;
&lt;br /&gt;
masinate vahel käsuga scp faile kopeerida järgmise süntaksi kohaselt &lt;br /&gt;
scp võti kasutaja1@masin1.nimi:/kataloog1/failinimi1 kasutaja2@masin2.nimi:./kataloog2/failinimi2&lt;br /&gt;
&lt;br /&gt;
Mõlemad argumendid koosnevad kahest osast, mida eraldab koolon (:) &lt;br /&gt;
* masina nimi &lt;br /&gt;
* failinimi &lt;br /&gt;
&lt;br /&gt;
Kui failinimi algab punktiga (.), siis näitab see faili asukohta vastava masina kasutaja kodukataloogi suhtes; muidu on tegu absoluutse nimega. &lt;br /&gt;
&lt;br /&gt;
Esimeseks argumendiks on kopeeritava faili nimi ja teiseks nimi, millega ta teises masinas salvestatakse. &lt;br /&gt;
&lt;br /&gt;
Programm scp näitab kopeerimise ajal progressi. Kasutades võtit -A seda ei tehta. &lt;br /&gt;
&lt;br /&gt;
Korralduse täitmisele eelneb eelkirjeldatud autentimine, kusjuures kehtivad võimalused võtmeid mälus hoida. Näiteks kopeerib kasutaja priit faili priidupilt.jpg teisest masinast kohalikku &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./public_html/priidupilt.jpg priidupilt.jpg&lt;br /&gt;
 priidupilt.jpg | 6600 KB | 179.7 kB/s | ETA: 00:03:00 | 83%&lt;br /&gt;
&lt;br /&gt;
Võimalik on kopeerida faile ka nö teise ja kolmanda masina vahel, see tähendab, et ei see, kust fail võetakse ega see, kuhu ta pannakse, pole masin, mille viip teil ees on &lt;br /&gt;
 gnoom~$ scp priidu@reptilus.zoo.tartu.ee:./pilt.jpg priidik@mammal.zoo.tartu.ee:./pildid/pingu.jpg&lt;br /&gt;
&lt;br /&gt;
====SSH STDIO kasutamine====&lt;br /&gt;
&lt;br /&gt;
Failide kopeerimisel saab kasutada ka IOga manipuleerimist, näiteks kasutaja arhiveerib kataloogi ~/public_html sisu, pakib andmed ning saadab SSH abil üle võrgu teise masinasse; seal sisenetakse kodukataloogi ning harutatakse arhiiv lahti &lt;br /&gt;
&lt;br /&gt;
  $ tar cf - ~/public_html | gzip | ssh reptilus.zoo.tartu.ee 'cd ~ &amp;amp;&amp;amp; cat - &amp;gt; priidu.koduleht.tgz'&lt;br /&gt;
&lt;br /&gt;
====SFTP====&lt;br /&gt;
&lt;br /&gt;
Iseenesest on SFTP on SSH eraldiseisev protokoll, kuid praktiliselt on suure tõenäosusega kõige populaarsem SFTP protokolli kasutamine just SSH nn alamsüsteemina (ingl. k. subsystem).&lt;br /&gt;
&lt;br /&gt;
Serveri poolel peab olema SFTP alamsüsteem seadistatud, nt&lt;br /&gt;
&lt;br /&gt;
  Subsystem sftp /usr/lib/openssh/sftp-server&lt;br /&gt;
&lt;br /&gt;
Enamasti on see juba kasutaja eest paika pandud&lt;br /&gt;
&lt;br /&gt;
ja kliendi poolt kasutamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sftp arvutinimi&lt;br /&gt;
  sftp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SFTP erinevusteks võrreldes scp'ga on&lt;br /&gt;
&lt;br /&gt;
* muuta teise arvuti failide metaandmeid, nt omanikke ja loabitte&lt;br /&gt;
* peatada ja jätkata kopeerimist&lt;br /&gt;
* põhimõtteliselt töötab andmevahetus pisut aeglasemalt&lt;br /&gt;
&lt;br /&gt;
Lisaks nö käsureakliendile on mitmeid graafilise SFTP kliente, Windows operatsioonisüsteemile WinSCP nint Linuxile nt Filezilla&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Filezilla-1.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Oma RSA salajase võtme parooli muutmine ===&lt;br /&gt;
&lt;br /&gt;
Oma salajase võtme parooli muutmiseks kasutage käsku ssh-keygen võtmega -p&lt;br /&gt;
 gnoom~$ ssh-keygen -p&lt;br /&gt;
 Enter file key is in (/home/priit/.ssh/identity):&lt;br /&gt;
 Enter old passphrase:&lt;br /&gt;
 Key has comment 'priit@gnoom.zoo.tartu.ee'&lt;br /&gt;
 Enter new passphrase:&lt;br /&gt;
 Enter the same passphrase again:&lt;br /&gt;
 Your identification has been saved with the new passphrase.&lt;br /&gt;
&lt;br /&gt;
Parooli muutmiseks on vaja vana parooli teada. Kui see on unustatud, tuleb genereerida uus RSA võtmepaar ning seda kasutama asuda. &lt;br /&gt;
&lt;br /&gt;
=== Pordi edasisuunamine ===&lt;br /&gt;
&lt;br /&gt;
Mitmetel põhjustel, näiteks turvalisus või kasutusmugavus võib olla abiks selle asemel, et pöörduda otse teenuse poole üle interneti aadress:port, pöörduda aadressile localhost:port.&lt;br /&gt;
&lt;br /&gt;
Eemal asuva serveri pordi suunamine kohaliku masina localhost porti toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -L 6565:localhost:5432&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab pöörduda localhost:6565 poole ning kasutada eemal asuva masina pordil localhost:5432 olevat teenust. Näiteks võiks sellest olla kasu kui gnoom.zoo.tartu.ee asub otse avalikus võrgus, aga seal töötav PostgreSQL andmebaas kuulab localhostil ning soovite andmebaasi kasutada kohalikus masinas töötava PgAdmin klientprogrammiga.&lt;br /&gt;
&lt;br /&gt;
Kohaliku masin pordi 192.168.1.3:3306 suunamine eemal asuva arvuti gnoom.zoo.tartu.ee porti localhost:6565 toimub käsuga&lt;br /&gt;
&lt;br /&gt;
 bash$ ssh priit@gnoom.zoo.tartu.ee -R 6565:192.168.1.3:3306&lt;br /&gt;
&lt;br /&gt;
Selle tulemusena saab eemal oleva masina kasutaja pöörduda enda arvuti localhost:6565 poole ning kasutaja teie kohaliku arvuti pordil 192.168.1.3:3306 töötavat teenust. Näiteks võiks sellest kasu olla kui teie töökohaarvutil ei ole avalikku ip aadressi ning te soovite kellelegi tutvustada mõnda oma arvutis töötavat programmi. Kusjuures 192.168.1.3 arvuti võib olla ka nö kolmas arvuti, st mitte see kus ssh programm käivitatakse. Nii saab kahe arvuti, millel otseselt ei ole üksteisele ligipääsu, vahel tekitada tcp ühenduse kolmanda arvuti (kus töötab ssh klient) abil.&lt;br /&gt;
&lt;br /&gt;
NB! Tundub, et selline suunamine ei tööta kui ssh kliendi käivitamisel minnakse käsitsi üle hoiatustest, tõtt-öelda viimasel real nii öeldakse ka&lt;br /&gt;
&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
&lt;br /&gt;
 # ssh root@10.0.13.173 -R 1521:10.0.23.66:1521&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
 It is also possible that a host key has just been changed.&lt;br /&gt;
 The fingerprint for the ECDSA key sent by the remote host is&lt;br /&gt;
 41:9f:3f:2d:1b:c4:14:be:35:67:53:9d:59:cf:4c:06 [MD5].&lt;br /&gt;
 Please contact your system administrator.&lt;br /&gt;
 Add correct host key in /root/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
 Offending ECDSA key in /root/.ssh/known_hosts:730&lt;br /&gt;
 Password authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
 Port forwarding is disabled to avoid man-in-the-middle attacks.&lt;br /&gt;
Uuemad SSH versioonid võimaldavad lisaks localhostile seostada nii suunatud porte ka muude võrguliidestega.&lt;br /&gt;
&lt;br /&gt;
Kuna portide suunamisel -L võtme kasutamisel hakkab ssh kuulama täiendavalt kohalik masina sellel pordil ning -R võtme kasutamisel hakkab kuulama täiendavalt kauge arvuti näidatud pordil, siis tuleb arvestada, et privilegeerimata kasutaja ei saa kasutada alla 1024 porte; -L puhul saab sarnase teate&lt;br /&gt;
&lt;br /&gt;
  $ ssh mart@loomaaed.tartu.ee -L 222:localhost:22&lt;br /&gt;
  Privileged ports can only be forwarded by root.&lt;br /&gt;
&lt;br /&gt;
===Sessioonide multipleksimine===&lt;br /&gt;
&lt;br /&gt;
Kui ühel või teisel põhjusel on tarvis kasutada üle ühe tcp ühenduse (ingl. k. tcp connection) mitut ssh sessiooni, st mitu korda ühest ja samast ühest arvutist ühte ja samasse teise arvutisse pöörduda, siis sobib seda teha nn ssh ControlMaster abil. Esmalt moodustatakse ControlMaster ühendus, mille käigus tekitatakse soket failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -Mt -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee&lt;br /&gt;
 fs:~$&lt;br /&gt;
&lt;br /&gt;
Ning seejärel saab ssh ühendusi tekitada sarnaselt, nagu näha toimub järgmise ühenduse moodustamine oluliselt väiksema vaevaga&lt;br /&gt;
&lt;br /&gt;
 ns:~$ ssh -S /tmp/ssh.imre.fs imre@fs.loomaaed.tartu.ee -v&lt;br /&gt;
 OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010&lt;br /&gt;
 debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;
 debug1: Applying options for *&lt;br /&gt;
 debug1: mux_client_request_session: master session id: 3&lt;br /&gt;
 Last login: Mon Aug 22 20:34:14 2011 from moraal.auul&lt;br /&gt;
 fs:~$ &lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* järgmiste ühenduste tekitamine toimub kiiremini&lt;br /&gt;
* võrgus on üks tcp ühendus&lt;br /&gt;
* server poolel töötab vaid ühs sshd protsess&lt;br /&gt;
&lt;br /&gt;
 fs:~$ ps aux | grep 'sshd:'&lt;br /&gt;
 imre     19383  0.0  0.3   8264  2744 ?        Ss   20:33   0:00 sshd: imre@pts/0,pts/1,pts/2&lt;br /&gt;
&lt;br /&gt;
===X rakenduste kasutamine üle võrgu===&lt;br /&gt;
&lt;br /&gt;
Teatavasti on Xi akende so programmide üle võrgu vedamine ebaturvaline, lisaks ka ebamugav, kuna peab paika sättima DISPLAY keskkonnamuutujat või näitama selle ära käsureal, näiteks &lt;br /&gt;
 gnoom~$ gimp -display reptilus.zoo.tartu.ee:0&lt;br /&gt;
&lt;br /&gt;
Peale selle on vaja Xserveris ära näidata käsuga xhost, milline kasutaja ja millisest masinast võib seal aknaid avada. &lt;br /&gt;
&lt;br /&gt;
SSH teeb asja turvalisemaks ja lihtsamaks. Näiteks käivitame teise masina programmi xterm nii, et programm avaneb kohalikus Xserveris aknana: &lt;br /&gt;
retpilus~$ ssh gnoom.zoo.tartu.ee /usr/X11R6/bin/xterm&lt;br /&gt;
&lt;br /&gt;
Ning kui avanenud xterm'ist käivitada järgnevalt programme, toimub andmete liikumine samuti üle üle SSH kanali ning aknad avatakse selles Xserveris, kus see xtermi aken asub.&lt;br /&gt;
&lt;br /&gt;
===ssh serveri kasutamine läbi https proksi===&lt;br /&gt;
&lt;br /&gt;
ProxyTunnel http://proxytunnel.sourceforge.net/ tarkvara abil saab ssh kliendiga pöörduda ssh serveri poole läbi https proksi. See võib olla vajalik nt juhtumil kui klient asub võrgus, millest ei saa pöörduda välja muul viisil kui https proksi kaudu. Seejuures võib proksi küsida ka kasutajalt parooli. Kasutamiseks tuleb operatsioonisüsteemi vahenditega paigaldada pakett proxytunnel ning seejärel lisada ssh kliendi seadistusfaili&lt;br /&gt;
&lt;br /&gt;
 $ cat .ssh/config&lt;br /&gt;
 ...&lt;br /&gt;
 Host ssh-tla&lt;br /&gt;
   ServerAliveInterval 30&lt;br /&gt;
   ProxyCommand /usr/bin/proxytunnel -p cache.teenusepakkuja.ee:3128 -d ssh.loomaaed.tartu.ee:443&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p - teenusepakkuja host:port&lt;br /&gt;
* -d - ssh serveri host:port&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb pöörduda ssh serveri poole kasutades config failis kasutatud Host väärtust&lt;br /&gt;
&lt;br /&gt;
 $ ssh priit@ssh-tla&lt;br /&gt;
 Via cache.teenusepakkuja.ee:3128 -&amp;gt; ssh.loomaaed.tartu.ee:443&lt;br /&gt;
 Linux ssh 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64&lt;br /&gt;
 ...&lt;br /&gt;
 priit@rakendus:~$&lt;br /&gt;
&lt;br /&gt;
Sellisele asjakorraldusele on iseloomulik, et ssh serveri poole peab saama pöörduda 443/tcp pordi kaudu, vastasel korral ei pruugi proksi ühendust moodustada. Lisaks, erinevalt nt httptunnel tarkvarast, millega saab sammuti kasutada http proksit tcp ühenduste pidamiseks, on ProxyTunnel puhul tarvis ainult nö kliendi poolel teha täiendavaid pingutusi.&lt;br /&gt;
&lt;br /&gt;
Proks logis vastab ühele ssh ühendusele üks rida, nt&lt;br /&gt;
&lt;br /&gt;
 1331413631.677 180240 10.5.5.5 TCP_MISS/200 3570489 CONNECT ssh.loomaaed.tartu.ee:443 - DIRECT/10.47.218.19 -&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 10.5.5.5 - kliendi ip&lt;br /&gt;
* ssh.loomaaed.tartu.ee - nö veebiserveri st ssh serveri domeeninimi kuhu pöörduti&lt;br /&gt;
* 10.47.218.19 - nö veebiserveri st ssh serveri ip kuhu pöörduti&lt;br /&gt;
* ProxyTunnel kasutab oma tööks http proxy CONNECT meetodit&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* man ssh_config suvandeid saab kasutada käsurealt -o võtme abil, nt&lt;br /&gt;
&lt;br /&gt;
  $ ssh -o UserKnownHostsFile=/tmp/known_hosts root@10.0.6.227&lt;br /&gt;
&lt;br /&gt;
salvestab hosti avaliku võtme ~/.ssh/known_hosts asemel faili /tmp/known_hosts, et ühekordse sisselogimise vajaduse pärast mitte risustada kasutaja known_hosts faili.&lt;br /&gt;
&lt;br /&gt;
* Kui võrk ssh kliendi ja serveri vahel nö tapab idle olekus ssh ühendusi, maksab kasutada kliendi /etc/ssh/ssh_config failis parameetrit&lt;br /&gt;
&lt;br /&gt;
 ServerAliveInterval 30&lt;br /&gt;
&lt;br /&gt;
=== Võtmevahetuse ja krüptimise algoritmid ===&lt;br /&gt;
&lt;br /&gt;
Paistab, et 2017 aastal kasutatakse vaikimisi igasugustes linux distributsioonides ssh kliendi ja serveri vahel&lt;br /&gt;
&lt;br /&gt;
* võtmevahetuse algoritm (KexAlgorithms) - curve25519-sha256&lt;br /&gt;
* host key algorithm (HostKeyAlgorithms) - ecdsa-sha2-nistp256&lt;br /&gt;
* sümmeetrilise krüptimise algoritm (Ciphers) - chacha20-poly1305@openssh.com&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimise algoritm (MACs) - &amp;lt;implicit&amp;gt; peaks tähendama, et see tuleneb chacha20-poly1305@openssh.com algoritmist&lt;br /&gt;
&lt;br /&gt;
Vaikimisi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh  imre@192.168.10.123 -v&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: curve25519-sha256@libssh.org&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konkreetsete algoritmide kasutamist saab täpsustada nt selliselt (lisaks on sisse lülitatud pakkimine)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -C imre@192.168.10.123 -v -o Ciphers=aes128-ctr -o KexAlgorithms=diffie-hellman-group-exchange-sha256 -o MACs=hmac-sha2-512&lt;br /&gt;
...&lt;br /&gt;
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256&lt;br /&gt;
debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;
debug1: kex: server-&amp;gt;client cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
debug1: kex: client-&amp;gt;server cipher: aes128-ctr MAC: hmac-sha2-512 compression: zlib@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et nende kolme parameetri suvalisi väärtusi ei saa omavahel kombineerida. Võimalike väärtuste nimekirja saab esitada&lt;br /&gt;
&lt;br /&gt;
* võtmevahetus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q kex&lt;br /&gt;
diffie-hellman-group1-sha1&lt;br /&gt;
diffie-hellman-group14-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha1&lt;br /&gt;
diffie-hellman-group-exchange-sha256&lt;br /&gt;
ecdh-sha2-nistp256&lt;br /&gt;
ecdh-sha2-nistp384&lt;br /&gt;
ecdh-sha2-nistp521&lt;br /&gt;
curve25519-sha256@libssh.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetriline krüptimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q cipher&lt;br /&gt;
3des-cbc&lt;br /&gt;
blowfish-cbc&lt;br /&gt;
cast128-cbc&lt;br /&gt;
arcfour&lt;br /&gt;
arcfour128&lt;br /&gt;
arcfour256&lt;br /&gt;
aes128-cbc&lt;br /&gt;
aes192-cbc&lt;br /&gt;
aes256-cbc&lt;br /&gt;
rijndael-cbc@lysator.liu.se&lt;br /&gt;
aes128-ctr&lt;br /&gt;
aes192-ctr&lt;br /&gt;
aes256-ctr&lt;br /&gt;
aes128-gcm@openssh.com&lt;br /&gt;
aes256-gcm@openssh.com&lt;br /&gt;
chacha20-poly1305@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sümmeetrilise krüptimise juures kasutatav räsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q mac&lt;br /&gt;
hmac-sha1&lt;br /&gt;
hmac-sha1-96&lt;br /&gt;
hmac-sha2-256&lt;br /&gt;
hmac-sha2-512&lt;br /&gt;
hmac-md5&lt;br /&gt;
hmac-md5-96&lt;br /&gt;
hmac-ripemd160&lt;br /&gt;
hmac-ripemd160@openssh.com&lt;br /&gt;
umac-64@openssh.com&lt;br /&gt;
umac-128@openssh.com&lt;br /&gt;
hmac-sha1-etm@openssh.com&lt;br /&gt;
hmac-sha1-96-etm@openssh.com&lt;br /&gt;
hmac-sha2-256-etm@openssh.com&lt;br /&gt;
hmac-sha2-512-etm@openssh.com&lt;br /&gt;
hmac-md5-etm@openssh.com&lt;br /&gt;
hmac-md5-96-etm@openssh.com&lt;br /&gt;
hmac-ripemd160-etm@openssh.com&lt;br /&gt;
umac-64-etm@openssh.com&lt;br /&gt;
umac-128-etm@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* digital signature scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -Q key&lt;br /&gt;
ssh-ed25519&lt;br /&gt;
ssh-ed25519-cert-v01@openssh.com&lt;br /&gt;
ssh-rsa&lt;br /&gt;
ssh-dss&lt;br /&gt;
ecdsa-sha2-nistp256&lt;br /&gt;
ecdsa-sha2-nistp384&lt;br /&gt;
ecdsa-sha2-nistp521&lt;br /&gt;
ssh-rsa-cert-v01@openssh.com&lt;br /&gt;
ssh-dss-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp256-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp384-cert-v01@openssh.com&lt;br /&gt;
ecdsa-sha2-nistp521-cert-v01@openssh.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kasulikud lisamaterjalid ===&lt;br /&gt;
&lt;br /&gt;
* [[Fetchmail]]&lt;br /&gt;
* SSH üle PPP kanali&lt;br /&gt;
* [[PGP]]&lt;br /&gt;
* [[:SSH kasutajate chrootimine libpam-chroot mooduli abil Debian Lennyga]]&lt;br /&gt;
* [[:WinSCP kasutamine]]&lt;br /&gt;
* [[:Openssh chroot]] Kasutaja chrootimine openssh patchi kasutades kodukataloogi&lt;br /&gt;
* [[:OpenSSH_administreerimine]]&lt;br /&gt;
* http://www.snailbook.com/index.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Podman_Desktop_-_MacOS&amp;diff=4917</id>
		<title>Podman Desktop - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Podman_Desktop_-_MacOS&amp;diff=4917"/>
		<updated>2026-07-30T08:23:27Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  TODO  ===Tööpõhimõte===  TODO  ===Paigaldamine ja käivitamine===  TODO  ===Kasulikud lisamaterjalid===  * TODO'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Virtualiseerimine&amp;diff=4916</id>
		<title>Virtualiseerimine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Virtualiseerimine&amp;diff=4916"/>
		<updated>2026-07-30T08:22:39Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Arvutite paralleelne haldus&lt;br /&gt;
&lt;br /&gt;
* [[:Apt-dater tarkvara kasutamine]]&lt;br /&gt;
* [[:dsh]]&lt;br /&gt;
* [[:ClusterSSH]]&lt;br /&gt;
* [[:Parallel SSH]]&lt;br /&gt;
* [[:Puppet kasutamine Debianiga]]&lt;br /&gt;
* [[:Salt kasutamine]]&lt;br /&gt;
* [[:Ansible kasutamine]]&lt;br /&gt;
* [[:Terraform]]&lt;br /&gt;
&lt;br /&gt;
Xen&lt;br /&gt;
&lt;br /&gt;
* [[:Xen tarkvarast üldiselt]]&lt;br /&gt;
* [[:Xen XL kasutamine operatsioonisüsteemiga Debian v. 10 Buster]]&lt;br /&gt;
* [[:Xen XL kasutamine operatsioonisüsteemiga Debian v. 9 Stretch]]&lt;br /&gt;
* [[:Xen XL kasutamine operatsioonisüsteemiga Debian v. 8 Jessie]]&lt;br /&gt;
* [[:Xen XCP kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy]]&lt;br /&gt;
* [[:Xen XL kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy]]&lt;br /&gt;
* [[:Xen XM kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy]]&lt;br /&gt;
* [[:Xen kasutamine operatsioonisüsteemiga Debian v. 6 Squeeze]]&lt;br /&gt;
* [[:Xen kasutamine operatsioonisüsteemiga Debian v. 5 Lenny]]&lt;br /&gt;
* [[:Xen kasutamine operatsioonisüsteemiga Debian v. 4 Etch]]&lt;br /&gt;
* [[:Xen XL toolstack abil VGA passthrough kasutamine töökohaarvutis operatsioonisüsteemiga Ubuntu v. 13.10]]&lt;br /&gt;
* [[:Xen kompileerimine operatsioonisüsteemiga Debian v. 8 Jessie]]&lt;br /&gt;
* [[:Xen guestina operatsioonisüsteem OpenBSD kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Proxmox&lt;br /&gt;
&lt;br /&gt;
* [[:Proxmox v. 1 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 2 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 3 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 4 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 5 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 6 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 7 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 8 kasutamine]]&lt;br /&gt;
* [[:Proxmox v. 9 kasutamine]]&lt;br /&gt;
* [[:KVM virtuaalsete arvutite kasutamine]]&lt;br /&gt;
* [[:Proxmox OpenVZ virtuaalsete arvutite kasutamine]]&lt;br /&gt;
* [[:Proxmox LXC virtuaalsete arvutite kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemide kasutamine KVM virtuaalsete arvutitena]]&lt;br /&gt;
* [[:Virtuaalsete töökohaarvutite kasutamine Proxmox keskkonnas]]&lt;br /&gt;
&lt;br /&gt;
ESXi&lt;br /&gt;
&lt;br /&gt;
* [[:ESXi kasutamine]]&lt;br /&gt;
&lt;br /&gt;
UML&lt;br /&gt;
&lt;br /&gt;
* [[:UML]]&lt;br /&gt;
&lt;br /&gt;
OpenVZ&lt;br /&gt;
&lt;br /&gt;
* [[:OpenVZ kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
&lt;br /&gt;
VirtualBox&lt;br /&gt;
&lt;br /&gt;
* [[:VirtualBox kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
&lt;br /&gt;
Unikernel&lt;br /&gt;
&lt;br /&gt;
* [[:Unikernelist üldiselt]]&lt;br /&gt;
* [[:MirageOS]]&lt;br /&gt;
* [[:rump kernel]]&lt;br /&gt;
&lt;br /&gt;
Kubernetes&lt;br /&gt;
&lt;br /&gt;
* [[:Kubernetes]]&lt;br /&gt;
* [[:Kubernetes - 2022 sügis]]&lt;br /&gt;
* [[:Minikube]]&lt;br /&gt;
* [[:Fleet]]&lt;br /&gt;
* [[:K8s multisite lahendus]]&lt;br /&gt;
* [[:K0s kasutamine]]&lt;br /&gt;
* [[:Lens Desktop]]&lt;br /&gt;
* [[:k9s]]&lt;br /&gt;
* [[:Google GKE kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* [[:QEMU-KVM ja virt-manager kasutamine operatsioonisüsteemiga Debian Jessie]]&lt;br /&gt;
* [[:OVMF ja QEMU kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Docker kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Docker kasutamine operatsioonisüsteemiga Ubuntu - rootless]]&lt;br /&gt;
* [[:Docker kasutamine operatsioonisüsteemiga Debian - rootless]]&lt;br /&gt;
* [[:schroot kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:LXD konteineri kasutamine]]&lt;br /&gt;
* [[:OpenBSD VMM kasutamine]]&lt;br /&gt;
* [[:Multi boot Linux + OpenBSD UEFI + GPT + software raid keskkonnas]]&lt;br /&gt;
* [[:Virtual GPU]]&lt;br /&gt;
* [[:Vagrant kasutamine]]&lt;br /&gt;
* [[:Traefik]]&lt;br /&gt;
* [[:Docker swarm]]&lt;br /&gt;
* [[:Dockerfile]]&lt;br /&gt;
* [[:VMware]]&lt;br /&gt;
* [[:Linux isolatsioonid]]&lt;br /&gt;
* [[:Docker compose kasutamine]]&lt;br /&gt;
* [[:Zone pilveserveri kasutamine]]&lt;br /&gt;
* [[:Podman kasutamine]]&lt;br /&gt;
* [[:Rancher Desktop]]&lt;br /&gt;
* [[:Podman Desktop - MacOS]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Rsyslog_kasutamine_operatsioonis%C3%BCsteemiga_Debian&amp;diff=4915</id>
		<title>Rsyslog kasutamine operatsioonisüsteemiga Debian</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Rsyslog_kasutamine_operatsioonis%C3%BCsteemiga_Debian&amp;diff=4915"/>
		<updated>2026-07-30T00:10:07Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Logiserveri kasutamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Rsyslog http://www.rsyslog.com/ v. 8.4 on Debian v. 8 Jessie operatsioonisüsteemis vaikimisi logimise tarkvara. Kui tarkvara mingil põhjusel süsteemis ei ole, nt süsteem moodustati Debian Etch -&amp;gt; Lenny uuendamisel, siis saab Rsyslogi paigaldada öeldes&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog rsyslog-doc&lt;br /&gt;
&lt;br /&gt;
Rsyslogil on sellised omadused&lt;br /&gt;
&lt;br /&gt;
* tcp/udp tugi&lt;br /&gt;
* oskab kasutada sql andmebaasi (nt PostgreSQL, Oracle, MySQL)&lt;br /&gt;
* failisüsteemi puhverdamine (nt juhtumil kui andmebaasi ei saa mingil põhjusel kirjutada)&lt;br /&gt;
* RELP protokolli tugi&lt;br /&gt;
&lt;br /&gt;
Tarkvara juhib seadistusfail /etc/rsyslogd.conf, mis on süntaksiliselt tagasiühilduv seni Debianis kasutuses olnud Syslog tarkvara seadistusfailiga. Tundub, et uuemal ajal tuleb arvestada, millist rsyslog versiooni kasutatakse&lt;br /&gt;
&lt;br /&gt;
* rsyslog v. 3 - Debian v. 5 Lenny&lt;br /&gt;
* rsyslog v. 5 - Debian v. 7 Wheezy&lt;br /&gt;
* rsyslog v. 8 - Debian v. 8 Jessie&lt;br /&gt;
&lt;br /&gt;
===Logiserveri kasutamine===&lt;br /&gt;
&lt;br /&gt;
Reeglina soovitatakse seadistada arvutid logima võrgus töötavasse logiserverisse, nt turvalisuse ja logitöötluse kaalutlustel&lt;br /&gt;
&lt;br /&gt;
    _____   logiserver&lt;br /&gt;
   |     |  :514/tcp&lt;br /&gt;
   |_____|  :514/udp&lt;br /&gt;
      |&lt;br /&gt;
      |&lt;br /&gt;
     -|---------|----------|----....---|--&lt;br /&gt;
                |          |           |&lt;br /&gt;
              __|__      __|__       __|__&lt;br /&gt;
             |     |    |     |     |     |&lt;br /&gt;
             |_____|    |_____|     |_____|&lt;br /&gt;
 &lt;br /&gt;
               smtp       www         dns&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* logiseveri kuulab ühedusi oma 514/tcp ja 514/udp soketitel&lt;br /&gt;
* smtp, www ja dns arvutid logivad oma andmed logiserverisse&lt;br /&gt;
&lt;br /&gt;
Rsyslogi käivitamisel tuleb arvestada, kas protsess töötab logiseverina või logiserveri kliendina.&lt;br /&gt;
&lt;br /&gt;
* Logiserveris tuleb öelda, et teenindatakse kliente&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/rsyslog.conf&lt;br /&gt;
 ..&lt;br /&gt;
 # provides UDP syslog reception&lt;br /&gt;
 $ModLoad imudp&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
&lt;br /&gt;
 # provides TCP syslog reception&lt;br /&gt;
 $ModLoad imtcp&lt;br /&gt;
 $InputTCPServerRun 514&lt;br /&gt;
&lt;br /&gt;
* Logiserveri kliendis on oluline näidata logiserveri asukoht (kusjuures @192.168.1.247 kopeerib logi üle UDP), praktiliselt piisab järgnev rida lisada vaikimisi toodud seadistusfaili lõppu, tulemusena logitakse endiselt ja lisaks võrku&lt;br /&gt;
&lt;br /&gt;
 *.*     @@192.168.1.247&lt;br /&gt;
&lt;br /&gt;
===SSL/TLS ühenduse kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärgiks on saavutada olukord, kus&lt;br /&gt;
&lt;br /&gt;
* serveri ei võtaks kelleltki peale seadistatud klientide logi vastu&lt;br /&gt;
* kliendid ei saaks saata kellelegi peale seadistatud serveri logi&lt;br /&gt;
&lt;br /&gt;
SSL/TLS toe lisamiseks tuleb süsteemi paigaldada pakett rsyslog-gnutls&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog-gnutls&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib failisüsteemi muu hulgas teek&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/rsyslog/lmnsd_gtls.so&lt;br /&gt;
&lt;br /&gt;
====Serveri seadistamine====&lt;br /&gt;
&lt;br /&gt;
Serveris võiks seadistuse koondada faili /etc/rsyslog.d/tls.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/rsyslog.d/tls.conf&lt;br /&gt;
 # make gtls driver the default&lt;br /&gt;
 $DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
 # certificate files&lt;br /&gt;
 $DefaultNetstreamDriverCAFile /etc/ssl/certs/auul-ca-chain.pem&lt;br /&gt;
 $DefaultNetstreamDriverCertFile /etc/ssl/certs/rsyslog.loomaaed.tartu.ee.crt&lt;br /&gt;
 $DefaultNetstreamDriverKeyFile /etc/ssl/private/rsyslog.loomaaed.tartu.ee.key&lt;br /&gt;
&lt;br /&gt;
 $InputTCPServerStreamDriverAuthMode x509/name&lt;br /&gt;
 $InputTCPServerStreamDriverPermittedPeer *.loomaaed.tartu.ee&lt;br /&gt;
 $InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode&lt;br /&gt;
 $InputTCPServerRun 10514 # start up listener at port 10514&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* $DefaultNetstreamDriver gtls - lülitab TLS mooduli sisse&lt;br /&gt;
* näidatakse, millist CA ahelat, sertifikaati ja võtit server kasutab&lt;br /&gt;
* $InputTCPServerStreamDriverPermittedPeer - milliste subjecti nimedega sertifikaatidega varustatud kliente teenindatakse&lt;br /&gt;
&lt;br /&gt;
====Kliendi seadistamine====&lt;br /&gt;
&lt;br /&gt;
Serveris võiks seadistuse koondada faili /etc/rsyslog.d/tls.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/rsyslog.d/tls.conf&lt;br /&gt;
 # make gtls driver the default&lt;br /&gt;
 $DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
 # certificate files&lt;br /&gt;
 $DefaultNetstreamDriverCAFile /etc/ssl/certs/auul-ca-chain.pem&lt;br /&gt;
 $DefaultNetstreamDriverCertFile /etc/ssl/certs/rsyslog-client-loomaaed.loomaaed.tartu.ee.crt&lt;br /&gt;
 $DefaultNetstreamDriverKeyFile /etc/ssl/private/rsyslog-client-loomaaed.loomaaed.tartu.ee.key&lt;br /&gt;
&lt;br /&gt;
 $ActionSendStreamDriverAuthMode x509/name&lt;br /&gt;
 $ActionSendStreamDriverPermittedPeer rsyslog.loomaaed.tartu.ee&lt;br /&gt;
 $ActionSendStreamDriverMode 1 # run driver in TLS-only mode&lt;br /&gt;
&lt;br /&gt;
 *.* @@(o)rsyslog.loomaaed.tartu.ee:10514&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* *.* @@(o)rsyslog.loomaaed.tartu.ee:10514 - kuhu logi saata, (o) ka vajalik, liiklus logimise jaoks optimaalsem&lt;br /&gt;
&lt;br /&gt;
====Tulemuse kontrollimine====&lt;br /&gt;
&lt;br /&gt;
* veenduda, et logitakse üle seadistatud pordi ja andmevahetus on ilmselt krüpteeritud (nt wireshark abil)&lt;br /&gt;
* proovida pöörduda kasutades mingit suvalist kliendi serti ja veenduda, et logida ei saa (või muuta serveris ja kliendis kordamööda InputTCPServerStreamDriverPermittedPeer väärtus ära)&lt;br /&gt;
&lt;br /&gt;
Nt kirjutatakse ebasobiva kliendi pöördumisel serveri logisse klienti rsyslog protsessi startimisel&lt;br /&gt;
&lt;br /&gt;
 May  4 20:32:58 rsyslog rsyslogd-2088: error: peer name not authorized - not permitted to talk to it. \&lt;br /&gt;
   Names: CN: rsyslog-client-auul.lloomaaed.tartu.ee;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.rsyslog.com/doc/rsyslog_secure_tls.html&lt;br /&gt;
&lt;br /&gt;
===Logimine failisüsteemi===&lt;br /&gt;
&lt;br /&gt;
Failisüsteemi moodustatakse logiserverit kasutavate arvutite ja programmide nö puu lisades logiserveri rsyslog.conf faili muude logi salvestamist juhtivate kirjete ette&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 ###############&lt;br /&gt;
 #### RULES ####&lt;br /&gt;
 ###############&lt;br /&gt;
&lt;br /&gt;
 $template TraditionalFormat,&amp;quot;%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n&amp;quot;&lt;br /&gt;
 $template DailyPerHostLogs,&amp;quot;/srv/logs/%HOSTNAME%/%programname%.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;&lt;br /&gt;
 # *.* -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
 if $fromhost-ip startswith '10.1.1.' then -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # First some standard log files.  Log by facility.&lt;br /&gt;
 #&lt;br /&gt;
 auth,authpriv.*                 /var/log/auth.log&lt;br /&gt;
 *.*;auth,authpriv.none          -/var/log/syslog&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* - - syncida failisüsteemi puhvrid maha&lt;br /&gt;
* ? - tähistab asjaolu, et järgneb nn dünaamiline failinimi&lt;br /&gt;
* ; järel on template nimi, kust võetakse logikirje formaat&lt;br /&gt;
* %msg% - algne logi sissekanne, millele kirjutatakse ette ja taha juurde&lt;br /&gt;
* if $fromhost-ip startswith '10.1.1.' then ... näitab, millisel tingimusel näidatud viisil logida&lt;br /&gt;
* &amp;amp; ~ - tähistab, et logides järgmiseid reegleid ei käsitleta; vastasel korral kirjutatakse üle võrgu tulnud logi lisaks ka nö kohalikesse logifailidesse (/var/log/syslog jt)&lt;br /&gt;
&lt;br /&gt;
Postinduse logimisel on praktiliselt mõistlik logida samasse faili kokku amavis-postfix-spamd-jms programmid, nt sedasi&lt;br /&gt;
&lt;br /&gt;
 $template TraditionalFormat,&amp;quot;%timegenerated% %FROMHOST-IP% %syslogtag%%msg:::drop-last-lf%\n&amp;quot;&lt;br /&gt;
 $template DailyPerHostLogs,&amp;quot;/srv/data/logs/%FROMHOST-IP%/%programname%.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;&lt;br /&gt;
 $template DailyPerHostLogsMail,&amp;quot;/srv/data/logs/%FROMHOST-IP%/mail.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 if $fromhost-ip startswith '192.168.1.250' and ( $programname == 'spamd' or $programname == 'clamav-milter' or $programname == 'postfix' ) \&lt;br /&gt;
   then -? DailyPerHostLogsMail;TraditionalFormat&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
 if $fromhost-ip startswith '192.168.' then -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esmalt kirjeldatakse template'd - formaadi kohta üks ja kaks failinimede jaoks&lt;br /&gt;
* esimene if tingimus määrab mail faili kirjutamise tingimused&lt;br /&gt;
* teine if tingimus ülejäänud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* - - kirjutada puhvrid maha&lt;br /&gt;
* ?DailyPerHostLogs - failinimed moodustatakse dünaamiliselt (st saavad sisaldada kuupäeva jms)&lt;br /&gt;
* TraditionalFormat - kirje formaat&lt;br /&gt;
&lt;br /&gt;
===Rsyslogi mitte kasutava programmi logifaili muudatuste logimine Rsyslogi===&lt;br /&gt;
&lt;br /&gt;
Rsyslog võimaldab töötada nö iseseisvalt oma logifaile kirjutavate programmidega, nt Tomcat. Enne allkirjeldatud viisi rakendamist tasub uurida alternatiivseid võimalusi, nt PostgreSQL puhul on võimalik kirjutada logi samaaegselt mitmesse kohta.&lt;br /&gt;
&lt;br /&gt;
====Logi klient====&lt;br /&gt;
&lt;br /&gt;
Logi kliendi arvutis tuleb kasutada /etc/rsyslog.conf failis nt ridu&lt;br /&gt;
&lt;br /&gt;
 $ModLoad imfile&lt;br /&gt;
 ...&lt;br /&gt;
 # RULES&lt;br /&gt;
 if $programname == 'tomcat' then @@10.100.1.19&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
 ...&lt;br /&gt;
 $InputFileName /usr/local/tomcat/logs/catalina.out&lt;br /&gt;
 $InputFileTag tomcat:&lt;br /&gt;
 $InputFileStateFile stat-file-tomcat&lt;br /&gt;
 $InputRunFileMonitor&lt;br /&gt;
 ...&lt;br /&gt;
 *.* @@10.100.1.19&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* if ... then .. - tingimus suunab tomcat nimelise logi logiserverisse aadressi 10.100.1.19&lt;br /&gt;
* &amp;amp; ~ - järgnedes vahetult eelmisele tähendab see, et kõnealuse logikirjega enam rohkem ei tegelda&lt;br /&gt;
* *.* - kõik logi saadetakse logiserverisse&lt;br /&gt;
&lt;br /&gt;
Kui if .. then tingimust mitte kasutada, siis salvestatakse tomcat logi nii kohaliku süsteemi logifailidesse kui ka logiserverisse&lt;br /&gt;
&lt;br /&gt;
====Logiserver====&lt;br /&gt;
&lt;br /&gt;
Logiserver salvestab muude seadmete poolt üle võrgu talle saadetud logi, nt oma failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 $ModLoad imudp.so&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
&lt;br /&gt;
===Logimine PostgreSQL andmebaasi===&lt;br /&gt;
&lt;br /&gt;
Mõnel juhtumil, nt LogAnalyzer http://loganalyzer.adiscon.com/ tarkvara kasutamisel võib olla asjakohane logida andmebaasi, selleks tuleb paigadalda PostgreSQL andmebaasi puhul rsyslog-pgsql pakett&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog-pgsql&lt;br /&gt;
&lt;br /&gt;
Baasi logimisel kasutatakse kahte tabelit, tõenäoliselt on mõistlik moodustada eraldi andmebaas ja tekitada tabelid&lt;br /&gt;
&lt;br /&gt;
 $ psql -h 127.0.0.1 -U rsyslog rsyslog &amp;lt; /usr/share/dbconfig-common/data/rsyslog-pgsql/install/pgsql&lt;br /&gt;
&lt;br /&gt;
Ligipääs andmebaasile tuleb näidata /etc/rsyslog.d/pgsql.conf failis, nt&lt;br /&gt;
&lt;br /&gt;
 $ModLoad ompgsql&lt;br /&gt;
 *.* :ompgsql:ip,baasinimi, kasutajanimi, parool;&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks tuleb teha Rsyslogile stop ja start&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/rsyslog stop ... start&lt;br /&gt;
&lt;br /&gt;
Kui mingil juhtumil ei peaks andmebaas töötama, siis Rsyslog võimaldab logi kohalikus arvutis puhverdada ning see kopeeritakse andmebaasi järgmisel võimalusel, selleks sobib kasutada seadistusfailis&lt;br /&gt;
&lt;br /&gt;
 $WorkDirectory /var/spool/rsyslog # default location for work (spool) files&lt;br /&gt;
 $ActionQueueType LinkedList # use asynchronous processing&lt;br /&gt;
 $ActionQueueFileName dbq    # set file name, also enables disk mode&lt;br /&gt;
 $ActionResumeRetryCount -1  # infinite retries on insert failure&lt;br /&gt;
&lt;br /&gt;
ning moodustada kataloog /var/spool/rsyslog&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/spool/rsyslog&lt;br /&gt;
&lt;br /&gt;
===LogAnalyzeri kasutamine===&lt;br /&gt;
&lt;br /&gt;
LogAnalyzer http://loganalyzer.adiscon.com/ on veebipõhine PHP rakendus, mis võimaldab töötada andmebaasi salvestatud logiga. Lisaks nö vanilla Apache veebiserverile peavad olema paigaldatud php5-gd ja php5-pgsql paketid&lt;br /&gt;
&lt;br /&gt;
 # apt-get install php5-gd php5-pgsql&lt;br /&gt;
&lt;br /&gt;
Tarkvara tuleb lahti pakkida veebiserveri dokumendijuurika alla, rakendus asub src alamkataloogis. Rakenduse seadistamine, sh andmebaasi ligipääsu kirjeldamine toimub veebiliideses (andmed salvestatakse faili config.php).&lt;br /&gt;
&lt;br /&gt;
LogAnalyzeri kasutajaliides näeb välja selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:rsyslog-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* üleval ääres olevate linkide abil saab liikuda otsingu, statistika jt sektsioonide vahel&lt;br /&gt;
* üleval keskel on filter, antud juhul kuvatakse kõigi logiserverit kasutavate arvutite viimase tunni sissekandeid&lt;br /&gt;
* sissekanded esitatakse ridadena, antud juhtumil on näha, et arvuti 192.168.1.210 on tegelenud dhcp'ga&lt;br /&gt;
* veebilehele on määratud kord minutis automaatne värskendus&lt;br /&gt;
&lt;br /&gt;
Kuna logis võivad esineda tundlikud andmed, nt kasutaja sisestas oma kasutaja nime asemele kogemata parooli, siis ei peaks logile saama juurde kõrvalised tegelased.&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* OpenBSD baaskomplekti syslogd oskab ainult UDP protokolli, kui seda arvestada, siis saab logida sealt Rsyslogi.&lt;br /&gt;
* Tundub, et igasuguste Rsyslogi seadistusfaili tehtud muudatuste kehtestamiseks tuleb öelda Rsyslogile stop ja start.&lt;br /&gt;
* osutub, et logger programm ei sobib tcp peal logimiseks; või teisipidi, lõpus peab olema reavahetus&lt;br /&gt;
&lt;br /&gt;
 $ logger -n 192.168.10.85 -p local3.info &amp;quot;test&amp;quot;&lt;br /&gt;
 $ logger -n 192.168.10.85 -T -P 514 -p local3.info &amp;quot;test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
paistab, et netcat toimib&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;test&amp;quot; | netcat -q 0 10.0.9.45 514&lt;br /&gt;
&lt;br /&gt;
* selleks, et kõik kirjed eraldi ridadele kantaks&lt;br /&gt;
&lt;br /&gt;
 $RepeatedMsgReduction off&lt;br /&gt;
&lt;br /&gt;
===Rsyslog v. 8 kasutamise iseärasused===&lt;br /&gt;
&lt;br /&gt;
* Logiserveris erinevatesse failidesse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 template(name=&amp;quot;DailyPerHostLogsMail&amp;quot; type=&amp;quot;string&amp;quot; string=&amp;quot;/srv/logs/%FROMHOST-IP%/mail.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 if $fromhost-ip startswith '192.168.1.250' and ( $programname == 'spamd' or $programname == 'clamav-milter' ) then&lt;br /&gt;
   {&lt;br /&gt;
     action(type=&amp;quot;omfile&amp;quot; DynaFile=&amp;quot;DailyPerHostLogsMail&amp;quot;)&lt;br /&gt;
     stop&lt;br /&gt;
   }&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* Tundub, et rsyslog v. 8 toetab otse elasticsearch andmebaasi sissekannete tegemist, http://www.rsyslog.com/output-to-elasticsearch-in-logstash-format-kibana-friendly/ (iseasi, kas see 2015 aasta alguses on nii kasutatav kui Logstash, nt GeoIP paistab puuduvat)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog-elasticsearch&lt;br /&gt;
&lt;br /&gt;
* rainerscriptiga TLS serveris kasutada /etc/rsyslog.conf failis kõige lõpus (ees vaikimisi olev 'module(type=&amp;quot;imtcp&amp;quot;)' kommenteerida välja)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
..&lt;br /&gt;
$DefaultNetstreamDriverCAFile /var/tmp/s/syslog-ca-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverCertFile /var/tmp/s/syslog-server-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverKeyFile /var/tmp/s/syslog-server-key.key&lt;br /&gt;
$DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
module(load=&amp;quot;imtcp&amp;quot; streamdriver.mode=&amp;quot;1&amp;quot; streamdriver.authmode=&amp;quot;x509/certvalid&amp;quot;)&lt;br /&gt;
input(type=&amp;quot;imtcp&amp;quot; port=&amp;quot;10514&amp;quot; name=&amp;quot;tcp-tls&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* legacy direktiividega TLS serveris kasutada /etc/rsyslog.conf failis kõige lõpus (ees vaikimisi olev 'module(type=&amp;quot;imtcp&amp;quot;)' kommenteerida välja)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$DefaultNetstreamDriverCAFile /var/tmp/s/syslog-ca-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverCertFile /var/tmp/s/syslog-server-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverKeyFile /var/tmp/s/syslog-server-key.key&lt;br /&gt;
$DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
$ModLoad imtcp&lt;br /&gt;
&lt;br /&gt;
$InputTCPServerStreamDriverMode 1&lt;br /&gt;
$InputTCPServerStreamDriverAuthMode anon&lt;br /&gt;
$InputTCPServerRun 10514 # start up listener at port 10514&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TLS kliendis kasutada /etc/rsyslog.conf failis kõige lõpus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ModLoad lmnsd_gtls&lt;br /&gt;
&lt;br /&gt;
# certificate files&lt;br /&gt;
$DefaultNetstreamDriverCAFile /etc/rsyslog.ca.pem&lt;br /&gt;
$DefaultNetstreamDriverCertFile /etc/rsyslog.crt&lt;br /&gt;
$DefaultNetstreamDriverKeyFile /etc/rsyslog.key&lt;br /&gt;
&lt;br /&gt;
$DefaultNetstreamDriver gtls&lt;br /&gt;
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode&lt;br /&gt;
$ActionSendStreamDriverAuthMode x509/certvalid&lt;br /&gt;
# $ActionSendStreamDriverPermittedPeer rsyslog.moraal.ee&lt;br /&gt;
&lt;br /&gt;
*.* @@rsyslog.moraal.ee:10514 # forward everything to remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testimiseks peab nö tavaline ssl klient saama vastuse, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# openssl s_client -connect 10.80.102.35:1999&lt;br /&gt;
...&lt;br /&gt;
   Start Time: 1496000983&lt;br /&gt;
   Timeout   : 300 (sec)&lt;br /&gt;
   Verify return code: 21 (unable to verify the first certificate)&lt;br /&gt;
---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gnutls-cli -p 1999 logi.moraal.ee --x509cafile /etc/rsyslog-ca.crt&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
- Status: The certificate is trusted.&lt;br /&gt;
- Description: (TLS1.0)-(RSA)-(AES-128-CBC)-(SHA1)&lt;br /&gt;
- Session ID: BA:3A:80:16:79:F2:F6:8B:1A:E9:C1:87:D9:52:D6:53:28:3B:EC:3C:45:52:5A:76:C4:4D:09:F6:D1:B1:5C:A2&lt;br /&gt;
- Version: TLS1.0&lt;br /&gt;
- Key Exchange: RSA&lt;br /&gt;
- Cipher: AES-128-CBC&lt;br /&gt;
- MAC: SHA1&lt;br /&gt;
- Compression: NULL&lt;br /&gt;
- Options: safe renegotiation,&lt;br /&gt;
- Handshake was completed&lt;br /&gt;
&lt;br /&gt;
- Simple Client Mode:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://blog.vuksan.com/2016/05/10/rsyslog-server-tls-termination&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* http://www.rsyslog.com/doc/manual.html&lt;br /&gt;
* http://wiki.rsyslog.com/index.php/Main_Page&lt;br /&gt;
* http://en.wikipedia.org/wiki/Rsyslog&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Fail:Rsyslog-1.gif&amp;diff=4914</id>
		<title>Fail:Rsyslog-1.gif</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Fail:Rsyslog-1.gif&amp;diff=4914"/>
		<updated>2026-07-30T00:09:39Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Rsyslog_kasutamine_operatsioonis%C3%BCsteemiga_Debian&amp;diff=4913</id>
		<title>Rsyslog kasutamine operatsioonisüsteemiga Debian</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Rsyslog_kasutamine_operatsioonis%C3%BCsteemiga_Debian&amp;diff=4913"/>
		<updated>2026-07-30T00:09:28Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  Rsyslog http://www.rsyslog.com/ v. 8.4 on Debian v. 8 Jessie operatsioonisüsteemis vaikimisi logimise tarkvara. Kui tarkvara mingil põhjusel süsteemis ei ole, nt süsteem moodustati Debian Etch -&amp;gt; Lenny uuendamisel, siis saab Rsyslogi paigaldada öeldes   # apt-get install rsyslog rsyslog-doc  Rsyslogil on sellised omadused  * tcp/udp tugi * oskab kasutada sql andmebaasi (nt PostgreSQL, Oracle, MySQL) * failisüsteemi puhverdamine (nt juhtumil kui and...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Rsyslog http://www.rsyslog.com/ v. 8.4 on Debian v. 8 Jessie operatsioonisüsteemis vaikimisi logimise tarkvara. Kui tarkvara mingil põhjusel süsteemis ei ole, nt süsteem moodustati Debian Etch -&amp;gt; Lenny uuendamisel, siis saab Rsyslogi paigaldada öeldes&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog rsyslog-doc&lt;br /&gt;
&lt;br /&gt;
Rsyslogil on sellised omadused&lt;br /&gt;
&lt;br /&gt;
* tcp/udp tugi&lt;br /&gt;
* oskab kasutada sql andmebaasi (nt PostgreSQL, Oracle, MySQL)&lt;br /&gt;
* failisüsteemi puhverdamine (nt juhtumil kui andmebaasi ei saa mingil põhjusel kirjutada)&lt;br /&gt;
* RELP protokolli tugi&lt;br /&gt;
&lt;br /&gt;
Tarkvara juhib seadistusfail /etc/rsyslogd.conf, mis on süntaksiliselt tagasiühilduv seni Debianis kasutuses olnud Syslog tarkvara seadistusfailiga. Tundub, et uuemal ajal tuleb arvestada, millist rsyslog versiooni kasutatakse&lt;br /&gt;
&lt;br /&gt;
* rsyslog v. 3 - Debian v. 5 Lenny&lt;br /&gt;
* rsyslog v. 5 - Debian v. 7 Wheezy&lt;br /&gt;
* rsyslog v. 8 - Debian v. 8 Jessie&lt;br /&gt;
&lt;br /&gt;
===Logiserveri kasutamine===&lt;br /&gt;
&lt;br /&gt;
Reeglina soovitatakse seadistada arvutid logima võrgus töötavasse logiserverisse, nt turvalisuse ja logitöötluse kaalutlustel&lt;br /&gt;
&lt;br /&gt;
    _____   logiserver&lt;br /&gt;
   |     |  :514/tcp&lt;br /&gt;
   |_____|  :514/udp&lt;br /&gt;
      |&lt;br /&gt;
      |&lt;br /&gt;
     -|---------|----------|----....---|--&lt;br /&gt;
                |          |           |&lt;br /&gt;
              __|__      __|__       __|__&lt;br /&gt;
             |     |    |     |     |     |&lt;br /&gt;
             |_____|    |_____|     |_____|&lt;br /&gt;
&lt;br /&gt;
               smtp       www         dns&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* logiseveri kuulab ühedusi oma 514/tcp ja 514/udp soketitel&lt;br /&gt;
* smtp, www ja dns arvutid logivad oma andmed logiserverisse&lt;br /&gt;
&lt;br /&gt;
Rsyslogi käivitamisel tuleb arvestada, kas protsess töötab logiseverina või logiserveri kliendina.&lt;br /&gt;
&lt;br /&gt;
* Logiserveris tuleb öelda, et teenindatakse kliente&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/rsyslog.conf&lt;br /&gt;
 ..&lt;br /&gt;
 # provides UDP syslog reception&lt;br /&gt;
 $ModLoad imudp&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
&lt;br /&gt;
 # provides TCP syslog reception&lt;br /&gt;
 $ModLoad imtcp&lt;br /&gt;
 $InputTCPServerRun 514&lt;br /&gt;
&lt;br /&gt;
* Logiserveri kliendis on oluline näidata logiserveri asukoht (kusjuures @192.168.1.247 kopeerib logi üle UDP), praktiliselt piisab järgnev rida lisada vaikimisi toodud seadistusfaili lõppu, tulemusena logitakse endiselt ja lisaks võrku&lt;br /&gt;
&lt;br /&gt;
 *.*     @@192.168.1.247&lt;br /&gt;
&lt;br /&gt;
===SSL/TLS ühenduse kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärgiks on saavutada olukord, kus&lt;br /&gt;
&lt;br /&gt;
* serveri ei võtaks kelleltki peale seadistatud klientide logi vastu&lt;br /&gt;
* kliendid ei saaks saata kellelegi peale seadistatud serveri logi&lt;br /&gt;
&lt;br /&gt;
SSL/TLS toe lisamiseks tuleb süsteemi paigaldada pakett rsyslog-gnutls&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog-gnutls&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib failisüsteemi muu hulgas teek&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/rsyslog/lmnsd_gtls.so&lt;br /&gt;
&lt;br /&gt;
====Serveri seadistamine====&lt;br /&gt;
&lt;br /&gt;
Serveris võiks seadistuse koondada faili /etc/rsyslog.d/tls.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/rsyslog.d/tls.conf&lt;br /&gt;
 # make gtls driver the default&lt;br /&gt;
 $DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
 # certificate files&lt;br /&gt;
 $DefaultNetstreamDriverCAFile /etc/ssl/certs/auul-ca-chain.pem&lt;br /&gt;
 $DefaultNetstreamDriverCertFile /etc/ssl/certs/rsyslog.loomaaed.tartu.ee.crt&lt;br /&gt;
 $DefaultNetstreamDriverKeyFile /etc/ssl/private/rsyslog.loomaaed.tartu.ee.key&lt;br /&gt;
&lt;br /&gt;
 $InputTCPServerStreamDriverAuthMode x509/name&lt;br /&gt;
 $InputTCPServerStreamDriverPermittedPeer *.loomaaed.tartu.ee&lt;br /&gt;
 $InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode&lt;br /&gt;
 $InputTCPServerRun 10514 # start up listener at port 10514&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* $DefaultNetstreamDriver gtls - lülitab TLS mooduli sisse&lt;br /&gt;
* näidatakse, millist CA ahelat, sertifikaati ja võtit server kasutab&lt;br /&gt;
* $InputTCPServerStreamDriverPermittedPeer - milliste subjecti nimedega sertifikaatidega varustatud kliente teenindatakse&lt;br /&gt;
&lt;br /&gt;
====Kliendi seadistamine====&lt;br /&gt;
&lt;br /&gt;
Serveris võiks seadistuse koondada faili /etc/rsyslog.d/tls.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/rsyslog.d/tls.conf&lt;br /&gt;
 # make gtls driver the default&lt;br /&gt;
 $DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
 # certificate files&lt;br /&gt;
 $DefaultNetstreamDriverCAFile /etc/ssl/certs/auul-ca-chain.pem&lt;br /&gt;
 $DefaultNetstreamDriverCertFile /etc/ssl/certs/rsyslog-client-loomaaed.loomaaed.tartu.ee.crt&lt;br /&gt;
 $DefaultNetstreamDriverKeyFile /etc/ssl/private/rsyslog-client-loomaaed.loomaaed.tartu.ee.key&lt;br /&gt;
&lt;br /&gt;
 $ActionSendStreamDriverAuthMode x509/name&lt;br /&gt;
 $ActionSendStreamDriverPermittedPeer rsyslog.loomaaed.tartu.ee&lt;br /&gt;
 $ActionSendStreamDriverMode 1 # run driver in TLS-only mode&lt;br /&gt;
&lt;br /&gt;
 *.* @@(o)rsyslog.loomaaed.tartu.ee:10514&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* *.* @@(o)rsyslog.loomaaed.tartu.ee:10514 - kuhu logi saata, (o) ka vajalik, liiklus logimise jaoks optimaalsem&lt;br /&gt;
&lt;br /&gt;
====Tulemuse kontrollimine====&lt;br /&gt;
&lt;br /&gt;
* veenduda, et logitakse üle seadistatud pordi ja andmevahetus on ilmselt krüpteeritud (nt wireshark abil)&lt;br /&gt;
* proovida pöörduda kasutades mingit suvalist kliendi serti ja veenduda, et logida ei saa (või muuta serveris ja kliendis kordamööda InputTCPServerStreamDriverPermittedPeer väärtus ära)&lt;br /&gt;
&lt;br /&gt;
Nt kirjutatakse ebasobiva kliendi pöördumisel serveri logisse klienti rsyslog protsessi startimisel&lt;br /&gt;
&lt;br /&gt;
 May  4 20:32:58 rsyslog rsyslogd-2088: error: peer name not authorized - not permitted to talk to it. \&lt;br /&gt;
   Names: CN: rsyslog-client-auul.lloomaaed.tartu.ee;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.rsyslog.com/doc/rsyslog_secure_tls.html&lt;br /&gt;
&lt;br /&gt;
===Logimine failisüsteemi===&lt;br /&gt;
&lt;br /&gt;
Failisüsteemi moodustatakse logiserverit kasutavate arvutite ja programmide nö puu lisades logiserveri rsyslog.conf faili muude logi salvestamist juhtivate kirjete ette&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 ###############&lt;br /&gt;
 #### RULES ####&lt;br /&gt;
 ###############&lt;br /&gt;
&lt;br /&gt;
 $template TraditionalFormat,&amp;quot;%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n&amp;quot;&lt;br /&gt;
 $template DailyPerHostLogs,&amp;quot;/srv/logs/%HOSTNAME%/%programname%.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;&lt;br /&gt;
 # *.* -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
 if $fromhost-ip startswith '10.1.1.' then -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # First some standard log files.  Log by facility.&lt;br /&gt;
 #&lt;br /&gt;
 auth,authpriv.*                 /var/log/auth.log&lt;br /&gt;
 *.*;auth,authpriv.none          -/var/log/syslog&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* - - syncida failisüsteemi puhvrid maha&lt;br /&gt;
* ? - tähistab asjaolu, et järgneb nn dünaamiline failinimi&lt;br /&gt;
* ; järel on template nimi, kust võetakse logikirje formaat&lt;br /&gt;
* %msg% - algne logi sissekanne, millele kirjutatakse ette ja taha juurde&lt;br /&gt;
* if $fromhost-ip startswith '10.1.1.' then ... näitab, millisel tingimusel näidatud viisil logida&lt;br /&gt;
* &amp;amp; ~ - tähistab, et logides järgmiseid reegleid ei käsitleta; vastasel korral kirjutatakse üle võrgu tulnud logi lisaks ka nö kohalikesse logifailidesse (/var/log/syslog jt)&lt;br /&gt;
&lt;br /&gt;
Postinduse logimisel on praktiliselt mõistlik logida samasse faili kokku amavis-postfix-spamd-jms programmid, nt sedasi&lt;br /&gt;
&lt;br /&gt;
 $template TraditionalFormat,&amp;quot;%timegenerated% %FROMHOST-IP% %syslogtag%%msg:::drop-last-lf%\n&amp;quot;&lt;br /&gt;
 $template DailyPerHostLogs,&amp;quot;/srv/data/logs/%FROMHOST-IP%/%programname%.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;&lt;br /&gt;
 $template DailyPerHostLogsMail,&amp;quot;/srv/data/logs/%FROMHOST-IP%/mail.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 if $fromhost-ip startswith '192.168.1.250' and ( $programname == 'spamd' or $programname == 'clamav-milter' or $programname == 'postfix' ) \&lt;br /&gt;
   then -? DailyPerHostLogsMail;TraditionalFormat&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
 if $fromhost-ip startswith '192.168.' then -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esmalt kirjeldatakse template'd - formaadi kohta üks ja kaks failinimede jaoks&lt;br /&gt;
* esimene if tingimus määrab mail faili kirjutamise tingimused&lt;br /&gt;
* teine if tingimus ülejäänud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 -?DailyPerHostLogs;TraditionalFormat&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* - - kirjutada puhvrid maha&lt;br /&gt;
* ?DailyPerHostLogs - failinimed moodustatakse dünaamiliselt (st saavad sisaldada kuupäeva jms)&lt;br /&gt;
* TraditionalFormat - kirje formaat&lt;br /&gt;
&lt;br /&gt;
===Rsyslogi mitte kasutava programmi logifaili muudatuste logimine Rsyslogi===&lt;br /&gt;
&lt;br /&gt;
Rsyslog võimaldab töötada nö iseseisvalt oma logifaile kirjutavate programmidega, nt Tomcat. Enne allkirjeldatud viisi rakendamist tasub uurida alternatiivseid võimalusi, nt PostgreSQL puhul on võimalik kirjutada logi samaaegselt mitmesse kohta.&lt;br /&gt;
&lt;br /&gt;
====Logi klient====&lt;br /&gt;
&lt;br /&gt;
Logi kliendi arvutis tuleb kasutada /etc/rsyslog.conf failis nt ridu&lt;br /&gt;
&lt;br /&gt;
 $ModLoad imfile&lt;br /&gt;
 ...&lt;br /&gt;
 # RULES&lt;br /&gt;
 if $programname == 'tomcat' then @@10.100.1.19&lt;br /&gt;
 &amp;amp; ~&lt;br /&gt;
 ...&lt;br /&gt;
 $InputFileName /usr/local/tomcat/logs/catalina.out&lt;br /&gt;
 $InputFileTag tomcat:&lt;br /&gt;
 $InputFileStateFile stat-file-tomcat&lt;br /&gt;
 $InputRunFileMonitor&lt;br /&gt;
 ...&lt;br /&gt;
 *.* @@10.100.1.19&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* if ... then .. - tingimus suunab tomcat nimelise logi logiserverisse aadressi 10.100.1.19&lt;br /&gt;
* &amp;amp; ~ - järgnedes vahetult eelmisele tähendab see, et kõnealuse logikirjega enam rohkem ei tegelda&lt;br /&gt;
* *.* - kõik logi saadetakse logiserverisse&lt;br /&gt;
&lt;br /&gt;
Kui if .. then tingimust mitte kasutada, siis salvestatakse tomcat logi nii kohaliku süsteemi logifailidesse kui ka logiserverisse&lt;br /&gt;
&lt;br /&gt;
====Logiserver====&lt;br /&gt;
&lt;br /&gt;
Logiserver salvestab muude seadmete poolt üle võrgu talle saadetud logi, nt oma failisüsteemi&lt;br /&gt;
&lt;br /&gt;
 $ModLoad imudp.so&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
&lt;br /&gt;
===Logimine PostgreSQL andmebaasi===&lt;br /&gt;
&lt;br /&gt;
Mõnel juhtumil, nt LogAnalyzer http://loganalyzer.adiscon.com/ tarkvara kasutamisel võib olla asjakohane logida andmebaasi, selleks tuleb paigadalda PostgreSQL andmebaasi puhul rsyslog-pgsql pakett&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog-pgsql&lt;br /&gt;
&lt;br /&gt;
Baasi logimisel kasutatakse kahte tabelit, tõenäoliselt on mõistlik moodustada eraldi andmebaas ja tekitada tabelid&lt;br /&gt;
&lt;br /&gt;
 $ psql -h 127.0.0.1 -U rsyslog rsyslog &amp;lt; /usr/share/dbconfig-common/data/rsyslog-pgsql/install/pgsql&lt;br /&gt;
&lt;br /&gt;
Ligipääs andmebaasile tuleb näidata /etc/rsyslog.d/pgsql.conf failis, nt&lt;br /&gt;
&lt;br /&gt;
 $ModLoad ompgsql&lt;br /&gt;
 *.* :ompgsql:ip,baasinimi, kasutajanimi, parool;&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks tuleb teha Rsyslogile stop ja start&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/rsyslog stop ... start&lt;br /&gt;
&lt;br /&gt;
Kui mingil juhtumil ei peaks andmebaas töötama, siis Rsyslog võimaldab logi kohalikus arvutis puhverdada ning see kopeeritakse andmebaasi järgmisel võimalusel, selleks sobib kasutada seadistusfailis&lt;br /&gt;
&lt;br /&gt;
 $WorkDirectory /var/spool/rsyslog # default location for work (spool) files&lt;br /&gt;
 $ActionQueueType LinkedList # use asynchronous processing&lt;br /&gt;
 $ActionQueueFileName dbq    # set file name, also enables disk mode&lt;br /&gt;
 $ActionResumeRetryCount -1  # infinite retries on insert failure&lt;br /&gt;
&lt;br /&gt;
ning moodustada kataloog /var/spool/rsyslog&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/spool/rsyslog&lt;br /&gt;
&lt;br /&gt;
===LogAnalyzeri kasutamine===&lt;br /&gt;
&lt;br /&gt;
LogAnalyzer http://loganalyzer.adiscon.com/ on veebipõhine PHP rakendus, mis võimaldab töötada andmebaasi salvestatud logiga. Lisaks nö vanilla Apache veebiserverile peavad olema paigaldatud php5-gd ja php5-pgsql paketid&lt;br /&gt;
&lt;br /&gt;
 # apt-get install php5-gd php5-pgsql&lt;br /&gt;
&lt;br /&gt;
Tarkvara tuleb lahti pakkida veebiserveri dokumendijuurika alla, rakendus asub src alamkataloogis. Rakenduse seadistamine, sh andmebaasi ligipääsu kirjeldamine toimub veebiliideses (andmed salvestatakse faili config.php).&lt;br /&gt;
&lt;br /&gt;
LogAnalyzeri kasutajaliides näeb välja selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:rsyslog-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* üleval ääres olevate linkide abil saab liikuda otsingu, statistika jt sektsioonide vahel&lt;br /&gt;
* üleval keskel on filter, antud juhul kuvatakse kõigi logiserverit kasutavate arvutite viimase tunni sissekandeid&lt;br /&gt;
* sissekanded esitatakse ridadena, antud juhtumil on näha, et arvuti 192.168.1.210 on tegelenud dhcp'ga&lt;br /&gt;
* veebilehele on määratud kord minutis automaatne värskendus&lt;br /&gt;
&lt;br /&gt;
Kuna logis võivad esineda tundlikud andmed, nt kasutaja sisestas oma kasutaja nime asemele kogemata parooli, siis ei peaks logile saama juurde kõrvalised tegelased.&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* OpenBSD baaskomplekti syslogd oskab ainult UDP protokolli, kui seda arvestada, siis saab logida sealt Rsyslogi.&lt;br /&gt;
* Tundub, et igasuguste Rsyslogi seadistusfaili tehtud muudatuste kehtestamiseks tuleb öelda Rsyslogile stop ja start.&lt;br /&gt;
* osutub, et logger programm ei sobib tcp peal logimiseks; või teisipidi, lõpus peab olema reavahetus&lt;br /&gt;
&lt;br /&gt;
 $ logger -n 192.168.10.85 -p local3.info &amp;quot;test&amp;quot;&lt;br /&gt;
 $ logger -n 192.168.10.85 -T -P 514 -p local3.info &amp;quot;test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
paistab, et netcat toimib&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;test&amp;quot; | netcat -q 0 10.0.9.45 514&lt;br /&gt;
&lt;br /&gt;
* selleks, et kõik kirjed eraldi ridadele kantaks&lt;br /&gt;
&lt;br /&gt;
 $RepeatedMsgReduction off&lt;br /&gt;
&lt;br /&gt;
===Rsyslog v. 8 kasutamise iseärasused===&lt;br /&gt;
&lt;br /&gt;
* Logiserveris erinevatesse failidesse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 template(name=&amp;quot;DailyPerHostLogsMail&amp;quot; type=&amp;quot;string&amp;quot; string=&amp;quot;/srv/logs/%FROMHOST-IP%/mail.%$YEAR%-%$MONTH%-%$DAY%.log&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 if $fromhost-ip startswith '192.168.1.250' and ( $programname == 'spamd' or $programname == 'clamav-milter' ) then&lt;br /&gt;
   {&lt;br /&gt;
     action(type=&amp;quot;omfile&amp;quot; DynaFile=&amp;quot;DailyPerHostLogsMail&amp;quot;)&lt;br /&gt;
     stop&lt;br /&gt;
   }&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* Tundub, et rsyslog v. 8 toetab otse elasticsearch andmebaasi sissekannete tegemist, http://www.rsyslog.com/output-to-elasticsearch-in-logstash-format-kibana-friendly/ (iseasi, kas see 2015 aasta alguses on nii kasutatav kui Logstash, nt GeoIP paistab puuduvat)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install rsyslog-elasticsearch&lt;br /&gt;
&lt;br /&gt;
* rainerscriptiga TLS serveris kasutada /etc/rsyslog.conf failis kõige lõpus (ees vaikimisi olev 'module(type=&amp;quot;imtcp&amp;quot;)' kommenteerida välja)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
..&lt;br /&gt;
$DefaultNetstreamDriverCAFile /var/tmp/s/syslog-ca-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverCertFile /var/tmp/s/syslog-server-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverKeyFile /var/tmp/s/syslog-server-key.key&lt;br /&gt;
$DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
module(load=&amp;quot;imtcp&amp;quot; streamdriver.mode=&amp;quot;1&amp;quot; streamdriver.authmode=&amp;quot;x509/certvalid&amp;quot;)&lt;br /&gt;
input(type=&amp;quot;imtcp&amp;quot; port=&amp;quot;10514&amp;quot; name=&amp;quot;tcp-tls&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* legacy direktiividega TLS serveris kasutada /etc/rsyslog.conf failis kõige lõpus (ees vaikimisi olev 'module(type=&amp;quot;imtcp&amp;quot;)' kommenteerida välja)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$DefaultNetstreamDriverCAFile /var/tmp/s/syslog-ca-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverCertFile /var/tmp/s/syslog-server-cert.crt&lt;br /&gt;
$DefaultNetstreamDriverKeyFile /var/tmp/s/syslog-server-key.key&lt;br /&gt;
$DefaultNetstreamDriver gtls&lt;br /&gt;
&lt;br /&gt;
$ModLoad imtcp&lt;br /&gt;
&lt;br /&gt;
$InputTCPServerStreamDriverMode 1&lt;br /&gt;
$InputTCPServerStreamDriverAuthMode anon&lt;br /&gt;
$InputTCPServerRun 10514 # start up listener at port 10514&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TLS kliendis kasutada /etc/rsyslog.conf failis kõige lõpus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ModLoad lmnsd_gtls&lt;br /&gt;
&lt;br /&gt;
# certificate files&lt;br /&gt;
$DefaultNetstreamDriverCAFile /etc/rsyslog.ca.pem&lt;br /&gt;
$DefaultNetstreamDriverCertFile /etc/rsyslog.crt&lt;br /&gt;
$DefaultNetstreamDriverKeyFile /etc/rsyslog.key&lt;br /&gt;
&lt;br /&gt;
$DefaultNetstreamDriver gtls&lt;br /&gt;
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode&lt;br /&gt;
$ActionSendStreamDriverAuthMode x509/certvalid&lt;br /&gt;
# $ActionSendStreamDriverPermittedPeer rsyslog.moraal.ee&lt;br /&gt;
&lt;br /&gt;
*.* @@rsyslog.moraal.ee:10514 # forward everything to remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testimiseks peab nö tavaline ssl klient saama vastuse, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# openssl s_client -connect 10.80.102.35:1999&lt;br /&gt;
...&lt;br /&gt;
   Start Time: 1496000983&lt;br /&gt;
   Timeout   : 300 (sec)&lt;br /&gt;
   Verify return code: 21 (unable to verify the first certificate)&lt;br /&gt;
---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gnutls-cli -p 1999 logi.moraal.ee --x509cafile /etc/rsyslog-ca.crt&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
- Status: The certificate is trusted.&lt;br /&gt;
- Description: (TLS1.0)-(RSA)-(AES-128-CBC)-(SHA1)&lt;br /&gt;
- Session ID: BA:3A:80:16:79:F2:F6:8B:1A:E9:C1:87:D9:52:D6:53:28:3B:EC:3C:45:52:5A:76:C4:4D:09:F6:D1:B1:5C:A2&lt;br /&gt;
- Version: TLS1.0&lt;br /&gt;
- Key Exchange: RSA&lt;br /&gt;
- Cipher: AES-128-CBC&lt;br /&gt;
- MAC: SHA1&lt;br /&gt;
- Compression: NULL&lt;br /&gt;
- Options: safe renegotiation,&lt;br /&gt;
- Handshake was completed&lt;br /&gt;
&lt;br /&gt;
- Simple Client Mode:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://blog.vuksan.com/2016/05/10/rsyslog-server-tls-termination&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* http://www.rsyslog.com/doc/manual.html&lt;br /&gt;
* http://wiki.rsyslog.com/index.php/Main_Page&lt;br /&gt;
* http://en.wikipedia.org/wiki/Rsyslog&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Neural_Network&amp;diff=4912</id>
		<title>Neural Network</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Neural_Network&amp;diff=4912"/>
		<updated>2026-07-29T23:11:52Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Kasulikud lisamaterjalid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* neuron - funktsioon, millel on väärtus&lt;br /&gt;
* weight&lt;br /&gt;
* base&lt;br /&gt;
* activation&lt;br /&gt;
* forward pass&lt;br /&gt;
* backpropagation&lt;br /&gt;
* quantization&lt;br /&gt;
&lt;br /&gt;
LLM mudeli omadused&lt;br /&gt;
&lt;br /&gt;
* number of parameters - nt 8b (billion - 10^9)&lt;br /&gt;
* token&lt;br /&gt;
* context lenght - mudelil on max context pikkuse piir (alla selle saab kasutada ja seda otsustab llm-klient, nt 128k)&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* neural network ja selle juurde kuuluv tehnoloogia aastal 2026 on pigem empiiriline kui täppisteadus&lt;br /&gt;
* neural network on sarnane atmosfäärifüüsikaga - molekuli tasemel on asjad väga selged, aga tohutu mastaap toob kaasa uue kvaliteediga nähtusi - neid nähtusi käsitletakse järgmise abstraktsiooni taseme tööriistadega - fluid dynamics&lt;br /&gt;
* emergent capabilities - neural network nähtusele on iseloomulik, et teatud nö horisondi ületamisel ilmuvad uued võimed (ootamatult)&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=bVQUSndDllU&lt;br /&gt;
* https://web.htk.tlu.ee/digitaru/tarkvara2/chapter/narvivorgud-ja-pytorch/&lt;br /&gt;
* https://courses.cs.ut.ee/2020/Tehisintellekti_algkursus/spring/Main/PARTIIIVorgud&lt;br /&gt;
* https://tartunlp.ai/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Ollama_-_MacOS&amp;diff=4911</id>
		<title>Ollama - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Ollama_-_MacOS&amp;diff=4911"/>
		<updated>2026-07-28T22:45:01Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Paigaldamine ja käivitamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Tingimata ei ole see vajalik, aga kui pressida Sign In ollama veebikohas https://ollama.com/ ja nt Google kontoga sisse logida, paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260728-ollama-02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Ollama tarkvara saab kopeerida aadressilt https://ollama.com/download/mac&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260728-ollama-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama pull mistral:7b&lt;br /&gt;
pulling manifest&lt;br /&gt;
pulling f5074b1221da: ... 100% &lt;br /&gt;
verifying sha256 digest&lt;br /&gt;
writing manifest&lt;br /&gt;
success&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks käsurealt, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama run mistral:7b&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; please list from smaller to bigger 4 first amicable numbers&lt;br /&gt;
 Amicable numbers are pairs of integers (u, v) such that the sum of the proper divisors of u is equal to v, and the sum of the proper divisors of v is equal to u. The first four&lt;br /&gt;
amicable numbers are:&lt;br /&gt;
&lt;br /&gt;
1. (220, 284)&lt;br /&gt;
2. (1184, 1210)&lt;br /&gt;
3. (2620, 2924)&lt;br /&gt;
4. (5020, 5564)&lt;br /&gt;
&lt;br /&gt;
These numbers are sorted from smallest to largest: (220, 284), (1184, 1210), (2620, 2924), and (5020, 5564).&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; Send a message (/? for help)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Võrgu seadistamine, eeldusel, et&lt;br /&gt;
&lt;br /&gt;
* ollama kliendiks on claude-code-in-docker vms&lt;br /&gt;
* macos peal on olemas utm virtualiseerime (st on virt liides 192.168.64.1)&lt;br /&gt;
&lt;br /&gt;
on võimalik bindida ollama macos sisemisele (kohtvõrgust jm mitte ligipääsetavale liidesele-ip-aadressile) mida saab aga konteinerist kätte&lt;br /&gt;
&lt;br /&gt;
* sulgeda ollama rakendus&lt;br /&gt;
* tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % launchctl setenv OLLAMA_HOST &amp;quot;192.168.64.1:11434&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % launchctl getenv OLLAMA_HOST&lt;br /&gt;
192.168.64.1:11434&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* käivitada ollama rakendus&lt;br /&gt;
&lt;br /&gt;
===Mudelid===&lt;br /&gt;
&lt;br /&gt;
====Pilvepõhised====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama show gemma4:cloud&lt;br /&gt;
  Model&lt;br /&gt;
    architecture        gemma4&lt;br /&gt;
    parameters          32682372656&lt;br /&gt;
    context length      262144&lt;br /&gt;
    embedding length    5376&lt;br /&gt;
    quantization        BF16&lt;br /&gt;
&lt;br /&gt;
  Capabilities&lt;br /&gt;
    completion&lt;br /&gt;
    thinking&lt;br /&gt;
    tools&lt;br /&gt;
    vision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://enos.itcollege.ee/~edmund/it-didaktika/2025-08-15-IT-6petajad-suvekool/vabavara-TI-ajastul.pdf&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4910</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4910"/>
		<updated>2026-07-28T22:29:50Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Trash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===Rancher desktop===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4909</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4909"/>
		<updated>2026-07-28T22:29:41Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Trash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===Rancher desktop===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|500px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4908</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4908"/>
		<updated>2026-07-28T22:29:33Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Trash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===Rancher desktop===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260729-macos-trash-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Fail:20260729-macos-trash-01.png&amp;diff=4907</id>
		<title>Fail:20260729-macos-trash-01.png</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Fail:20260729-macos-trash-01.png&amp;diff=4907"/>
		<updated>2026-07-28T22:29:11Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4906</id>
		<title>MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=MacOS_operatsioonis%C3%BCsteemi_kasutamine_f%C3%BC%C3%BCsilise_MacBook_Air_M4_arvutiga&amp;diff=4906"/>
		<updated>2026-07-28T22:26:51Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Kasulikud lisamaterjalid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Apple system level innovations&lt;br /&gt;
&lt;br /&gt;
* XNU hybrid kernel (Mach + BSD + I/O Kit).&lt;br /&gt;
* Read-only, sealed root filesystem.&lt;br /&gt;
* APFS (snapshots, sealing, native encryption).&lt;br /&gt;
* Secure Enclave (separate CPU/resources).&lt;br /&gt;
* Cryptographic boot chain (from Boot ROM → kernel → apps).&lt;br /&gt;
* System Integrity Protection (SIP).&lt;br /&gt;
* Gatekeeper &amp;amp; notarization.&lt;br /&gt;
* Launchd (unified service/daemon manager).&lt;br /&gt;
* Unified logging &amp;amp; tracing (dtrace, signpost).&lt;br /&gt;
* Rosetta + Universal binaries (smooth arch transitions).&lt;br /&gt;
* Quartz compositor + Core Animation (graphics pipeline).&lt;br /&gt;
* Metal API (low-level GPU abstraction).&lt;br /&gt;
* mälu pakkimine käigult (vt Activity Monitor -&amp;gt; Memory -&amp;gt; Bottom)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* Aqua - desktop visuaal&lt;br /&gt;
* Quartz - desktop mootor&lt;br /&gt;
* UTM - qemu-based virtulization&lt;br /&gt;
* AWDL (Apple Wireless Direct Link) - midagi Wifi-Direct laadset&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Apple lahendustele on iseloomulik, et sama it shop kontrolli all on nii riistvara kui tarkvara (põhimõtteliselt sarnane olukord nagu kunagi Sun sparc lahendustega)&lt;br /&gt;
* macos on pigem threaded orienteeritud lahendus (mitte process-is-single-thread) - märksõnad: Grand Central Dispatch, Operation Queues, Swift Concurrency)&lt;br /&gt;
* nn 'giant lock (https://en.wikipedia.org/wiki/Giant_lock)' probleem on macos puhul pigem praktiliselt lahendatud, ju see on sama millest openbsd vabastamisega tegeldakse, nt https://www.openbsd.org/76.html - 'Removed net lock from sysctl(8) net.inet.ip.forwarding, net.inet6.ip6.forwarding, net.inet6.ip6.redirect, net.inet.ip.directed-broadcast.'&lt;br /&gt;
&lt;br /&gt;
===Riistvara===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* MacBook Air 13&amp;quot; M4 protsessoriga arvuti&lt;br /&gt;
* compute resource - 1. cpu (risc arm), 2. gpu, 3. secure enclave, 4. neural engine&lt;br /&gt;
* 16 G ddr5 non-ecc memory - kõik compute resource'id kasutavad sama mälu, st ühisest pool'ist võetakse kasutuseks, ja antakse tagasi jne&lt;br /&gt;
* kaks Dell U2725QE monitori&lt;br /&gt;
* kaks thunderbolt 4 kaablit&lt;br /&gt;
* Logitech nö 9 eurone pc hiir&lt;br /&gt;
* lai apple magic keyboard&lt;br /&gt;
* väline andmekandja - SanDisk PRO-G40, https://www.apple.com/shop/mac/accessories/storage?f=thunderbolt3&amp;amp;fh=3783%2B47f6&amp;amp;page=1&lt;br /&gt;
* port saver - https://www.delock.com/produkt/66433/merkmale.html&lt;br /&gt;
* arvuti puhul ei ole kohta nagu pc arvuti puhul on 'enter bios' või 'enter setup' - ainuke realistlik sisenemiskoht on hoides alla toite nuppu arvuti käivitumise ajal&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* macbookpro, air jt on non-ecc mäluga; mac pro ja mac studio on ecc mäluga&lt;br /&gt;
* arvuti on ühendatud ühe monitoriga TB4 kaabli abil&lt;br /&gt;
* esimese monitoriga on ühendatud usb klaviatuur ja hiir&lt;br /&gt;
* arvuti võrk töötab wifi abil, aga saaks töötada ka monitori rj45 ethernet kaabliga (arvutisse saabub üle thunderbolt neli nö signaali: 1. usb klaviatuur ja hiir, 2. ethenet, 3. video, 4. toide)&lt;br /&gt;
* teine monitor on ühendatud esimesega teise TB4 kaabliga nn daisy-chain ühenduses&lt;br /&gt;
* tundub, et monitoride pilt on vastuvõetava kvaliteediga ka non-4k režiimis (nt 3008 x 1692)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system_profiler SPHardwareDataType        # CPU, memory, model&lt;br /&gt;
system_profiler SPDisplaysDataType        # GPU / monitor info&lt;br /&gt;
system_profiler SPUSBDataType             # USB controllers and devices&lt;br /&gt;
system_profiler SPThunderboltDataType     # Thunderbolt controllers&lt;br /&gt;
system_profiler SPNetworkDataType         # Network interfaces&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Näiteks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPHardwareDataType&lt;br /&gt;
Hardware:&lt;br /&gt;
&lt;br /&gt;
    Hardware Overview:&lt;br /&gt;
&lt;br /&gt;
      Model Name: MacBook Air&lt;br /&gt;
      Model Identifier: Mac16,12&lt;br /&gt;
      Model Number: MW0W3KS/A&lt;br /&gt;
      Chip: Apple M4&lt;br /&gt;
      Total Number of Cores: 10 (4 performance and 6 efficiency)&lt;br /&gt;
      Memory: 16 GB&lt;br /&gt;
      System Firmware Version: 11881.81.2&lt;br /&gt;
      OS Loader Version: 11881.81.2&lt;br /&gt;
      Serial Number (system): KGHGX652VT&lt;br /&gt;
      Hardware UUID: 27AE0C7C-DCC6-5F5C-A133-8F10726347EC&lt;br /&gt;
      Provisioning UDID: 00008132-001A618E0121801C&lt;br /&gt;
      Activation Lock Status: Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPDisplaysDataType&lt;br /&gt;
Graphics/Displays:&lt;br /&gt;
&lt;br /&gt;
    Apple M4:&lt;br /&gt;
&lt;br /&gt;
      Chipset Model: Apple M4&lt;br /&gt;
      Type: GPU&lt;br /&gt;
      Bus: Built-In&lt;br /&gt;
      Total Number of Cores: 8&lt;br /&gt;
      Vendor: Apple (0x106b)&lt;br /&gt;
      Metal Support: Metal 3&lt;br /&gt;
      Displays:&lt;br /&gt;
        Color LCD:&lt;br /&gt;
          Display Type: Built-in Liquid Retina Display&lt;br /&gt;
          Resolution: 2560 x 1664 Retina&lt;br /&gt;
          Main Display: Yes&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Automatically Adjust Brightness: Yes&lt;br /&gt;
          Connection Type: Internal&lt;br /&gt;
        DELL U2725QE:&lt;br /&gt;
          Resolution: 6016 x 3384&lt;br /&gt;
          UI Looks like: 3008 x 1692 @ 120.00Hz&lt;br /&gt;
          Mirror: Off&lt;br /&gt;
          Online: Yes&lt;br /&gt;
          Rotation: Supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Neural Engine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* On-device machine learning&lt;br /&gt;
* Siri's voice recognition&lt;br /&gt;
* Image analysis in Photos&lt;br /&gt;
* Real-time video processing in apps like FaceTime&lt;br /&gt;
&lt;br /&gt;
====Misc OS====&lt;br /&gt;
&lt;br /&gt;
* cpu instructions - toimuvad kernel -&amp;gt; cpu vahel&lt;br /&gt;
* syscalls - toimuvad rakendustarkvara -&amp;gt; kernel vahel&lt;br /&gt;
* ei ole user-space-syscall'isid - kõik syscallid on nö kernel-space-syscall'd ehk lihtsalt syscall'id&lt;br /&gt;
* macos ei ole real-time operating system&lt;br /&gt;
* macos puhul on realiseeritud preemtion st ka tundlike kerneli kihi tegevuste puhul on võimalik teha nö katkestusi-tagasipöördumisi&lt;br /&gt;
* ei ole sellist storage-io lahenduste mitmekesisust nagu on linux puhul (nt io-uring, libaio) - nimetatakse 'Dispatch I/O'&lt;br /&gt;
* ei ole sellist network-io lahenduste mitmekesisust nagu on linux puhul (nt dpdk) - nimetatakse 'Network Framework'&lt;br /&gt;
* dpdk, rdma jms puudub kuna macos puhul tegevused käivad läbi kernel selleks, et toimuv oleks maksimaalselt kontrolli all (toimub kernel by-pass)&lt;br /&gt;
* tcp-offload jms siiski on kasutusel - kernel kontrollib siis ikkagi toimivat piisavalt&lt;br /&gt;
* XNU kernel ei võimalda linux namespace ja cgroup laadseid nö isolatsioone - st naturaalselt ei ole olemas native macos konteinerindust (nagu on linux jaoks olemas docker või freebsd jaoks daemonless) - kui on vajalik conteinerindus, siis on lahenduseks kasutada konteineri ja xnu kerneli vahel lisa kihti - linux-arm64)&lt;br /&gt;
&lt;br /&gt;
Palju on https://www.openbsd.org/innovations.html nimekirjast olemas macos puhul, kas otseselt või siis kontseptuaalselt, aga implementatsioon on macos juhtumile iseloomulik&lt;br /&gt;
&lt;br /&gt;
* OpenBSD: retguard uses a unique XOR-based canary on a function's return address to prevent a specific type of buffer overflow attack (ROP).&lt;br /&gt;
* macOS: macOS does not have a feature called retguard. However, the same concept is implemented by Apple's Clang compiler. macOS has used stack canaries (or stack cookies) for years, which are values placed on the stack to detect if the return address has been overwritten. Both systems use different implementations to solve the same problem.&lt;br /&gt;
* OpenBSD: pledge is a security mechanism where a program &amp;quot;pledges&amp;quot; to only use a limited set of system calls. If it tries to make a syscall outside of its &amp;quot;pledge,&amp;quot; the program is killed. &lt;br /&gt;
* macOS: macOS does not have a pledge equivalent. The concept is not present in the same form. Instead, macOS uses sandboxing, which is a more comprehensive and declarative security model. Sandboxing restricts an application's access to files, network connections, and system resources based on a detailed set of rules (called entitlements) defined in a profile, which is part of the application itself. It's a different, but arguably more powerful, approach to the same problem.&lt;br /&gt;
* OpenBSD: W^X is a fundamental security policy that ensures a memory page is either writable or executable, but not both.&lt;br /&gt;
* macOS: This concept is directly implemented and has been a core security feature of macOS for many years. It is an integral part of the kernel and is enforced on all applications, making it impossible for an attacker to write shellcode to a memory page and then execute it.&lt;br /&gt;
* OpenBSD has long been a pioneer in security, and its implementation of ASLR is a core part of its &amp;quot;secure by default&amp;quot; philosophy.&lt;br /&gt;
* macOS introduced ASLR in Mac OS X Leopard (10.5) and has since continuously improved and strengthened it with each new release. Today, ASLR on macOS is a mandatory security feature for all modern applications.&lt;br /&gt;
* OpenBSD relinking&lt;br /&gt;
* Randomizing per-process: Instead of a single, system-wide reordering at boot, dyld randomizes the base addresses of shared libraries for every single process that is launched.&lt;br /&gt;
* Using a shared cache: To speed up program loading, macOS bundles commonly used system libraries into a single large file called the dyld_shared_cache. The location of this entire cache in memory is randomized at boot, and all processes then use this randomized location.&lt;br /&gt;
&lt;br /&gt;
====User mode vs Kernel mode====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* User mode ja Kernel mode on kaks erinevat protsessori olekut&lt;br /&gt;
* esimesel puhul käitub arvuti nagu nö loogiline-masin, teisel juhul nagu riistvaraline-masin&lt;br /&gt;
* kontseptuaalselt võiks ette kujutada, et arvutis on kaks protsessorit - üks on pidevalt füüsilises ja teine loogilises olekus&lt;br /&gt;
* loogilist laadi tegevusteks on nt protsessi mällu laaditud mälu abil andmete sorteerimine, st kõik tegevused on taandatud matemaatikaks&lt;br /&gt;
* füüsilist laadi tegevusteks on nt võrku andmete saatmine, või plokkseadmelt andmete lugemine&lt;br /&gt;
&lt;br /&gt;
====Seadme draiver====&lt;br /&gt;
&lt;br /&gt;
Ettekujutuseks on nvme storage seade. Selleks, et andmed jõuaksid füüsilise plokkseadme pealt ühe user-space protsessi mällu nt postgresql andmebaas, liiguvad andmed läbi sellistest lõikudest koosneva teekonna&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                           plokkseade&lt;br /&gt;
control plain peal toimuv käsu tulemusel     -&amp;gt; plokkseadmega seostatud fragment arvuti rom mälust&lt;br /&gt;
                                               -&amp;gt; cpu kopeerib andmed oma registrite abil user-space mällu&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SanDisk PRO-G40====&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Thunderbolt 4 porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250916-imre-sandisk-pro-g40-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse pcie siinile ühendatud nvme seadmena&lt;br /&gt;
&lt;br /&gt;
Arvutisse seadmega kaasas oleva Thunderbolt 3 kaabliga otse Non-Thuderbolt-USB-C porti ühendatud seade paistab selline&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* seadet koheldakse usb-storage ühendatud plokkseadmena&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
&lt;br /&gt;
====Magic Apple Keyboard====&lt;br /&gt;
&lt;br /&gt;
klahvikombinatsioonid&lt;br /&gt;
&lt;br /&gt;
* command + nool paremale/vasakule - tekstikursori viimine vastavalt rea lõppu või algusse&lt;br /&gt;
* command + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt rea lõppu või algusse&lt;br /&gt;
* command + shift + suurem/väiksem - mitme aknalise programmi akende vahel liikumine (nt iterm/terminal/chrome/safari)&lt;br /&gt;
* option + nool paremale/vasakule - tekstikursori viimine vastavalt järgmise või eelmise sõna juurde&lt;br /&gt;
* option + nool paremale/vasakule - teksti plokki võtmine kursori asukohast alates vastavalt sõna edasi või tagasi&lt;br /&gt;
* command + tühik - spotlight otsingu avamine&lt;br /&gt;
* control + nool paremal/vasakule - järgmise virtuaalse desktop juurde liikumine (spaces)&lt;br /&gt;
* control + nool üles/esc - xxx vaate avamine (üleval on virtuaalsete desktopide riba)&lt;br /&gt;
* command + nool üles/alla - teksti algusse või lõppu liikumine (nt chrome brauseris)&lt;br /&gt;
* option + nool üles/alla - tekstis nö page-up-page-down võtta liikumine (nt chrome brauseris)&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
&lt;br /&gt;
gestured&lt;br /&gt;
&lt;br /&gt;
* kahe sõrmega üles-alla swipe - hiirega skrollimine&lt;br /&gt;
* kolme sõrmega vasakule-paremale swipe - virtuaalsete desktopide vahel liikumine&lt;br /&gt;
&lt;br /&gt;
===alt-grab - BetterTouchTool (BTT)===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Tegevuse eesmärk on alt-grab kasutamine akna asukohta muutmiseks ja akna suuruse muutmiseks. Linux desktop (gnome, xfce4 jt) puhul paistab see olevat tavaline, et akna asukoha muutmiseks ei pea tingimata haarama hiire vasaku nupuga akna tiitelribast ja siis vedama; või akna suuruse muutmiseks haarama hiire vasaku nupuga täpselt nurgast või servast ja siis vedama. Piisab hoida vasakut alt klahvi all ja haarata kuskilt akna seest hiire vasaku nupuga ning vedada; või hoida vasakut alt klahivi all ja haarata akna seest nurga lähedusest hiire parema nupuga ning vedada.&lt;br /&gt;
&lt;br /&gt;
====BTT kopeerimine ja paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* https://folivora.ai/&lt;br /&gt;
* tundub, et BTT on usaldusväärne tarkvara (nt https://www.macworld.com/article/551700/mac-gems-bettertouchtool-review.html)&lt;br /&gt;
* BetterTouchTool ei ole tasuta tarkvara&lt;br /&gt;
* BetterTouchTool ei ole kõige parem lahendus nn alt-drag jaoks, aga paistab, et paremat ka pole (ja tundub, et ei saa olla kuna MacOS nö sisemiselt eriti ei võimalda alt-drag laadi tegevusi)&lt;br /&gt;
* BTT abil saab akna suurust muuta ainult paremas alumises nurgas&lt;br /&gt;
* akent ei saa ekraanilt osaliselt välja suruda üles suunas (nt alla saab)&lt;br /&gt;
* tundub, et paigaldamisel antakse rakendusele rikkalikult privileege&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse down', millele vastab tegevus (action) 'Start Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Leftclick + left alt + mouse up', millele vastab tegevus 'Stop Moving Windows'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse down', millele vastab tegevus 'Start Resizing'&lt;br /&gt;
* seadistatakse nö 'Top Level Trigger' väärtusega 'Rightclick + left alt + mouse up', millele vastab tegevus 'Stop Resizing'&lt;br /&gt;
&lt;br /&gt;
alt-drag seadistamine paistab selliselt, rightclick triggeri ja vastava tegevuse (action) kirjeldamine, basic&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud programmid on For All Apps st kirjeldatavad võimed tekivad kõigi programmide akendele&lt;br /&gt;
* valitud seade on Normal Mouse (mitte magic mouse)&lt;br /&gt;
* on valitud ka modifer - opt (magic keyboard klahv 'option')&lt;br /&gt;
&lt;br /&gt;
ning advanced&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-btt-rightclick-02.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Trigger Conditions - Trigger on Mouse Down (vaikimisi)&lt;br /&gt;
&lt;br /&gt;
Analoogselt kirjeldatakse ülejäänud triggerid ja tegevused - seejuures tuleb kindlasti valida modifier, vastasel korral võib olla väga halb kasutuskogemus kuna hiire vasaku klahvi nö tavaline töö on häiritud).&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja natuke puudulikumalt kui linux desktop keskkonnas&lt;br /&gt;
&lt;br /&gt;
* suurust saab muuta vaid alumist paremat nurka sisse või väljapoole surudes (linux all saab tegeleda igas nurgas)&lt;br /&gt;
* asukohta saab muuta kuid see mõjub fookuses olevale aknale (vahel on see üsna nö eba kogemus, et hiir on mitte fookuses oleva akna kohal ja kõrval oleva akna asukoht muutub)&lt;br /&gt;
* tegelemise ajal on aken nö täidetud (linux all saab valida kas aken paistab nö täidetuna või wireframe'ina)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://community.folivora.ai/t/resize-window-on-modifier-right-mouse-button-press/41430&lt;br /&gt;
&lt;br /&gt;
===iterm2===&lt;br /&gt;
&lt;br /&gt;
iterm2 võimaldab muu hulgas&lt;br /&gt;
&lt;br /&gt;
* akende arrangement ettevalmistusi - st akende avamist komplektidena, seejuures logitakse automaatselt serveritesse ssh abil sisse, näiteks&lt;br /&gt;
* profile abil värvikasutust kirjeldada (taust, tekst, esiletoodud (bold), allajoonitud tekst jms)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260302-iterm2-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
avades&lt;br /&gt;
&lt;br /&gt;
 iTerm2 -&amp;gt; Settings -&amp;gt; Profiles&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* esiletoodud tekst esitatakse roheliselt (seda esineb linux puhul nt top, 'systemctl status postfix' ja dmesg väljundis)&lt;br /&gt;
&lt;br /&gt;
aknale kerge ääre näitamine&lt;br /&gt;
&lt;br /&gt;
  iTerm2 -&amp;gt; Settings -&amp;gt; Appearence -&amp;gt; Windows -&amp;gt; Aestetics -&amp;gt; Heavy border around windows in light mode&lt;br /&gt;
&lt;br /&gt;
Profiilid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r wrx &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Command&amp;quot; : &amp;quot;ssh root@pve-wrx90e&amp;quot;,&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/iTerm2/DynamicProfiles/pve-wrx90e.json:  &amp;quot;Name&amp;quot; : &amp;quot;pve-wrx90e&amp;quot;,&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % egrep -r svc &amp;quot;/Users/imreoolberg/Library/Application Support/iTerm2&amp;quot;&lt;br /&gt;
egrep: /Users/imreoolberg/Library/Application Support/iTerm2/iterm2-daemon-1.socket: Operation not supported on socket&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % plutil -p ~/Library/Preferences/com.googlecode.iterm2.plist | grep -i &amp;quot;pve-svc-0&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-01&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Name&amp;quot; =&amp;gt; &amp;quot;pve-svc-02&amp;quot;&lt;br /&gt;
                      &amp;quot;Command&amp;quot; =&amp;gt; &amp;quot;ssh root@pve-svc-02&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tarkvara uuendamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260704-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
* ei toimu app store kaudu&lt;br /&gt;
* toimib rakenduse enda menüüst&lt;br /&gt;
&lt;br /&gt;
===timemachine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* võrgus failiserver&lt;br /&gt;
* võrgus avahi vms server&lt;br /&gt;
* macos süsteem&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos webgui kaudu ei õnnestu samba põhist tm lahendust ära seadistada, tuleb toimetada käsurealt (hüpotees on, et kuna cifs failisüsteemi monteerimisel Finder abil tekib .DS_Store vms faile automaatselt share peale, siis see eksitab tm lahendust&lt;br /&gt;
&lt;br /&gt;
Samba serveri ettevalmistamine, Debian v. 12 (samba v. 4.17)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install --no-install-recommends samba&lt;br /&gt;
# apt-get install samba-vfs-modules&lt;br /&gt;
&lt;br /&gt;
# cat /etc/samba/smb.conf&lt;br /&gt;
[global]&lt;br /&gt;
   client min protocol = SMB3&lt;br /&gt;
   client max protocol = SMB3&lt;br /&gt;
   workgroup = MORAALCIFS&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
   server role = standalone server&lt;br /&gt;
&lt;br /&gt;
[timemachine]&lt;br /&gt;
   path = /zpool_wdc/timemachine/&lt;br /&gt;
   browsable =yes&lt;br /&gt;
   writable = yes&lt;br /&gt;
   guest ok = no&lt;br /&gt;
   valid users = timemachine&lt;br /&gt;
   smb encrypt = required&lt;br /&gt;
   vfs objects = catia fruit streams_xattr&lt;br /&gt;
   fruit:metadata = stream&lt;br /&gt;
   fruit:resource = file&lt;br /&gt;
   fruit:time machine = yes&lt;br /&gt;
   fruit:time machine max size = 500G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart smbd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varundatava arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil setdestination &amp;quot;smb://timemachine:parool@192.168.10.168/timemachine&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : 2E3ED96D-4626-4D55-BDD5-A0ED6CDDF973&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Varunduse käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil startbackup --auto&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'process == &amp;quot;backupd&amp;quot;' --info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   157Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     709     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   157Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   157Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   157Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   157Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   157Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                     500Gi    20Gi   480Gi     5%     21M  503M    4%   /Volumes/.timemachine/192.168.10.168/CEF57214-AE85-44D1-86EB-D0D69E41EA1C/timemachine&lt;br /&gt;
/dev/disk5s1                                                  15Ti    20Gi   480Gi     4%    383k  5.0G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   157Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-015533.backup/2025-09-05-015533.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listlocalsnapshots /&lt;br /&gt;
Snapshots for volume group containing disk /:&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local&lt;br /&gt;
com.apple.os.update-35F83766A7728F08A2DF1CFD45DF39CAB4C00F8C1A4A0DBECD314305426E5C549569F373D02B15DDC5C3E22E8E9D0A2F&lt;br /&gt;
com.apple.os.update-4278EFCBF37708F6ABE958C2E59447D754411B4697E4891DE3D58BC37F433306&lt;br /&gt;
com.apple.os.update-MSUPrepareUpdate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi varundamine====&lt;br /&gt;
&lt;br /&gt;
Time machine graafilise liidese peal, kui on kirjeldatud mitu time-machine varunduskohta, saab ühe peal hiire parema klõpsuga avada hüpikmenüü ja öelda, et käivitada varundus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251109-timemachine-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - üksiku faili taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutamine - süsteemi taastamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
tm destinationinfo esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil destinationinfo&lt;br /&gt;
&amp;gt; ==================================================&lt;br /&gt;
Name          : volume-tm-backup-01&lt;br /&gt;
Kind          : Local&lt;br /&gt;
Mount Point   : /Volumes/volume-tm-backup-01 1&lt;br /&gt;
ID            : B23C58B0-C5F1-4FE6-8CCE-B90B5FAA3C7A&lt;br /&gt;
====================================================&lt;br /&gt;
Name          : timemachine&lt;br /&gt;
Kind          : Network&lt;br /&gt;
URL           : smb://timemachine@192.168.10.168/timemachine&lt;br /&gt;
ID            : ECA95A15-3033-460C-B928-46E809CC1C58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
korra time machine gui utiliidiga läbi browsitud taaste vaates (tundub, et siis ta nö monteerib külge jne), df&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                     Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                                228Gi    10Gi    99Gi    10%    427k  1.0G    0%   /&lt;br /&gt;
devfs                                                         219Ki   219Ki     0Bi   100%     758     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                  228Gi    24Ki    99Gi     1%       0  1.0G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                  228Gi    13Gi    99Gi    12%    2.6k  1.0G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                  228Gi   7.5Mi    99Gi     1%     104  1.0G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                  500Mi   6.0Mi   480Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                  500Mi   6.0Mi   480Mi     2%      38  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                  500Mi   3.6Mi   480Mi     1%     100  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                  228Gi    56Gi    99Gi    37%    696k  1.0G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                   0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk7s1                                                  3.6Ti   5.9Gi   3.5Ti     1%      24   38G    0%   /Volumes/PRO-G40&lt;br /&gt;
/dev/disk7s3                                                  3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/volume-tm-backup-01&lt;br /&gt;
com.apple.TimeMachine.2025-09-19-012830.backup@/dev/disk7s3   3.6Ti   122Gi   3.5Ti     4%    541k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213757.local@/dev/disk3s5    228Gi    55Gi    99Gi    36%    687k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-213757/Data&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-213824.backup@/dev/disk7s3   3.6Ti   142Gi   3.5Ti     4%    569k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-165402.backup@/dev/disk7s3   3.6Ti   140Gi   3.5Ti     4%    568k   38G    0%   /Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-160153.local@/dev/disk3s5    228Gi    50Gi    99Gi    34%    711k  1.0G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-11-09-160153/Data&lt;br /&gt;
//timemachine@192.168.10.168/timemachine                      500Gi    71Gi   429Gi    15%     74M  450M   14%   /Volumes/.timemachine/192.168.10.168/D4D414B7-3607-44F6-8151-4F53ECDEF964/timemachine&lt;br /&gt;
/dev/disk5s1                                                   15Ti    44Gi   429Gi    10%    568k  4.5G    0%   /Volumes/Backups of Imre’s MacBook Air&lt;br /&gt;
com.apple.TimeMachine.2025-11-09-162452.backup@/dev/disk5s1    15Ti    78Gi   429Gi    16%    568k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-014511.backup@/dev/disk5s1    15Ti    23Gi   429Gi     6%    500k  4.5G    0%   /Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
samal ajal diskutil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            11.3 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 11.3 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 14.2 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    60.0 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      24.6 KB    disk3s6&lt;br /&gt;
   7:                APFS Volume macOS Restored - Data   40.1 GB    disk3s7&lt;br /&gt;
   8:                APFS Volume macOS Restored          11.3 GB    disk3s8&lt;br /&gt;
&lt;br /&gt;
/dev/disk4 (disk image):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:                                                   +16.0 TB    disk4&lt;br /&gt;
&lt;br /&gt;
/dev/disk5 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +16.0 TB    disk5&lt;br /&gt;
                                 Physical Store disk4&lt;br /&gt;
   1:                APFS Volume Backups of Imre’s Ma... 47.7 GB    disk5s1&lt;br /&gt;
&lt;br /&gt;
/dev/disk6 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *4.0 TB     disk6&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk6s1&lt;br /&gt;
   2:                 Apple_APFS Container disk7         4.0 TB     disk6s2&lt;br /&gt;
&lt;br /&gt;
/dev/disk7 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +4.0 TB     disk7&lt;br /&gt;
                                 Physical Store disk6s2&lt;br /&gt;
   1:                APFS Volume PRO-G40                 6.4 GB     disk7s1&lt;br /&gt;
   2:                APFS Volume volume-tm-backup-01     152.3 GB   disk7s3&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrgus samba põhise time-machine varundusele sünteesitakse vastav plokkseade /dev/disk4 ja omakorda /dev/disk5&lt;br /&gt;
* lokaalselt külge kinnitatud välisele sandisk-pro-g40 plokkseade on /dev/disk6 ja edasi on seal sünteesitud /dev/disk7 ning eriti /dev/disk7s3&lt;br /&gt;
* samba serveris on tm varunduse jaoks üks kataloog välja jagatud 16 TB suuremalt failisüsteemilt, st sellest siin väljundis 16 TB märge&lt;br /&gt;
&lt;br /&gt;
üksiku tm ressursi kohta info küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/Backups\ of\ Imre’s\ MacBook\ Air&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-09-05-014511.backup/2025-09-05-014511.backup&lt;br /&gt;
/Volumes/.timemachine/E66ECC48-9693-41FB-82C4-3860C334D43D/2025-11-09-162452.backup/2025-11-09-162452.backup&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# tmutil listbackups -d /Volumes/volume-tm-backup-01&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-09-19-012830.backup/2025-09-19-012830.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-165402.backup/2025-11-09-165402.backup&lt;br /&gt;
/Volumes/.timemachine/35BBA18F-DB62-4677-950D-8894EDED1C88/2025-11-09-213824.backup/2025-11-09-213824.backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* Seal&lt;br /&gt;
* Secure Enclave&lt;br /&gt;
* FileVault&lt;br /&gt;
* Volume Group&lt;br /&gt;
&lt;br /&gt;
Tööpõhimõte&lt;br /&gt;
&lt;br /&gt;
* füüsiline salvestusseade on jaotatud partitsioonideks&lt;br /&gt;
* partitsioonile vastab nn konteiner&lt;br /&gt;
* konteinerile vastab midagi lvm volume group või zfs pool laadset&lt;br /&gt;
* konteineris sisaldub hulk volume'eid&lt;br /&gt;
* volumile vastab failisüsteem (apfs - apple file system)&lt;br /&gt;
* sama konteineri sees asuvad failisüsteemid opereerivad sama jagatud vaba ruumi tingimustes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list&lt;br /&gt;
/dev/disk0 (internal, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *251.0 GB   disk0&lt;br /&gt;
   1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1&lt;br /&gt;
   2:                 Apple_APFS Container disk3         245.1 GB   disk0s2&lt;br /&gt;
   3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3&lt;br /&gt;
&lt;br /&gt;
/dev/disk3 (synthesized):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      APFS Container Scheme -                      +245.1 GB   disk3&lt;br /&gt;
                                 Physical Store disk0s2&lt;br /&gt;
   1:                APFS Volume Macintosh HD            16.0 GB    disk3s1&lt;br /&gt;
   2:              APFS Snapshot com.apple.os.update-... 16.0 GB    disk3s1s1&lt;br /&gt;
   3:                APFS Volume Preboot                 13.1 GB    disk3s2&lt;br /&gt;
   4:                APFS Volume Recovery                2.1 GB     disk3s3&lt;br /&gt;
   5:                APFS Volume Data                    45.9 GB    disk3s5&lt;br /&gt;
   6:                APFS Volume VM                      20.5 KB    disk3s6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h&lt;br /&gt;
Filesystem                                                    Size    Used   Avail Capacity iused ifree %iused  Mounted on&lt;br /&gt;
/dev/disk3s1s1                                               228Gi    15Gi   156Gi     9%    412k  1.6G    0%   /&lt;br /&gt;
devfs                                                        205Ki   205Ki     0Bi   100%     713     0  100%   /dev&lt;br /&gt;
/dev/disk3s6                                                 228Gi    20Ki   156Gi     1%       0  1.6G    0%   /System/Volumes/VM&lt;br /&gt;
/dev/disk3s2                                                 228Gi    12Gi   156Gi     8%    1.3k  1.6G    0%   /System/Volumes/Preboot&lt;br /&gt;
/dev/disk3s4                                                 228Gi   692Mi   156Gi     1%     301  1.6G    0%   /System/Volumes/Update&lt;br /&gt;
/dev/disk1s2                                                 500Mi   6.0Mi   482Mi     2%       1  4.9M    0%   /System/Volumes/xarts&lt;br /&gt;
/dev/disk1s1                                                 500Mi   5.8Mi   482Mi     2%      35  4.9M    0%   /System/Volumes/iSCPreboot&lt;br /&gt;
/dev/disk1s3                                                 500Mi   1.6Mi   482Mi     1%      95  4.9M    0%   /System/Volumes/Hardware&lt;br /&gt;
/dev/disk3s5                                                 228Gi    43Gi   156Gi    22%    582k  1.6G    0%   /System/Volumes/Data&lt;br /&gt;
map auto_home                                                  0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home&lt;br /&gt;
/dev/disk3s1                                                 228Gi    15Gi   156Gi     9%    426k  1.6G    0%   /System/Volumes/Update/mnt1&lt;br /&gt;
/dev/disk3s3                                                 228Gi   1.9Gi   156Gi     2%      76  1.6G    0%   /Volumes/Recovery&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-012346.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-012346/Data&lt;br /&gt;
com.apple.TimeMachine.2025-09-05-015510.local@/dev/disk3s5   228Gi    42Gi   156Gi    22%    579k  1.6G    0%   /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Imre’s MacBook Air/2025-09-05-015510/Data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juurika suhtes ressursid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ls -lO /&lt;br /&gt;
total 10&lt;br /&gt;
lrwxr-xr-x   1 root  admin  -                   36 Jan 15  2025 .VolumeIcon.icns -&amp;gt; System/Volumes/Data/.VolumeIcon.icns&lt;br /&gt;
----------   1 root  admin  -                    0 Jan 15  2025 .file&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .nofollow&lt;br /&gt;
drwxr-xr-x   2 root  wheel  -                   64 Jan 15  2025 .resolve&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 .vol&lt;br /&gt;
drwxrwxr-x  16 root  admin  sunlnk             512 Sep  5 12:56 Applications&lt;br /&gt;
drwxr-xr-x  66 root  wheel  sunlnk            2112 Sep  3 21:05 Library&lt;br /&gt;
drwxr-xr-x@ 10 root  wheel  restricted         320 Jan 15  2025 System&lt;br /&gt;
drwxr-xr-x   5 root  admin  sunlnk             160 Sep  2 22:41 Users&lt;br /&gt;
drwxr-xr-x   6 root  wheel  hidden             192 Sep  7 11:57 Volumes&lt;br /&gt;
drwxr-xr-x@ 39 root  wheel  restricted,hidden 1248 Jan 15  2025 bin&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 cores&lt;br /&gt;
dr-xr-xr-x   4 root  wheel  hidden            5047 Sep  5 01:14 dev&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 etc -&amp;gt; private/etc&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  hidden              25 Sep  5 01:14 home -&amp;gt; /System/Volumes/Data/home&lt;br /&gt;
drwxr-xr-x   2 root  wheel  hidden              64 Jan 15  2025 opt&lt;br /&gt;
drwxr-xr-x   6 root  wheel  sunlnk,hidden      192 Sep  5 01:14 private&lt;br /&gt;
drwxr-xr-x@ 77 root  wheel  restricted,hidden 2464 Jan 15  2025 sbin&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 tmp -&amp;gt; private/tmp&lt;br /&gt;
drwxr-xr-x@ 11 root  wheel  restricted,hidden  352 Jan 15  2025 usr&lt;br /&gt;
lrwxr-xr-x@  1 root  wheel  restricted,hidden   11 Jan 15  2025 var -&amp;gt; private/var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sunlnk - apfs lahendusele iseloomulik nn sünteetline link (teine variatsioon on firmlink)&lt;br /&gt;
* /private sisuks on tegelikult volume /System/Volumes/Data&lt;br /&gt;
* / on unionfs laadne lahendus, st kokku on kogutud erinevad ressrussid, mõned on read-only, mõned on read-write&lt;br /&gt;
* / endale vastav /dev/disk3s1s1 on /dev/disk3s1 read-only apfs snapshot - sedasi on väga madalas kihis tagatud süsteemi osa immutability&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs list&lt;br /&gt;
APFS Containers (3 found)&lt;br /&gt;
|&lt;br /&gt;
+-- Container disk3 71D88332-123F-4F15-99AA-FDD26D7118F7&lt;br /&gt;
    ====================================================&lt;br /&gt;
    APFS Container Reference:     disk3&lt;br /&gt;
    Size (Capacity Ceiling):      245107195904 B (245.1 GB)&lt;br /&gt;
    Capacity In Use By Volumes:   77898416128 B (77.9 GB) (31.8% used)&lt;br /&gt;
    Capacity Not Allocated:       167208779776 B (167.2 GB) (68.2% free)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;lt; Physical Store disk0s2 F202FF0C-8102-4C98-8DEA-BFC6BE9C61B4&lt;br /&gt;
    |   -----------------------------------------------------------&lt;br /&gt;
    |   APFS Physical Store Disk:   disk0s2&lt;br /&gt;
    |   Size:                       245107195904 B (245.1 GB)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s1 9D894F4B-1ADA-47A9-9864-CECA47F5CC54&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s1 (System)&lt;br /&gt;
    |   Name:                      Macintosh HD (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Update/mnt1&lt;br /&gt;
    |   Capacity Consumed:         15970652160 B (16.0 GB)&lt;br /&gt;
    |   Sealed:                    Broken&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |   Encrypted:                 No&lt;br /&gt;
    |   |&lt;br /&gt;
    |   Snapshot:                  E4EE5A50-F503-4DC3-BB9E-6C3EF76A9105&lt;br /&gt;
    |   Snapshot Disk:             disk3s1s1&lt;br /&gt;
    |   Snapshot Mount Point:      /&lt;br /&gt;
    |   Snapshot Sealed:           Yes&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s2 5C7FF5F7-C059-4568-879D-AEE09DB60CF7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s2 (Preboot)&lt;br /&gt;
    |   Name:                      Preboot (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Preboot&lt;br /&gt;
    |   Capacity Consumed:         13066547200 B (13.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s3 8A6ADAED-7C32-4DFB-8731-005DA53BB3FF&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s3 (Recovery)&lt;br /&gt;
    |   Name:                      Recovery (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /Volumes/Recovery&lt;br /&gt;
    |   Capacity Consumed:         2082414592 B (2.1 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 No&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s5 53270D80-303A-47F4-83DE-D2B9228E9FC7&lt;br /&gt;
    |   ---------------------------------------------------&lt;br /&gt;
    |   APFS Volume Disk (Role):   disk3s5 (Data)&lt;br /&gt;
    |   Name:                      Data (Case-insensitive)&lt;br /&gt;
    |   Mount Point:               /System/Volumes/Data&lt;br /&gt;
    |   Capacity Consumed:         45915893760 B (45.9 GB)&lt;br /&gt;
    |   Sealed:                    No&lt;br /&gt;
    |   FileVault:                 Yes (Unlocked)&lt;br /&gt;
    |&lt;br /&gt;
    +-&amp;gt; Volume disk3s6 5B9AA026-E765-4922-BFEA-B48FD11A79C6&lt;br /&gt;
        ---------------------------------------------------&lt;br /&gt;
        APFS Volume Disk (Role):   disk3s6 (VM)&lt;br /&gt;
        Name:                      VM (Case-insensitive)&lt;br /&gt;
        Mount Point:               /System/Volumes/VM&lt;br /&gt;
        Capacity Consumed:         20480 B (20.5 KB)&lt;br /&gt;
        Sealed:                    No&lt;br /&gt;
        FileVault:                 No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
iostat esitab ainult füüsiliste seadmete kohta info, huvitaval kombel ka time machine lahendusele vastava seadme (disk4) oma&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % iostat 5&lt;br /&gt;
              disk0               disk4       cpu    load average&lt;br /&gt;
    KB/t  tps  MB/s     KB/t  tps  MB/s  us sy id   1m   5m   15m&lt;br /&gt;
   17.03   37  0.61    52.37    0  0.00   3  1 96  1.12 1.52 1.63&lt;br /&gt;
    6.17    7  0.04     0.00    0  0.00   2  1 97  1.11 1.51 1.63&lt;br /&gt;
    4.00    2  0.01     0.00    0  0.00   1  1 98  1.11 1.51 1.63&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automaatse monteerimise vältimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               CB4A4A81-A9EE-471D-90CA-7A116C740AC6&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil info &amp;quot;/Volumes/macOS Restored - Data&amp;quot; | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
   Volume UUID:               6AB10166-A262-4E22-8FE6-0D5C97C731FB&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# vifs&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# cat /etc/fstab&lt;br /&gt;
#&lt;br /&gt;
# Warning - this file should only be modified with vifs(8)&lt;br /&gt;
#&lt;br /&gt;
# Failure to do so is unsupported and may be destructive.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
UUID=6AB10166-A262-4E22-8FE6-0D5C97C731FB none apfs rw,noauto&lt;br /&gt;
UUID=CB4A4A81-A9EE-471D-90CA-7A116C740AC6 none apfs rw,noauto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vastasel korral süsteem otsib teiselt volume'ilt ka nt Applicationid üles&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250903-spotlight-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Kopeerimine failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ditto /Applications/Yubico\ Authenticator.app/ /Users/imreoolberg/Documents/Yubico\ Authenticator.app/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finder GUI liidesega programm.&lt;br /&gt;
&lt;br /&gt;
USB pulk abil apsf opereerimine, volume lisamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil eraseDisk APFS &amp;quot;USBTEST&amp;quot; /dev/disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs unlockVolume /dev/disk5s4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs addVolume disk5 APFS volume-05&lt;br /&gt;
Will export new APFS Volume &amp;quot;volume-05&amp;quot; from APFS Container Reference disk5&lt;br /&gt;
Started APFS operation on disk5&lt;br /&gt;
Preparing to add APFS Volume to APFS Container disk5&lt;br /&gt;
Creating APFS Volume&lt;br /&gt;
Created new APFS Volume disk5s5&lt;br /&gt;
Mounting APFS Volume&lt;br /&gt;
Setting volume permissions&lt;br /&gt;
Disk from APFS operation: disk5s5&lt;br /&gt;
Finished APFS operation on disk5&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil unmount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on disk5s5 unmounted&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil mount /dev/disk5s5&lt;br /&gt;
Volume volume-05 on /dev/disk5s5 mounted&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil apfs deleteVolume /dev/disk5s4&lt;br /&gt;
Started APFS operation&lt;br /&gt;
Deleting APFS Volume from its APFS Container&lt;br /&gt;
Unmounting disk5s4&lt;br /&gt;
Erasing any xART session referenced by 9AC9146E-455D-45BA-99EC-3FE32D2CE59B&lt;br /&gt;
Deleting Volume&lt;br /&gt;
Removing any Preboot and Recovery Directories&lt;br /&gt;
Finished APFS operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konteinerid ja volume'id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# df -h | grep part- | sort&lt;br /&gt;
/dev/disk5s1                               1.9Gi   1.0Mi   1.9Gi     1%     109   19M    0%   /Volumes/part-01-volume-01&lt;br /&gt;
/dev/disk6s1                               3.7Gi   1.0Mi   3.7Gi     1%     109   39M    0%   /Volumes/part-02-volume-01&lt;br /&gt;
/dev/disk7s1                                11Gi   1.0Mi    11Gi     1%     113  119M    0%   /Volumes/part-03-volume-01&lt;br /&gt;
/dev/disk8s1                                12Gi   992Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-01&lt;br /&gt;
/dev/disk8s2                                12Gi   988Ki    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-02&lt;br /&gt;
/dev/disk8s3                                12Gi   1.0Mi    11Gi     1%     105  120M    0%   /Volumes/part-04-volume-03&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# diskutil list disk4&lt;br /&gt;
/dev/disk4 (external, physical):&lt;br /&gt;
   #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
   0:      GUID_partition_scheme                        *30.8 GB    disk4&lt;br /&gt;
   1:                        EFI EFI                     209.7 MB   disk4s1&lt;br /&gt;
   2:                 Apple_APFS Container disk5         2.0 GB     disk4s2&lt;br /&gt;
   3:                 Apple_APFS Container disk6         4.0 GB     disk4s3&lt;br /&gt;
   4:                 Apple_APFS Container disk7         12.2 GB    disk4s4&lt;br /&gt;
   5:                 Apple_APFS Container disk8         12.4 GB    disk4s5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* füüsiline ketas on /dev/disk4&lt;br /&gt;
* füüsilise ketta partitsioonid on konteinerid /dev/disk5, /dev/disk6 jne&lt;br /&gt;
* konteinerite sees on volume'id, nt disk8 sees on kolm tükki, s1, s2 ja s3&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250909-disk-utility-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Failide arhiveerime ja kopeerimine süsteemist välja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ditto -ck --sequesterRsrc /Users/imreoolberg /Volumes/imre-data-01/users-imreoolberg.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TRIM====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# system_profiler SPNVMeDataType&lt;br /&gt;
NVMExpress:&lt;br /&gt;
&lt;br /&gt;
    Apple SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        APPLE SSD AP0256Z:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 251 GB (251,000,193,024 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: APPLE SSD AP0256Z&lt;br /&gt;
          Revision: 2,077.140&lt;br /&gt;
          Serial Number: 0ba028eb8328ce39&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk0&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            iSCPreboot:&lt;br /&gt;
              Capacity: 524.3 MB (524,288,000 bytes)&lt;br /&gt;
              BSD Name: disk0s1&lt;br /&gt;
              Content: Apple_APFS_ISC&lt;br /&gt;
            Macintosh HD:&lt;br /&gt;
              Capacity: 245.11 GB (245,107,195,904 bytes)&lt;br /&gt;
              BSD Name: disk0s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
            Recovery:&lt;br /&gt;
              Capacity: 5.37 GB (5,368,664,064 bytes)&lt;br /&gt;
              BSD Name: disk0s3&lt;br /&gt;
              Content: Apple_APFS_Recovery&lt;br /&gt;
&lt;br /&gt;
    Generic SSD Controller:&lt;br /&gt;
&lt;br /&gt;
        WD_BLACK SN850XE 4000GB:&lt;br /&gt;
&lt;br /&gt;
          Capacity: 4 TB (4,000,787,030,016 bytes)&lt;br /&gt;
          TRIM Support: Yes&lt;br /&gt;
          Model: WD_BLACK SN850XE 4000GB&lt;br /&gt;
          Revision: 624131EX&lt;br /&gt;
          Serial Number: 24525S801688&lt;br /&gt;
          Link Width: x4&lt;br /&gt;
          Link Speed: 8.0 GT/s&lt;br /&gt;
          Detachable Drive: No&lt;br /&gt;
          BSD Name: disk4&lt;br /&gt;
          Partition Map Type: GPT (GUID Partition Table)&lt;br /&gt;
          Removable Media: No&lt;br /&gt;
          S.M.A.R.T. status: Verified&lt;br /&gt;
          Volumes:&lt;br /&gt;
            EFI:&lt;br /&gt;
              Capacity: 209.7 MB (209,715,200 bytes)&lt;br /&gt;
              File System: MS-DOS FAT32&lt;br /&gt;
              BSD Name: disk4s1&lt;br /&gt;
              Content: EFI&lt;br /&gt;
              Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B&lt;br /&gt;
            PRO-G40:&lt;br /&gt;
              Capacity: 4 TB (4,000,577,273,856 bytes)&lt;br /&gt;
              BSD Name: disk4s2&lt;br /&gt;
              Content: Apple_APFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TRIM Support: Yes - trim on nendel seadmetel asuvatel apfs failisüsteemidel võimalik ja kohal st sisselülitatud&lt;br /&gt;
* apfs trim on ext4 fstab 'discard' sarnane, mitte 'fstrim /' cron jobs abil ütlemise sarnane&lt;br /&gt;
* Model: APPLE SSD AP0256Z - '256' väljendab suurust 256 GB, nt teine mudel on AP1024Z ja väljendab suurust 1 TB&lt;br /&gt;
&lt;br /&gt;
===Launchd kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# cat /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;com.myname.addroute&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/sbin/route&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;-n&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;add&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.0.2.1/32&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;192.168.64.2&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;RunAtLoad&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;true/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl load /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# netstat -nr | grep 192.0.&lt;br /&gt;
192.0.2.1/32       192.168.64.2       UGSc            bridge100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ta on olemas globaalses launched listis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl list | grep myn&lt;br /&gt;
-	0	com.myname.addroute&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Põhimõtteliselt peaks töötama ka unload, aga antud juhul ei oma see toimet selle konkreetse nähtuse one-shot olemuse tõttu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# launchctl unload /Library/LaunchDaemons/com.myname.addroute.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Cron====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# plutil -p /System/Library/LaunchDaemons/com.apple.tmp_cleaner.plist&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Label&amp;quot; =&amp;gt; &amp;quot;com.apple.tmp_cleaner&amp;quot;&lt;br /&gt;
  &amp;quot;LowPriorityIO&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;Nice&amp;quot; =&amp;gt; 1&lt;br /&gt;
  &amp;quot;ProgramArguments&amp;quot; =&amp;gt; [&lt;br /&gt;
    0 =&amp;gt; &amp;quot;/usr/libexec/tmp_cleaner&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
  &amp;quot;StartCalendarInterval&amp;quot; =&amp;gt; {&lt;br /&gt;
    &amp;quot;Hour&amp;quot; =&amp;gt; 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - UTM===&lt;br /&gt;
&lt;br /&gt;
Süsteemis kirjeldatud virtuaalsed arvutid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# /System/Volumes/Data/Applications/UTM.app/Contents/MacOS/utmctl list&lt;br /&gt;
UUID                                 Status   Name&lt;br /&gt;
DE2A3E49-B049-40F9-9D79-3C1448B446C9 started  vm-deb13-01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti virtuaalne plokkseade&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# du -sh /Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
5.9G	/Users/imreoolberg/Library/Containers/com.utmapp.UTM/Data/Documents/vm-deb13-01.utm/Data/2BBCF278-9AA7-4741-95B5-1886EC71C110.qcow2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Virtuaalsele arvutile vastav võrgundus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig bridge100&lt;br /&gt;
bridge100: flags=8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	options=3&amp;lt;RXCSUM,TXCSUM&amp;gt;&lt;br /&gt;
	ether fa:73:df:a0:51:64&lt;br /&gt;
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255&lt;br /&gt;
	inet6 fe80::f873:dfff:fea0:5164%bridge100 prefixlen 64 scopeid 0x19&lt;br /&gt;
	inet6 fda5:2ff0:49ee:6d45:14d7:6e80:6b22:c592 prefixlen 64 autoconf secured&lt;br /&gt;
	Configuration:&lt;br /&gt;
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0&lt;br /&gt;
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200&lt;br /&gt;
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0&lt;br /&gt;
		ipfilter disabled flags 0x0&lt;br /&gt;
	member: vmenet0 flags=3&amp;lt;LEARNING,DISCOVER&amp;gt;&lt;br /&gt;
	        ifmaxaddr 0 port 24 priority 0 path cost 0&lt;br /&gt;
	Address cache:&lt;br /&gt;
		5e:7f:36:30:6b:51 Vlan1 vmenet0 1161 flags=0&amp;lt;&amp;gt;&lt;br /&gt;
	nd6 options=201&amp;lt;PERFORMNUD,DAD&amp;gt;&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# ifconfig vmenet0&lt;br /&gt;
vmenet0: flags=8963&amp;lt;UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
	ether b2:7a:48:40:de:47&lt;br /&gt;
	media: autoselect&lt;br /&gt;
	status: active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Virtualiseerimine - Virtualization.framework===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Virtualization.framework kasutamine on võimalik UTM lahendusega&lt;br /&gt;
* Virtualization.framework'i kasutab Rancher Desktop lahendendus&lt;br /&gt;
* Virtualization.framework'i kasutab Claude Desktop lahendendus (Claude Cowork ja Claude Code puhul)&lt;br /&gt;
&lt;br /&gt;
Virtuaalsetele arvutitele vastavad protsessid paistavad sellised&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep Virtuali&lt;br /&gt;
imreoolberg       9439   0.9  4.3 439637536 728784   ??  Ss    5:05PM   8:35.18 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
imreoolberg       2439   0.3  0.3 439691712  46720   ??  Ss   10:05AM   4:55.14 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 2439 -P -n | grep claudevm&lt;br /&gt;
com.apple 2439 imreoolberg  txt    REG               1,13      131072           124423025 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/efivars.fd&lt;br /&gt;
com.apple 2439 imreoolberg    6u   REG               1,13 10737418240           124154442 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/rootfs.img&lt;br /&gt;
com.apple 2439 imreoolberg   11u   REG               1,13    35880960           124155054 /Users/imreoolberg/Library/Application Support/Claude/vm_bundles/claudevm.bundle/sessiondata.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.apple.com/documentation/virtualization?language=objc&lt;br /&gt;
&lt;br /&gt;
===Võrk===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi on application firewall välja lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate&lt;br /&gt;
Firewall is disabled. (State = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning pfctl olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -si&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
Status: Enabled for 0 days 00:05:41           Debug: Urgent&lt;br /&gt;
&lt;br /&gt;
State Table                          Total             Rate&lt;br /&gt;
  current entries                      113&lt;br /&gt;
  searches                           11661           34.2/s&lt;br /&gt;
  inserts                              370            1.1/s&lt;br /&gt;
  removals                             257            0.8/s&lt;br /&gt;
Counters&lt;br /&gt;
  match                                579            1.7/s&lt;br /&gt;
  bad-offset                             0            0.0/s&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -ss&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
ALL tcp 192.168.134.76:57540 -&amp;gt; 192.168.10.77:8291       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61048 &amp;lt;- 104.18.39.21:443       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL tcp 192.168.134.76:61225 -&amp;gt; 192.168.10.196:80       ESTABLISHED:ESTABLISHED&lt;br /&gt;
ALL udp 192.168.134.76:49898 -&amp;gt; 142.251.151.119:443       MULTIPLE:MULTIPLE&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu avatud võrgusoketid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4TCP -sTCP:LISTEN&lt;br /&gt;
COMMAND    PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1        root    8u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   12u  IPv4 0xd123f519af7dbdee      0t0  TCP *:22 (LISTEN)&lt;br /&gt;
launchd      1        root   36u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
launchd      1        root   38u  IPv4  0x891943a4a4a3ca9      0t0  TCP 127.0.0.1:8021 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   10u  IPv4 0xde3561cefae81e29      0t0  TCP *:7000 (LISTEN)&lt;br /&gt;
ControlCe  632 imreoolberg   12u  IPv4 0xbbbca5f5375388e5      0t0  TCP *:5000 (LISTEN)&lt;br /&gt;
rapportd   633 imreoolberg   10u  IPv4 0x7505a25821d3a7df      0t0  TCP *:49152 (LISTEN)&lt;br /&gt;
zabbix_ag 6815      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
zabbix_ag 6816      zabbix    6u  IPv4 0xe7ca8a84e1c8509f      0t0  TCP *:10050 (LISTEN)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* vaikimisi pfctl ei ole aktiivne, aga nt utm virtuaalse arvuti käivitamine aktiveerib (pfctl teeb utm arvutile src-nat teisendust&lt;br /&gt;
* pfctl laseb praktiliselt igasuguse liikluse läbi (nö tavaline brauser -&amp;gt; internet liiklus jms nö registreeritakse pfctl paketifiltriga, aga lubatakse läbi)&lt;br /&gt;
* 8021 on pfctl ftp-proxy mooduliga seotud&lt;br /&gt;
* 7000 ja 5000 pordid on seotud airdrop ja airport jms osakondadega (airport on vana aja nimetus everything-wifi kohta mac puhul)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# lsof -nP -i4UDP&lt;br /&gt;
COMMAND    PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
launchd      1           root    7u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root    8u  IPv4 0xfd237aa308fea29c      0t0  UDP *:67&lt;br /&gt;
launchd      1           root   39u  IPv4 0x8d461240652f3ced      0t0  UDP *:138&lt;br /&gt;
launchd      1           root   40u  IPv4 0xb4b96b1c5de038ec      0t0  UDP *:137&lt;br /&gt;
mDNSRespo  441 _mdnsresponder    6u  IPv4 0x2d5727fb23b4e854      0t0  UDP *:5353&lt;br /&gt;
mDNSRespo  441 _mdnsresponder   14u  IPv4 0x1ed59c3cb4235fee      0t0  UDP *:53&lt;br /&gt;
airportd   455           root    4u  IPv4  0x6e0c4f2c444299c      0t0  UDP *:*&lt;br /&gt;
airportd   455           root    9u  IPv6 0xea04c0f07ef2ac65      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   11u  IPv4 0xb4a853f1977e96bf      0t0  UDP *:*&lt;br /&gt;
airportd   455           root   12u  IPv4 0x6e9d20d0d8a5c95f      0t0  UDP *:*&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Võrguliidese MTU muutmiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -listallnetworkservices&lt;br /&gt;
An asterisk (*) denotes that a network service is disabled.&lt;br /&gt;
USB 10/100/1000 LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN&lt;br /&gt;
USB 10/100/1G/2.5G LAN 2&lt;br /&gt;
Thunderbolt Bridge&lt;br /&gt;
Wi-Fi&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % networksetup -getMTU Wi-Fi&lt;br /&gt;
Active MTU: 1500 (Current Setting: 1500)&lt;br /&gt;
&lt;br /&gt;
# networksetup -setMTU Wi-Fi 1400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
ipv4 ruutingutabeli esitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
Routing tables&lt;br /&gt;
&lt;br /&gt;
Internet:&lt;br /&gt;
Destination        Gateway            Flags               Netif Expire&lt;br /&gt;
default            192.168.134.77     UGScg                 en0&lt;br /&gt;
127                127.0.0.1          UCS                   lo0&lt;br /&gt;
127.0.0.1          127.0.0.1          UH                    lo0&lt;br /&gt;
169.254            link#12            UCS                   en0      !&lt;br /&gt;
192.168.134        link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.2/32   link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77/32  link#12            UCS                   en0      !&lt;br /&gt;
192.168.134.77     64:d1:54:a7:cc:99  UHLWIir               en0   1199&lt;br /&gt;
192.168.134.255    ff:ff:ff:ff:ff:ff  UHLWbI                en0      !&lt;br /&gt;
224.0.0/4          link#12            UmCS                  en0      !&lt;br /&gt;
224.0.0.251        1:0:5e:0:0:fb      UHmLWI                en0&lt;br /&gt;
255.255.255.255/32 link#12            UCS                   en0      !&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Võrk - bluetooth====&lt;br /&gt;
&lt;br /&gt;
Kuigi 2025 aastal müüdavate Apple Magic Keyboard puhul paljuski väljendatakse, et nad on kasutatavad wireless režiimis ja jääb mulje, et ainult nii, siis osutub, et tegelikult neil on toiteks mõeldud usb kaabel usb siiski ka andmevahetuseks võimaline. non-radio kasutamiseks&lt;br /&gt;
&lt;br /&gt;
* system setting - bluetooth osakonnas lülitada välja bluetooth terviklikult, näiteks&lt;br /&gt;
* klaviatuur jätkab töötamist&lt;br /&gt;
&lt;br /&gt;
====Võrk - wireless====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# wdutil info | head -n 44&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
NETWORK&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    Primary IPv4         : en0 (Wi-Fi / 9B1345E5-7303-47E8-9C98-5C1D150E7921)&lt;br /&gt;
                         : 192.168.134.74&lt;br /&gt;
    Primary IPv6         : None&lt;br /&gt;
    DNS Addresses        : 1.1.1.1&lt;br /&gt;
    Apple                : Reachable&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
WIFI&lt;br /&gt;
————————————————————————————————————————————————————————————————————&lt;br /&gt;
    MAC Address          : &amp;lt;redacted&amp;gt; (hw=&amp;lt;redacted&amp;gt;)&lt;br /&gt;
    Interface Name       : en0&lt;br /&gt;
    Power                : On [On]&lt;br /&gt;
    Op Mode              : STA&lt;br /&gt;
    SSID                 : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    BSSID                : &amp;lt;redacted&amp;gt;&lt;br /&gt;
    RSSI                 : -83 dBm&lt;br /&gt;
    CCA                  : 2 %&lt;br /&gt;
    Noise                : -94 dBm&lt;br /&gt;
    Tx Rate              : 65.0 Mbps&lt;br /&gt;
    Security             : WPA2 Personal&lt;br /&gt;
    PHY Mode             : 11ac&lt;br /&gt;
    MCS Index            : 1&lt;br /&gt;
    Guard Interval       : 400&lt;br /&gt;
    NSS                  : 1&lt;br /&gt;
    Channel              : 5g36/80&lt;br /&gt;
    Country Code         : EE&lt;br /&gt;
    Scan Cache Count     : 3&lt;br /&gt;
    NetworkServiceID     : 9B1345E5-7303-47E8-9C98-5C1D150E7921&lt;br /&gt;
    IPv4 Config Method   : DHCP&lt;br /&gt;
    IPv4 Address         : 192.168.134.74&lt;br /&gt;
    IPv4 Router          : 192.168.134.77&lt;br /&gt;
    IPv6 Config Method   : Automatic&lt;br /&gt;
    IPv6 Address         : fe80::ccb:dc0f:9b07:4271&lt;br /&gt;
    IPv6 Router          : None&lt;br /&gt;
    DNS                  : 1.1.1.1&lt;br /&gt;
    BTC Mode             : Off&lt;br /&gt;
    Desense              :&lt;br /&gt;
    Chain Ack            : []&lt;br /&gt;
    BTC Profile 2.4GHz   : Disabled&lt;br /&gt;
    BTC Profile 5GHz     : Disabled&lt;br /&gt;
    Sniffer Supported    : YES&lt;br /&gt;
    Supports 6e          : Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alumiselt pildilt tunneb ära sama info, nt channel 5g36/80&lt;br /&gt;
* 11ac tähistab protokolli 802.11ac&lt;br /&gt;
&lt;br /&gt;
Visuaalne kujutis samas olukorras&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-wifi-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
====SSH kaugligipääs====&lt;br /&gt;
&lt;br /&gt;
Eemalt ligipääsu võimaldamiseks, ei pruugi olla hea mõte&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-ssh-remote-access-01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Remote Login&lt;br /&gt;
&lt;br /&gt;
===Tarkvara haldus===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* DMG - disk image&lt;br /&gt;
&lt;br /&gt;
====Sissejuhatus====&lt;br /&gt;
&lt;br /&gt;
Üldiselt tekib tarkvara macos süsteemi kolmest allikast&lt;br /&gt;
&lt;br /&gt;
* süsteemne tarkvara - nö süsteemi enda paigaldamise tagajärel, nt Safari brauser&lt;br /&gt;
* App Store - apple.com standardne viis tarkvara levitada, nt Yubico Authenticator&lt;br /&gt;
* tootja levitab - igasugused huvilised, ausama ja vähem ausamad levitavad  .dmg formaadis tõmmist oma veebikohas/repos/jms - nt BetterTouchTool&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamisel võiks eelistada App Store lahendust võimalusel&lt;br /&gt;
&lt;br /&gt;
* tarkvara on läbinud teatud turvalisuse jms kaanonitega seotud protseduurid&lt;br /&gt;
* paigaldamise järgne uuendamine toimub automaatselt, sarnaselt põhisüsteemi tarkvaraga&lt;br /&gt;
&lt;br /&gt;
Rakenduste jaoks on üldiselt kolm asukohta failisüsteemis&lt;br /&gt;
&lt;br /&gt;
* /System/Applications - read only&lt;br /&gt;
* /Applications - read write&lt;br /&gt;
* ~/Applications ehk nt /Users/imreoolberg/Applications - read write&lt;br /&gt;
&lt;br /&gt;
~/Applications kataloogi on realistlik paigaldada nö lihtsat tarkvara, nt mis ei sisalda kernel extensioneid vms (nt OpenVPN ei saa, aga XCA saab). Paigaldamine toimub Finder gui liideses .dmg sees oleva .app kataloogi vedamise teel ~/Applications kataloogi või käsureal nt&lt;br /&gt;
&lt;br /&gt;
 $ ditto /Volumes/XCA/xca.app ~/Applications&lt;br /&gt;
&lt;br /&gt;
====Tarkvara allikad====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Mitte-ametlikud registrid&lt;br /&gt;
&lt;br /&gt;
* https://www.macupdate.com/&lt;br /&gt;
* https://www.apponic.com/mac/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - drag-and-drop install====&lt;br /&gt;
&lt;br /&gt;
Tundub, et lihtsamal juhul tarkvara paigaldamine seisneb lihtsalt failide kopeerimises .dmg failist arvuti kataloogi /Applications. .dmg faili moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil create -ov -fs &amp;quot;APFS&amp;quot; -size 200m -volname &amp;quot;SimpleCalc&amp;quot; MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
monteerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil attach MyDisk.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisu moodustamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % date &amp;gt; /Volumes/SimpleCalc/testfile.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lahti ühendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil detach /Volumes/SimpleCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
teisendamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % hdiutil convert MyDisk.dmg -format UDZO -o SimpleCalc-1.0.dmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on soov läbi proovida nö omatehtud .dmg ja elamus, siis sobib&lt;br /&gt;
&lt;br /&gt;
* mingi olemasolev lihtne .app põhine rakendus võtta aluseks - nt xca rakendus&lt;br /&gt;
* tema sisu kopeerida omatehtud .dmg sisse&lt;br /&gt;
* lõpuks selle abil tarkvara paigaldada&lt;br /&gt;
&lt;br /&gt;
Osutub, et kui Finderis öelda Open siis monteeritaks .dmg nagu virtuaalne failipõhine plokkseade, mille juurkataloogi sisuks on peamiselt kaks sissekannet&lt;br /&gt;
&lt;br /&gt;
* link /Applications kataloogile&lt;br /&gt;
* xca.app kataloog rakendusega&lt;br /&gt;
&lt;br /&gt;
Ja Open avab ka nö erilises vaates Finderi, kus on näha nö traditsiooniline hiirega drag-and-drop install vaade, tehniliselt toimub tavaline kataloog-kopeeritakse-kataloogi muudatus.&lt;br /&gt;
&lt;br /&gt;
MacOS sellist drag viisil tehtud tarkvara paigalduse ei registreeri kuskil keskses tarkvara-registris vms. Selline tarkvara paigaldamine on tehniliselt kataloogi kopeerimine, millega kaasneb signatuuri kontroll jms administratiivne element.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - installer packages====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pkgutil --packages&lt;br /&gt;
$ pkgutil --files paketinimi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldatud tarkvara nimekirja esitamine====&lt;br /&gt;
&lt;br /&gt;
GUI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
System Settings -&amp;gt; General -&amp;gt; System report -&amp;gt; Software -&amp;gt; Applications -&amp;gt; not obtained-from Apple&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käsurealt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % system_profiler SPApplicationsDataType | grep -B 3 -A 5 &amp;quot;Identified De&amp;quot; | head -n 20&lt;br /&gt;
    Google Chrome:&lt;br /&gt;
&lt;br /&gt;
      Version: 140.0.7339.81&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 30.08.2025, 01:47&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: Google LLC (EQHXZ8M8AV), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/Google Chrome.app&lt;br /&gt;
      Get Info String: Google Chrome 140.0.7339.81, Copyright 2025 Google LLC. All rights reserved.&lt;br /&gt;
--&lt;br /&gt;
    iTerm:&lt;br /&gt;
&lt;br /&gt;
      Version: 3.5.14&lt;br /&gt;
      Obtained from: Identified Developer&lt;br /&gt;
      Last Modified: 16.05.2025, 02:59&lt;br /&gt;
      Kind: Universal&lt;br /&gt;
      Signed by: Developer ID Application: GEORGE NACHMAN (H7V7XYVQ7D), Developer ID Certification Authority, Apple Root CA&lt;br /&gt;
      Location: /Applications/iTerm.app&lt;br /&gt;
      Get Info String: 3.5.14&lt;br /&gt;
--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis on küsida failisüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep imreoo&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 Sep  3 11:10 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxrwxr-x@ 3 imreoolberg  admin   96 Aug 30 01:47 /Applications/Google Chrome.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  staff   96 May 16 02:59 /Applications/iTerm.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Apr  8 08:11 /Applications/UTM.app&lt;br /&gt;
drwxr-xr-x@ 3 imreoolberg  admin   96 Jul 25 15:41 /Applications/Visual Studio Code.app&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/* | grep qdigi&lt;br /&gt;
drwxr-xr-x@ 3 root         wheel   96 Sep  8 16:56 /Applications/qdigidoc4.app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigaldusviisist on faili omanik erinev&lt;br /&gt;
* põhimõtteliselt tekib sellisest lähenemisest probleeme, nt mis siis kui süsteemil on mitu kasutajat, installinud kasutaja eemaldatakse jne - üks viis on kasutada süsteemis ühte non-personal administraator kasutajat kes tegeleb tarkvara paigaldamisega jms, ja ülejäänud kasutavad tarkvara&lt;br /&gt;
* @ tähistab asjaolu, et failiga on seotud apfs failisüsteemi extended attributs omadused, nt registreeritakse sedasi autor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xattr -p com.apple.appstore.vendor_name &amp;quot;/Applications/Yubico Authenticator.app&amp;quot;&lt;br /&gt;
Yubico&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - App Store====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250908-app-store-yubico-authenticator-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pressida Get -&amp;gt; Install -&amp;gt; Open&lt;br /&gt;
* tarkvara 'Obtained from' väärtuseks on 'App store'&lt;br /&gt;
* online otsing - https://www.apple.com/us/search/yubico?src=globalnav&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine - tootja juurest kopeerides====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tarkvara uuendusi ei väljastata kindlaksmääratud aegadel (nt nagu Ubuntu või OpenBSD puhul)&lt;br /&gt;
* tarkvara uuendusi väljastatakse mitmel korral aastas ja vastavalt vajadusele&lt;br /&gt;
* tarkvara uuendused jaotuvad: 1. turva-uuendused, 2. vigade parandused, 3. funktsionaalsed muudatused&lt;br /&gt;
* tarkvara uuendusi koheldatakse terviklikult, st ei ole eraldi nt süsteemi osas ja rakendustarkvara, või pakettide nimekiri, millest saab  teha käesoleva uuenduse korra jaoks valiku&lt;br /&gt;
&lt;br /&gt;
Nt 2025 aastal on olnud selline uuenduste ajalugu&lt;br /&gt;
&lt;br /&gt;
* January 27: macOS Sequoia 15.3, macOS Sonoma 14.7.3, and macOS Ventura 13.7.3 were released with security patches.&lt;br /&gt;
* February 10: An urgent security update, macOS Sequoia 15.3.1, was released.&lt;br /&gt;
* March 11: macOS Sequoia 15.3.2 was released, addressing security vulnerabilities in WebKit.&lt;br /&gt;
* March 31: macOS Sequoia 15.4, macOS Sonoma 14.7.5, and macOS Ventura 13.7.5 were released.&lt;br /&gt;
* April 16: macOS Sequoia 15.4.1 was released, providing security patches.&lt;br /&gt;
* May 12: macOS Sequoia 15.5, macOS Sonoma 14.7.6, and macOS Ventura 13.7.6 were released.&lt;br /&gt;
* July 29: macOS Sequoia 15.6, macOS Sonoma 14.7.7, and macOS Ventura 13.7.7 were released.&lt;br /&gt;
* August 20: macOS Sequoia 15.6.1 was released with security updates.&lt;br /&gt;
&lt;br /&gt;
Käsundamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sw_vers&lt;br /&gt;
ProductName:		macOS&lt;br /&gt;
ProductVersion:		15.3&lt;br /&gt;
BuildVersion:		24D2059&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % softwareupdate -l&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
Software Update found the following new or updated software:&lt;br /&gt;
* Label: macOS Sequoia 15.6.1-24G90&lt;br /&gt;
	Title: macOS Sequoia 15.6.1, Version: 15.6.1, Size: 6160384KiB, Recommended: YES, Action: restart,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine - App Store====&lt;br /&gt;
&lt;br /&gt;
App Store rakendus vasakus paneelis on kõige all valik&lt;br /&gt;
&lt;br /&gt;
 Updates&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Logi===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui klaviatuuri ja hiire kasutamine olid ebastabiilsed, siis soovitas gemini.google midagi sellist küsida, ei tea mis siit järeldada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % log show --predicate 'process == &amp;quot;WindowServer&amp;quot;' --style syslog --last 40m| grep -i skyl | tail -n 10&lt;br /&gt;
2026-07-06 00:49:00.495406+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:00.600614+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.751674+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.767823+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:00.824865+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] pid 771 failed to act on a ping it dequeued before timing out.&lt;br /&gt;
2026-07-06 00:49:00.847454+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.083920+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] delivery manager destinations for kCGSEventKeyDown event: &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.175320+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:KeyboardEvent] kCGSEventKeyUp was part of a sequence with destination &amp;lt;keyboardFocus; pid: 2922; token: viewbridge-key-window&amp;gt;&lt;br /&gt;
2026-07-06 00:49:01.498496+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
2026-07-06 00:49:01.498503+0300  localhost WindowServer[419]: (SkyLight) [com.apple.SkyLight:default] _CGXPackagesSetWindowConstraints: Invalid window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
====Screen Lock====&lt;br /&gt;
&lt;br /&gt;
Tundub, et caffeinate on hästi efektiivne&lt;br /&gt;
&lt;br /&gt;
 $ caffeinate -di&lt;br /&gt;
&lt;br /&gt;
====Watchdog====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* hardware watchdog on paratamatult sisse lülitatud&lt;br /&gt;
* software watchdog on seaditatav, vaikimisi on sisse lülitatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Programm====&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a BetterTouchTool&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
13:09:53.164 [desktop.init] INFO: Logging initialized, outputting to stderr&lt;br /&gt;
13:09:53.173 [desktop.init] INFO: Window hidden on startup: false&lt;br /&gt;
13:09:53.174 [desktop.init] INFO: Starting Helper subprocess: /Applications/Yubico Authenticator.app/Contents/Resources/helper/authenticator-helper&lt;br /&gt;
13:09:53.175 [desktop.init] INFO: Helper process started&lt;br /&gt;
13:09:53.176 [main] INFO: Running Yubico Authenticator...&lt;br /&gt;
{app_version: 7.2.3, dart: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on &amp;quot;macos_arm64&amp;quot;, os: macos, os_version: Version 15.6.1 (Build 24G90)}&lt;br /&gt;
13:09:53.302 [helper.ykman.logging] INFO: Logging at level: INFO&lt;br /&gt;
13:09:53.302 [helper.helper.device] INFO: Log level set to: INFO&lt;br /&gt;
13:09:53.302 [desktop.init] INFO: Helper log level set&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state change&lt;br /&gt;
{&amp;quot;data&amp;quot;:{&amp;quot;state&amp;quot;:5740354900026072187,&amp;quot;pids&amp;quot;:{}},&amp;quot;actions&amp;quot;:[&amp;quot;get&amp;quot;,&amp;quot;scan&amp;quot;],&amp;quot;children&amp;quot;:{}}&lt;br /&gt;
13:09:53.327 [desktop.devices] INFO: USB state updated, unaccounted for: {}&lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edasi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# file &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture x86_64):	Mach-O 64-bit executable x86_64&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (for architecture arm64):	Mach-O 64-bit executable arm64&lt;br /&gt;
Imres-MacBook-Air:/ root#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % cat hello.c&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kompileerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % clang hello.c -o hello&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % ./hello&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
otool abil binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % otool -L hello&lt;br /&gt;
hello:&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yubico authenticator binary uurimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# otool -L &amp;quot;/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator&amp;quot;&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture x86_64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
/Applications/Yubico Authenticator.app/Contents/MacOS/Yubico Authenticator (architecture arm64):&lt;br /&gt;
	@rpath/desktop_drop.framework/Versions/A/desktop_drop (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/file_picker.framework/Versions/A/file_picker (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/local_notifier.framework/Versions/A/local_notifier (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/path_provider_foundation.framework/Versions/A/path_provider_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/screen_retriever_macos.framework/Versions/A/screen_retriever_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/shared_preferences_foundation.framework/Versions/A/shared_preferences_foundation (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/tray_manager.framework/Versions/A/tray_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/url_launcher_macos.framework/Versions/A/url_launcher_macos (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	@rpath/window_manager.framework/Versions/A/window_manager (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)&lt;br /&gt;
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)&lt;br /&gt;
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)&lt;br /&gt;
	/usr/lib/swift/libswiftCore.dylib (compatibility version 1.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreAudio.dylib (compatibility version 1.0.0, current version 6.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreMedia.dylib (compatibility version 1.0.0, current version 3110.8.2, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftDispatch.dylib (compatibility version 1.0.0, current version 41.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftMetal.dylib (compatibility version 1.0.0, current version 343.19.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftOSLog.dylib (compatibility version 1.0.0, current version 4.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 8.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib (compatibility version 1.0.0, current version 791.2.12, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftXPC.dylib (compatibility version 1.0.0, current version 36.100.8, weak)&lt;br /&gt;
	/usr/lib/swift/libswiftos.dylib (compatibility version 1.0.0, current version 1049.100.4, weak)&lt;br /&gt;
	@rpath/FlutterMacOS.framework/Versions/A/FlutterMacOS (compatibility version 0.0.0, current version 0.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftAppKit.dylib (compatibility version 1.0.0, current version 1.0.0)&lt;br /&gt;
	/usr/lib/swift/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* @rpath viitab rakenduse kapsli sisestele ressurssidele&lt;br /&gt;
&lt;br /&gt;
====dtruss====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# dtruss -p 65630 2&amp;gt;&amp;amp;1 | tail -n 1&lt;br /&gt;
&lt;br /&gt;
: probe description syscall:::entry does not match any probes. System Integrity Protection is on&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air Documents % dtruss ./hello&lt;br /&gt;
dtrace: system integrity protection is on, some features will not be available&lt;br /&gt;
dtrace: failed to initialize dtrace: DTrace requires additional privileges&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Screenshot====&lt;br /&gt;
&lt;br /&gt;
Tähistatud ala&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kogu ekraan&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Screen cast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Command + Shift + 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vaikimisi asub pildistus iseloomuliku nimega failis desktopil.&lt;br /&gt;
&lt;br /&gt;
===Süsteemi taastamine===&lt;br /&gt;
&lt;br /&gt;
====Recovery meedia ettevalmistamine====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:/ root# diskutil eraseDisk JHFS+ &amp;quot;MyVolume&amp;quot; /dev/disk4&lt;br /&gt;
Started erase on disk4&lt;br /&gt;
Unmounting disk&lt;br /&gt;
Creating the partition map&lt;br /&gt;
Waiting for partitions to activate&lt;br /&gt;
Formatting disk4s2 as Mac OS Extended (Journaled) with name MyVolume&lt;br /&gt;
Initialized /dev/rdisk4s2 as a 28 GB case-insensitive HFS Plus volume with a 8192k journal&lt;br /&gt;
Mounting disk&lt;br /&gt;
Finished erase on disk4&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:/ root# /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume&lt;br /&gt;
Ready to start.&lt;br /&gt;
To continue we need to erase the volume at /Volumes/MyVolume.&lt;br /&gt;
If you wish to continue type (Y) then press return: y&lt;br /&gt;
Erasing disk: 0%... 10%... 20%... 30%... 100%&lt;br /&gt;
Copying essential files...&lt;br /&gt;
Copying the macOS RecoveryOS...&lt;br /&gt;
Making disk bootable...&lt;br /&gt;
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%&lt;br /&gt;
Install media now available at &amp;quot;/Volumes/Install macOS Sequoia&amp;quot;&lt;br /&gt;
Imres-MacBook-Air:/ root# echo $?&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
# diskutil unmount /Volumes/Install\ macOS\ Sequoia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protseduur&lt;br /&gt;
&lt;br /&gt;
1. Create a New APFS Volume&lt;br /&gt;
The first step is to create a new, separate volume on your internal drive where you will restore the backup.&lt;br /&gt;
&lt;br /&gt;
Boot from your USB installer by holding the Option key on startup.&lt;br /&gt;
&lt;br /&gt;
In the macOS Utilities window, select Disk Utility and click Continue.&lt;br /&gt;
&lt;br /&gt;
In Disk Utility, go to the menu bar and select View &amp;gt; Show All Devices.&lt;br /&gt;
&lt;br /&gt;
In the sidebar, select the APFS container (the device, not the volume) that holds your current macOS installation.&lt;br /&gt;
&lt;br /&gt;
Click the + button in the toolbar to add a new APFS volume.&lt;br /&gt;
&lt;br /&gt;
Give the new volume a name (e.g., &amp;quot;macOS Restored&amp;quot;) and click Add. This process is very fast as APFS volumes share the same free space.&lt;br /&gt;
&lt;br /&gt;
Once the new volume appears in the sidebar, close Disk Utility.&lt;br /&gt;
&lt;br /&gt;
2. Restore the Backup to the New Volume&lt;br /&gt;
Now that the new volume is ready, you can restore your Time Machine backup to it.&lt;br /&gt;
&lt;br /&gt;
From the macOS Utilities window, select Restore From Time Machine Backup and click Continue.&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions, selecting your Time Machine backup drive when prompted.&lt;br /&gt;
&lt;br /&gt;
When the installer asks you to choose a destination disk, you will see your original macOS volume and the new &amp;quot;macOS Restored&amp;quot; volume you just created.&lt;br /&gt;
&lt;br /&gt;
Select the new &amp;quot;macOS Restored&amp;quot; volume as the destination for the restoration. The installer will then proceed to restore the system to that specific volume only.&lt;br /&gt;
&lt;br /&gt;
After the restoration is complete, you can restart your Mac and, by holding down the Option key, you will be able to choose between your original macOS system and the restored system on the second volume.&lt;br /&gt;
&lt;br /&gt;
===homebrew===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
==&amp;gt; Checking for `sudo` access (which may request your password)...&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/opt/homebrew/bin/brew&lt;br /&gt;
/opt/homebrew/share/doc/homebrew&lt;br /&gt;
/opt/homebrew/share/man/man1/brew.1&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions/_brew&lt;br /&gt;
/opt/homebrew/etc/bash_completion.d/brew&lt;br /&gt;
/opt/homebrew&lt;br /&gt;
/etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; The following new directories will be created:&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
/opt/homebrew/etc&lt;br /&gt;
/opt/homebrew/include&lt;br /&gt;
/opt/homebrew/lib&lt;br /&gt;
/opt/homebrew/sbin&lt;br /&gt;
/opt/homebrew/share&lt;br /&gt;
/opt/homebrew/var&lt;br /&gt;
/opt/homebrew/opt&lt;br /&gt;
/opt/homebrew/share/zsh&lt;br /&gt;
/opt/homebrew/share/zsh/site-functions&lt;br /&gt;
/opt/homebrew/var/homebrew&lt;br /&gt;
/opt/homebrew/var/homebrew/linked&lt;br /&gt;
/opt/homebrew/Cellar&lt;br /&gt;
/opt/homebrew/Caskroom&lt;br /&gt;
/opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; The Xcode Command Line Tools will be installed.&lt;br /&gt;
&lt;br /&gt;
Press RETURN/ENTER to continue or any other key to abort:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown imre /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown -R imre:admin /opt/homebrew&lt;br /&gt;
==&amp;gt; Searching online for the Command Line Tools&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Installing Command Line Tools for Xcode-16.4&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-16.4&lt;br /&gt;
Software Update Tool&lt;br /&gt;
&lt;br /&gt;
Finding available software&lt;br /&gt;
&lt;br /&gt;
Downloading Command Line Tools for Xcode&lt;br /&gt;
&lt;br /&gt;
Downloaded Command Line Tools for Xcode&lt;br /&gt;
Installing Command Line Tools for Xcode&lt;br /&gt;
Done with Command Line Tools for Xcode&lt;br /&gt;
Done.&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools&lt;br /&gt;
Password:&lt;br /&gt;
Sorry, try again.&lt;br /&gt;
Password:&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress&lt;br /&gt;
==&amp;gt; Downloading and installing Homebrew...&lt;br /&gt;
remote: Enumerating objects: 310493, done.&lt;br /&gt;
remote: Counting objects: 100% (16399/16399), done.&lt;br /&gt;
remote: Compressing objects: 100% (608/608), done.&lt;br /&gt;
remote: Total 310493 (delta 15991), reused 15838 (delta 15791), pack-reused 294094 (from 3)&lt;br /&gt;
remote: Enumerating objects: 55, done.&lt;br /&gt;
remote: Counting objects: 100% (34/34), done.&lt;br /&gt;
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d&lt;br /&gt;
==&amp;gt; /usr/bin/sudo tee /etc/paths.d/homebrew&lt;br /&gt;
/opt/homebrew/bin&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew&lt;br /&gt;
==&amp;gt; Updating Homebrew...&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a&lt;br /&gt;
################################################################################################################################################################ 100.0%&lt;br /&gt;
==&amp;gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.&lt;br /&gt;
Read the analytics documentation (and how to opt-out) here:&lt;br /&gt;
  https://docs.brew.sh/Analytics&lt;br /&gt;
No analytics data has been sent yet (nor will any be during this install run).&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:&lt;br /&gt;
  https://github.com/Homebrew/brew#donations&lt;br /&gt;
&lt;br /&gt;
==&amp;gt; Next steps:&lt;br /&gt;
- Run these commands in your terminal to add Homebrew to your PATH:&lt;br /&gt;
    echo &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/imre/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
- Run brew help to get started&lt;br /&gt;
- Further documentation:&lt;br /&gt;
    https://docs.brew.sh&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pyhton 3.13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ti % brew install python@3.13&lt;br /&gt;
==&amp;gt; Fetching downloads for: python@3.13&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/python/3.13/manifests/3.13.7&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching dependencies for python@3.13: mpdecimal, ca-certificates, openssl@3, readline, sqlite and xz&lt;br /&gt;
==&amp;gt; Downloading https://ghcr.io/v2/homebrew/core/mpdecimal/manifests/4.0.1&lt;br /&gt;
#################################################################################################################### 100.0%&lt;br /&gt;
==&amp;gt; Fetching mpdecimal&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
==&amp;gt; Summary&lt;br /&gt;
🍺  /opt/homebrew/Cellar/python@3.13/3.13.7: 3,620 files, 66.6MB&lt;br /&gt;
==&amp;gt; Running `brew cleanup python@3.13`...&lt;br /&gt;
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.&lt;br /&gt;
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).&lt;br /&gt;
==&amp;gt; No outdated dependents to upgrade!&lt;br /&gt;
==&amp;gt; Caveats&lt;br /&gt;
==&amp;gt; python@3.13&lt;br /&gt;
Python is installed as&lt;br /&gt;
  /opt/homebrew/bin/python3&lt;br /&gt;
&lt;br /&gt;
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to&lt;br /&gt;
`python3`, `python3-config`, `pip3` etc., respectively, are installed into&lt;br /&gt;
  /opt/homebrew/opt/python@3.13/libexec/bin&lt;br /&gt;
&lt;br /&gt;
`idle3.13` requires tkinter, which is available separately:&lt;br /&gt;
  brew install python-tk@3.13&lt;br /&gt;
&lt;br /&gt;
See: https://docs.brew.sh/Homebrew-and-Python&lt;br /&gt;
imre@imre-mac ti % &lt;br /&gt;
&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew tap hashicorp/tap&lt;br /&gt;
==&amp;gt; Tapping hashicorp/tap&lt;br /&gt;
Cloning into '/opt/homebrew/Library/Taps/hashicorp/homebrew-tap'...&lt;br /&gt;
remote: Enumerating objects: 5818, done.&lt;br /&gt;
remote: Counting objects: 100% (1132/1132), done.&lt;br /&gt;
remote: Compressing objects: 100% (221/221), done.&lt;br /&gt;
remote: Total 5818 (delta 1015), reused 913 (delta 911), pack-reused 4686 (from 3)&lt;br /&gt;
Receiving objects: 100% (5818/5818), 1.01 MiB | 1.18 MiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (4104/4104), done.&lt;br /&gt;
Tapped 2 casks and 32 formulae (93 files, 1.3MB).&lt;br /&gt;
(py_venv) imre@imre-mac ti % brew install hashicorp/tap/vault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Xcode Command Line Tools===&lt;br /&gt;
&lt;br /&gt;
Xcide CLI koosseisu kuuluvad muu hulgas&lt;br /&gt;
&lt;br /&gt;
* git&lt;br /&gt;
* clang&lt;br /&gt;
* gcc&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xcode-select --install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to check&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % xcode-select -p&lt;br /&gt;
/Library/Developer/CommandLineTools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Spaces===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Spaces võimaldab tegeleda macos peal virtuaalsete desktop'idega&lt;br /&gt;
* käitumist kontrollib üldiselt 'System Settings -&amp;gt; Desktop &amp;amp; Dock -&amp;gt; Displays have separate Spaces' väärtus (vaikimisi 'On')&lt;br /&gt;
* F3 klahv abil saab Spaces riba kuvada monitoride üleosas&lt;br /&gt;
* Space'i saab liigutada monitoride vahel hiirega tirides, v.a. aktiivset space'i&lt;br /&gt;
* Space'ide vahel saab liikuda Control + left/righ arrow key abil&lt;br /&gt;
* Rakendust saab liigutada space'ide vahel minnes nn Mission Control vaatesse ja siis hiirega rakenduse akent lohistades&lt;br /&gt;
* Space sulgemisel paigutatakse vastavad aknad eelmisele space'ile&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Süsteemi aeg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# date&lt;br /&gt;
Sat Sep 13 23:36:17 EEST 2025&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTP serverilt kellaaja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sntp time.apple.com&lt;br /&gt;
+0.049514 +/- 0.014280 time.apple.com 17.253.38.35&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getnetworktimeserver&lt;br /&gt;
Network Time Server: time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Väärtuse muutmine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -setnetworktimeserver time.euro.apple.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Logist kellaajaga seotud sündmuste kohta küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# log stream --predicate 'subsystem == &amp;quot;com.apple.timed&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kas kellaaeg automaatne hoidmine on kasutuses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# systemsetup -getusingnetworktime&lt;br /&gt;
Network Time: On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BSD pärand===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % which openssl&lt;br /&gt;
/usr/bin/openssl&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % openssl version&lt;br /&gt;
LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# ssh -V&lt;br /&gt;
OpenSSH_9.9p2, LibreSSL 3.3.6&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pfctl -v&lt;br /&gt;
No ALTQ support in kernel&lt;br /&gt;
ALTQ related functions disabled&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Süsteemsete kasutajate nimed algavad alakriipsuga (nt sarnaselt toimib OpenBSD), nt timed (ntp local protsess) töötab kasutajana _timed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep timed&lt;br /&gt;
_timed             373   0.0  0.0 426967056   4576   ??  Ss   Tue02PM   0:03.41 /usr/libexec/timed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/passwd failis on palju nö legacy kasutajad mille nimi viitab nö klassikalisele lahendusele&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep &amp;quot;_postgres|_dovenull|_postfix|_avamis|_clamav|_cyrus|_mailman|_cvs|_mysql|_jabber|_ftp&amp;quot; /etc/passwd&lt;br /&gt;
_postfix:*:27:27:Postfix Mail Server:/var/spool/postfix:/usr/bin/false&lt;br /&gt;
_cvs:*:72:72:CVS Server:/var/empty:/usr/bin/false&lt;br /&gt;
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_cyrus:*:77:6:Cyrus Administrator:/var/imap:/usr/bin/false&lt;br /&gt;
_mailman:*:78:78:Mailman List Server:/var/empty:/usr/bin/false&lt;br /&gt;
_clamav:*:82:82:ClamAV Daemon:/var/virusmails:/usr/bin/false&lt;br /&gt;
_jabber:*:84:84:Jabber XMPP Server:/var/empty:/usr/bin/false&lt;br /&gt;
_ftp:*:98:-2:FTP Daemon:/var/empty:/usr/bin/false&lt;br /&gt;
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false&lt;br /&gt;
_dovenull:*:227:227:Dovecot Authentication:/var/empty:/usr/bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Süsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Eesmärk&lt;br /&gt;
&lt;br /&gt;
* paigaldada töötav töökoha keskkond&lt;br /&gt;
* valmituda juhtumiks kui kasutaja parool kaob ja on vaja seda taastada (teha reset)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Google Chrome brauser===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Google Chrome brauseril on lubatud kuvada ssh privaatset võtit, nt&lt;br /&gt;
&lt;br /&gt;
 file:///Users/imreoolberg/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
Analoogliselt on see lubatud Ubuntu 24.04 platvormil, aga nt OpenBSD puhul mitte (tänu unveil tehnoloogiale).&lt;br /&gt;
&lt;br /&gt;
===GateKeeper===&lt;br /&gt;
&lt;br /&gt;
Kui kopeerida internetist tarkvara nt .dmg kujul ja paigaldada, siis esimesel käivitamisel küsib süsteem, et kas ikka käivitada see internetist kopeeritud programm, küsimus ja vastusega tegelemine on seotud xattr parameetriga com.apple.quarantine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# xattr -p com.apple.quarantine /Applications/KeePassXC.app&lt;br /&gt;
0181;68c6f083;Chrome;AF698614-F806-4A2B-B66C-4B09CB133779&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# spctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# sqlite3 /Users/imreoolberg/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2&lt;br /&gt;
SQLite version 3.43.2 2023-10-10 13:08:14&lt;br /&gt;
Enter &amp;quot;.help&amp;quot; for usage hints.&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; .schema&lt;br /&gt;
CREATE TABLE LSQuarantineEvent (  LSQuarantineEventIdentifier TEXT PRIMARY KEY NOT NULL,  LSQuarantineTimeStamp REAL,  LSQuarantineAgentBundleIdentifier TEXT,  LSQuarantineAgentName TEXT,  LSQuarantineDataURLString TEXT,  LSQuarantineSenderName TEXT,  LSQuarantineSenderAddress TEXT,  LSQuarantineTypeNumber INTEGER,  LSQuarantineOriginTitle TEXT,  LSQuarantineOriginURLString TEXT,  LSQuarantineOriginAlias BLOB );&lt;br /&gt;
CREATE INDEX LSQuarantineEventIndex  ON LSQuarantineEvent (  LSQuarantineEventIdentifier );&lt;br /&gt;
CREATE INDEX LSQuarantineTimeStampIndex  ON LSQuarantineEvent (  LSQuarantineTimeStamp );&lt;br /&gt;
&lt;br /&gt;
sqlite&amp;gt; select * from LSQuarantineEvent;&lt;br /&gt;
9446C9BF-45BE-49C7-8EBE-2F15796AC8C8|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
BDC2404B-51CD-4561-B50B-97C0C4272BF4|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
295142B0-B654-4691-9F45-774441058E9A|778543831.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
E806F7A8-856B-4A57-ADD6-0FFC2CAEECCB|778543833.0|com.google.Chrome|Chrome||||0|||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transparency, Consent, and Control (TCC)===&lt;br /&gt;
&lt;br /&gt;
Esmakordsel käivitamisel küsitakse vahel kataloogide ja failide avamise õiguse kohta, sellega tegeleb TCC. Tulemus on paista nt&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Privacy &amp;amp; Security -&amp;gt; KeePassXC -&amp;gt; xxx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# mdls -name kMDItemCFBundleIdentifier /Applications/KeePassXC.app&lt;br /&gt;
kMDItemCFBundleIdentifier = &amp;quot;org.keepassxc.keepassxc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# tccutil reset All org.keepassxc.keepassxc&lt;br /&gt;
Successfully reset All approval status for org.keepassxc.keepassxc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja tekitamiseks sobib&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Users &amp;amp; Groups -&amp;gt; Add User -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Teise kasutajana lisaks sisse logimiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; Control Center -&amp;gt; Fast User Switching -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
===Eesti id kaart===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist on&lt;br /&gt;
&lt;br /&gt;
 System Settings -&amp;gt; ID-updater&lt;br /&gt;
&lt;br /&gt;
===Finder===&lt;br /&gt;
&lt;br /&gt;
Finder programm on sarnane nö vana-aja Windows Explorer programmile või XFCE4 prorammile Thunar.&lt;br /&gt;
&lt;br /&gt;
Vasaku sidebar ehk paneeli sisu muutmiseks sobib kasutada Finder -&amp;gt; Settings ja nt muuta nähtavaks kasutaja kodukataloog.&lt;br /&gt;
&lt;br /&gt;
===XQuartz===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* X11 põhiste rakenduste töötamiseks vajalik tarkvara (nö linux traditsiooni juhtumiks)&lt;br /&gt;
* X2go töötamise eelduseks&lt;br /&gt;
&lt;br /&gt;
===Locale===&lt;br /&gt;
&lt;br /&gt;
MacOS on väga utf-8 keskne süsteem, graafiliste rakenduste ja käsurea osakonnas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % env | grep LANG&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % locale&lt;br /&gt;
LANG=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Juhtimiseks sobib kasutada faili ~/.zshrc&lt;br /&gt;
&lt;br /&gt;
===Mälu haldus===&lt;br /&gt;
&lt;br /&gt;
Käesolevat mälukasutust saab jälgida Activity Monitor utiliidi abil&lt;br /&gt;
&lt;br /&gt;
[[Fail:20250918-macos-memory-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* physical memory - arvuti riistvaralise mälu hulk&lt;br /&gt;
* memory used - mälu hulk mida operatsioonisüteem moel või teisel aktiivsemalt/vähem-aktiivsemalt/jne kasutab&lt;br /&gt;
* swap used - plokkseadmele/failisüsteemi salvestatud/puhverdatud mälu sisu&lt;br /&gt;
&lt;br /&gt;
Memory Used koosneb neljast osast&lt;br /&gt;
&lt;br /&gt;
* app memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis on välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* wired memory - operatsioonisüsteemi, rakenduste koodi ja andmete jms kasutusel olev mälu mis ei ole välja swapitav, kokku pakitav jms paindlik&lt;br /&gt;
* cached files - apfs jt failisüsteemide cache, st mällu puhverdatud sisu (tõenäoliselt teeb lugemise oluliselt kiiremaks)&lt;br /&gt;
* kokku pakitud mälule vastav maht mis kulub pakitud sisu hoidmiseks (mis on pakitud kujul)&lt;br /&gt;
&lt;br /&gt;
'Compressed' väärtus väljendab, milline kokkupakkimata maht õnnestus kokku pakkida.&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* arvutis on 'available memory' maht 16.00 - 12.84 = 3.16 G mälu - st see on ressurss, mida saab süsteem kohe kasutada täiendavate vajaduste jaoks&lt;br /&gt;
* kokku pakitud kujul olevate andmete maht on 12.84 - 5.90 - 2.17 - 3.30 = 1.47&lt;br /&gt;
* kokku pakkkimise efektiivsus on 3.96/1.47 = 2.69 st peaaegu 3x&lt;br /&gt;
* kuigi süsteemis on vaba mälu, siis on süsteem otsustanud siiski 175.6 MB välja swappida, ju ta teab mis teeb, ja nii on olnud otstarbekas&lt;br /&gt;
* cached files maht on selline ressurss, mille saab süsteem kiiresti võtta uude kasutusse, st nt rakenduse koodi jaoks&lt;br /&gt;
&lt;br /&gt;
Swap asub failisüsteemis kataloogis /private/var/vm.&lt;br /&gt;
&lt;br /&gt;
===Yubico Authenticator===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Yubico tootja krüptoseadmed on hästi populaarsed ja korralikud, Eestis on ka nende kasutamine päris levinud&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Füüsilise seadme haldamiseks on kasutada tarkvara 'Yubico Authenticator'&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-yubico-02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* nime 'Authenticator' viitab justkui TOTP tüüpi rakendusele, tegelikult on see palju funktsionaalsem (FIDO2 saladuste haldamine, PIV saladuste haldamine jne)&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Yubico Authenticator paigaldamine toimub nö tavalisel viisil Apple App Store abil, samuti edasine tarkvara uuendamine.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Yubikey&lt;br /&gt;
&lt;br /&gt;
===Yubikey===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui ssh kliendi kasutamisel tekib olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
... sign_and_send_pubkey: signing failed for ECDSA .. from agent: agent refused operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
võib abistada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% ssh-add -e /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Card removed: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
% ssh-add -s /usr/local/lib/libykcs11.dylib&lt;br /&gt;
Enter passphrase for PKCS#11:&lt;br /&gt;
Card added: /usr/local/lib/libykcs11.dylib&lt;br /&gt;
&lt;br /&gt;
%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apple riistvara-tarkvara ajalugu===&lt;br /&gt;
&lt;br /&gt;
Küsimus chatgpt'le&lt;br /&gt;
&lt;br /&gt;
'what operating system apple computers have used, please give timeline of cpu and operating system with mentioning whether is was single or two-mode privilege separation solution'&lt;br /&gt;
&lt;br /&gt;
Vastus chatgpt'lt - eristatakse 6 ajastut&lt;br /&gt;
&lt;br /&gt;
The Early Days (1976-1984)&lt;br /&gt;
&lt;br /&gt;
* Computer: Apple I, Apple II series.&lt;br /&gt;
* CPU: MOS Technology 6502.&lt;br /&gt;
* Operating System: Apple DOS, ProDOS.&lt;br /&gt;
* Privilege Mode: Single-mode. The CPU and OS lacked a concept of privilege separation. All software, including the operating system, ran with full, unrestricted access to the hardware.&lt;br /&gt;
&lt;br /&gt;
The Early Macintosh (1984-1987)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh 128K, Macintosh Plus, Mac SE.&lt;br /&gt;
* CPU: Motorola 68000.&lt;br /&gt;
* Operating System: System Software (System 1.0 - 4.0).&lt;br /&gt;
* Privilege Mode: The CPU had a two-mode (Supervisor/User) architecture. However, the early Mac OS did not fully use it for memory protection. The OS was based on a cooperative multitasking model, and a buggy program could still crash the entire system.&lt;br /&gt;
&lt;br /&gt;
The 32-bit Transition (1987-1994)&lt;br /&gt;
&lt;br /&gt;
* Computer: Macintosh II series.&lt;br /&gt;
* CPU: Motorola 68020, 68030, 68040.&lt;br /&gt;
* Operating System: Mac OS (System 5.0 - 7.5).&lt;br /&gt;
* Privilege Mode: The CPUs were fully capable of two-mode operation. The OS began to use some of these features, but it was still not a truly protected-mode, preemptive multitasking system.&lt;br /&gt;
&lt;br /&gt;
The PowerPC Era (1994-2006)&lt;br /&gt;
&lt;br /&gt;
* Computer: Power Macintosh series.&lt;br /&gt;
* CPU: PowerPC 601, 603, G3, G4.&lt;br /&gt;
* Operating System: Mac OS 7.5 - Mac OS 9.&lt;br /&gt;
* Privilege Mode: The PowerPC was a modern two-mode RISC architecture with a robust privilege model. Despite the powerful hardware, the underlying Mac OS remained non-preemptive and lacked true memory protection between applications. This was a key reason why Apple chose to adopt a BSD-based foundation for its next-generation OS.&lt;br /&gt;
&lt;br /&gt;
The Intel Era (2006-2020)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook, MacBook Pro, iMac, Mac Mini, Mac Pro (Intel models).&lt;br /&gt;
* CPU: Intel Core 2 Duo, Core i3/i5/i7/i9, Xeon (x86 architecture).&lt;br /&gt;
* Operating System: Mac OS X (versions 10.4 to 10.15), later renamed macOS (from 10.12 onward).&lt;br /&gt;
* Privilege Mode: Two-mode (Ring 0 for the kernel, Ring 3 for applications). This was a pivotal time for Apple, as their BSD-based Mac OS X was finally running on a CPU architecture with a robust, industry-standard privilege model. The operating system could now fully leverage preemptive multitasking and true memory protection, making the Mac far more stable and secure than in the previous eras.&lt;br /&gt;
&lt;br /&gt;
The ARM Era (2020-Present)&lt;br /&gt;
&lt;br /&gt;
* Computer: MacBook Air, MacBook Pro, iMac, Mac Mini (Apple Silicon models).&lt;br /&gt;
* CPU: Apple Silicon (M1, M2, M3, and so on), which are custom ARM-based processors.&lt;br /&gt;
* Operating System: macOS (starting with macOS 11 Big Sur).&lt;br /&gt;
* Privilege Mode: The ARM architecture uses a sophisticated multi-level privilege model. The OS runs in EL1 (Kernel Mode), while user applications run in EL0 (User Mode). The system also utilizes EL2 (Hypervisor Mode) for virtualization and security features. The transition to ARM allowed Apple to fully integrate hardware and software, creating a highly efficient platform where the CPU, GPU, and memory are on a single chip. The macOS operating system is built specifically to take advantage of this architecture and its robust privilege model.&lt;br /&gt;
&lt;br /&gt;
===Apple Continuity===&lt;br /&gt;
&lt;br /&gt;
Apple Continuity initsiatiiv võimaldab ühe appleid konto külge kinnitatud seadmete vahel teha koostööd, nt selliste seadmete ja tegevuste osas&lt;br /&gt;
&lt;br /&gt;
* veebikaamera&lt;br /&gt;
* Universal Control - clipboard st kopi-paste üle seadmete (Synergy/Barrier/jms sarnane)&lt;br /&gt;
* rakenduste kasutamise jätkamine - nt brauser&lt;br /&gt;
* Contacts&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.apple.com/macos/continuity/&lt;br /&gt;
&lt;br /&gt;
===Ansible===&lt;br /&gt;
&lt;br /&gt;
 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES&lt;br /&gt;
&lt;br /&gt;
===vnc klient===&lt;br /&gt;
&lt;br /&gt;
vnc kliendi kasutamise eelduseks on kuskil võrgus töötav ja ligipääsetav vnc server. MacOS operatsioonisüsteemiga tuleb kaasa vnc klient, kasutamiseks sobib käivitada programm Finder&lt;br /&gt;
&lt;br /&gt;
 Finder -&amp;gt; Go -&amp;gt; Go to server&lt;br /&gt;
&lt;br /&gt;
ning sisestada lahtrisse nt&lt;br /&gt;
&lt;br /&gt;
 vnc://192.168.10.187:5901&lt;br /&gt;
&lt;br /&gt;
===Mail - IMAP ja SMTP klient===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===DFU - Device Firmware Update===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* Revive - tegevuse tulemusena asendatakse arvuti tava-firmware ja restore partitsioon - macos operatsioonisüsteem ja kasutaja andmed säilivad&lt;br /&gt;
* Restore - tegevuse tulemusena asendatakse arvuti tava-firmware, restore partition jne sh macos operatsioonisüsteem - st kõik&lt;br /&gt;
* IPSW - iphone software - praktiliselt kõik moodsad seadmed, nt https://ipsw.me/&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* DFU puudutab 'macos all oleva tava-firmware all olevat eri-firmware kihti&lt;br /&gt;
* erinevalt nö x86 riistvara lahendustest saab mac riistvara puhul kasutada kahte seadet komplektis - seadmed ühendatakse tavalise thunderbolt vms kaabliga ning seejärel üks seade võimaldab teist ravida kasutades Apple Configurator tarkvara&lt;br /&gt;
* Apple Configurator ei võimalda tegeleda selle sama arvuti riistvaraga millel ta töötab, ta võimaldab tegeleda selle arvuti riistvaraga, mis on ühendatud thunderbolt kaabliga&lt;br /&gt;
&lt;br /&gt;
====Apple Configurator tarkvara kasutamine====&lt;br /&gt;
&lt;br /&gt;
* Apple Configurator paigaldatakse tavalisel viisil AppStore platvormi abil&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* youtube kanal lapfix sisaldab saateid - https://www.youtube.com/@lapfix&lt;br /&gt;
&lt;br /&gt;
===Windows remote desktop klient===&lt;br /&gt;
&lt;br /&gt;
AppStore abil on kasutada tasuta tarkvara 'Windows App'.&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251119-macos-windows-app-01.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
===WireGuard===&lt;br /&gt;
&lt;br /&gt;
WireGuard vpn klienti saab paigaldada tavalisel viisil App Store keskkonna abil. Peale paigaldamist ja esmast käivitamist valides spotlight otsingus wireguard, tuleks ilmselt kirjaldada vpn ühendus wireguard nö serveriga ning pressides + nuppu&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Käivitatud st aktiivse vpn tunneli olek paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning üldises vpn ühenduste nimekirjas&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251215-macos-wireguard-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ifconfig utun6&lt;br /&gt;
utun6: flags=8051&amp;lt;UP,POINTOPOINT,RUNNING,MULTICAST&amp;gt; mtu 1420&lt;br /&gt;
	options=6460&amp;lt;TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM&amp;gt;&lt;br /&gt;
	inet 10.168.112.68 --&amp;gt; 10.168.112.68 netmask 0xffffff00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning ruuting&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# netstat -nr -f inet | grep utun6&lt;br /&gt;
default            link#22            UCSIg               utun6&lt;br /&gt;
10.168.10.177/32   link#22            UCS                 utun6&lt;br /&gt;
10.168.112/24      10.168.112.68      UGSc                utun6&lt;br /&gt;
10.168.112.68      10.168.112.68      UH                  utun6&lt;br /&gt;
192.168.112        link#22            UCS                 utun6&lt;br /&gt;
224.0.0/4          link#22            UmCSI               utun6&lt;br /&gt;
255.255.255.255/32 link#22            UCSI                utun6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et mingitel hetkedel wireguard klient nö ei allu eriti, siis võib olla abiks protsessi lõpetamine teminali aknas ning käivitamine 'open -a ..' abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i wireg&lt;br /&gt;
imreoolberg        757   0.0  0.4 435612624  63120   ??  S    Wed12PM   0:01.19 /Applications/WireGuard.app/Contents/MacOS/WireGuard&lt;br /&gt;
imreoolberg      30026   0.0  0.0 435300208   1344 s014  S+    5:10AM   0:00.01 grep -i wireg&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % killall WireGuard&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % open -a WireGuard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vpn kasutamisel tuleb arvestada, et kui MacOS tulemüür ei ole sisselülitatud ja ei takista, siis saab vpn serveri poolelt pöörduda ka macos arvuti poole.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_OpenBSD_kasutamine#Wireguard&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MikroTik_RouterOS#WireGuard&lt;br /&gt;
&lt;br /&gt;
===Eesti ID kaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Eesti ID kaardi tarkvara paistab esindatud nn System Settings vasakus paneelis&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Ning App Store peal&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251203-macos-app-store-updates-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
 System Report -&amp;gt; Software -&amp;gt; Applications&lt;br /&gt;
&lt;br /&gt;
juures&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Lisaks Eesti ID kaardi tarkvara paistab nö .pkg osakonnas esindatud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -v ^com.apple&lt;br /&gt;
..&lt;br /&gt;
eu.web-eid.web-eid-chrome&lt;br /&gt;
ee.ria.open-eid&lt;br /&gt;
ee.ria.qdigidoc4&lt;br /&gt;
eu.web-eid.web-eid&lt;br /&gt;
eu.web-eid.web-eid-safari&lt;br /&gt;
ee.ria.ID-updater&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kusjuures konkreetsed versioonid on sellest pkgutil vaatest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.5.0.1954&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.7.0.660&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.15.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1757342106&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures siit paistab vastuolu: pkgutil eistab nt paketi ee.ria.qdigidoc4 versiooniks 4.8.2 kuid muud 4.9.1. Kui küsida käsurealt teisiti versiooni&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# defaults read /Applications/qdigidoc4.app/Contents/Info.plist CFBundleShortVersionString&lt;br /&gt;
4.9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning programmi enda gui liides ütleb samuti versiooniks 4.9.1, lisaks tundub, et tegu on siiski sama tarkvara eksemplariga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# ps aux | grep qdigidoc4 | grep -v grep&lt;br /&gt;
imreoolberg      38841   0.0  0.4 436001936  63600   ??  S     4:19AM   0:01.45 /Applications/qdigidoc4.app/Contents/MacOS/qdigidoc4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-software-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
====System Settings vasaku paneeli ID-updater kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale System Settings vasaku paneeli ID-update kasutamist ja jaatavat vastamist vaikimisi valikutega&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
tessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kossa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
nessa&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
on tulemuseks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20251216-macos-eid-updater-05.png|700px]]&lt;br /&gt;
&lt;br /&gt;
ning käsurealt küsides, st mõne komponendi versioon uuenes&lt;br /&gt;
&lt;br /&gt;
* eu.web-eid.web-eid-chrome&lt;br /&gt;
* ee.ria.open-eid&lt;br /&gt;
* eu.web-eid.web-eid&lt;br /&gt;
* ee.ria.ID-updater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-chrome&lt;br /&gt;
package-id: eu.web-eid.web-eid-chrome&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.open-eid&lt;br /&gt;
package-id: ee.ria.open-eid&lt;br /&gt;
version: 25.10.0.235&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.qdigidoc4&lt;br /&gt;
package-id: ee.ria.qdigidoc4&lt;br /&gt;
version: 4.8.2&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757339813&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid&lt;br /&gt;
package-id: eu.web-eid.web-eid&lt;br /&gt;
version: 2.8.0.710&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info eu.web-eid.web-eid-safari&lt;br /&gt;
package-id: eu.web-eid.web-eid-safari&lt;br /&gt;
version: 2.7.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: Applications&lt;br /&gt;
install-time: 1757342162&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --pkg-info ee.ria.ID-updater&lt;br /&gt;
package-id: ee.ria.ID-updater&lt;br /&gt;
version: 3.18.0&lt;br /&gt;
volume: /&lt;br /&gt;
location: /&lt;br /&gt;
install-time: 1765858910&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20260630 kogemus&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260630-macos-eid-updater-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tundub, et macos lähenemisele natuke iseloomulikult erinevad kohad kirjutavad versiooni uuenduse kohta erinevat infot&lt;br /&gt;
&lt;br /&gt;
===Mikrotik Winbox===&lt;br /&gt;
&lt;br /&gt;
Paistab, et alates winbox v. 4 on toetatud MacOS&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260330-macos-mikrotik-install-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* .dmg on Finder peal 'Open with' -&amp;gt; 'Diskmounter' abil avatud (monteeritud)&lt;br /&gt;
* paigaldamiseks tuleb nihutada .dmg sees paistev nö ressurss Applications alla kõrvale avatud Finder programmis (tavaliselt on .dmg avatud image nö ristkülikus kaks ikooni, rakendus ja Application ja tuleb nihutada selle akna sees&lt;br /&gt;
* Finder vasakus paneelis on Windbox disk image lahti monteeritud&lt;br /&gt;
&lt;br /&gt;
kasutamine paistab välja nii&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260311-mikrotik-winbox-4-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Andmefailid asuvad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % find ~/Library/Application\ Support/MikroTik/WinBox -type f -ls&lt;br /&gt;
105559824        8 -rw-r--r--    1 imreoolberg      staff                1998 Jun  3 23:34 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.78.cfg.viw2&lt;br /&gt;
119606360       16 -rw-r--r--    1 imreoolberg      staff                5126 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/workspaces/__192.168.10.77.cfg.viw2&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
105555588        8 -rw-r--r--    1 imreoolberg      staff                 502 Jun  3 23:29 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/Addresses.cdb&lt;br /&gt;
119606359        8 -rw-r--r--    1 imreoolberg      staff                 383 Jun 29 09:39 /Users/imreoolberg/Library/Application Support/MikroTik/WinBox/settings.cfg.viw2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====WindBox 4.1 -&amp;gt; 4.2 uuendamine====&lt;br /&gt;
&lt;br /&gt;
Winbox uuendamine toimub üsna manuaalselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260709-mikrotik-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tootja jagab .dmg faili&lt;br /&gt;
* see fail tuleb eraldi liigutusena kopeerida tootja veebikohast&lt;br /&gt;
* antud juhtum on hea näide kuidas MacOS Application kataloogi alamkataloogis asendab vana versiooni uuega&lt;br /&gt;
&lt;br /&gt;
Kusjuures paigaldamise ajal midagi ei küsitud st privileegide saamiseks, tundub, et põhjusel kuna kataloog oli juba olemas ja kuulus kasutajale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld /Applications/*&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul 29  2025 /Applications/balenaEtcher.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  staff   96 Jul  3 07:43 /Applications/BetterTouchTool.app&lt;br /&gt;
drwxr-xr-x  13 root         staff  416 Jul  5 16:07 /Applications/DDPM&lt;br /&gt;
..&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  3  2025 /Applications/web-eid-safari.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jun 30 19:52 /Applications/WhatsApp.app&lt;br /&gt;
drwxr-xr-x@  3 imreoolberg  admin   96 Jul  8 10:25 /Applications/WinBox.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Jul  4 19:44 /Applications/Windows App.app&lt;br /&gt;
drwxr-xr-x@  3 root         wheel   96 Dec  9  2025 /Applications/WireGuard.app&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sõltuvalt paigalduse viisist on kataloogil omanikuks kasutaja või root&lt;br /&gt;
* nt tundub, et app store ja pkgutil puhul on omanikuks root&lt;br /&gt;
* niisama kasutajana nö visuaalselt liigutades rakenduse Applications osakonda esmakordsel paigaldusel küsitakse täiendavalt privileegide kohta, ja seejärel enam mitte (st uuendamisel)&lt;br /&gt;
&lt;br /&gt;
===MacOS virtualiseerimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===QR Journal===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===etcher===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Rosetta paigaldamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ softwareupdate --install-rosetta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dell U2725QE monitor===&lt;br /&gt;
&lt;br /&gt;
Kuigi kõik niisamagi töötab, monitori tootja veebikohas on üsna huvitavat tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
* Monitor Firmware Update Utility&lt;br /&gt;
&lt;br /&gt;
====DDPM====&lt;br /&gt;
&lt;br /&gt;
Mõisted&lt;br /&gt;
&lt;br /&gt;
* DDPM - Dell Display and Peripherial Manager&lt;br /&gt;
&lt;br /&gt;
Peale allkopeerimist paistab .pkg pakenduses tarkvara&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-02.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-03.png|500px]]&lt;br /&gt;
&lt;br /&gt;
ja kasutamine&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-04.png|700px]]&lt;br /&gt;
&lt;br /&gt;
* paistab midagi sellist nagu monitori enda peal füüsiliselt&lt;br /&gt;
&lt;br /&gt;
====Dell U2725QE Monitor Firmware Update Utility====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* monitori firmware uuendmaine toimub üle arvuti ja monitori vahelise thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
Paigaldamine paistab selline .pkg pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Firmware uuendamine toimub üle thunderbolt kaabli&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260705-dell-macos-06.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* oluline mitte lasta monitori screen saverisse, power save'i jms - nt 'caffeinate -di' abil&lt;br /&gt;
* firmware versioon muutab M2T101 -&amp;gt; M2T102&lt;br /&gt;
&lt;br /&gt;
====Kahe monitori kasutamine====&lt;br /&gt;
&lt;br /&gt;
Osutub võimalikuks ühe MacBook Air arvutiga ühendada kaks Dell monitori nö tunderbolt mõttes järjestikuliselt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260718-macos-dell-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Tegu ei ole Dell monitor daisy-chain tehnoloogiaga, sest daisy-chain töötab display protocol kihis, antud juhul toimub kontakt thunderbolt kihis.&lt;br /&gt;
&lt;br /&gt;
===character terminal seadme kasutamine===&lt;br /&gt;
&lt;br /&gt;
character teminal seadme kasutamine paistab nii, väga analoogne ubuntu ja debian operatsioonisüsteemiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep -i iterm2&lt;br /&gt;
imreoolberg       1112  11.2  1.8 436586496 306448   ??  S     6:11PM   3:08.34 /Applications/iTerm.app/Contents/MacOS/iTerm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning iterm protsessis on pseudo-terminal master multiplexer seadmed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1112 -P -n | grep ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg    5u     CHR               15,0 0t23863949                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   44u     CHR               15,1     0t1199                 609 /dev/ptmx&lt;br /&gt;
iTerm2  1112 imreoolberg   45u     CHR               15,2   0t204098                 609 /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zsh shelli avatud terminaliga seotud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ps aux | grep zsh&lt;br /&gt;
imreoolberg       1398   0.0  0.0 435312416   2784 s003  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1380   0.0  0.0 435313360   3472 s002  S     6:17PM   0:00.11 -zsh&lt;br /&gt;
imreoolberg       1376   0.0  0.0 435308624   2672 s001  S     6:17PM   0:00.01 -zsh&lt;br /&gt;
imreoolberg       1115   0.0  0.0 435313184   2896 s000  S+    6:11PM   0:00.06 -zsh&lt;br /&gt;
imreoolberg       2434   0.0  0.0 435299552   1392 s002  S+    7:16PM   0:00.00 grep zsh&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1376 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
zsh     1376 imreoolberg  cwd    DIR   1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  1361216 1152921500312571448 /bin/zsh&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15    81288 1152921500312585080 /usr/share/locale/en_US.UTF-8/LC_COLLATE&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   118896 1152921500312574306 /usr/lib/zsh/5.9/zsh/terminfo.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15   593088 1152921500312574312 /usr/lib/zsh/5.9/zsh/zle.so&lt;br /&gt;
zsh     1376 imreoolberg  txt    REG   1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
zsh     1376 imreoolberg    0u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    1u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg    2u   CHR   16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
zsh     1376 imreoolberg   10u   CHR   16,1    0t683                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh kliendis on &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % lsof -p 1437 -P -n&lt;br /&gt;
COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF                NODE NAME&lt;br /&gt;
ssh     1437 imreoolberg  cwd    DIR               1,15     7744              267481 /Users/imreoolberg&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  1555472 1152921500312572845 /usr/bin/ssh&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15    72984           121429580 /Library/Preferences/Logging/.plist-cache.a1S8PMuK&lt;br /&gt;
ssh     1437 imreoolberg  txt    REG               1,15  2374000 1152921500312573276 /usr/lib/dyld&lt;br /&gt;
ssh     1437 imreoolberg    0u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    1u   CHR                3,2      0t0                 340 /dev/null&lt;br /&gt;
ssh     1437 imreoolberg    2u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    3u  IPv4 0x79fda12a4e8825b1      0t0                 TCP 192.168.134.76:49197-&amp;gt;192.168.10.166:22 (ESTABLISHED)&lt;br /&gt;
ssh     1437 imreoolberg    4u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    5u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
ssh     1437 imreoolberg    6u   CHR               16,1    0t513                 733 /dev/ttys001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ilusti on paista järgnevus iterm2 -&amp;gt; zsh -&amp;gt; ssh&lt;br /&gt;
&lt;br /&gt;
Selline pilt võiks&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-char-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ptmx - pseudo-terminal master multiplexer&lt;br /&gt;
* ttys - teletypewriter slave&lt;br /&gt;
* console - füüsiline laptop graafilisse osakonda sisselogimise kohalolek&lt;br /&gt;
* Sun18 - kuna klassikaliselt on see tulp olnud max pikkusega 6 sümbolit, sellest selline notatsioon - kell 18, pühapäev&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Seadmed_2&lt;br /&gt;
&lt;br /&gt;
===Zabbix agent===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % sudo -i&lt;br /&gt;
Password:&lt;br /&gt;
Imres-MacBook-Air:~ root# file /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg: xar archive compressed TOC: 5108, SHA-1 checksum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % installer -volinfo -pkg Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg&lt;br /&gt;
/Volumes/PRO-G40&lt;br /&gt;
/Volumes/volume-tm-backup-01&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paigaldamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# installer -pkg /Users/imreoolberg/Downloads/zabbix_agent-7.0.27-macos-arm64-openssl.pkg -target /&lt;br /&gt;
installer: Package name is Zabbix Agent&lt;br /&gt;
installer: Installing at base path /&lt;br /&gt;
installer: The install was successful.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --packages | grep -i zabbix&lt;br /&gt;
com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
&lt;br /&gt;
Imres-MacBook-Air:~ root# pkgutil --files com.zabbix.pkg.ZabbixAgent&lt;br /&gt;
Library&lt;br /&gt;
Library/LaunchDaemons&lt;br /&gt;
Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist&lt;br /&gt;
usr&lt;br /&gt;
usr/local&lt;br /&gt;
usr/local/bin&lt;br /&gt;
usr/local/bin/zabbix_get&lt;br /&gt;
usr/local/bin/zabbix_sender&lt;br /&gt;
usr/local/etc&lt;br /&gt;
usr/local/etc/zabbix&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_examples.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd/userparameter_mysql.conf.NEW&lt;br /&gt;
usr/local/etc/zabbix/zabbix_agentd.conf.NEW&lt;br /&gt;
usr/local/sbin&lt;br /&gt;
usr/local/sbin/zabbix_agentd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Imres-MacBook-Air:~ root# egrep -v &amp;quot;^$|^#&amp;quot; /usr/local/etc/zabbix/zabbix_agentd.conf&lt;br /&gt;
LogFile=/var/log/zabbix/zabbix_agentd.log&lt;br /&gt;
Server=192.168.10.196&lt;br /&gt;
Hostname=macos-air.auul.pri.ee&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab vaikimisi Zabbix kaasa tuleva template abil selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-01.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* võrreldes nt vaikimisi top utiliidi väljundiga, mis esitab muu hulgas andmeid cpu interruptide kohta, on zabbix esitus üsna tagasihoidlik&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260706-macos-zabbix-02.png|1400px]]&lt;br /&gt;
&lt;br /&gt;
===Rancher desktop===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===scutil===&lt;br /&gt;
&lt;br /&gt;
Osutub, et arvuti dhcp serveriga kohtumisele omandab lisaks ip aadressile jms võrguseadistusele ka uue hostname'i väärtuse, st mida vastab 'hostname' käsk kui kinnitatud uus dünaamiline ip address omab revers teisendust nimesüsteemis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get LocalHostName&lt;br /&gt;
Imres-MacBook-Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get ComputerName&lt;br /&gt;
Imre’s MacBook Air&lt;br /&gt;
imreoolberg@orcl2-vip ~ % scutil --get HostName&lt;br /&gt;
HostName: not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pinnimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
orcl2-vip:~ root# scutil --set HostName &amp;quot;Imres-MacBook-Air&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trash===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % du -sh .Trash&lt;br /&gt;
 18G	.Trash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
graafiliselt&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://github.com/luchina-gabriel/OSX-PROXMOX&lt;br /&gt;
* https://www.apple.com/mac/compare/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Ollama_-_MacOS&amp;diff=4905</id>
		<title>Ollama - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Ollama_-_MacOS&amp;diff=4905"/>
		<updated>2026-07-28T22:21:10Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Paigaldamine ja käivitamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Tingimata ei ole see vajalik, aga kui pressida Sign In ollama veebikohas https://ollama.com/ ja nt Google kontoga sisse logida, paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260728-ollama-02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Ollama tarkvara saab kopeerida aadressilt https://ollama.com/download/mac&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260728-ollama-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama pull mistral:7b&lt;br /&gt;
pulling manifest&lt;br /&gt;
pulling f5074b1221da: ... 100% &lt;br /&gt;
verifying sha256 digest&lt;br /&gt;
writing manifest&lt;br /&gt;
success&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks käsurealt, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama run mistral:7b&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; please list from smaller to bigger 4 first amicable numbers&lt;br /&gt;
 Amicable numbers are pairs of integers (u, v) such that the sum of the proper divisors of u is equal to v, and the sum of the proper divisors of v is equal to u. The first four&lt;br /&gt;
amicable numbers are:&lt;br /&gt;
&lt;br /&gt;
1. (220, 284)&lt;br /&gt;
2. (1184, 1210)&lt;br /&gt;
3. (2620, 2924)&lt;br /&gt;
4. (5020, 5564)&lt;br /&gt;
&lt;br /&gt;
These numbers are sorted from smallest to largest: (220, 284), (1184, 1210), (2620, 2924), and (5020, 5564).&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; Send a message (/? for help)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Võrgu seadistamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % launchctl setenv OLLAMA_HOST &amp;quot;192.168.64.1:11434&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % launchctl getenv OLLAMA_HOST&lt;br /&gt;
192.168.64.1:11434&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mudelid===&lt;br /&gt;
&lt;br /&gt;
====Pilvepõhised====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama show gemma4:cloud&lt;br /&gt;
  Model&lt;br /&gt;
    architecture        gemma4&lt;br /&gt;
    parameters          32682372656&lt;br /&gt;
    context length      262144&lt;br /&gt;
    embedding length    5376&lt;br /&gt;
    quantization        BF16&lt;br /&gt;
&lt;br /&gt;
  Capabilities&lt;br /&gt;
    completion&lt;br /&gt;
    thinking&lt;br /&gt;
    tools&lt;br /&gt;
    vision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://enos.itcollege.ee/~edmund/it-didaktika/2025-08-15-IT-6petajad-suvekool/vabavara-TI-ajastul.pdf&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Rancher_Desktop_-_MacOS&amp;diff=4904</id>
		<title>Rancher Desktop - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Rancher_Desktop_-_MacOS&amp;diff=4904"/>
		<updated>2026-07-28T20:57:30Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* https://rancherdesktop.io/&lt;br /&gt;
* https://docs.rancherdesktop.io/getting-started/installation/&lt;br /&gt;
* https://github.com/rancher-sandbox/rancher-desktop&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* MacOS XNU kernel ise ei oma selliseid nö isolatsiooni võimeid, mida eeldab nn OCI (open container initiative) moodi workload käitamine&lt;br /&gt;
* MacOS XNU kerneli võimestamiseks kasutatakse automaatselt docker workload käitamisel nö vahel virtuaalset arvutit ja linux kernelit&lt;br /&gt;
* virtuaalset arvutit ja linux kernelit kasutatakse nö loogiliseks teisendamiseks, operatsioonisüsteem linux -&amp;gt; macos, mitte riistvara platvorm x86 -&amp;gt; arm64&lt;br /&gt;
* virtuaalse arvuti käivitamisel on võimalus valida qemu ja 'Apple Virtualization framework' vahel&lt;br /&gt;
&lt;br /&gt;
Seda nähtust illustreerib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % docker run --rm ubuntu uname -a&lt;br /&gt;
Linux f727300fb889 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ % docker run --rm debian uname -a&lt;br /&gt;
Linux 779bb27224d4 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
imre@imre-mac ~ % docker run --rm fedora uname -a&lt;br /&gt;
Linux dae1ddad3271 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kõik erinevad linux distributsioonid raporteerivad sama Alpine nimelise kompileerimiskorra arm linux kerneli kasutamist&lt;br /&gt;
&lt;br /&gt;
Joonis (claude.ai tehtud)&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260721-rancher-desktop-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Rancher desktop kasutamisel käivitatakse taustal üks Apple Virtualization.framework virtuaalne arvuti&lt;br /&gt;
* virtuaalse arvuti sees töötab operatsioonisüsteem Alpine&lt;br /&gt;
* virtuaalse arvuti sees töötavad docker konteinerid&lt;br /&gt;
* võrgu töötamine on natuke sarnane pssta/pasta lahendusele, st macos host peal töötab limectl protsess ja selle kaudu toimub virtuaalselt arvutist välja pöördumine&lt;br /&gt;
* eemalt sisse pöördumine toimub sõna otses mõttes viisil, et ssh abil pöördutakse macos hostist virtuaalsesse arvutisse (limectl protsessi kaudu), tehakse port forward&lt;br /&gt;
* võimalik on forwardida tcp protokolli põhist liiklust konteineritele (seda ssh forward seadistamist hallatakse automaatselt kui teha nö tavaline 'docker expose'&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara saab kopeerida nt github keskkonnast&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-rancher-desktop-macos-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sobiv on valida arm arhitektuur&lt;br /&gt;
&lt;br /&gt;
Tavalisel viisil monteerida .dmg&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260720-rancher-desktop-macos-02.png|700px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldamiseks nihutada hiirega rakendus tavalisel viisil -&amp;gt; Applications osakonda&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-rancher-desktop-01.png|400px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* antud juhul keskendutakse docker workloadile, st Kubernetes valiku võiks välja lülitada&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260717-rancher-desktop-02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Kokkuvõttes on töötava rancher desktop puhul näha ta&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-rancher-desktop-macos-02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Failisüsteemis asub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/Users/imreoolberg/Library/Application Support/rancher-desktop&lt;br /&gt;
/Users/imreoolberg/Library/Preferences/rancher-desktop&lt;br /&gt;
/Users/imreoolberg/Library/Logs/rancher-desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rancher desktop enda protsessideks on nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i Rancher&lt;br /&gt;
..&lt;br /&gt;
imreoolberg      36680   0.0  0.6 1949692784  97648   ??  S    10:50PM   2:00.60 /Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning konkreetsele virtuaalsele arvutile (millel töötab linux, mille sees on docker)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i virtualizat&lt;br /&gt;
imreoolberg      36900   1.6  1.6 439638656 266272   ??  Ss   10:50PM  32:55.69 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % lsof -p 36900 -P -n | grep rancher-desktop&lt;br /&gt;
com.apple 36900 imreoolberg  txt     REG               1,13       131072           124449068 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/vz-efi&lt;br /&gt;
com.apple 36900 imreoolberg    3w    REG               1,13         7423           124449069 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/serialv.log&lt;br /&gt;
com.apple 36900 imreoolberg    4u    REG               1,13 107374182400           124448998 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/disk&lt;br /&gt;
com.apple 36900 imreoolberg    5r    REG               1,13    301281280           124448997 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/iso&lt;br /&gt;
com.apple 36900 imreoolberg    6r    REG               1,13     19736576           124607540 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/cidata.iso&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* muu hulgas on paista virtuaalse arvutiga seotud plokkseadmetele vastavad failid macos failisüsteemis&lt;br /&gt;
&lt;br /&gt;
===Kasutamine - docker===&lt;br /&gt;
&lt;br /&gt;
Paigaldamise tulemusena on kasutada sellised utiliidid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ls -ld .rd/bin/docker*&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff   80 Jul 20 16:56 .rd/bin/docker -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  102 Jul 20 16:56 .rd/bin/docker-buildx -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-buildx&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  103 Jul 20 16:56 .rd/bin/docker-compose -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-compose&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  101 Jul 20 16:56 .rd/bin/docker-credential-ecr-login -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-ecr-login&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff   96 Jul 20 16:56 .rd/bin/docker-credential-none -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-none&lt;br /&gt;
lrwxr-xr-x@ 1 imreoolberg  staff  103 Jul 20 16:56 .rd/bin/docker-credential-osxkeychain -&amp;gt; /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-osxkeychain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* utiliidid on nii kavalasti realiseeritud, et macos peal käivitades nad tegelikult opereerivad virtuaalse arvuti sees&lt;br /&gt;
&lt;br /&gt;
docker jt utiliidid peavad olema path peal, vaikimisi nad sinna pannakse, kasutamiseks tuleb avada uus nt iterm2 aken&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % cat .zshrc&lt;br /&gt;
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)&lt;br /&gt;
export PATH=&amp;quot;/Users/imreoolberg/.rd/bin:$PATH&amp;quot;&lt;br /&gt;
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
macos peal hostis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-01 ubuntu bash&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-02 ubuntu bash&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-03 ubuntu bash&lt;br /&gt;
&lt;br /&gt;
# lsof -nP -iTCP -sTCP:LISTEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning linux vm docker pidamise arvutisse sisenemiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % rdctl shell&lt;br /&gt;
lima-rancher-desktop:/Users/imre$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning seal sees toimetamiseks nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lima-rancher-desktop:/Users/imre$ sudo -i&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# docker version&lt;br /&gt;
Client:&lt;br /&gt;
 Version:           29.5.2&lt;br /&gt;
 API version:       1.54&lt;br /&gt;
 Go version:        go1.25.10&lt;br /&gt;
 Git commit:        79eb04c7d8e1d73247cb7fe011eecc645063e0f0&lt;br /&gt;
 Built:             Sun May 31 13:53:18 2026&lt;br /&gt;
 OS/Arch:           linux/arm64&lt;br /&gt;
 Context:           default&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# docker ps&lt;br /&gt;
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES&lt;br /&gt;
1be37b403d0d   ubuntu    &amp;quot;bash&amp;quot;    26 minutes ago   Up 26 minutes             ubuntu-imre-03&lt;br /&gt;
1662f4905b26   ubuntu    &amp;quot;bash&amp;quot;    26 minutes ago   Up 26 minutes             ubuntu-imre-02&lt;br /&gt;
b6dbbc4dae3a   ubuntu    &amp;quot;bash&amp;quot;    27 minutes ago   Up 27 minutes             ubuntu-imre-01&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Alpine Linux&amp;quot;&lt;br /&gt;
ID=alpine&lt;br /&gt;
VERSION_ID=3.23.5&lt;br /&gt;
PRETTY_NAME=&amp;quot;Alpine Linux v3.23&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://alpinelinux.org/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;https://gitlab.alpinelinux.org/alpine/aports/-/issues&amp;quot;&lt;br /&gt;
BUILD_ID=&amp;quot;v0.2.47.rd8&amp;quot;&lt;br /&gt;
VARIANT_ID=&amp;quot;rd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# brctl show&lt;br /&gt;
bridge name	bridge id		STP enabled	interfaces&lt;br /&gt;
docker0		8000.d61e94e66512	no		veth9d3c213&lt;br /&gt;
							veth627ad00&lt;br /&gt;
							vethbc5522e&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# ip route&lt;br /&gt;
default via 192.168.5.2 dev eth0 metric 202&lt;br /&gt;
default via 192.168.65.1 dev vznat metric 203&lt;br /&gt;
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1&lt;br /&gt;
192.168.5.0/24 dev eth0 proto kernel scope link src 192.168.5.15&lt;br /&gt;
192.168.65.0/24 dev vznat proto kernel scope link src 192.168.65.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Claude Code kasutamine konteineris===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Claude Code kasutamine nö käsurea rakendusena annab otsekohesema positsiooni nt claude abil arvutitega tegelemiseks üle võrgu&lt;br /&gt;
* Claude Code kasutamine konteinerist tekitab selgema piiri töökohaarvuti ja claude tegevuste vahel (nt on väga selgesti kontrollitud mis osadele saab töökohaarvuti failisüsteemile juurde&lt;br /&gt;
* antud juhul on tegu klient-rakendus tüüpi konteineriga (mitte server-rakendus tüüpi konteineriga nagu tavaliselt, st konteiner pakub mingi teenust mille poole pöördutakse)&lt;br /&gt;
&lt;br /&gt;
====Ettevalmistused operatsioonisüsteemis====&lt;br /&gt;
&lt;br /&gt;
Ettevalmistused MacOS keskkonnas, tühjad kataloogid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/dc&lt;br /&gt;
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/workspace&lt;br /&gt;
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/home/node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tõmmise moodustamine====&lt;br /&gt;
&lt;br /&gt;
Osutub, et ei ole nö usaldusväärset valmis claude-code docker tõmmist, st tuleb Dockerfile abiga ise tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat Dockerfile&lt;br /&gt;
FROM node:24-trixie&lt;br /&gt;
&lt;br /&gt;
RUN apt-get update &amp;amp;&amp;amp; \&lt;br /&gt;
  DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \&lt;br /&gt;
  less \&lt;br /&gt;
  git \&lt;br /&gt;
  procps \&lt;br /&gt;
  sudo \&lt;br /&gt;
  fzf \&lt;br /&gt;
  zsh \&lt;br /&gt;
  man-db \&lt;br /&gt;
  unzip \&lt;br /&gt;
  gnupg2 \&lt;br /&gt;
  gh \&lt;br /&gt;
  iptables \&lt;br /&gt;
  ipset \&lt;br /&gt;
  iproute2 \&lt;br /&gt;
  dnsutils \&lt;br /&gt;
  aggregate \&lt;br /&gt;
  jq \&lt;br /&gt;
  nano \&lt;br /&gt;
  vim \&lt;br /&gt;
  openssh-client \&lt;br /&gt;
  ripgrep \&lt;br /&gt;
  bash \&lt;br /&gt;
  fd-find \&lt;br /&gt;
  bat \&lt;br /&gt;
  tmux \&lt;br /&gt;
  tree \&lt;br /&gt;
  htop \&lt;br /&gt;
  iputils-ping \&lt;br /&gt;
  traceroute \&lt;br /&gt;
  net-tools \&lt;br /&gt;
  lsof \&lt;br /&gt;
  python3-pip \&lt;br /&gt;
  python3-venv \&lt;br /&gt;
  zip \&lt;br /&gt;
  rsync \&lt;br /&gt;
  &amp;amp;&amp;amp; apt-get clean &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;br /&gt;
&lt;br /&gt;
RUN npm install -g @anthropic-ai/claude-code&lt;br /&gt;
WORKDIR /workspace&lt;br /&gt;
ENTRYPOINT [&amp;quot;claude&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* alusena kasutatakse ausat node v 24 ja debian v 13 tõmmist (node v 24 on lts kestab kuni 2028)&lt;br /&gt;
* paigaldatakse lisa tarkvara, mida on niisama vajadusel hea kasutada või claude protsessil on vaja (nt openssh-client, et logida üle võrgu sisse teisse arvutisse)&lt;br /&gt;
* npm abil claude-code kasutamine tegelikult on pigem paketihalduse kui sisuline javascript runtime kasutamine; claude-code on juba kompileeritud-assembleeritud-lingitud jne&lt;br /&gt;
* kirjeldatakse entry point väärtuseks claude rakendus ise (node image enda puhul on selleks programm node)&lt;br /&gt;
&lt;br /&gt;
tõmmise moodustamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker build -t claude-code .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker image ls&lt;br /&gt;
&lt;br /&gt;
IMAGE                                                      ID             DISK USAGE   CONTENT SIZE   EXTRA&lt;br /&gt;
claude-code:latest                                         0b7fb18a11e4       1.27GB          344MB&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selline tarkvara koosseis on turvaline kuna kasutusel olev dockerhost kernel on uuemast ajast kui userspace'ile vastav kernel&lt;br /&gt;
&lt;br /&gt;
* linux kernel ja userspace sobivuse lubadus on, et uuem kernel on tagasiühilduv (Linus Torvalds fraas 'never break userspace' - nt mõtlemisega, et uuema kerneliga arvestavas userspace'is võivad olla kasutuses olematud syscallid kui kasutada vastu vanemat kernelit)&lt;br /&gt;
* debian v. 13 enda naturaalne kernel on v. 6.12&lt;br /&gt;
* dockerhost kernel on v. 6.18&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell uname -a&lt;br /&gt;
Linux lima-rancher-desktop 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Käivitamine====&lt;br /&gt;
&lt;br /&gt;
Käsurealt käivitamiseks (ajutiseks katseks)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air 20260721 % docker run -it -v $(pwd):/workspace claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
docker compose abil käivitamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml&lt;br /&gt;
name: p_claude-code&lt;br /&gt;
services:&lt;br /&gt;
  svc_claude-code:&lt;br /&gt;
    image: claude-code&lt;br /&gt;
    container_name: cn_claude-code&lt;br /&gt;
    init: true&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/workspace:/workspace&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/root:/root&lt;br /&gt;
&lt;br /&gt;
    working_dir: /workspace&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&lt;br /&gt;
&lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_claude-code&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  nw_claude-code:&lt;br /&gt;
    name: nw_claude-code&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* init: true - oluline kuna konteineri tõmmis ise ei sisalda init-kvaliteediga protsessi (init kvaliteet on vajalik nö descendant protsesside eemaldamiseks vajadusel, nn zombie tõrjeks)&lt;br /&gt;
* protsessid võiksid töötada non-root kasutajana konteineri sees, st seda praegu ei ole&lt;br /&gt;
* stdin_open ja tty on iseloomulikud nn kliend-rakendus konteinerile&lt;br /&gt;
&lt;br /&gt;
ning käivitamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % pwd&lt;br /&gt;
/Users/imreoolberg/cc/dc&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker compose run --name cn_claude-code --rm svc_claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* docker compose'i ei käivitata nö backgroundis (kunagi ei öelda nö tavalist 'docker compose up -d')&lt;br /&gt;
* käivitatakse viidates docker compose faili service elemendile&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260722-rancher-desktop-macos-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* ja esitab vastuse mõõdukalt vabas vormis, aga sisuliselt väga korrektse&lt;br /&gt;
&lt;br /&gt;
Vaatlemine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker compose ls&lt;br /&gt;
NAME                  STATUS              CONFIG FILES&lt;br /&gt;
p_claude-code         running(1)          /Users/imreoolberg/cc/dc/docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker ps&lt;br /&gt;
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES&lt;br /&gt;
7731d1366371   claude-code         &amp;quot;claude&amp;quot;                 14 minutes ago   Up 14 minutes             cn_claude_code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker compose exec svc_claude-code bash&lt;br /&gt;
root@7731d1366371:/workspace# ps -ef&lt;br /&gt;
UID          PID    PPID  C STIME TTY          TIME CMD&lt;br /&gt;
root           1       0  0 09:40 pts/0    00:00:00 /sbin/docker-init -- claude&lt;br /&gt;
root           7       1  2 09:40 pts/0    00:00:15 claude&lt;br /&gt;
root         109       7  0 09:51 ?        00:00:00 /usr/bin/zsh -c source /root/.claude/shell-snapshots/snapshot-zsh-1784713826690-ovcwwb.sh 2&amp;gt;/dev/null || true &amp;amp;&amp;amp; setopt NO_EXTENDED_GLOB NO_BARE_GLOB_QUAL 2&amp;gt;/dev/null || true &amp;amp;&amp;amp; eval 'ssh -o Batch&lt;br /&gt;
root         111     109  0 09:51 ?        00:00:00 ssh -o BatchMode=yes -o ConnectTimeout=10 root@192.168.10.52 ping -c 20 8.8.8.8&lt;br /&gt;
root         114       0  0 09:52 pts/2    00:00:00 bash&lt;br /&gt;
root         121     114  0 09:52 pts/2    00:00:00 ps -ef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* parasjagu paluti arvutist .52 pingida 8.8.8.8&lt;br /&gt;
* on näha, et docker enda init on pid 1&lt;br /&gt;
* initist tuleb claude protsess&lt;br /&gt;
* claude protsessist tulevad shellid&lt;br /&gt;
* shellist ssh abil sisselogimine teisse arvutisse&lt;br /&gt;
&lt;br /&gt;
Moniteeritud bind failisüsteemid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
node@99e63ae3a184:/workspace$ findmnt -t virtiofs&lt;br /&gt;
TARGET     SOURCE                                      FSTYPE   OPTIONS&lt;br /&gt;
/workspace lima-f07754c14865dffc[/cc/volume/workspace] virtiofs rw,relatime&lt;br /&gt;
/home/node lima-f07754c14865dffc[/cc/volume/home/node] virtiofs rw,relatime&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasutamisega on seotud sellised asjaolud, tõenäoliselt on asjakohased ssh võtmed, mille abil saab teistesse arvutitesse sisse logida üle ssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.ssh/*&lt;br /&gt;
-rw-------  1 imreoolberg  staff  2602 Jul 22 01:09 volume/root/.ssh/id_rsa&lt;br /&gt;
-rw-r--r--  1 imreoolberg  staff   571 Jul 22 01:09 volume/root/.ssh/id_rsa.pub&lt;br /&gt;
-rw-------  1 imreoolberg  staff  1120 Jul 22 01:23 volume/root/.ssh/known_hosts&lt;br /&gt;
-rw-r--r--  1 imreoolberg  staff   142 Jul 22 01:10 volume/root/.ssh/known_hosts.old&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Claude seadistused, eriti ligipääs oma isanda juurde internetti (credentials)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.claude volume/root/.claude.json&lt;br /&gt;
drwxr-xr-x  15 imreoolberg  staff    480 Jul 22 13:00 volume/root/.claude&lt;br /&gt;
-rw-------   1 imreoolberg  staff  37603 Jul 22 13:00 volume/root/.claude.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Töö lõpetamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude rakenduses&lt;br /&gt;
&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena eemaldatakse konteiner, aga alles jäävad nn bind-volume'id.&lt;br /&gt;
&lt;br /&gt;
====non-root konteiner====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml&lt;br /&gt;
name: p_claude-code&lt;br /&gt;
services:&lt;br /&gt;
  svc_claude-code:&lt;br /&gt;
    image: claude-code&lt;br /&gt;
    container_name: cn_claude-code&lt;br /&gt;
    init: true&lt;br /&gt;
    user: node&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/workspace:/workspace&lt;br /&gt;
      - /Users/imreoolberg/cc/volume/home/node:/home/node&lt;br /&gt;
      - /run/host-services/ssh-auth.sock:/ssh-agent&lt;br /&gt;
&lt;br /&gt;
    environment:&lt;br /&gt;
      - SSH_AUTH_SOCK=/ssh-agent&lt;br /&gt;
&lt;br /&gt;
    working_dir: /workspace&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&lt;br /&gt;
&lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_claude-code&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  nw_claude-code:&lt;br /&gt;
    name: nw_claude-code&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et node tõmmis on ise selline mis ei luba eleveerida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell&lt;br /&gt;
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i&lt;br /&gt;
lima-rancher-desktop:~# egrep &amp;quot;node|root&amp;quot; /var/lib/docker/rootfs/overlayfs/98fa407430c5fe80b3c3012dd471e95521e4ea94abc9797bd29aa99dd3a61c2d/etc/shadow&lt;br /&gt;
root:*:20647:0:99999:7:::&lt;br /&gt;
node:!:20648:0:99999:7:::&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Konteinerist edasipääsu kontrollimiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell sh -c 'sudo iptables -I DOCKER-USER -d 8.8.8.8 -j DROP'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ssh-agent forward ning taaskäivitada Rancher Desktop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % cat ~/Library/Application\ Support/rancher-desktop/lima/_config/override.yaml&lt;br /&gt;
ssh:&lt;br /&gt;
  forwardAgent: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % rdctl shell&lt;br /&gt;
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i&lt;br /&gt;
lima-rancher-desktop:~# apk add acl&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# ls -ld /run/host-services/ssh-auth.sock&lt;br /&gt;
lrwxrwxrwx    1 imreoolberg root            63 Jul 23 16:57 /run/host-services/ssh-auth.sock -&amp;gt; /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI&lt;br /&gt;
&lt;br /&gt;
lima-rancher-desktop:~# setfacl -m u:1000:rw /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui on tekkinud hulka konteinereid ja korraga kustutada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % for i in `docker ps -a | awk {'print $1'} | grep -v CONT`; do echo &amp;quot;docker rm $i&amp;quot;; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja korraga kustutada imaged&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@imre-mac ~ % for i in `docker images | awk {'print $2'} | grep -v ID | grep -v Info` ; do echo &amp;quot;docker rmi $i&amp;quot;; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
node tarkvara konteineris&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air dc % docker exec -ti cn_claude-code npm list -g&lt;br /&gt;
/usr/local/lib&lt;br /&gt;
+-- @anthropic-ai/claude-code@2.1.218&lt;br /&gt;
+-- corepack@0.35.0&lt;br /&gt;
`-- npm@11.16.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selleks, et nö 'rdctl shell' virtuaalse arvuti käest ruum kätte saada macos host operatsioonisüsteemi failisüsteemis tuleb peale nt docker image kustutamist öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lima-rancher-desktop:~# fstrim -av&lt;br /&gt;
/mnt/data: 9.3 GiB (9953943552 bytes) trimmed on /dev/vda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarkvara uuendamine====&lt;br /&gt;
&lt;br /&gt;
Uuendamiseks tuleks kusutada senine claude-code tõmmis ja moodustada uuesti.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* vestlus Claude Chat osakonnas&lt;br /&gt;
* https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile&lt;br /&gt;
&lt;br /&gt;
===Claude Code kasutamine konteineris - litellm===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name: p_claude-code-lllm&lt;br /&gt;
services:&lt;br /&gt;
  svc_claude-code-lllm:&lt;br /&gt;
    image: claude-code&lt;br /&gt;
    container_name: cn_claude-code-lllm&lt;br /&gt;
    init: true&lt;br /&gt;
    user: node&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /Users/imreoolberg/cc-lllm/volume/workspace:/workspace&lt;br /&gt;
      - /Users/imreoolberg/cc-lllm/volume/home/node:/home/node&lt;br /&gt;
      - /run/host-services/ssh-auth.sock:/ssh-agent&lt;br /&gt;
&lt;br /&gt;
    environment:&lt;br /&gt;
      - SSH_AUTH_SOCK=/ssh-agent&lt;br /&gt;
      - ANTHROPIC_BASE_URL=https://skm-litellm-01.auul.pri.ee&lt;br /&gt;
      - ANTHROPIC_API_KEY=${LITELLM_API_KEY}&lt;br /&gt;
      - ANTHROPIC_MODEL=claude-sonnet-4-6&lt;br /&gt;
&lt;br /&gt;
    working_dir: /workspace&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&lt;br /&gt;
&lt;br /&gt;
    networks:&lt;br /&gt;
      - nw_claude-code-lllm&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  nw_claude-code-lllm:&lt;br /&gt;
    name: nw_claude-code-lllm&lt;br /&gt;
    driver: bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Ollama_-_MacOS&amp;diff=4903</id>
		<title>Ollama - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Ollama_-_MacOS&amp;diff=4903"/>
		<updated>2026-07-28T20:33:12Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Paigaldamine ja käivitamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Tingimata ei ole see vajalik, aga kui pressida Sign In ollama veebikohas https://ollama.com/ ja nt Google kontoga sisse logida, paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260728-ollama-02.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine ja käivitamine===&lt;br /&gt;
&lt;br /&gt;
Ollama tarkvara saab kopeerida aadressilt https://ollama.com/download/mac&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260728-ollama-01.png|900px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama pull mistral:7b&lt;br /&gt;
pulling manifest&lt;br /&gt;
pulling f5074b1221da: ... 100% &lt;br /&gt;
verifying sha256 digest&lt;br /&gt;
writing manifest&lt;br /&gt;
success&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ %&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks käsurealt, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama run mistral:7b&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; please list from smaller to bigger 4 first amicable numbers&lt;br /&gt;
 Amicable numbers are pairs of integers (u, v) such that the sum of the proper divisors of u is equal to v, and the sum of the proper divisors of v is equal to u. The first four&lt;br /&gt;
amicable numbers are:&lt;br /&gt;
&lt;br /&gt;
1. (220, 284)&lt;br /&gt;
2. (1184, 1210)&lt;br /&gt;
3. (2620, 2924)&lt;br /&gt;
4. (5020, 5564)&lt;br /&gt;
&lt;br /&gt;
These numbers are sorted from smallest to largest: (220, 284), (1184, 1210), (2620, 2924), and (5020, 5564).&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; Send a message (/? for help)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mudelid===&lt;br /&gt;
&lt;br /&gt;
====Pilvepõhised====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imreoolberg@Imres-MacBook-Air ~ % ollama show gemma4:cloud&lt;br /&gt;
  Model&lt;br /&gt;
    architecture        gemma4&lt;br /&gt;
    parameters          32682372656&lt;br /&gt;
    context length      262144&lt;br /&gt;
    embedding length    5376&lt;br /&gt;
    quantization        BF16&lt;br /&gt;
&lt;br /&gt;
  Capabilities&lt;br /&gt;
    completion&lt;br /&gt;
    thinking&lt;br /&gt;
    tools&lt;br /&gt;
    vision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TODO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://enos.itcollege.ee/~edmund/it-didaktika/2025-08-15-IT-6petajad-suvekool/vabavara-TI-ajastul.pdf&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenCode_-_MacOS&amp;diff=4902</id>
		<title>OpenCode - MacOS</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenCode_-_MacOS&amp;diff=4902"/>
		<updated>2026-07-28T20:12:10Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  TODO  ===Kasulikud lisamaterjalid===  * TODO'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
</feed>