• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[geslöst] Gast zu einem bestimmten user werden lassen

pilus

Hacker
Hallo,
ich habe einen opensuse Rechner mit samba eingerichtet. Ich kann per WLAN auf den Rechner zugreifen und in den freigegebenen Dateien lesen und schreiben. Aber leider bekommen alle Daten dann root-reche. Ich kann mich von meinem Windows-Rechner auch nur als root auf den Linux-Rechner anmelden.
Also entweder möchte ich mich als user josef anmelden können oder dass das System durch etwa einen force user zu jemand anderes macht, nämlich user josef. Dritte Variante wäre, wenn ich als Gast / nobody zugreifen könnte und Dateien abspeichere, so dass jeder user sie lesen und schreiben kann. Wie mach ich das?
Gruss
Christoph

[global]
workgroup = JOSEFGROUP
update encrypted = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Reenter*new*passwd* %n\n *Password*changed*
password level = 4
unix password sync = Yes
log level = 5
add user script = /usr/sbin/useradd -m %U
add machine script = /usr/sbin/useradd -c smbclients -d /var/lib/nobody -s /bin/false %m$
logon script = logon.cmd
logon path = \\LINUX\profiles\%U.pds
logon drive = H:
domain logons = Yes
os level = 64
domain master = Yes
admin users = root

[homes]
comment = Home Directories
valid users = %S, %D%w%S
read only = No
inherit acls = Yes
browseable = No

[profiles]
comment = Network Profiles Service
path = %H
read only = No
create mask = 0600
directory mask = 0700
store dos attributes = Yes

[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/

[groups]
comment = All groups
path = /home/groups
read only = No
inherit acls = Yes

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
write list = root

[net]
comment = Austausch von Dateien
path = /home/josef/NET/
write list = root, josef, @ntadmin, PC-PILUS, nobody
read only = No
create mask = 01755
directory mask = 01755
guest ok = Yes

[VIDEO]
comment = Transfer Verzeichnis
path = /home/josef/VIDEO
read only = No
directory mask = 01755
 

rolle

Guru
Ich habe alle meine Freigaben mit 'guest ok = yes versehen' und im globalen Teil 'guest account = MEIN_NUTZER' eingetragen. Damit kann jeder darauf lesen und schreiben. Ich bin mir allerdings spontan nicht sicher, ob das auch ohne ACLs funktioniert, habe ich nie getestet. Die Manpage von smb.conf sagt zu den Optionen bestimmt genaueres.
 
OP
P

pilus

Hacker
Habe Deine Eintragungen vorgenommen, kann mich aber nach wie vor nur als root anmelden
 

stka

Guru
Du bist dir schon im klaren darüber das du einen Domaincontroller eingerichtet hast und das nur Mitglieder der Domäne ohne weiteres zugreifen können? Wenn deine Windows Maschinen in der Domäne sind, dann kannst du dich auch mit den Benutzern die auf deinem PDC eingerichtet sind dort anmelden und dann hast du auch die Zugriffsrechte.
 
OP
P

pilus

Hacker
ja, alle windowsrechner haben die Domain JOSEFGROUP eingestellt, wie es ja auch unter global steht.
Ich habe in YAST sogar einen 2. Benutzer eingerichtet mit dem selben Namen, wie der Windowsrechner im Netz heist (PC-PILUS). Dieser Nutzer PC-Pilus hat die gleichen Gruppenzugehörigkeiten bekommen (users, cdrom, dialout...) wie der lokale nutzer, der von mir benutzt wird.

Was muss ich noch ändern?
 

tomma

Member
Hallo,
ja, das ist ein PDC (Primärer Domänen Controller), der im Modus "security=user" arbeitet.
(SAMBA-Standard). Damit die Clients auf ihre (Unix/Linux-) Ordner mit "ihren" Rechten zugreifen können, müssen sie:
1. Als Unix/Linux-Nutzer eingerichtet sein, und
2. durch "smbpasswd -a Nutzer" mit SAMBA sychronisiert sein.
Ein Nutzerzugriff über root ist natürlich nicht gut.
Windows-Server unterscheiden bezüglich der Namen nicht zwischen einer Windows-Domäne und einer Arbeitsgruppe. Lediglich
domain master = ???
entscheidet hier, ob mit dem Windows-Client der Beitritt eines PC zu einer Domäne durchgeführt wird.

By(e) Tomma
 

rolle

Guru
Gut, also noch einmal von vorne (Ich hatte Deine smb.conf in Hinsicht auf eine Domäne gar nicht durchgelesen): Du hast da eine Windowsdomäne. Brauchst Du die? Wozu genau dient der Rechner? Was ist das für ein Netzwerk?
 
OP
P

pilus

Hacker
ich brauche keine Domaine, aber mit Domaine bin ich halt bisher am weitesten gekommen.
Ich will nur zuhause - also kein Hochsicherheitstrackt - von verschiedenen Windows-Rechnern auf die Video-Datenbank des OpenSuse-Rechners zugreifen.
1) read und write
2) Am Linux-Rechner will ich als local-user die Bildbearbeitung machen. Daher ist es nervig, wenn die Filme, die ich per Windows-Rechner von OTR aufnehme und dann übers Netz auf den OpenSuse-Server kopiere, dort mit root-Rechten landen. Dann muss ich jedesmal die rechte umschreiben.

Also, ganz einfacher Netzzugriff. Domaine ist mir egal. Die Dateien sollen halt für jeden user les- und schreibbar auf dem Suserechner landen.
 
OP
P

pilus

Hacker
also wie lade ich die Daten am besten auf den OpenSuse-Server? Was muss ich in der smb.conf ändern?
 

rolle

Guru
security = share
guest account = DEIN_NUTZER
guest ok = yes
inherit acls = yes

Alles was domain heißt fliegt raus. Ebenso directory mask, create mask undsoweiter.

Und in Deinem Dateisystem schaltest Du die Nutzung von ACLs ein und setzt rekursiv die (Default-)ACLs so, daß Dein Nutzer darauf volle Rechte hat. Wie das geht, erläutert Dir 'man setfacl' und 'man getfacl'. Das dürfte die sauberste Lösung sein.
 
OP
P

pilus

Hacker
# Samba config file created using SWAT
# Date: 2009/02/22 18:50:10

[global]
workgroup = JOSEFGROUP
netbios name = JOSEF-BUERO
security = share
os level = 64
admin users = root
log level = 5
add machine script = /usr/sbin/useradd -c smbclients -d /var/lib/nobody -s /bin/false %m$
add user script = /usr/sbin/useradd -m %U
character set = ISO8859-15
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Reenter*new*passwd* %n\n *Password*changed*
unix password sync = yes
security = user
encrypt password = yes
update encrypted = yes
password level = 4
logon drive = H:
logon path = \\LINUX\profiles\%U.pds
logon home = \\%N\%u
logon script = logon.cmd
hide dot files = yes
guest account = josef

[homes]
comment = Home Directories
valid users = %S, %D%w%S
read only = No
inherit acls = Yes
browseable = No

[profiles]
comment = Network Profiles Service
path = %H
read only = No
create mask = 0600
directory mask = 0700
store dos attributes = Yes

[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/

[groups]
comment = All groups
path = /home/groups
read only = No
inherit acls = Yes

[printers]
comment = All Printers
path = /var/tmp
create mask = 0600
printable = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin, root
force group = ntadmin
create mask = 0664
directory mask = 0775

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
write list = root


[VIDEO]
path = /home/josef/VIDEO
comment = Transfer Verzeichnis
read only = no
browseable = yes
guest ok = yes
guest account = josef
so besser? Muss aber noch mie Manuels von 'man setfacl' und 'man getfacl' lesen.
 

rolle

Guru
Code:
[global]
workgroup = JOSEFGROUP
netbios name = JOSEF-BUERO
security = share
os level = 64
admin users = root
log level = 5
#add machine script = /usr/sbin/useradd -c smbclients -d /var/lib/nobody -s /bin/false %m$
#add user script = /usr/sbin/useradd -m %U
character set = ISO8859-15
#passwd program = /usr/bin/passwd %u
#passwd chat = *New*password* %n\n *Reenter*new*passwd* %n\n *Password*changed*
#unix password sync = yes
#security = user
#encrypt password = yes
#update encrypted = yes
#password level = 4
#logon drive = H:
#logon path = \\LINUX\profiles\%U.pds
#logon home = \\%N\%u
#logon script = logon.cmd
hide dot files = yes
guest account = josef
guest ok = yes
inherit acls = yes
Das ist der globale Teil, alles was mit # versehen ist, kann auch einfach gelöscht werden, das erhöht die Übersicht. Ich habe es jetzt nur dringelassen, damit Du den Unterschied siehst.
Dann brauchst Du für Deinen share nur noch das:
Code:
[VIDEO]
path = /home/josef/VIDEO
comment = Transfer Verzeichnis
read only = no
browseable = yes
Mit richtig gesetzten Rechten (per ACLs) auf dem Dateisystem müßte das dann Deinen Vorstellungen entsprechen. Die anderen Freigaben (homes, profiles, users, groups, printers, print$ und netlogon einfach streichen.
 
OP
P

pilus

Hacker
ich liebe es übersichtlich ;-)
besser so? Oder sollen die logon-sachen auch noch alle raus?
Ich kopiere gerade ein Video von meinem Rechner zum Server und schau dann mal, was für Rechte die Datei dann hat ;-)
# Samba config file created using SWAT
# Date: 2009/02/22 18:50:10

[global]
workgroup = JOSEFGROUP
netbios name = JOSEF-BUERO
security = share
os level = 64
admin users = root
log level = 5
character set = ISO8859-15
security = user
encrypt password = yes
update encrypted = yes
password level = 4
logon drive = H:
logon path = \\LINUX\profiles\%U.pds
logon home = \\%N\%u
logon script = logon.cmd
hide dot files = yes
guest account = josef

[VIDEO]
path = /home/josef/VIDEO
comment = Transfer Verzeichnis
read only = no
browseable = yes
 

rolle

Guru
Das ganze logon-Zeugs macht nur in Verbindung mit einer Domäne Sinn. Und security darf nur einmal definiert sein. Und die letzten beiden Zeilen müssen neu hinzu. Vergleiche ienfach noch einmal genau. ;)
 
OP
P

pilus

Hacker
tut mir leid, wollte nicht als fauler Sack darstehen, hatte Dich aber missverstanden. Ich wusste nicht, ob nur die mit # raussollten oder der logon-bereich auch. Deshalb hatte ich zunächst nur die # Zeilen rausgenommen und nochmal nachgefragt. Sieht jetzt so aus:
# Samba config file created using SWAT
# Date: 2009/02/22 18:50:10

[global]
workgroup = JOSEFGROUP
security = share
os level = 64
admin users = root
log level = 5
character set = ISO8859-15
hide dot files = yes
guest account = josef

[VIDEO]
path = /home/josef/VIDEO
comment = Transfer Verzeichnis
read only = no
browseable = yes

Habe auch sofort vom Vista-Laptop Zugriff. Welche Rechte nun beim Abspeichern vergeben werden, muss ich noch kontrollieren. Kopie läuft gerade ;-)
 
OP
P

pilus

Hacker
also:
selbst mit diesen minimalen Einstellungen habe ich immer noch Zugriff wie zuvor. Nur bekommt die übertragende Datei root-Rechte. Allerdings habe ich mir auch noch nicht die Manuels von 'man setfacl' und 'man getfacl' durchgelesen. Werde mal danach googlen. Danke!
Ich habe nun auch noch netbios name = JOSEF-BUERO rausgeschmissen - ich denke, nachdem das netbios rausgeschmissen wurde, braucht man das auch nicht, oder?
 
OP
P

pilus

Hacker
mist, habe jetzt den Vista-Rechner neu gestartet und nun werde ich nach Benutzer und Passwort gefragt. Benutzer nobody ist fest vorgegeben und das passwort, welches ich nobody gegeben hatte, wird nicht angenommen. Was muss ich machen, um als nobody auf das Video-Verzeichnis zugreifen zu können? Hat das auch etwas mit 'man setfacl' und 'man getfacl' zu tun?
 
OP
P

pilus

Hacker
PERFEKT! KLAPPT!
1) Habe netbios name = JOSEF-BUERO wieder hinzugefügt und smb neu gestartet (ob das wichtig war, weiss ich nicht)
2) Habe mit Dolfin (KDE 4.2) mit rechts auf das Verzeichnis VIDEO geklickt und unter Eigenschaften -> Freigaben den user josef erzwungen und als berechtigte die user josef und nobody hinzugefügt

Habe nun ohne Anmeldung nun wie gewünscht Zugriff auf das Verzeichnis und alle Dateien werden als users josef abgespeichert.

DANKE DIR!
 
OP
P

pilus

Hacker
DANKE Dir nochmal! Ich hoffe, dass der Rest meines Systems damit nicht unsicher geworden ist. Aber wer auf dem platten Land soll mich denn angreifen ;-)
 
Oben