Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2025.2. Nově lze zálohovat také na Google Drive a Microsoft OneDrive.
V kinech aktuálně běží animovaný film Kočičí odysea, v originálu Flow, (Wikipedie) vytvořený v Blenderu. Film získal řadu ocenění a má dvě nominace na Oscary 2025. Na ČSFD má 80 %. Režisérem je Gints Zilbalodis. Rozhovor s režisérem na stránkách Blenderu.
Oficiálně byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.0. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu. GIMP je nově k dispozici také ve formátu AppImage.
Nejnovějším projektem Blender Studia je herní projekt DogWalk. Cílem projektu je prozkoumat možnosti a vylepšit spolupráci Blenderu s herním enginem Godot a vytvořit jednoduchou hru. Jde o jejich druhý herní projekt. Prvním byla hra Yo Frankie! (projekt Apricot) postavená na již nevyvíjeném Blender Game Enginu.
Byla vydána verze 0.83 telnet a ssh klienta PuTTY. Podrobnosti v přehledu nových vlastností a oprav chyb a Change Logu. Vypíchnuta je podpora výměny klíčů pomocí postkvantového algoritmus ML-KEM.
Hector "marcan" Martin z Asahi Linuxu skončil jako upstream vývojář linuxového jádra. Štafetu po něm převzal Janne Grunau z Asahi Linuxu.
PlayStation Network (PSN) má již několik hodin, vlastně celou sobotu, masivní výpadek (Stav služby PSN, X).
Vývojáři open source storage platformy TrueNAS oznámili, že s verzí 25.04 s kódovým názvem Fangtooth končí TrueNAS CORE postavený na FreeBSD a TrueNAS SCALE postavený na Linuxu. Jejich společným pokračováním bude TrueNAS Community Edition postavený na Linuxu.
Mapy Google dnes slaví 20 let. Spuštěny byly 8. února 2005. Svět se přesunul od papírových map k digitálním. A ke Street View, Live View, Immersive View, …
Hector "marcan" Martin, vedoucí projektu Asahi Linux aneb Linux na Apple Siliconu, skončil jako upstream vývojář linuxového jádra. Se slovy "už nemám žádnou důvěru v proces vývoje jádra … další vývoj Apple/ARM bude pokračovat downstream" odstranil své jméno ze souboru MAINTAINERS. Důvodem jsou neshody kolem Rustu v linuxovém jádru [Hacker News, No rust code in kernel/dma, please.].
To ano, problem je v tom, autor prispevku nechce, aby mu LDAP "zahlcovali" specificke sambacke objekty a atributy. A bez toho to nejde. Proste ak ma byt user autentifikovany cez sambu, musi mat sambacky objectclass a priradene atributy vratane NTLM hashu hesla a pod. Ved to iste sa musi robit aj v pripade, ze je databaza ako tdbsam
, pricom sambacke heslo pre usera sa musi robit dodatocne prikazom smbpasswd
... neda sa pouzit heslo z /etc/shadow
. Preto som pisal, ze pokial sa maju useri autentifikovat cez sambu, podmienkou su pridruzene atributy pre kazdeho takehoto usera.
Co sa tyka domeny. Samba nerozlisuje stav standalone servera a PDC kontrolera (teda ano, ale to je vecou NMBd a nastavenia parametrov ako domain master, domain logons a pod... tieto parametre vsak netreba menit z defaultneho stavu a domain master samba nebude), a teda vzdy sa jedna o stav "security = user", co teda znamena user-level autentifikacia voci nejakej definovanej databaze.
Bez skupin si asi vystacite (ale musite mat aspon nutnych userov ako napr. guest resp nobody), taktiez je nevyhnutny atribut SambaSID pre kazdeho usera.
Vacsinou sa totiz samba integruje s existujucou databazou dvomi sposobmi... bud mate niekde NT4 like domenu (samba3) a file server bude ako domain member server (bez pouzitia vlastnej DB), alebo je niekde W2k or W2k3 AD a file server bude AD member server (opat bez pouzitia internej databazy userov), alebo budete mat standalone (domain) server s vlastnou DB.
Ak riesite nieco dost specifikce ako teraz, tak musite to riesit sposobmi, ktore su dostupne, a pokial viem, ziadna dalsia ina rozumna moznost nieje.
Druha vec je ta, ze nepoznam pGinu (ucel ano, ale nie funkcnost) a teda neviem ci by sa fileserver nedal nejak na nu previazat...
smbldap-populate
také nepoužívám, protože se mi zdá, že toho vytvoří zbytečně moc. Jinak co se týče konfigurace Samby, tak rozdíl když je/není PDC je jen v parametru domain logons = no/yes
. Na LDAP serveru je třeba mít zapnuté Samba schéma stejně jako pro doménu.
Při přípravě LDAP+Samba serveru si přes nějaký LDAP editor vytvořím základní OU: users, groups (to už asi máte). Pak pro stávající nebo nově založené uživatele stačí spustit smbpasswd -a $login
, a Samba do LDAPu k uživateli přidá potřebné atributy. U skupin je se Samba atributy přidají přes net groupmap ...
(přidá SID skupiny, Windows to potřebují). V těch návodech na PDC se obvykle ještě vytváří skupiny Domain Admins, Users, Guests, ... Mě to vždy fungovalo i bez nich, možná v novějších verzích Samby je to jinak.
Používám "LDAP Admin" editor na Windows, umí pěkně pracovat se Samba účty, skupinami (snadno jdou vytvořit speciální Admin skupiny), pro rychlé zásahy nahradí smbpasswd
atd. Situaci okolo nástrojů na Linuxu neznám. V nejhorším jde použít phpldapadmin nebo udělat ručně ldif.
Jinak PDC není třeba se bát, funguje to skutečně stabilně. Jen je třeba dát pozor na situace, kdy Samba server má víc síťových rozhraní nebo je síť rozdělena routery. Pak je lepší IP adresu PDC ve Windows napevno nastavit přes soubor LMHOSTS a v smb.conf nastavit socket address = nejaka_hlavni_ip
. Windows se snaží nají PDC pomocí broadcastů, a pak vznikají záhadné stavy, kdy najednou nejde přihlašování, za chvíli se to samo spraví apod. Při pevném nastavení jsem za několik let v sítí s cca 150 PC nezaznamenal žádný problém.
Výhoda PDC je i v tom, že můžete třeba nastavovat práva pro uživatele z LDAPu na sdílené složky na Windows stanicích (uživatelé z LDAPu jsou vidět při nastavení ACL stejně jako lokální). Můžete si třeba udělat speciálního uživatele s Domain Admin oprávněním, který se bude používat na zálohování dat z Windows PC apod.
Jinak PDC není třeba se bát, funguje to skutečně stabilně. Jen je třeba dát pozor na situace, kdy Samba server má víc síťových rozhraní nebo je síť rozdělena routery. Pak je lepší IP adresu PDC ve Windows napevno nastavit přes soubor LMHOSTS a v smb.conf nastavit socket address = nejaka_hlavni_ip
. Windows se snaží nají PDC pomocí broadcastů, a pak vznikají záhadné stavy, kdy najednou nejde přihlašování, za chvíli se to samo spraví apod. Při pevném nastavení jsem za několik let v sítí s cca 150 PC nezaznamenal žádný problém.
Na "problem" viacerych podsieti sa pouziva wins server. Netreba nic staticky definovat na klientoch, len im cez dhcp poslat IP adresu wins servera, ktory je v podstate NetBIOS mennou sluzbou pre WinNT4 like domenu. Nasledne si klienti dokazu najst spravnu adresu kontrolera pripadne dalsie info.
Přeci samba potřebuje jen uložit ty svoje hesla ne?Tak mi příde že problém bude spíš ten nástroj smbldap-populate než cokoliv jiného. Já jsem vždycky pouštěl jen smbd a nmbd s ručně nastaveným konfigurákem a žádný velký sračky to do ldapu necpalo. Konkrétně jsem to měl nastavené tak, že samba používala již existující strukturu objektů typu Person nebo tak něco, do kterého si jen přidala to svoje sambaAccount a pár atributů (ten NTLM hash atd). Pro správu domény pak samba potřebuje ještě jeden objekt kde si drží nějaké SID ale to vy nechcete.
sambaSamAccount
je atribut SambaSID
povinny udaj. Iste... pokial sambe nedate prilis povolujuce prava, tak do LDAPu moc neskrabe. Lenze toto je asi nevyhnutne minimum.
Problem je napr v tom ze pre objectclass sambaSamAccount je atribut SambaSID povinny udaj.V tom úplně zatím ten problém nevidím...
Potíž byla hlavně v případě, když uživatel používá několik různých PC (tohle řeší právě ta NT doména).Mohl bys to konkretizovat? V čem byla potíž a jakou výhodu přináší doména?
add machine script
).
Klidně se ptej na další věci.Docela by mě zajímalo jak současná samba řeší mapování uživatelů a skupin uživatelů. Potřebuju k tomu winbind? Na těch samba manuálových stránkách je to docela divně popsané. Jen vím že se to dělá přes "net groupmap add", ale netuším zda k tomu musí běžet winbind. Další otázka: když jsem procházel spousty návodů na konfiguraci samby jako pdc, prakticky všude bylo nastavování nss a PAMu. Je to nutnost? Nechci aby se mi mohli uživatelé přihlásit k serveru pomocí ssh.
net groupmap add
dělá triviální věc - přidá SID atribut do LDAP záznamu konkrétní skupiny. Proto je dobré používat pro uživatele jen skupiny z LDAPu, ne ty definované v /etc/groups.
nss_ldap
je potřeba (doporučuji nss_ldapd
, naopak nscd
se raději vyhněte). Samba potřebuje mít pro přistupující uživatele klasické systémové účty. Tj. ve výstupu getent passwd
musí být vidět uživatelé, kteří budou přistupovat na Sambu. Novější verze Samby to umí obejít, ale raději bych to udělal klasickým způsobem.
pam_ldap
je potřeba jen v případě, kdy se mají uživatelé z LDAPu přihlašovat třeba přes ssh, nebo lokálně na linuxovém PC. Pro Sambu význam nemá.
PAM slouží k ověření hesla = náhrada /etc/shadow
, NSS slouží jako zdroj informací o uživatelích (login, UID, GID atd.) = náhrada /etc/passwd
.
pam_ldap
pak dělá tzv. bind auth. Je to velmi bezpečné, protože heslo zadané uživatelem přes ssh se pošle na LDAP server a ten odpoví zda je heslo správné nebo ne. Další výhoda je, že LDAP server pak může heslo ukládat různými způsoby (třeba různé hashovací metody).
Celkem bych chtěl vidět konfiguraci, kdy pam_unix ověří heslo skrze nss_ldap.
net groupmap
nebo to přímo umí ten LdapAdmin, co jsem to o něm psal - tam stačí v editaci skupiny zaškrtnout "Samba" a jde zvolit, jetsli to je obyčejná skupina, nebo administrátorská (ta má speciální SID). Tahle úprava skupin je v podstatě potřebná jen když je samba jako řadič domény, jinak nemá moc význam.
Uživatel nemusí být nutně členem nějaké skupiny (krom té primární, kterou má vždy nastavenou), aby Samba fungovala.
passwd Enter login(LDAP) password: passwd: Autentizační informace nelze získat passwd: heslo nebylo změněno
passwd
, je třeba mít správně nastavený PAM. Ale pozor na to, že se takhle nezmění heslo na Sambu! Je lepší měnit heslo z Windows (ctrl+alt+delete, do "přihlásit se k" napsat IP Samba serveru" - jde to i pokud PC není v doméně), nebo na linuxu přes smbpasswd
. smbpasswd
umí i změnit heslo jiného uživatele než je aktuálně přihlášený, takhle:
smbpasswd -s -r 127.0.0.1 -U $login
což jsem používal v jednoduchém php skriptu, přes který si uživatelé měnili hesla. (můžu v případě zájmu poskytnout)
Při nastavení ldap password sync
v smb.conf se současně se Samba heslem změní to unixové (userPassword v LDAPu).
Pro přidání PC do domény musí hlavně fungovat add machine script
, to je nejčastější problém. Pak se ve Windows zadává účet, který má na tohle právo. Může to být root, ale to není moc bezpečné, a hlavně s LDAPem to může zlobit. Proto je lepší nějakému uživateli, co je kompletně v LDAPu, přidat práva:
# net sam rights grant WORKGROUP\\login SeMachineAccountPrivilege
Granted SeAddUsersPrivilege to WORKGROUP\login
WORKGROUP nahraďte názvem prac. skupiny / domény z konfigurace Samby, login je jméno uživatele. Stejným způsobem lze přidělit práva i skupině. Pokud to nepůjde, tak zkusit nahradit SeMachineAccountPrivilege
za SeAddUsersPrivilege
(jednou jsem se s tím setkal u starší verze Samby).
ntadmins
, která má nastaven speciální SID (přes Ldap Admin to jde naklikat, nebo to jde i pomocí net groupmap
, je to popsáno v tom HOWTO Collection), takže její členové jsou na všech počítačích v doméně administrátoři. Zároveň přes výše uvedený příkaz mají členové této skupiny nastaveno právo přidávat PC do domény.
/var/lib/samba
. Na stejném místě je uloženo i heslo k účtu, pod kterým Samba přistupuje k LDAPu. Není třeba se o to nějak starat, jen při úplné reinstalaci serveru je třeba kromě zálohy LDAPu nastavit i tohle. Nědky se doporučuje pro jistotu zálohovat celý tento adresář. Pokud se nepoužije LDAP, je v těch tdb souborech uložen i tzv. SID domény, podle kterého počítače poznají o jakou doménu jde (název domény je jen pomocná informace). Když o něj přijdete, je to velký problém (musí se všechna PC znovu zařadit, ale všechno se tím stejně nespraví). V LDAPu je ale doménový SID uložen v atributu "sambaDomainName", takže stačí zálohovat obsah LDAPu přes slapcat
.
"Domain Admins" - to už je věcí Windows. Když se přihlásí k PC doménový uživatel, Windows si přes Sambu vylistují jeho skupiny. Proto ty skupiny musí mít nastavený SID, jinak s nimi Windows nemůžou pracovat - SID je akvivalent GID čísla na linuxu. Existují speciální hodnoty SID (resp. toho posledního čísla v SID), které uživateli dávají administrátorská (nebo jiná) práva. Pro "Domain Admins" je to 512. Jednoduše: pokud je uživatel členem skupiny, jejíž SID končí "...-512", pak má na Windows PC administrátorská práva, nemá ale nijak vyšší práva na Samba serveru (že by mohl měnit cizí soubory apod.).
Ještě existují speciální skupiny "Domain Users", "Domain Guests" a další. Jejich smysl jsem moc nepochopil, mě to vždy fungovalo bez nich. Vždy ale platí, že Windows tyhle skupiny nerozlišují podle názvu, ale podle toho čísla na konci SID.
add machine script
, který je nutný kvůli doméně. Jde o relikt minulosti, pomocí těch skriptů jde spravovat uživatele a skupiny na Sambě přes nějaké nástroje z dob Windows NT (User Manager for Domains nebo jak se to jmenovalo).
smbpasswd ani změna hesla vůbec nepotebují mít ty add/delete skripty nastavené! To si dělá Samba interně.
Ale členství v Domain Admins skupině (tj. Windows administrátoři) neumožňuje členům nějaké zásahy na Samba serveru, na to jsou ty Privileges.
%S - jméno sdílení, prostě to co je v závorkách v smb.conf např. [sdilene] %u - jméno uživatele přistupujícího ke sdílenému prostředku %U - ??? (tohle jsem nepochopil)
logon script = logon.vbs %G
většina věcí v tom skriptu je shodná. Věci rozdílné pro různé skupiny se řeší tak, že VBS skript dostává jako 1. parametr název primární skupiny přihlášeného uživatele. Jinak jde udělat i:
logon script = %G.vbs
ale snadno se na nějakou skupinu zapomene...
VBS skript může vypadat třeba takhle:
Option Explicit
On Error Resume Next
Dim objShell, objNetwork, Args, strComp, strUser, strGroup, i
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set Args = Wscript.Arguments
strComp = objNetwork.ComputerName
strUser = objNetwork.UserName
strGroup = Args(0)
' WScript.Echo strUser + "/" + strGroup + "@" + strComp
' ----------------------------------------------------------
' Mapovani sitovych disku
' ----------------------------------------------------------
If strComp = "NEJAKYSPECIALNIHOSTNAME" Then
objNetwork.MapNetworkDrive "R:", "\\server\neco", true
objNetwork.MapNetworkDrive "K:", "\\server\sw", true
wscript.quit(0)
End If
' Essentials
objNetwork.MapNetworkDrive "U:", "\\server\public\ucitele", true
objNetwork.MapNetworkDrive "K:", "\\server\sw", true
' Per Group
If strGroup = "ucitele" Then
objNetwork.MapNetworkDrive "S:", "\\server\public\sdilene", true
End If
Dim specialusers
specialusers = Array("user1", "jarda", "pepa")
If IsInArray(strUser, specialusers) Then
objNetwork.MapNetworkDrive "R:", "\\server\resources", true
End If
' ----------------------------------------------------------
' Upozorneni na kvoty
' ----------------------------------------------------------
objShell.Run("\\server\netlogon\quota.vbs")
' ----------------------------------------------------------
wscript.quit(0)
' ----------------------------------------------------------
' Funkce
' ----------------------------------------------------------
Function IsInArray(str, array)
Dim I
IsInArray = false
For Each I In array
If I = str Then IsInArray = true
Next
End Function
#======================= Global Settings =======================
[global]
dos charset = 852
unix charset = UTF-8
workgroup = FIRMA
load printers = no
printcap name = /dev/null
server string = %h
interfaces = 192.168.1.0/24 lo
socket address = 192.168.1.5
wins support = no
name resolve order = hosts bcast
smb ports = 139
log file = /var/log/samba/log.%m
log level = 1
max log size = 1000
syslog = 0
security = user
map to guest = bad user
encrypt passwords = true
socket options = TCP_NODELAY SO_KEEPALIVE IPTOS_LOWDELAY
add machine script = /etc/scripts/wadm/ldap-machineadd %u
logon script = logon.vbs %G
logon drive = H:
ldap suffix = dc=firma,dc=cz
ldap admin dn = cn=admin,dc=firma,dc=cz
ldap delete dn = yes
ldap machine suffix = ou=machines
ldap group suffix = ou=groups
ldap user suffix = ou=users
ldap passwd sync = yes
passdb backend = ldapsam:ldap://localhost
domain master = yes
domain logons = yes
local master = yes
os level = 128
enable privileges = yes
include = /etc/samba/machines/%m
inherit acls = yes
#======================= Share Definitions =======================
[homes]
browseable = no
writable = yes
valid users = %S
create mask = 0711
directory mask = 2711
inherit permissions = yes
map hidden = yes
map system = yes
csc policy = disable
[netlogon]
path = /home/netlogon
guest ok = yes
writable = yes
create mask = 0775
directory mask = 2775
map hidden = yes
map system = yes
Tiskni
Sdílej: