Wat doe ik fout met Samba permissies?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Mijn vraag
Waarom mag ik niet schrijven in de map:
code:
1
/mnt/data/www


Relevante software en hardware die ik gebruik
Samba 4

Wat ik al gevonden of geprobeerd heb
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ cat /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = %h Samba Server
wins support = no
dns proxy = no
map to guest = bad user
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
show add printer wizard = no
hosts allow = 172.16. 127. 10.
disable netbios = yes
deadtime = 30
invalid users = root
security = user
inherit owner = yes
inherit permissions = yes
create mask = 0664
directory mask = 2775
force create mode = 0664
force directory mode = 2775
socket options = IPTOS_LOWDELAY TCP_NODELAY IPTOS_THROUGHPUT
strict locking = no
use sendfile = yes
aio read size = 2048
aio write size = 2048

[data]
comment = Data
path = /mnt/data
valid users = @storage
write list = @storage


Permissie script:
code:
1
2
3
4
5
6
7
8
#!/bin/sh
echo "chmod mnt.."
find /mnt/data -type d -exec chmod 2775 {} +;
find /mnt/data -type f -exec chmod 0664 {} +;

echo "chown data.."
chown archie:storage /mnt/data;
chown -R http:storage /mnt/data/www;


Op de server werkt het allemaal prima, maar Samba neemt niet mijn group permissies over. :/
De users zitten in de group storage en hebben dus write access.

Iemand een idee? Thanks. :)

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

En welke distro draai je? Want als je iets gebruikt dat SELinux gebruikt, ga je er niet zomaar in kunnen schrijven. ;) Heb je al via 'su - http' naar de gebruiker http verandert en proberen te schrijven daar zonder gebruik te maken van Samba? Heb je ook al de manpage gelezen over de create mask e.d.?

Wat is het resultaat als je in /mnt/data wat neerzet?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 13:17:
En welke distro draai je? Want als je iets gebruikt dat SELinux gebruikt, ga je er niet zomaar in kunnen schrijven. ;) Heb je al via 'su - http' naar de gebruiker http verandert en proberen te schrijven daar zonder gebruik te maken van Samba? Heb je ook al de manpage gelezen over de create mask e.d.?

Wat is het resultaat als je in /mnt/data wat neerzet?
Arch Linux, geen SELinux.

Dat werkt prima - enkel via Samba werkt het niet. :/
Yep, maar ik kan ook huidige files die toebehoren aan de storage group niet verwijderen of aanpassen.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Wat je zie je in de logs dan? Vertel wat je allemaal ziet en doet, wat het resultaat is, anders dan 'werkt niet'.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 14:07:
Wat je zie je in de logs dan? Vertel wat je allemaal ziet en doet, wat het resultaat is, anders dan 'werkt niet'.
Helaas zie ik niks in de log. Het probleem is dat ik geen write permissions heb als ik de share mount:
code:
1
sudo /usr/bin/mount //nas1.home.lan/data /mnt/nas1/data -t cifs -o credentials=/..,iocharset=utf8,rw,workgroup=workgroup


Op workstation:
code:
1
$ nano /mnt/nas1/data/www/test # Geeft permission denied


Op server:
code:
1
$ nano /mnt/data/www/test # Gaat prima


Het lijkt erop dat de group permissie niet wordt overgenomen door Samba.

code:
1
2
3
$ cat /var/log/samba/log.smbd
[2017/07/29 13:46:51.087602,  0] ../lib/util/become_daemon.c:124(daemon_ready)
  STATUS=daemon 'smbd' finished starting up and ready to serve connections

[ Voor 12% gewijzigd door HollowGamer op 29-07-2017 14:13 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Dat komt omdat de POSIX rechten niet meegenomen worden want die zijn niet gelijk op je twee systemen. Als je CIFS mount, moet je aan de client side nog wel opgeven welke lokale gebruiker de eigenaar e.d. moet zijn. Er is dus niks mis met je config, maar met je mount.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 11:15

The Eagle

I wear my sunglasses at night

Wellicht voor de zekerheid ook ff dubbelchecken op de uuid's van je user en je group. Kan zomaar afwijken en dan mag het het zelfde heten maar dan gaat dat niet vliegen ;)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 14:15:
Dat komt omdat de POSIX rechten niet meegenomen worden want die zijn niet gelijk op je twee systemen. Als je CIFS mount, moet je aan de client side nog wel opgeven welke lokale gebruiker de eigenaar e.d. moet zijn. Er is dus niks mis met je config, maar met je mount.
Dit heb ik geprobeerd als volgt bij het mounten (58 = storage groupId op server):
code:
1
..,gid=58,forcegid

Hoe bedoel je het precies? :)

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

HollowGamer schreef op zaterdag 29 juli 2017 @ 15:53:
[...]

Dit heb ik geprobeerd als volgt bij het mounten (58 = storage groupId op server):
code:
1
..,gid=58,forcegid

Hoe bedoel je het precies? :)
Welke groep hangt er aan id 58 op je client? Als je cifs mount, geef je met de -o optie ook nog op welke lokale user er gemapped moet worden. Dat doe je nu niet, en is daardoor automatisch van root, want die mount de boel. Kijk maar eens met 'ls -l' naar je mount point.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 18:57:
[...]

Welke groep hangt er aan id 58 op je client? Als je cifs mount, geef je met de -o optie ook nog op welke lokale user er gemapped moet worden. Dat doe je nu niet, en is daardoor automatisch van root, want die mount de boel. Kijk maar eens met 'ls -l' naar je mount point.
Ik begrijp het nu.. op de clients en server moeten dezelfde UID/GID's aanwezig zijn, anders werkt het niet.
Waarom worden niet de server permissies gebruikt? Hoe zou ik dit kunnen bereiken? Ik wil niet op twee plaatsen users/groups toevoegen.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Ze hoeven niet overeen te komen. Je geeft op de client aan welke groep er lokaal aan de mount moet hangen. Op de server wordt alles geschreven als de gebruiker waarmee je inlogt op de share. Piet op je client logt in met gebruikersnaam archie op de server en alles op de server is dan van archi, zelfs als Piet wat neerzet. Lokaal ziet Piet alsof het van hem is.

Er zijn honderden, danwel duizenden guides voor hoe je dit moet doen. Waarom heb jij die niet gevonden?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 20:56:
Ze hoeven niet overeen te komen. Je geeft op de client aan welke groep er lokaal aan de mount moet hangen. Op de server wordt alles geschreven als de gebruiker waarmee je inlogt op de share. Piet op je client logt in met gebruikersnaam archie op de server en alles op de server is dan van archi, zelfs als Piet wat neerzet. Lokaal ziet Piet alsof het van hem is.

Er zijn honderden, danwel duizenden guides voor hoe je dit moet doen. Waarom heb jij die niet gevonden?
Het staat niet overal - tevens ging ik er vanuit dat de server permissies gelden boven client permissies, zo werkt het op Windows-niveau ook.

Het werkt nu inderdaad, maar dat is eigenlijk niet wat ik zoek. Ik wil de permissies over laten nemen, maar misschien is het beter deze anders te handelen was ik mij aan het bedenken.

Ik had gehoopt dat dit zonder iets zou kunnen als Kerberos maar dat lijkt dus onmogelijk. :/

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Als je het wilt vergelijken met Windows, dan moet je het zien als dat je een map deelt op een computer waar alleen gebruiker Piet bestaat. Jij met je eigen systeem wil die share benaderen. Hoe doe je dat dan? Inloggen als Archie werkt niet. Je mapped de schijf dan met de inloggegevens van Piet. Zo moeilijk is het principe niet.

Werken met Kerberos kan, maar dat is veel meer werk.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 21:26:
Als je het wilt vergelijken met Windows, dan moet je het zien als dat je een map deelt op een computer waar alleen gebruiker Piet bestaat. Jij met je eigen systeem wil die share benaderen. Hoe doe je dat dan? Inloggen als Archie werkt niet. Je mapped de schijf dan met de inloggegevens van Piet. Zo moeilijk is het principe niet.

Werken met Kerberos kan, maar dat is veel meer werk.
Ik denk dat we mogelijk naast elkaar heen praten, want het probleem zit bij niet het inloggen op een share; dat gaat immers prima.

Wat ik wil is dat server permissies worden gebruikt op de client. Zo map ik mijn server share op de client, en op die server share heb ik bestanden die behoren tot een bepaalde owner/group, het is echter wel zo dat de user waarmee ik inlog de share in die groep zit, dus zal zoals op de server prima moeten kunnen schrijven in andersmans mappen (zie 664/775).

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 29-09 21:21

Hero of Time

Moderator LNX

There is only one Legend

Ja, dat kan toch ook? Wat is het probleem dan? Wat is nou de uitvoer van hetvolgende op je gedeelde map aan de client kant?
ls -l

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hero of Time schreef op zaterdag 29 juli 2017 @ 23:35:
Ja, dat kan toch ook? Wat is het probleem dan? Wat is nou de uitvoer van hetvolgende op je gedeelde map aan de client kant?
ls -l
Nee, dat gaat helaas niet.

Zo zijn mijn rechten aan de server-omgeving:
code:
1
2
3
4
5
$ ls -lh /mnt/data/home

drwx------     2 archie archie 4,0K Jun 17 17:51 Desktop
drwxrwsr-x  2 http http 4.0K Jul 27 15:19 www
..

Zoals je kunt zien heb ik dus www op 775 staan (archie zit in de http-groep.
Op de server werkt dit prima, maar via SMB worden deze rechten niet meegenomen.
Waarschijnlijk is dit logisch, omdat er geen AD wordt gebruikt, enkel de user-login.
Wat wel werkt is forceren van gid, maar dan zijn mijn rechten op de server weer niet goed.

Inmiddels ben ik overgestapt op NFSv4 en heb ik de server anders ingericht.
Zo gebruik ik nu een aparte export voor WWW - waar ik de gebruiker http voor gebruik (anonuid en anongid).
Dit is beter - enkel 'snapt' de client niet dat dit dezelfde server/schijf is, maargoed dat valt opzicht mee.
Wil ook www anders gaan inrichten, zodat ik enkel hoef de deployen en dan alles goed wordt gezet.

Heb je nog een idee of andere oplossing? :)

Acties:
  • 0 Henk 'm!

Verwijderd

Heb je de user v/h workstation aan de www-data toegevoegd...
Apache rules here... ;)
Ik gebruik zelf Webdav als protocol om te mappen, dat loopt zelf al via Apache en heb het allemaal via poort 443 lopen, bij SMB is dat wrs anders geregeld..?

Acties:
  • 0 Henk 'm!

  • Thc_Nbl
  • Registratie: Juli 2001
  • Laatst online: 21-05 22:24
Ik zou beginnen met deze link lezen en daar je config opschonen:
https://wiki.samba.org/in...ba_as_a_Standalone_Server

Als je je rechten wilt laten overnemen, ipv chmod kan je beter setfacl gebruiken.

Voor cifs mounts en smbclient testjes kunnen problemen hebben met SMB1, wat uit gefaseerd wordt.
Het default protocol voor smbclient and smbcacls is nog SMB1
dus zowel bij cifs mounts en smbclient even het smb protocol mee geven.
zoals hier staat:
https://www.samba.org/samba/history/samba-4.1.0.html
geen idee welke samba je nu gebruikt, met het is best handig om even deze changelogs te lezen tot de versie die jij gebruikt.

Verder een voorbeeldje met smbclient: smbclient //server/share -Uuser%password -mSMB3

dus begin met die minimale smb.conf zoals in de wiki staat en kijk even hoever je komt.

suc6.

ehhh.. noppes

Pagina: 1