Chcę utworzyć folder publiczny z pełnym dostępem do RW. Problem z moją konfiguracją polega na tym, że użytkownicy Windows nie mają problemów jako goście (mogą RW i Kasować), mój klient Ubuntu nie może zrobić tego samego. Możemy tylko pisać i czytać, ale nie tworzyć ani usuwać.
Oto mój plik smb.conf z mojego serwera:
[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
Poniższy wpis FSTAB nie zapewnia pełnego dostępu do R / W do udziału.
//192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0
To też nie działa
//192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
Korzystanie z następującej lokalizacji w Nemo / Nautilus bez zamontowanego udziału działa:
smb://192.168.0.5/storage/
Informacje dodatkowe. Właśnie zauważyłem, że jeśli skopiuję plik do udziału po zamontowaniu, mój klient Ubuntu natychmiast sprawi, że „nikt” nie będzie właścicielem, a grupa „żadna grupa” nie będzie czytać i pisać, a wszyscy pozostali będą tylko do odczytu.
Co ja robię źle?
Odpowiedzi:
Okazuje się, że muszę dodać lokalny (klient) identyfikator UID do linii montowania w FSTAB, aby to zadziałało. Doszedłem do tego przez brutalną siłę:
źródło
cifs-utils
jest zainstalowany (dla mnie nie został zainstalowany pod 16.04 po zainstalowaniu „głównego” pakietu samba pkg). Jeśli nie masz go zainstalowanego, pojawi się błąd „zła fs / zła opcja”.//10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0
do/etc/fstab
tego czasusudo mount -a
. Wydaje się, że teraz dobrze się montuje / pisze.//server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
CIFS zasadniczo nie ma pojęcia użytkownika i grupy, więc zamontowanie udziału cifs domyślnie wyświetli użytkownika i grupę jako „nikogo”:
Ponieważ nie jesteś „nikim”, Linux nie pozwoli ci pisać do niczego, co nie ma uprawnień 0777, chyba że używasz sudo. Aby to naprawić, dodaj uid = mylogin, gid = mygroup do fstab, dzięki czemu udział będzie wyglądał, jakby był twoim własnym katalogiem:
Teraz masz pełną kontrolę bez potrzeby korzystania z sudo.
Nie zmienia to niczego na serwerze, ponieważ serwer niczego nie wymusza. Mówi Linuksowi, aby udawał, że jesteś właścicielem i daje ci nieograniczony dostęp.
źródło
Jesteś prawie na miejscu. Otwórz FSTAB, używając:
W ostatnim wierszu (lub w jednym z ostatnich wierszy) umieść:
*** (to wszystko jedna długa linia)
Ctrl- Xaby zamknąć, Yaby zapisać i Enter, aby zamknąć ofertę.
Teraz uruchom ponownie przez:
I powinieneś mieć pełną kontrolę nad udziałem sieciowym na swoim urządzeniu z systemem Linux!
źródło
fstab
wpisy. Po prostumount <DEVICE>
lubmount <MOUNTPOINT>
nawetmount -a
wykonaj pracę dobrze.Miałem ten problem, a to dlatego, że użytkownik udziału nie był jego właścicielem. Naprawiłem to za pomocą „sudo chown {nazwa użytkownika}: {nazwa użytkownika} / {udział} / {ścieżka}”, po czym mogłem przenosić i usuwać pliki.
źródło