Cvičení: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14.
Poslední aktuality jsou v issue #112 (z 15. dubna).
Témata tohoto cvičení zahrnují uživatelské účty v Linuxu, instalaci softwaru a spouštění služeb. Témata jsou víceméně nezávislá a je možné je číst v libovolném pořadí.
Předstartovní kontrola
- Jste připraveni na první test :-).
Uživatelské účty
Tomuto tématu jsme se již několikrát věnovali: berte ho také jako osvěžení věcí, které již znáte.
Uživatelské účty v systému Linux jsou dvou základních typů. Běžné uživatelské účty pro koncové uživatele, tj. účty, ke kterým se přihlašujete prostřednictvím SSH nebo grafického rozhraní a na kterých pracujete. Dále máme systémové účty, které existují výhradně za účelem možnosti spouštět procesy pod různými uživateli pro lepší izolaci. Pod těmito účty se obvykle vůbec nepřihlašujeme.
Vaše účty na linux.ms.mff.cuni.cz
jsou prvního typu, a pokud spustíte ps -ef --forest
, uvidíte, co mají spuštěno ostatní uživatelé. Příkaz ps
vypíše seznam běžících procesů - k tomuto témat se ještě vrátíme na nějakém
z dalších cvičení.
Systémové účty jsou například chrony
nebo nginx
, které slouží ke
spouštění speciálních služeb systému.
Každý uživatelský účet má číselné id (podle kterého operační systém
identifikuje uživatele) a uživatelské jméno, které je obvykle mapováno
pomocí /etc/passwd
. /etc/passwd
je obyčejný textový soubor s poli
oddělenými dvojtečkou. Klidně se do něj podívejte (cat /etc/passwd
úplně
stačí).
Mezi uživatelskými účty na Linuxu má jeden z nich výsadní postavení.
Tento uživatel se jmenuje root
(často též superuser nebo superuživatel),
má číselný kód 0 a má v podstatě neomezená oprávnění nad běžícím strojem.
Například, přístupová práva jsou ve skutečnosti ignorována pro uživatele
root
(tj. proces běžící pod rootem může číst/zapisovat libovolný soubor).
Chcete-li přepnout na účet superuživatele, můžete použít buď příkaz sudo
(viz níže), nebo su
. Často se spouští takto, aby se zajistilo spuštění
login shellu (mimo jiné se tím také zajistí, že $HOME
ukazuje na /root
a
ne na domovský adresář běžného uživatele):
su -
Na rozdíl od jiných systémů, Linux je navržen tak aby uživatelské programy mohly vždy běžet pod normálním (obyčejným) uživatelem a nevyžadovaly rootovská oprávnění. Dokonce, některé programy (často se to týkalo třeba IRC klientů) se pod rootem odmítaly spustit.
Účet root
je vyžadován pro změny v systému jako celku.
To zahrnuje aktualizaci systému, formátování pevného disku nebo třeba
modifikaci
systémové konfigurace.
Velmi striktní oddělení běžných (pracovních) účtů a superuživatele vychází z
faktu, že Linux byl navržen jako víceuživatelský systém.
Tato filozofie je více jak 50 let stará a sahá do doby, kdy počítač byl
sdílen mnoha uživateli a jen jeden z nich – root
– byl administrátorem.
Dnes, kdy typická notebooková instalace je právě pro jednoho uživatele, je
toto rozdělení spíš umělé, ale pořád existuje.
Pravdou je, že dnešní uživatel je více ohrožen napadenou webovou stránku než neoprávněnou aktualizací systému a účet superuživatele byl navržen spíše s ohledem na to druhé. Nicméně, idea oddělených účtů dává stále smysl a obezřetný uživatel může používat různé účty pro různé aktivity (např. prohlížení sociálních sítí a práce s on-line bankovnictvím).
Správa uživatelských účtů
Považujeme ji za pokročilé téma a v tomto kurzu se omezíme na to, že vás
odkážeme na dokumentaci příkazů useradd
, userdel
a usermod
, které
vytvářejí, odstraňují a upravují uživatelské účty.
Nezapomeňte, že existuje také getent
pro získání informací o existujících
účtech. Již jsme ho používali v dřívějších příkladech, typicky ho zavoláte
jako getent passwd
pro seznam všech uživatelů a pokud mu přidáte
uživatelské jméno, vytiskne informace jen o jednom uživateli.
Zkuste spustit getent passwd VAS_LOGIN
na našem sdíleném stroji.
Měli byste také znát passwd
, který lze použít ke změně uživatelského
hesla.
sudo
Některé programy vyžadují zvýšení svých oprávnění (privilege escalation), tj. běžet s většími pravomocemi než ostatní programy.
Některé příkazy to potřebují vždy a mohou mít speciální nastavení (pro teď
si ho představte jako speciální variantu chmod +x
). Nicméně, některé
příkazy potřebují vyšší oprávnění jen někdy, takže spouštět je vždy ve
speciálním režimu jen zbytečně rozšiřuje možné vektory útoku.
Pro tyto situace je jedním z možných řešení sudo
(domovská
stránka).
Jak jméno napovídá, spustí jeden příkaz (superuser do) s oprávněními
superuživatele.
Výhodou sudo je, že administrátor může určit který příkaz poběží s vyšším
oprávněním.
Takže nedává vybraným uživatelům kompletní kontrolu nad počítačem, ale pouze
jim umožňuje
pracovat s vybranou množinou příkazů.
Například je možné dát uživateli možnost restartovat určitou službu (např. chceme testerovi umožnit restartovat webový server), aniž bychom mu dali kontrolu nad celým počítačem.
Všimněte si, že granularita sudo
je na úrovni programů.
Neomezuje, jak se program chová uvnitř.
Například, je možné omezit, že uživatelka alice
může spustit
nebezpecny_prikaz
pouze s přepínačem --neskodny-prepinac
.
Ale, pokud nebezpecny_prikaz
také čte konfiguraci ze souboru
~/.nebezpecnyrc
,
alice
může skrz něj přidat volbu --nebezpecna-volba
.
A sudo
tomu nemá jak zabránit.
Jinými slovy: jakmile jsou počáteční kontroly (před spuštěním) dokončeny,
program se chová jako by ho spustit uživatel root
.
Tohle je velmi důležité pro sdílené stroje, kde administrátor chce typicky
omezit ostatní uživatele jak nejvíce to jde.
Na druhou stranu, na desktopových (notebookových) instalacích obvyklé
nastavení je, že první vytvořený uživatel
(typicky vytvořený ještě během instalace) může spustit libovolný program se
sudo
.
Zdůvodnění je takové, že existuje stejně pouze jeden (fyzický) uživatel,
který stejně rootovské heslo zná.
To je také důvod, proč většina návodů na webu obvykle uvádí příkazy pro
správu systému včetně sudo
na
začátku každého příkazu.
Mimochodem, možností jak získat rootovský shell je
více (např. sudo bash
).
Jako bezpečný příklad můžete zkusit spustit fdisk -l
a vypsat oddíly v
systému. Při spuštění bez práv roota pravděpodobně selže s několika
hlášeními o odepřeném přístupu. Spuštění se sudo
by mělo fungovat.
Všimněte si, že zadáváte své heslo, nikoli heslo superuživatele (ostatně
pokud by to bylo heslo superuživatele, nepotřebovali byste sudo
, protože
byste mohli spustit su -
a získat tak root shell přímo).
sudo fdisk -l
sudo
není jediným bezpečnostním mechanismem.
Ostatními se nebudeme do detailů zabývat, ale uvedeme alespoň odkazy na
SELinux nebo
AppArmor.
Shrnutí mechanismů je k dispozici též na
Wikipedii.
Přehled uživatelských účtů: zkontrolujte, zda rozumíte základům
Instalace softwaru (neboli správa balíčků)
Software v Linuxu je obvykle instalován prostřednictvím správce balíčků (package manager). Správce balíčků je speciální program, který se stará o instalaci, upgrade i odstranění balíčků. Balíček může být cokoliv, co lze nainstalovat; to zahrnuje:
- programy (například, balíček
ranger
nainstaluje programranger
), - datové soubory a nastavení (např.
libreoffice-langpack-cs
pro podporu češtiny v LibreOffice), - knihovna (třeba
gmp
nebogmp-devel
poskytují GNU knihovnu pro libovolně přesné výpočty), - nebo tzv. meta balíček (např.
xfce
zahrnujexfce4-terminal
,xfwm4-themes
atd.).
V tomto směru je Linux velmi podobný tomu, co znáte ze správy softwaru pomocí obchodu na vašich chytrých telefonech. Je velmi neobvyklé instalovat software na Linuxu prostřednictvím grafického instalátoru.
Výhodou centrální správy balíčků je možnost upgradovat celý systém, aniž by bylo nutné kontrolovat samostatně jednotlivé aplikace.
Je pochopitelně možné instalovat software i ručně. Z pohledu souborového systému je to jedno – správce balíčků v podstatě jen kopíruje soubory do správných adresářů. Ale ručně nainstalovaný software musí být i ručně aktualizován a věci spíš komplikuje. Takže se tomu pokud možno vyhýbejte.
Typický správce balíčků pracuje s několika repozitáři softwaru (software repository). Můžete o nich uvažovat jako by váš telefon měl několik obchodních center, kde si aplikace vybíráte. Obvykle najdete následující typy repozitářů. Je na uživateli (správci), které repozitáře bude využívat.
- Stable a testing, kde ten druhý nabízí novější verze softwaru ale s drobnou možností výskytu chyb (obvykle existuje ještě třetí repozitář, obvykle nazvaný unstable, který je pro poslední, často vývojové, verze).
- Free a non-free kde ten první obsahuje jen software bez právních překvapení. Non-free software může být zatížen patenty nebo vlastnickými právy (obvykle podle práva USA) nebo licencemi, které omezují jeho šíření.
Ani oficiální ani neoficiální repozitáře neposkytují žádnou záruku v právním slova smyslu. Nicméně, používání oficiálních (výchozích) repozitářů se považuje za bezpečné, množství útoků na tyto repozitáře je nízké a – na rozdíl od mnoha komerčních institucí – správci těchto repozitářů jsou velmi otevření v informování o podobných incidentech. Je mnohem snazší narazit na podvodnou aplikaci v “obchodu” pro váš chytrý telefon než na ní narazit v oficiálních repozitářích vaší distribuce.
dnf
(tj. správce balíčků pro Fedoru)
Správce balíčků pro Fedoru se nazývá DNF.
Pokud jste se rozhodli používat jinou distribuci, budete muset příkazy upravit tak, aby odpovídaly vašemu systému. Obecně by operace měly být dost podobné, ale nemůžeme zde poskytnout návod pro každého správce balíčků.
Pomocí příkazu search
můžete získat seznam balíčků, které odpovídají
zadanému názvu. Všimněte si, že vyhledávání není privilegovanou operací, a
proto nevyžaduje sudo
.
dnf search arduino
dnf search atool
Všimněte si, že vyhledávání velmi obecného výrazu může přinést stovky výsledků.
Výstup je v následujícím formátu:
atool.noarch : A perl script for managing file archives of various types
ratools.x86_64
Řetězce .noarch
a .x86_64
popisují povahu balíčku. noarch
obvykle
označuje datový balíček nebo balíček používající interpretované jazyky,
zatímco .x86_64
označuje balíček s binárními soubory pro architekturu
x86-64 (např. napsaný v jazyce C nebo Rust a následně zkompilovaný do
strojového kódu).
Chcete-li nainstalovat softwarový balíček, spusťte dnf
s příkazem
install
a zadejte mu název balíčku, který chcete nainstalovat. Zde už je
nutné sudo
, protože upravujeme systém.
sudo dnf install atool
Některé aplikace nejsou součástí žádného softwarého repozitáře, ale přesto je můžete stáhnout ve formátu srozumitelném správci balíčků. To je lepší situace než instalovat soubory ručně, protože váš správce balíčků o nich ví (i když je nemůže automaticky aktualizovat). Jedním z takových příkladů je klient Zoom, který se musí nainstalovat takto:
sudo dnf install "https://zoom.us/client/latest/zoom_x86_64.rpm"
Chcete-li aktualizovat celý systém, jednoduše spusťte následující příkaz. DNF si vyžádá potvrzení a poté provede aktualizaci všech dostupných balíčků.
sudo dnf upgrade
Všimněte si, že na rozdíl od jiných systémů si můžete vždy vybrat, kdy chcete provést upgrade. Systém za vás nikdy nerestartuje počítač ani nezobrazí zprávu o nutném restartu, pokud o to výslovně nepožádáte.
Pokud chcete nainstalovat celou skupinu balíčků, můžete použít dnf grouplist
pro zobrazení jejich seznamu a sudo dnf install @GROUP_NAME
pro
jejich instalaci.
Výše uvedené příkazy obsahují základní informace o správě balíčků v systému Fedora. Následující odkazy poskytují další informace. Pokud již systém trochu znáte, je dobrým zdrojem informací oficiální stránka Wiki.
Pro začátečníky jsou pravděpodobně lepším výchozím bodem tento průvodce DNF a tento návod.
Správa balíčků: zkontrolujte si, zda této části rozumíte
Služby (a démoni) (services, daemons)
V kontextu operačních systémů, termínem služba (service) odkazujeme na
libovolný program, který běží na pozadí (takže žádné GUI, stdin z
/dev/null
) a poskytuje nějakou službu dalším programům.
Typickým příkladem může být služba tisku, která se stará o nalezení tiskáren a koncovým aplikacím poskytuje jejich seznam (tj. uživatelské aplikace nemusí tiskárny samy vyhledávat). Jiný příklad je webový server: poskytuje soubory přes HTTP protokol webovým prohlížečům.
Ve světě Unixových systémů jsou tyto programy často označovány jako démoni
(což asi naráží na řeckou mytologii, kde démon bylo stvoření pracující v
pozadí); tradičně názvy těchto programů končí písmenem d
.
Například, populární webový server Apache je ve skutečnosti spouštěn jako
program httpd
a SSH server běží jako sshd
.
Démoni fungují jinak než normální programy.
Když jsou spuštěny, přečtou si konfiguraci (typicky ze souborů pod /etc/
),
spustí se a čekají na požadavky (představte si webový server poslouchající
na portu 80).
Změna jejich chování je obvykle provedena změnou konfiguračního souboru a
jejich restartováním.
Protože běží na pozadí, nemají přístup k interaktivnímu stdinu a restart
(nebo ukončení) se provádí pomocí signálů.
O signálech se budeme bavit později: je to asynchronní kanál pro komunikace
s procesem (oproti třeba stdin
u, kde program určuje, kdy ho bude číst –
signál může přijít kdykoliv).
Protože požadavek na restart démona je poměrně běžný (a posílání signálů je
těžkopádné), existují na to speciální programy. Obvykle se nazývají řídící
skripty a pro některé démony najdete soubory serviced
(vlastní démon) a
servicectl
pro jeho řízení.
Sjednocené řízení démonů
Výše uvedené principy jsou v podstatě stejné pro všechny služby, proto
obvykle existuje sada skriptů, která toto chování sjednocuje.
Takže místo toho, abyste museli volat daemonctl
, distribuce vám nabídne
speciální příkaz, kterým můžete ovládat libovolnou službu.
Obvykle tedy použijete něco jako toto:
service [start|stop|restart] jmeno-daemona
V současnosti je nejobvyklejším nástrojem pro tuto úlohu systemd.
O logování
Většina služeb poskytuje tzv. logy (protokoly). Obsahují záznam o každé důležité akci, kterou démon provedl.
Například, webový server typicky zaznamená, které stránky obsloužil společně s informací o klientovi.
Obvykle pro každou služba určíte, jak má být logování detailní. Ladění problému v konfiguraci vyžaduje detailní zprávy, v produkčním prostředí naopak zapnete jen logování vážných chyb pro zvýšení výkonu.
Systemd
Systemd je jedním z nejpoužívanějších nástrojů pro správu systémových služeb v dnešním světě Linuxu.
Nebudeme zabíhat do podrobností a pouze si projdeme dva nejdůležitější
příkazy: systemctl
a journalctl
.
Všimněte si, že systemd
je démon, zatímco systemctl
je příkaz pro jeho
ovládání.
Spuštění a zastavení služby
Spuštění služby pomocí systemd je velmi jednoduché. Následující příkaz
spustí sshd
, server SSH:
sudo systemctl start sshd
Pokud služba již byla spuštěna, nic se nestane.
Zkontrolujte, zda se nyní můžete připojit ke svému počítači pomocí následujícího příkazu:
ssh your-login@localhost
Ke zjištění stavu služby se používá příkaz status
(ten lze spustit i bez
sudo
, ale může zobrazit méně informací):
sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2021-03-01 14:31:40 CET; 2 months 3 days ago
Main PID: 560 (sshd)
Tasks: 1 (limit: 9230)
Memory: 900.0K
CPU: 16ms
CGroup: /system.slice/sshd.service
└─560 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups
Warning: journal has been rotated since unit was started, output may be incomplete.
Vidíme, že služba je spuštěna, většina položek je jasná. Soubor
/usr/lib/systemd/system/sshd.service
obsahuje samotnou konfiguraci služby
(např. jak službu spustit/zastavit/restartovat), nikoli vlastní konfiguraci
démona SSH, která je uvnitř /etc/ssh
.
Pokud démona SSH na notebooku nebudete používat, je bezpečnější ho zastavit:
sudo systemctl stop sshd
Povolení a zakázání služby
Pokud chcete službu spouštět při každém spuštění systému, můžete ji povolit:
sudo systemctl enable sshd
Systemd se postará o správné pořadí jednotlivých služeb (takže SSH server se spustí až po inicializaci sítě atp.).
Pokud si již nepřejete, aby byl démon SSH automaticky spuštěn, zavolejte
příkaz s disable
.
Všimněte si, že jak enable
, tak disable
nemění aktuální stav služby:
pokud nechcete čekat na restart, musíte stále použít start
/stop
. (Pro
větší pohodlí je k dispozici příkaz systemctl enable --now sshd
, který
službu také spustí.)
Logy
Většina systémových služeb uchovává logy o své práci. Ty jsou obvykle
uloženy v adresáři /var/log/
. Některé služby si je vytvářejí samy a jde o
jednoduché textové soubory, jejichž formát je specifický pro jednotlivé
služby a jejich konfiguraci.
Mnoho služeb ale používá centrální logovací službu, která uchovává všechny své logy v jednotném formátu a kterou lze nakonfigurovat pro jejich třídění, odesílání po síti, odstraňování starých záznamů atp.
Ve Fedoře se logovací služba nazývá journald
. Ukládá protokoly do
kryptograficky podepsaných binárních souborů, které nejsou přímo
čitelné. Lze je číst pomocí příkazu journalctl
.
Následující příkaz například zobrazí logy démona SSH:
journalctl -u sshd
Více …
Pokud vás toto téma zajímá, přečtěte si příslušné manuálové stránky. Těchto několik odstavců berte jako velmi stručný úvod do tématu, který vám umožní základní správu systému.
Tisk a skenování v Linuxu
Níže je stručný přehled o tisku a skenování na Linuxu. Dnes je většina zařízení připojena po síti a po připojení budou rovnou fungovat (nebo alespoň jejich základní funkce).
Zvláštní balíčky (ty budete možná muset stáhnout přímo od výrobce) jsou potřeba jenom pro extra vychytávky.
Tisk pomocí CUPSu
Tisk v Linuxu zajišťuje subsystém CUPS, který standardně spolupracuje prakticky s každou tiskárnou podporující IPP (internetový tiskový protokol) a podporuje také mnoho starších tiskáren.
Jednoduché sudo dnf install cups
nainstaluje základní subsystém, pro
konkrétní modely mohou být potřeba další ovladače.
OpenPrinting.org obsahuje databázi,
ve které lze vyhledávat, které ovladače jsou potřeba (pokud vůbec nějaké
jsou). Například pro většinu tiskáren HP je třeba nainstalovat balíček
hplip
.
Obvykle chcete mít CUPS v systému neustále spuštěný, a proto jej musíte povolit:
sudo systemctl enable --now cups
CUPS má pěkné webové rozhraní, které můžete použít ke konfiguraci tiskáren. U mnoha moderních tiskáren připojených k síti je to často zbytečné, protože budou správně automaticky objeveny.
Pokud jste již CUPS spustili, zkuste navštívit http://localhost:631/. Na kartě Administration můžete přidat nové tiskárny. Výběr správného modelu pomůže systému CUPS rozhodnout, které možnosti zobrazit v dialogovém okně tisku, a umožní správnou funkci tisku ve stupních šedi a podobné funkce.
Skenování obrázků a dokumentů pomocí Sane
Podpora skenerů v systému Linux je řešena pomocí SANE (Scanner Access Now Easy). Stejně jako u tisku bude většina skenerů automaticky detekována. GIMP, který možná již znáte, má podporu SANE.
Přidejte ji pomocí sudo dnf install xsane-gimp
.
Vlastní skenování obrázku lze provést v dialogovém okně File -> Create -> XSane, kde vyberete zařízení, vlastnosti skenování (např. rozlišení nebo barvy) a poté můžete spustit skenování.
Opakované spouštění úloh s Cronem
V systému je mnoho úloh, které je třeba pravidelně provádět. Mnohé z nich souvisejí s údržbou systému, například rotace protokolů (odstraňování zastaralých protokolů), ale i běžní uživatelé mohou chtít provádět pravidelné úlohy.
Typickým příkladem může být zálohování adresáře $HOME
nebo každodenní
změna tapety na ploše.
Z pohledu správce je třeba nainstalovat démona cron
a spustit jej. Ve
Fedoře se balíček jmenuje cronie
, ale služba se stále jmenuje crond
.
Úlohy (tasks) pro celý systém jsou definovány v souboru /etc/cron.*/
, kam
můžete přímo umístit své skripty. Chcete-li například provádět denní
zálohování počítače, můžete umístit skript backup.sh
přímo do adresáře
/etc/cron.daily/
. Samozřejmě existují specializované zálohovací nástroje
(např. duplicity), vaše řešení ze cvičení 07
je pro kutilský přístup docela dobrý začátek.
Pokud chcete přesnější specifikaci, než jakou nabízí adresáře cron.daily
nebo cron.hourly
, můžete ji zadat ve vlastním souboru uvnitř
/etc/cron.d/
.
V něm každý řádek specifikuje jednu úlohu: požadavek na spuštění zadaného
příkazu v zadaném čase pod zadaným uživatelem (obvykle root
). Čas se
zadává jako minuta (0-59), hodina (0-23), den v měsíci (1-31), měsíc (1-12)
a den v týdnu (0-6, kde 0 je neděle). V každém poli můžete použít *
pro
“libovolný”. Další podrobnosti naleznete v crontab(5)
.
Následující příkaz tedy spustí /usr/local/bin/backup.sh
každý den 85 minut
po půlnoci (tj. v 1:25). Druhý řádek bude volat big-backup.sh
každou
neděli ráno.
25 1 * * * root /usr/local/bin/backup.sh
0 8 * * 0 root /usr/local/bin/big-backup.sh
Všimněte si, že cron.d
obvykle obsahuje speciální volání následujícího
tvaru, které zajišťuje, že se skripty cron.hourly
spustí (tj. samotný
deamon cronie
hledá pouze uvnitř /etc/cron.d/
, použití cron.daily
nebo
cron.monthly
je řešeno speciálními úlohami).
01 * * * * root run-parts /etc/cron.hourly
Spuštění pod obyčejným uživatelem
Běžní (tj. non-root) uživatelé nemohou upravovat soubory v adresáři
/etc/cron.d/
. Místo toho mají k dispozici příkaz crontab
, který lze
použít k úpravě jejich osobní tabulky cronu (tj. seznamu úloh cronu).
Voláním crontab -l
zobrazíte aktuální obsah tabulky cron. Pravděpodobně
nevypíše nic.
Chcete-li upravit tabulku cronu, spusťte příkaz crontab -e
. Spustí se váš
oblíbený editor, do kterého můžete přidávat řádky ve výše uvedeném formátu,
tentokrát bez zadání uživatele.
Přidáním následující položky se například každý den změní pozadí pracovní plochy:
1 1 * * * /home/intro/bin/change_desktop_background.sh
Samozřejmě za předpokladu, že takový skript v daném umístění máte. Pokud to chcete opravdu vyzkoušet, následující skript funguje pro Xfce a používá Lorem Picsum.
#!/bin/sh
# Update to your hardware configuration
screen_width=1920
screen_height=1080
wallpaper_path="$HOME/.wallpaper.jpg"
curl -L --silent "https://picsum.photos/$screen_width/$screen_height" >"$wallpaper_path"
# Xfce
# Select the right path from xfconf-query -lvc xfce4-desktop
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image -s "$wallpaper_path"
# LXDE
pcmanfm -w "$wallpaper_path"
# Sway
# For more details see `man 5 sway-output`
# You can also set a different wallpaper for each output (display)
# Run `swaymsg -t get_outputs` for getting specific output name
swaymsg output '*' bg "$wallpaper_path" fill
Učební výstupy a kontrola po cvičení
Tato část podává zhuštěný souhrn základních konceptů a dovedností, které byste měli umět vysvětlit a/nebo použít po každém cvičení. Také obsahují absolutní minimum, které je potřebné pro pochopení navazujících cvičení (a dalších předmětů).
Znalosti konceptů
Znalost konceptů znamená, že rozumíte významu a kontextu daného tématu a jste schopni témata zasadit do většího rámce. Takže, jste schopni …
-
vysvětlit, jak a proč je software distribuován ve formě balíčků
-
vysvětlit jaké druhy účtů existují na Linuxu a čím se liší (např.
johndoe
,root
anobody
) -
vysvětlit rozdíl mezi účtem
root
a ostatními účty -
vysvětlit, proč se obecně nedoporučuje provádět neadministrativní úlohy pod účtem
root
-
obecně vysvětlit, jak lze
sudo
použít pro správu systému -
porozumět nebezpečím používání
sudo
-
vysvětlit, co je to služba (démon)
-
vysvětlit životní cyklus a možné stavy služeb
-
vysvětlit, co je to protokol programu a jak jej lze spravovat
Praktické dovednosti
Praktické dovednosti se obvykle týkají použití daných programů pro vyřešení různých úloh. Takže, dokážete …
-
používat
getent
na získání informací o existujících uživatelských účtech -
používat
sudo
pro zvýšení oprávnění spouštěného programu -
používat správce balíčků (package manager) pro instalaci a odinstalaci balíčků
-
používat správce balíčků (package manager) pro upgrade celého systému
-
používat systemctl ke spuštění/zastavení služeb
-
používat
systemctl
pro zajištění automatického spuštění služby při startu počítače -
tisknout a skenovat v Linuxu
-
volitelné: používat
journalctl
k zobrazení logů -
volitelné: používat
useradd
pro vytvoření nového uživatelského účtu