Portál AbcLinuxu, 12. května 2025 06:58

Dotaz: Samba pro více uživatelů

17.12.2015 23:27 Milan
Samba pro více uživatelů
Přečteno: 1444×
Odpovědět | Admin
Dobrý den, postavil jsem si malý server a jako OS na něm provozuji Ubuntu Server 14.04 LTS. Nedaří se mi nakonfigurovat přístupová práva jednotlivých sdílených složek v Sambě. Uvedu příklad. Mám tři složky Uživatel1, Uživatel2 a Veřejné. Do složky Uživatel jedna bude mít přístup jen uživatel1 a správce, do složky uživatel2 jen uživatel2 a správce. Do složky veřejné mají přístup všichni. Zároveň však chci aby uživatel1 neviděl složku Uživatel2 a naopak. Předpokládaný počet uživatelů je méně než 10. Moje konfigurace vždy dopadne tak, že buď všichni vidí všechno nebo nikdo nic. Zde je výpis mého nastavení ze souboru smb.conf:

[uzivatel1]
path = /mnt/raid/uzivatel1
valid users = uzivatel1 spravce
public = no
writable = yes
browseable = no
printable = no
create mask = 0700

[uzivatel2]
path = /mnt/raid/uzivatel2
valid users = uzivatel2 spravce
public = no
writable = yes
browseable = no
printable = no
create mask = 0700

[verejne]
path = /mnt/raid/verejne
public = True
only guest = False
writable = True
printable = no
directory mask = 0777
create mask = 0777

Děkuji za rady...
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Pavel 'TIGER' Růžička avatar 18.12.2015 00:44 Pavel 'TIGER' Růžička | skóre: 54
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co použít i parametr invalid users, také bych použil skupiny, do kterých bych rozdělil uživatele, než je pracně vypisovat.
18.12.2015 07:33 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Odpovědět | | Sbalit | Link | Blokovat | Admin
a tu SAMBU mas jako AD řadič? Pokud ano, tak to budes klikat jako ACL pres WIN sprava počitače, a pokud ne, tak se na to vyprdni, zaloz si unix groupy, a prava pridel rovnou na linux slozky, a vsechny sdileni v sambe necha jako full writable.
Max avatar 18.12.2015 08:00 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Tebou navrhované řešení mi přijde nečisté. Já to tak zásadně nikdy nedělám. I na windows to tak nedělám. Spousta adminů nastaví pro share everyone a pak řeší práva na FS. Já ne, já jsem poctivý. Vytvořím skupinu, té nastavím právo pro share a kdo není v té skupině, končí ještě před samotným přístupem k FS.
Když to vezmu ad absurdum, tak je vždy bezpečnější nastavovat oprávnění i pro share, protože ten, kdo se dostane k share, může využít více případných bezpečnostních chyb SMB implementace (ať už v rámci samby, nebo windows).
Zdar Max
Měl jsem sen ... :(
18.12.2015 08:07 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
nečisté? je čistčí nastavit prává jednou na složce nebo dvakrát, jendou v sambě a jednou v systému? Nastavení v systému řeší i případ kdy chceš nekomu pustit na server třeba pres SSH, kdežto reseni pres sambu ne. Co je a co není čistší, to bych se celkem dohadoval. Ale je to i odvyslé od toho jak tu sambu má nastavenou, pokud jako řadič AD měl bych to stejne naklikat přes Win.
Max avatar 18.12.2015 08:48 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
To ale přece není pravda, ty nenastavuješ oprávnění 2x, nastavení oprávnění k share je úplně něco jiného, než k FS. Vytvoříš skupinu a té nastavíš oprávnění pro share, nic víc dalšího. O další práva se starají oprávnění v rámci FS.
Jaký je pak rozdíl v tom, jestli share nastavíš everyone, nebo nějakou skupinu? Vesměs žádný rozdíl v nastavování není, rozdíl je jen v bezpečnosti, kdy se neautorizovaný uživatel dostane dál, než by bylo vhodné.
Typickým příkladem je idiocie win adminů, kdy nastavený everyone pro share a pak řeší oprávnení v rámci FS. Pak se zjistí, že všichni potřebují v RW přistupovat k nějaké složce, tak jí dají také everyone. Mno a pak se stane, že k nějakému share je potřeba přistupovat jako guest, tak povolí účet guesta a hle. Najednou je tu díra, kdy se guest dostane i tam, kam by to člověk běžně nečekal. Proto je dobré nebýt lenivý a nesrat na to tak, jak to popisuješ ty, a vše nastavovat poctivě. A opět připomínám, že práva na share nejsou duplikací práv k FS. Jsou to jen práva k přístupu do sdílené složky, né k samotným souborům.
Zdar Max
Měl jsem sen ... :(
18.12.2015 09:02 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Jsou to jen práva k přístupu do sdílené složky, né k samotným souborům. hmmm, ted jsi me dostal, jak jsem psal by to fungovalo, ale mas pravdu ze to tak taky nikde nemam, maximalne jsem si tim pomohl na slozkach v ramci sdileni.
18.12.2015 09:04 bigBRAMBOR | skóre: 37
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
clovek si do vseho promítne sebe, a lehce pak zapomene, nejak mi nedoslo ze privatni slozky pro uzivatele nekdo resi jako zvlast sdileni a nepouzije %H
Max avatar 18.12.2015 07:52 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, důležité je také zmínit nastavení global, jak vedeš účty apod. Samba by měla být ve verzi 4.1, takže ok.
Já mám pod debianem toto nastavení :
[global]

   server string = SMB_Storage_Server
   netbios name = storage
   workgroup = SKUPINA
   server role = standalone server
   #realm = DOMENA.LOCAL
   #server role = active directory domain controller
   #server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
   dos charset  = 852
   unix charset = utf8

   client lanman auth = Yes
   wins support = no
   dns proxy = no
   socket options = IPTOS_LOWDELAY TCP_NODELAY
   name resolve order = host #lmhost wins bcast
   interfaces = lo eth0 eth1
   bind interfaces only = yes

   log level = 2
   log file = /var/log/samba/log.%I
   max log size = 1000
   syslog only = no

   passdb backend = tdbsam
   smb passwd file = /etc/samba/smbpasswd
   encrypt passwords = true
   security = user
   obey pam restrictions = yes
   unix password sync = no
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = no

   map to guest = bad password
   invalid users = root
   guest account = nobody

   hosts deny = ALL
   hosts allow = 192.168. 10.0.0. 10.16.3. localhost
   usershare max shares = 100
   usershare allow guests = yes
   max connections = 150

   vfs objects = acl_xattr
   map acl inherit = Yes
   store dos attributes = Yes

   create mask = 0644
   directory mask = 0755
#   level2 oplocks = True
#   read raw = no
#   write cache size = 262144
# mel by se zplepsit vykon :    
#    use sendfile = yes
#    use mmap = no
   smb ports = 139 445


[uzivatel1]
path = /mnt/raid/uzivatel1
valid users = uzivatel1 spravce
public = no
writable = yes
browseable = yes
printable = no
create mask = 0700

[uzivatel2]
path = /mnt/raid/uzivatel2
valid users = uzivatel2 spravce
public = no
writable = yes
browseable = yes
printable = no
create mask = 0700

[verejne]
path = /mnt/raid/verejne
public = true
only guest = yes
writable = yes
browseable = yes
printable = no
directory mask = 0777
create mask = 0777
Tzn., že držím uživatele ve starém formátu tdbsam a uživatele přidávám pomocí "useradd uzivatel1" (do systému) + "smbpasswd -a uzivatel1" (do samby).
Kromě správného nastavení práv na share, je potřeba mít správné nastavení práv na FS.
V poslední řadě ještě existuje "access based enumeration (ABE)", což je volba pro windows share, kdy klienti vidí jen složky, ke kterým mají práva. Složky, ke kterým práva nemají, nevidí. Pak se uživateli tedy nestává, že se snaží vstoupit do složky bez oprávnění a vyhodí mu to chybu. Zároveň uživatel nevidí stovky složek, ale jen ty své, co potřebuje. K tomu by měly sloužit share parametry :
hide unreadable = yes
hide unwriteable files = yes
Zdar Max
PS: toto mám na Archu a též bez problémů :
[global]
        workgroup = DEVAINE
        server string = Samba Server Version %v
        netbios name = DevaineSMB
        # need for netbios informations sharing over the network
        wins support = Yes
        client lanman auth = Yes
        unix extensions = false
        dos charset  = 852
        unix charset = utf8
        domain master = yes

        printcap name = /dev/null
        load printers = no
        disable spoolss = yes
        printing = bsd

        log level = 2
        log file = /var/log/samba/log.%m
        max log size = 50

        interfaces = lo eth0 eth1
        bind interfaces only = true
        dns proxy = no
        write cache size = 2097152
        getwd cache = yes
        min receivefile size = 16384

        # this way samba will not ask for password to connect to the machine
        security = user
        passdb backend = tdbsam
        map to guest = Bad User
        guest account = nobody
        public = yes

#======================= Share Definitions =======================
# my share
        [datastore]
        path = /mnt/datastore
        valid users = max
        writable  = yes
        browsable = yes
        read only = no
        guest ok = no
        public = no
        create mask = 0666
        directory mask = 0777
        force create mode = 0666
        force directory mode = 0777

        [media]
        path = /run/media
        valid users = max
        writable  = no
        browsable = yes
        read only = yes
        guest ok = yes
        public = yes
        create mask = 0666
        directory mask = 0777

# test for everyone share
        [smbtest]
        path = /mnt/datastore/smbtest
#       valid users = admin
        writable  = yes
        browsable = yes
#       read only = yes
        guest ok = yes
        public = yes
        create mask = 0666
        directory mask = 0777
        force create mode = 0666
        force directory mode = 0777
Měl jsem sen ... :(
18.12.2015 17:29 j
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chjo chjo, co takhle man ?

[homes] comment = Domácí Adresář browseable = no writable = yes

... tohle "vyrobi" kazdymu userovi (defaultne v /home) jeho vlastni adresar (plati pokud to neni ADcko).

Detaily si najdi v dokumentaci. homes je alias k loginname. Adminovi pak muzes nasharovat celej /home
21.12.2015 13:27 Milan
Rozbalit Rozbalit vše Re: Samba pro více uživatelů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Děkuji Vám za pomoc. Takže jestli to ve zkratce chápu, je důležité, abych měl správně nastavený jak share tak FS zároveň. A pokud nepoužiju ABE, tak všichni uživatelé uvidí i složky, na které nemají právo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.