Ich möchte einen öffentlichen Ordner mit vollem RW-Zugriff erstellen. Das Problem bei meiner Konfiguration ist, dass Windows-Benutzer keine Probleme als Gäste haben (sie können RW und Delete), mein Ubuntu-Client kann das nicht. Wir können nur schreiben und lesen, aber nicht erstellen oder löschen.
Hier ist die my smb.conf von meinem Server:
[global]
workgroup = WORKGROUP
netbios name = FILESERVER
server string = TurnKey FileServer
os level = 20
security = user
map to guest = Bad Password
passdb backend = tdbsam
null passwords = yes
admin users = root
encrypt passwords = true
obey pam restrictions = yes
pam password change = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
add user script = /usr/sbin/useradd -m '%u' -g users -G users
delete user script = /usr/sbin/userdel -r '%u'
add group script = /usr/sbin/groupadd '%g'
delete group script = /usr/sbin/groupdel '%g'
add user to group script = /usr/sbin/usermod -G '%g' '%u'
guest account = nobody
syslog = 0
log file = /var/log/samba/samba.log
max log size = 1000
wins support = yes
dns proxy = no
socket options = TCP_NODELAY
panic action = /usr/share/samba/panic-action %d
[homes]
comment = Home Directory
browseable = no
read only = no
valid users = %S
[storage]
create mask = 0777
directory mask = 0777
browseable = yes
comment = Public Share
writeable = yes
public = yes
path = /srv/storage
Der folgende FSTAB-Eintrag bietet keinen vollständigen R / W-Zugriff auf die Freigabe.
//192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0
Das funktioniert auch nicht
//192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
Die Verwendung des folgenden Speicherorts in Nemo / Nautilus ohne die bereitgestellte Freigabe funktioniert:
smb://192.168.0.5/storage/
Zusatzinformation. Ich habe gerade bemerkt, dass, wenn ich nach dem Mounten eine Datei auf die Freigabe kopiere, mein Ubuntu-Client sofort "nobody" zum Eigentümer macht und die Gruppe "no group" gelesen und geschrieben hat, wobei alle anderen schreibgeschützt sind.
Was mache ich falsch?
Antworten:
Es stellte sich heraus, dass ich der Mount-Zeile in FSTAB eine lokale (Client-) UID hinzufügen muss, damit dies funktioniert. Ich bin mit bloßer Gewalt dazu gekommen:
quelle
cifs-utils
es installiert ist (für mich wurde es nach der Installation von "main" samba pkg nicht unter 16.04 installiert). Wenn Sie es nicht installiert haben, erhalten Sie die Fehlermeldung 'Bad Fs / Bad Option'.//10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0
zu/etc/fstab
dannsudo mount -a
. Scheint jetzt gut zu mounten / schreiben.//server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
CIFS kennt im Allgemeinen keine Benutzer- und Gruppenkonzepte. Wenn Sie also eine cifs-Freigabe aktivieren, werden Benutzer und Gruppe standardmäßig als "niemand" angezeigt:
Da Sie kein "Niemand" sind, können Sie unter Linux nur mit sudo auf etwas schreiben, das über die Berechtigung 0777 verfügt. Um dies zu beheben, fügen Sie uid = mylogin, gid = mygroup zu fstab hinzu, und die Freigabe wird so angezeigt, als wäre es Ihr eigenes Verzeichnis:
Sie haben jetzt die volle Kontrolle, ohne sudo zu benötigen.
Dies ändert eigentlich nichts am Server, da der Server nichts erzwingt. Linux wird angewiesen, sich als Eigentümer auszugeben und Ihnen uneingeschränkten Zugriff zu gewähren.
quelle
Du bist fast am Ziel. Öffnen Sie FSTAB mit:
In der letzten Zeile (oder einer der letzten Zeilen) platzieren Sie:
*** (das ist alles eine lange Schlange)
Ctrl- um Xzu schließen, Yzu speichern und einzugeben, um das Geschäft zu besiegeln.
Jetzt neu starten durch:
Und Sie sollten die volle Kontrolle über die Netzwerkfreigabe auf Ihrem Linux-Gerät haben!
quelle
fstab
Einträge zu mounten . Einfachmount <DEVICE>
odermount <MOUNTPOINT>
oder sogarmount -a
den Job gut machen.Ich hatte dieses Problem und es lag daran, dass der Benutzer der Freigabe es nicht besaß. Ich habe es mit "sudo chown {username}: {username} / {share} / {path}" behoben, nachdem ich Dateien verschieben und löschen konnte.
quelle