V ownCloudu byly nalezeny tři kritické zranitelnosti: CVE-2023-49103, CVE-2023-49104 a CVE-2023-49105 s CVSS 10.0, 8.7 a 9.8. Zranitelnost CVE-2023-49103 je právě využívána útočníky. Nextcloudu se zranitelnosti netýkají.
I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2023. Pro programátory v Perlu je určen Perl Advent Calendar 2023. Zájemci o UX mohou sledovat Lean UXmas 2023. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2023…
Byla vydána verze 2.12 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 23.11 Topi. Přehled novinek v Changelogu.
Po 4 měsících vývoje byla vydána nová verze 4.2 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu a na YouTube.
Byla vydána nová stabilní verze 23.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Tapir. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) upozorňuje na hrozbu spojenou s používáním mobilní aplikace WeChat a její čínské verze Weixin (dále jen WeChat). Ta sbírá velký objem uživatelských dat, a právě to by – v kombinaci se způsobem jejich sběru – mohlo sloužit k přesnému zacílení kybernetických útoků.
LibreQoS je svobodná aplikace vhodná pro poskytovatele internetové připojení pro rezervaci a řízení datových toků zákazníků (QoS - Quality of Service, QoE - Quality of Experience). Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv2. Aktuální verze je 1.4.
Byla vydána Beta 1 verze KDE 6 (Plasma, Frameworks a Gear) postavené na Qt 6. Testovat lze například v distribuci KDE Neon. Stabilní verze je plánována na konec února 2024. Předchozí velké vydání 5 vylo vydáno téměř před 10 lety (červenec 2014).
Open-source webmail Roundcube se připojil k balíku aplikací Nextcloudu. Převzetí firmou Nextcloud ale plánováno není, pouze integrace a podpoření vývoje.
logon drive
. Má se po přihlášení automaticky připojit domovský adresář pod tímto označením, nebo musím udělat net use ...
. V případě, že musím net use
udělat proč je tam toto nasatvení? Já musím po přihlášení disky namapovat buď ručně nebo pomocí logon scriptu.[skupina]
path = /home/%g
...
případně jak tohle řešit. Chci každé skupině namapovat vlastní společný adresář.V konfiguračním souboru smb.conf le logon drive. Má se po přihlášení automaticky připojit domovský adresář pod tímto označením, nebo musím udělat net use .... V případě, že musím net use udělat proč je tam toto nasatvení?Musíte zavolat
net use /home
. To nastavení je tam proto, aby klientský systém věděl, který je ten síťový domovský adresář uživatele, a pokud zavoláte třeba právě net use /home
, aby příkaz věděl, které sdílení má připojit. Ta cesta je dostupná přes API v informacích o uživateli, takže jiné programy to mohou používat k něčemu dalšímu (třeba umístění startovacích skriptů apod.).
Je ve sdílení možné použít proměnnou %g nebo %G.Ano, je to možné.
[skupina]
path = /home/%g
...
a odkazuje se %g nebo %G na organization unit? Mně to nefunguje. Zjišťuji zda dělám něco špatně a nebo to takhle nejde.Ani jedna.
%g
a %G
se odkazují na primární skupinu uživatele – v jednom případě je to přihlášený uživatel, v druhém případě je to požadovaný uživatel (uživatelské jméno, které bylo v požadavku na přihlášení).
a je možné se nějak k organization unit dostat?Podle mne to možné není, je to záležitost specifická pouze pro LDAP a ještě navíc pro určitý tvar LDAP stromu. Podle mne by ale neměl být problém nějakým skriptem si vygenerovat příslušné skupiny a uživatelům je nastavit jako primární (pokud je to možné). Pokud primární skupiny měnit nemůžete, použijte jiné skupiny, sdílení nastavujte pro každého uživatele (s parametrem
%u
nebo %U
), a na serveru použijte odkazy (opět je můžete automaticky vygenerovat).
Nebo existují ještě nějaké proměnné, které při mapování mohu použít.Existují, jsou popsané v
man smb.conf
, ale podle mne tam není žádná substituce, která by se vám hodila.
Na co se odkazuje %$var
.
Proměnná prostředí, platí pro celý server, takže s tím neodlišíte jednotlivé uživatele.
net use /home
mi nefunguje. Je nějaká možnost použít proměnné ze samby respektive z LDAP i v logon scriptu? Používal jsem Novell a tam to nebyl problém. V loginscriptu jsem mohl používat některé proměnné z nastavení uživatele.
mimo jiné to net use /home mi nefunguje.Co to znamená? Hlásí to nějakou chybu, nebo to proběhne ale disk se na příslušné písmenko nenamapuje?
Je nějaká možnost použít proměnné ze samby respektive z LDAP i v logon scriptu?Není. Můžete tam používat proměnné nadefinované v prostředí uživatele.
net use H: /home
, ale když se tam ten disk udělá automaticky tak to nepotřebuji.
logon drive
, obvykle se používá H: (home).
Ten příkaz net use H: /home
se používal na Windows 98
objNetwork.MapNetworkDrive "K:", "\\server\sw"
A v naprosté většině případů to funguje. Někdy se zcela náhodně stane, že se disk nepřipojí (třeba jeden ze čtyř!). Tedy není vidět v "Tento počítač", ale např. v save disalogu jakékoliv aplikace vidět je! Nesetkal se tím někdo? Občas to docela vadí a nikde jsem na řešení podobného problému nenarazil.
net use /home vypíše nápovědu "Syntaxe příkazu je ...". Našel jsem, že tam má být toto net use H: /home
, ale když se tam ten disk udělá automaticky tak to nepotřebuji.
Omlouvám se za zmatení, předpokládal jsem, že si automaticky najdete přesnou syntaxi toho příkazu net
– psal jsem to jenom jako zkratku „ten příkaz net
s parametrem /home“
, sám si taky nepamatuju, jak ty parametry mají přesně vypadat. Ale měl jsem to napsat, že nepíšu přesnou syntaxi.
[vsichni]
path=/home/skupina1/vsichni
read only = Yes
browsable = Yes
valid users =@skupina1
[skupina1]
path=/home/skupina1
read only = No
browsable = Yes
valid users =userU1
r-x
a ostatní nic, a pod ním bude adresář, na kterém bude mít druhá skupina právo -w-
a ostatní r-x
, tím bude pro čtení přístupný pro první skupinu). Takhle nějak asi vypadá tradiční unixové pojetí práv, kdy každá specifická činnost má svou skupinu a uživatel je členem mnoha skupin.
Druhá možnost, která asi bude bližší vašemu pojetí přístupových práv (mně také vyhovuje víc), je ACL, se kterým můžete přidělovat k jednomu adresáři či souboru práva více uživatelům či skupinám. Takže můžete na jeden a ten samý adresář přiřadit jedné skupině právo čtení a jiné právo zápisu. Příslušné příkazy jsou setfacl
a getfacl
.
Zvolil bych jeden z výše uvedených způsobů nastavení práv než se pokoušet to nastavit pomocí práv ke sdílení na Sambě. Připadá mi to jako čistší a operativnější řešení.
setfacl
v linuxu, protože přece jenom přesně vidíte, jak to je a ne jak to interpretují Windows. Při tom právě zjistíte, jak to bude následně vypadat ve Windows, pokud nemáte s ACL zkušenosti.
Uživatele je dobré rozdělit do skupin podle jejich "vlastností", tj. (pokud si vzpomínám psal jste o prostředí školy) např. učitelé, studenti po třídách (ale mám zkušenost, že rozdělení práv po třídách se moc nevyužije) ap.
Různým složkám pak pomocí ACL nastavíte práva pro tyto skupiny. Není moc dobré dávat nastavoval ACL více jednotlivým uživatelům - je dobré se zamslet a radši vytvořit další skupinu, protože do ní lze někoho přidat a ACL už není nutné měnit.
Uživatelé si naíc mohou nastavit ACL práva sami podle potřeby. Je to vcelku jednoduché, jenom takový příklad právě ze školy:
Nastavení oprávnění pro sdílení souborů
[global]
sekci smb.conf
dáte inherit acls = yes
.
Nastavení sdílení bohatě stačí takhle:
[public]
comment = Sdílené adresáře
path = /home/public
writable = yes
hide unreadable = yes
admin users = @ntadmins
Práva na podadresáře se berou z normálních UNIX práv a z ACL. Tedy vytvořím např. podadresář /home/public/skupina1
, vlastněný uživatelem root
a skupinou skupina1
, práva dáte na 2770
- tj. zápis jen pro členy skupina1
. Přes ACL třeba ještě donastavíte přístup pro skupina2
jen pro čtení:
setfacl -m g:skupina2:r-x /home/public/skupina1
setfacl -m d:skupina2:r-x /home/public/skupina1
Ten druhý řádek nastavuje default ACL, tj. ACL, které "zděddí" soubory a adresáře zde vytvořené. Dají se stím udělat pěkné věci. Třeba do nějakého adresáře zapisovat všichni (př. studenti), ale nevidí soubory mezi sebou a ani si je nemohou přepsat, pak má jeden uživatel (př. učitel) přástup ke všem tak to uloženým souborů pro čtení i zápis.
Ještě k tomu nastavení:
hide unreadable
je v tomto případě dobrá volba - uživatelé neuvidí adresáře/soubory, které stejně nemohou otevřít.
admin users
definuje uživatele/skupinu, která přistupuje přes sambu jako root
, tudíž se na ni žádná omezení práv nevztahují (hodí se na nastaví ACL na cizích souborech, pokud třeba někdo sám nastavení ACL zkazil).
Je možné uživateli zakázat nastavovat práva na svůj adresář a přitom mu nastavit všechna práva na obsah svého adresáře?Nastavovat práva může vlastník nebo
root
. Takže pokud uživateli dáte práva zápisu přes setfacl
, ale vlastníkem bude někdo jiný, uživatel práva změnit nemůže. Pokud pak ale vytvoří nějaký nový soubor, který bude vlastnit, pro tento soubor už může práva přidělit někomu jinému. Ale pokud uživatel sám přidělí na svůj soubor práva někomu jinému, je to jeho problém, ne?
[profiles]
path = /home/profiles
browseable = No
read only = No
create mask = 0600
directory mask = 0700
store dos attributes = Yes
Jde o to, že zde musím nastavit buď other rwx a nebo na adresář s profilem dát owner student1. Když tam nechám root a na adresář s profilem dám setfacl -m u:uzivatel1:rwx /home/profiles/skupina1/uzivatel1 tak to nefunguje. Když jsem nastavil browsable = Yes a pokusil se něco v tomto adresáři udělat tak to funguje, ale profil se tam s tímto nastavením neuloží. Cesta k profilu je dobře, když změním other nebo vlastníka tak se profil ukládá.
profile
v domovském adresáři uživatele (není třeba se o to vůbec starat, stačí aby měl uživatel svůj ~
a adresář s profilem už se vytvoří při prvním přihlášení sám):
[global]
logon path = \\%N\%U\profile
[homes]
comment = Domovský adresář
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
Pokud nechcete, aby uživelům tenhle adresář "překážel", tak ho stačí pojmenovat .profile
- a bude skrytý. Výhodou odděleného adresáře pro profily může být možnost neaplikovat na profily kvóty, ale to je ve škole spíš na škodu.
Podle mě to má takhle docela výhody, třeba při odstraňování účtu stačí odstranit jen domovský adresář. Pozor ještě na ty profily - je dobré uživatele upozornit aby nedávali velké věci na plochu a "Dokumenty" v Default profilu přesměrovat na H:\Dokumenty\ - profil se totiž při každém přihlášení kopíruje tam a zpět ze serveru na PC a může to pak trvat dost dlouho. Některé adresáře (Plocha, App Data lze přes nastavení v Registry přesměrovat - to se dá nastavit v Default User a pak to bude platné pro všechny).
valid users = %S
). Pokud by měli přístup i z Linuxu, tak by to byl větší problém, nicméně by to řešit ještě šlo.
Téměř neřešitelné je to ale u obecně sdílených adresářů, kam může zapisovat nějaký student a ostatní tam mají přístup. Obecně v Linuxu vlastníkovi nemůžete zabránit ve změně práv. Soubory tedy nesmí patřit uživateli, který k nim má přístup - to by šlo v Sambě řešit pomocí inherit user
, kdy by vlastník všeho byl nobody
. Pak zase bude problém s kvótami, což by šlo obejít skupinovými kvótami.
Závěr je takový, že pokud budou mít uživatelé na server přítup z Linuxu (třeba jen SCP), tak to, aby si nemohli přidat práva, řešit nelze. Pokud by měli přístup jen přes Sambu, tak by to nějak řešit šlo, ale časem by s tím stejně byly jen problémy.
Tomu opisování stejně nezabráníte. Jde to samozřejmě co nejvíc znesnadnit, tj. blokovat internet, pokusy o omezení změn práv na fileserveru... Ale nakonec stejně někdo přijde na to, jak to obejít. Stačí jeden a budou to používat všichni. P2P komunikaci mezi PC jen tak nezablokujete (musel by mít každý svůj subnet, nebo všude switche s izolací portů) - a když si všichni pustí nějaký P2P program na posílání souborů a chat po LAN, tak nic nepomůže.
Je pravda, že Netware filesystem je na tom s právy lépe. Ale na Linuxu je třeba AFS, který má vlastní velmi dobrý systém práv (ale zas nekompatibilní s POSIX), ale ten zprovoznit není jen tak a pro malou síť to nemá smysl. Nicméně je bezproblémový klient i pro Win a v akademických institucích se často používá.
linux-srv:/home/skupina1 # getfacl uzivatel1
# file: uzivatel1
# owner: root
# group: root
user::rwx
user:uzivatel1:rwx
group::r-x
mask::rwx
other::---
inherit owner
, pak se to chová tak jak píšete. Ale při přístupu mimo Sambu to neplatí a je problém s kvótami, takže tak bych to určitě nedělal.
Podle toho výpisu, uzivatel1
práva na adresáři /home/skupina1/uzivatel1
změnit nemůže, protože není jeho vlastníkem. Práva souborů v tomto adresáři jsou z hlediska ostatních uživatelů lhostejná. Pokud se třeba uzivatel2
nedostane do /home/skupina1/uzivatel1
tak už na právech podřízených souborů nezáleží (práva se vyhodnocují od kořene filesystému a na každém adresáři v cestě musí být pro přístup alespoň --x
.
Ještě jedno doporučení - místo obecné skupiny root
u těchto adresářů používejte raději nogroup
. Pokud bude nastaven setgid bit
na adresáři (což se často hodí), tak se skupina root zdědí na vytvořené soubory. A pokud by ty soubory náhodou mohl někdo spustit (uživatel tam dá nějaký binární soubor s programem), tak poběží pod skupinou root, což je bezpečnostní problém.
Ještě se podívejte na default acl
. Těmi se nastavují ACL na souborech a adresářich vytvořených v adresáři, kterému tyto def. ACL dáte. To co máte v tom výpisu nahoře, se vztahuje jen na daný adresář a vytvořené soubory budou mít práva podle create mask
v Sambě.
default:user::rwx
default:user:uzivatel1:rwx
default:group::r-x
default:mask::rwx
default:other::---
%u
, %U
, %g
nebo %G
použijete v cestě nějakého sdílení. Tj. třeba budete mít sdílení [skripty]
, v jeho cestě použijete %u
– tím pádem se každému uživateli namapuje jiný adresář, a tam už si můžete dělat, co chcete. Můžete tam mít vygenerované různé soubory, odkazy atd.
Konkrétně to, co chcete udělat, můžete zařídit např. tak, že vytvoříte sdílení [trida]
, ve kterém bude cesta třeba /home/%u/trida/
. Každému studentovi pak vygenerujete do jeho domácího adresáře odkaz na adresář třídy.
Tiskni
Sdílej: