Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Začneme na serveru. Aby byl tento počítač identifikovatelný v síti,
musíme jeho síťovému zařízení přiřadit IP adresu a počítači jméno a doménu,
do které se bude hlásit. To lze udělat několika způsoby, např. (na
Slackwaru), pomocí nástroje pkgtool
nebo editací souboru
/etc/rc.d/rc.inet1.conf
. Na přiřazení IP adresy nedoporučuji
nástroj ifconfig
, protože pouhé nastavení pomocí něj by
nepřežilo další bootovací proces. Každá distribuce používá nějaký nástroj
na konfiguraci síťového zařízeni (např. na Slackwaru zmíněný
pkgtool
), tak jej využijte. Hodnoty, které používám na svém
serveru, jsou:
Než budeme moci našim stanicím nabízet jakékoliv služby, měli bychom na
serveru vytvořit nějaké uživatele a jejich domovské adresáře. Předtím je v
našem případě také výhodné upravit soubor /etc/login.defs
a
nastavit hodnotu no
k proměnné DEFAULT_HOME
. V
budoucnu budeme totiž vytvářet uživatele, které nebudeme chtít nikdy
přihlásit do systému, a toto nastavení nám zajistí, že se uživatel nebude
moci přihlásit, pokud nebude možné po loginu vstoupit do domovského
adresáře. Když jim domovský adresář nevytvoříme, máme po starostech. Dále
můžeme do adresáře /etc/skel
zkopírovat všechny soubory, které
budeme chtít mít automaticky nakopírované do domovského adresáře nově
přidaného uživatele. Potom už můžeme přidat novou skupinu:
groupadd -g 1001 kamil
|
Tento příkaz nám přidá skupinu kamil s identifikačním číslem skupiny
1001. Záleží na nás, zda chceme mít pro každého uživatele samostatnou
skupinu nebo je všechny přidávat do skupiny users
. Pokud je to
tak, novou skupinu samozřejmě přidávat nemusíme.
useradd -c "Kamil Kantar" -d /home/kamil -g 1001 \
|
Tento příkaz přidá uživatele kamil (UID 1001, GID 1001), nastaví jeho
domovský adresář na /home/kamil
(a zároveň jej vytvoří),
zkopíruje do něj soubory z /etc/skel
a jako shell se nastaví
/bin/bash
.
Příkazem
passwd kamil
|
nastavíme uživateli kamil heslo, které si po přihlášení může sám změnit
opět příkazem passwd
. Přidáme ještě alespoň jednoho uživatele
a můžeme jim vytvořit souborové kvóty.
Pomocí souborových kvót můžeme našim uživatelům omezit počet a velikost souborů pro jednotlivé diskové oddíly. To se nám bude později hodit, aby naši uživatelé nezaplnili pevný disk serveru všemožnými, mnohdy zbytečnými, soubory. Když budou omezeni souborovými kvótami, budou nuceni drahocenným diskovým prostorem šetřit. Abychom mohli na určitých oddílech kvót využívat, je nutné je mít oddělené od hlavního souborového systému ( / ) a zapnutou podporu kvót v jádře (kernelu) Linuxu.
Pozn.: Ve skutečnosti můžeme vytvořit kvóty i když máme pouze jediný
souborový systém, ale potom budou naše omezení platit i pro dočasné soubory
(v adresáři /tmp
), což je oddíl, který by neměl být pro naše
uživatele omezený. (Adresář /tmp
bychom měli, spíše než
omezovat, pravidelně mazat.)
Budeme využívat pouze uživatelské kvóty (nikoliv skupinové) a sice na
oddíle /home
a /var
. Proto je nutné upravit
soubor /etc/fstab
a přidat parametry quota
a usrquota
na řádky týkající se těchto oddílů. Výsledek může
vypadat např. takto:
/dev/hdb6 /var ext3 defaults,nosuid,nodev,noexec,usrquota,quota 1 2 /dev/hdb8 /home ext3 defaults,nosuid,nodev,usrquota,quota 1 2 |
Pak restartujeme systém nebo znovu připojíme všechny oddíly z tabulky
/etc/fstab
(příkazem mount -a o remount
). Pokud
si jsme jisti, že nás nyní nebude rušit žádný proces, můžeme rovnou zapnout
kvóty. Jinak se raději příkazem init 1
přepneme
do jednouživatelského režimu.
quotacheck -avu
|
Tímto příkazem potom spustíme program quotacheck, který zjistí velikost souborů uživatelů a připraví vše ostatní pro používání kvót. Pak restartujeme systém. Pokud vše naběhne v pořádku, můžeme našim uživatelům vytvořit kvóty. Pokud víme, že na náš systém budeme přidávat více uživatelů s podobnými potřebami (jako jsou nároky na diskový prostor), můžeme si vytvořit jakési prototypové uživatele a podle nich potom uživatelům přiřazovat kvóty. Vytvoříme prototyp uživatele normal user.
groupadd -g 900 prototypy
|
Prvním příkazem přidáme skupinu prototypy. GID je dobré mít menší než 1000, protože se nejedná o klasického uživatele. Druhý příkaz přidá prototyp uživatele normal user, patřící do skupiny prototypy a jehož UID je opět menší než 1000. Pokud chceme, můžeme si stejným způsobem přidat další prototypy, např. pro významnější uživatele.
edquota normal_user
|
Po zadání tohoto příkazu se spustí editor (ve většině případů
vim
) v němž zadáme prototypu nornal_user uživatelskou
kvótu.
Disk quotas for user normal_user (uid 901): Filesystem blocks soft hard inodes soft hard /dev/hdb6 0 0 0 0 0 0 /dev/hdb8 0 11000 12000 0 900 950 |
Z výpisu vidíme, že jsme zadali kvóty pro oddíl hdb8 (v našem případě
oddíl /home
, kde mají uživatelé své domovské adresáře). Pole
soft
určuje velikost diskového prostoru (resp. počet souborů),
kterou muže uživatel dočasně překročit, pole hard
už systém
nedovolí překročit nikdy. V našem příkladě jsme definovali hodnotu soft
něco přes 10MB (11000KB) a zároveň 900 souborů a hodnotu hard 12000KB, resp. 950 souborů. Uložíme změny a ukončíme editor (ve vim
u příkazem
:wq
).
Nakonec příkazem
edquota -p normal_user kamil tomas jana
|
přidáme kvóty definovaného prototypu normal_user uživatelům kamil, tomas a jana. Jestli se nám to povedlo, můžeme zkontrolovat příkazem
quota jmeno_uzivatele
|
Více o uživatelských kvótách se dozvíte v článku Diskové kvóty.
V naší síti budeme využívat DHCP server pro přidělování IP adres našim
dvěma stanicím, předávat informaci o serveru DNS a doméně. DHCP je navržen
k poskytování všech možných parametrů TCP/IP svým klientům, přičemž
umožňuje, aby byly IP adresy přiřazovány dynamicky. Pokud se letmo podíváte
o pár řádků níž na výpis souboru /etc/dhcpd.conf
, tak
zjistíte, že sice DHCP server provozujeme, ale IP adresy jsou přiřazovány
stále celkem "staticky" a to sice podle ethernetových adres síťových karet
našich stanic. Proč jim tedy rovnou nepřiřazovat IP "ručně"? Toto řešení
jsem zvolil proto, že je pohodlnější IP adresy (a veškeré další předávané
informace) jednou napsat do souboru dhcpd.conf
a už se o ně
nikdy nestarat. Jednou z mých stanic je notebook, který občas připojuji
také do jiné sítě. Vždy, když jej připojím zpět, hned získá mnou
definovanou IP adresu, doménu a adresu serveru DNS. Není to sice moc
"dynamické", ale funguje to bezchybně. Příkazem
route add -host 255.255.255.255 dev eth0
|
zajistíme správné routování pro klienty s Windows (zařízení eth0 příp.
změníme na odpovídající) a můžeme se pustit do editace souboru
/etc/dhcpd.conf
:
authoritative; ddns-update-style ad-hoc; # max-lease-time 604800; default-lease-time 86400; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.1.1; option domain-name "doma.cz"; # subnet 192.168.1.0 netmask 255.255.255.0 { } group { use-host-decl-names true; host stanice { hardware ethernet 00:00:1C:D1:4D:F9; fixed-address 192.168.1.3; } host vader { hardware ethernet 00:08:02:E6:40:02; fixed-address 192.168.1.2; } } # end |
Náš DHCP server poskytuje tyto informace:
option subnet-mask 255.255.255.0;
(definuje masku
podsítě)option domain-name-servers 192.168.1.1;
(říká, že náš
DNS server má adresu 192.168.1.1 - je to tedy opět náš server)option domain-name "doma.cz";
(předává informaci o
doméně)subnet 192.168.1.0 netmask 255.255.255.0
(démon poskytuje konfigurační informace klientům patřícím k této síti)V direktivě group
definujeme stálé adresy pro naše
stanice podle ethernetových adres (stanice s názvy vader
a
stanice
). Ethernetové adresy se dozvíte např. zadáním příkazu
ifconfig zarizeni
.
Posledním zajímavým zápisem je use-host-decl-names true;
uvnitř příkazu group
, který říká, že kromě IP adres
definovaných v příkazu host
, budeme posílat také název
hostitele (v našem případě stanice
a vader
). V
síťovém nastavení našich klientů se tedy nemusíme starat skutečně o nic.
Soubor /etc/dhcpd.conf
uložíme a DHCP server spustíme
příkazem
dhcpd
|
Pokud chceme DHCP server spouštět hned při startu serveru, přidáme
příkaz dhcpd
do souboru /etc/rc.d/rc.local
(Slackware). Tabulku výpůjček IP adres můžeme kontrolovat v souboru
dhcpd.leases (/var/state/dhcp/dhcpd.leases)
.
Nyní se na pár vteřin přesuneme ke klientovi a zkusíme, zda DHCP funguje. Otevřeme složku Síťová připojení / Připojení k místní síti / vlastnosti Protokolu TCP/IP a v obecném nastavení vybereme "Získat adresu IP ze serveru automaticky" a "Získat adresu DNS serveru automaticky". Po potvrzení otevřeme opět ve složce Síťová připojení položku "Připojení k místní síti - stav" a pokud jsme vše nastavili správně, měl by nás čekat výsledek podobný tomu na obrázku.
Pokud ne, zkusíme Windows restartovat a pokud ani to nepomůže, udělali jsme někde chybu a nezbývá než zkontrolovat konfiguraci, nebo se ptát v diskusi pod článkem.
Pomocí DNS serveru budeme překládat doménová jména na IP adresy. Místo
192.168.1.2
budeme moci vždy použít vader
a
podobně. Začneme hlavním konfiguračním souborem serveru BIND a sice
souborem /etc/named.conf
. Jiné distribuce než Slackware mohou
tento soubor umísťovat jinam, tak jej najděte. Záznamy v něm již uložené
neměňte a přidejte k nim tyto řádky:
zone "doma.cz" { type master; file "doma.named"; }; zone "1.168.192.in-addr.arpa" { type master; file "doma.rev"; }; |
Tento zápis přidává záznam pro domény doma.cz
a
1.168.192.in-addr.arpa
. Volba type master
říká,
že tento server je pro naší doménu master serverem.
Soubory doma.named
a doma.rev
(naše konfigurační
soubory, které budeme za chvíli vytvářet) mají cestu relativní k adresáři
určeném příkazem directory
v souboru
/etc/named.conf
. V mém souboru /etc/named.conf
je
directory /var/named
|
a tak zmiňované soubory mají cestu /var/named/doma.named
resp. /var/named/doma.rev
. A protože nejsme připojeni k
internetu, předchozí nastavení souboru named.conf
bude
dostačující.
Vytvoříme soubor /var/named/doma.named
s tímto obsahem:
$TTL 1w @ IN SOA server.doma.cz. root.doma.cz. ( 2004081700 ; Seriove cislo 10800 ; Refresh 1800 ; Retry 604800 ; Expire na DNS 2 900 ) ; Negative cache TTL ; Nameservery IN NS server.doma.cz. ; Mailservery IN MX 10 mail.doma.cz. ; Hosts server IN A 192.168.1.1 mail IN CNAME server pop3 IN CNAME server smtp IN CNAME server www IN CNAME server vader IN A 192.168.1.2 stanice IN A 192.168.1.3 |
Nastavení DNS serveru bylo podrobně rozebráno v článku Nastavení DNS, a tak se pouze zmíním o druhé
části souboru. Pod vysvětlivkou Nameservery definujeme náš
nameserver (server.doma.cz.
- záznam musí být zakončen tečkou)
a pod vysvětlivkou mailservery
definujeme náš mailový server
(za moment zjistíme, že mail.doma.cz
je pouze alias pro náš
server). Číslo 10 udává prioritu (čím menší číslo, tím větší priorita).
Zbytek souboru se už skládá z adresových záznamů, které přiřazují názvy
hostitelů k IP adresám (tedy např. dvojice server = 192.168.1.1). Názvy
mail, pop3, smtp a www určují aliasy pro hostitele server. Dále jsou tu
samozřejmě záznamy pro naše dvě stanice (vader, stanice).
Reverzní soubor domén přiřazuje IP adresy k názvům hostitelů. Je to tedy
opak databáze domén, která mapuje názvy hostitelů na adresy. Tento reverzní
soubor bychom podle naší definice v named.conf
měli mít
uložený ve /var/named/doma.rev
. Záznamy v tomto souboru by se
měly logicky shodovat s těmi v souboru doma.named
, jinak se
dočkáme nepříjemných překvapení.
$TTL 1w @ IN SOA server.doma.cz. root.doma.cz. ( 2004081701 10800 1800 1209600 604800 ) IN NS server.doma.cz. 1 IN PTR server.doma.cz. 2 IN PTR vader.doma.cz. 3 IN PTR stanice.doma.cz. |
Opět popíši pouze druhou část souboru. Na začátku každého řádku všech
tří PTR záznamů jsou názvy (čísla) zapsané relativně k aktuální doméně.
Aktuální doména je nyní 1.168.192.in-addr.arpa definovaná v
konfiguračním souboru /etc/named.conf
. Přidáním PTR záznamu
např. hostitele stanice.doma.cz získáme 3.1.168.192.in-addr.arpa. A protože
jsou v reverzním souboru všechny adresy zapsány opačně (reverzně), skutečná
adresa je 192.168.1.3 (doufám, že byl tento výklad aspoň trochu
pochopitelný). Správnou syntaxi souborů můžeme otestovat příkazy
named-checkzone doma.cz /var/named/doma.named
|
Přestože není naše síť připojená k internetu, může se stát, že někdy
bude, a tak není na škodu myslet trochu dopředu a omezit možný průnik na
náš server přes démona named
tím, že jej budeme spouštět pod
jiným uživatelem než je root.
Nejdříve přidáme skupinu named
:
groupadd -g 902 named
|
Potom přidáme uživatele named
:
useradd -d /var/named -u 902 -g named -M -s /bin/false
named
|
Změníme vlastníka adresáře named
:
chown named.named /var/named
|
... a také všeho, co je v něm
cd /var/named && chown named.named *
|
Nakonec změníme vlastníka procesu named
:
chown named.named /var/run/named
|
Odteď budeme DNS server spouštět příkazem:
named -u named
|
Aby se nám DNS spouštěl pod novým uživatelem pokaždé, přidáme parametr
-u named
do příslušné části souboru
/etc/rc.d/rc.bind
. Výsledek bude vypadat takto:
bind_start() { if [ -x /usr/sbin/named ]; then echo "Starting BIND: /usr/sbin/named -u named" # zde to není až tak důležité /usr/sbin/named -u named # zde ano fi } |
Pokud vše funguje tak, jak má, DNS server by měl nyní běžet a jeho
adresa by měla být díky DHCP serveru známá i našim stanicím. Na zkoušku se
můžeme zkusit dotázat jiného počítače příkazem ping
hostitel
, či zkusit ping z windowsové stanice (Start /
spustit / command): ping server
. Všechny počítače v sítí by
samozřejmě měly dostat odezvu od jakéhokoliv jiného.
Ještě poslední poznámka. Pro Linux existuje program
dnsmasq
, který v malé síti dělá přesně to, co naše servery
DHCP a DNS. Je to další alternativa, jak dosáhnout stejného výsledku,
takže je pouze na vás, jaký způsob zvolíte. Pro náš server se Slackwarem 10
najdeme dnsmasq
na prvním instalačním CD ve skupině
n
.
To je pro dnešek vše, příště si nakonfigurujeme Samba server, aby fungoval jako primární doménový radič pro doménu NT.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
"named-checkzone doma.cz /var/named/doma.cz"
"named-checkzone doma.cz /var/named/doma.named"?
Tvá paměť je děravá jak ústa staré indiánské ženy . Ve Windows 98 je i command-line
ipconfig
zone "test.xx" { type master; file "test.named"; }; zone "0.0.10.inaddr.arpa" { type master; file "test.rev";a v adresari /var/cache/bind/ vytvorim subory test.named a test.rev s takou istou konfiguraciou ? Dik ;)
/dev/hda5 /users reiserfs acl,user_xattr,usrquota,quota 1 2
nicméně po restartu se mi disk nepřipojí a pokud chci obnovit připojení pomocí mount -a
, tak mi to napíše chybovou hlášku:
mount: wrong fs type, bad option, bad superblock on /dev/hda5,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Prosím zkontrolujte, zda je disk zadán správně.
a disk se nepřipojí.
Prosím, poraďte, kde dělám chybu?
Mám Suse 10.0.
Předem děkuji za pomoc.