Powinienem więc zacząć od stwierdzenia, że udało mi się to niecały tydzień temu i nie miałem żadnych problemów, ale od tego czasu przeformatowałem i zrekonfigurowałem mój serwer i teraz najtrudniej pamiętam, jak to zrobiłem.
Oto, co miałem wcześniej i co próbuję osiągnąć ponownie. Miałem publiczny udział samby na serwerze Ubuntu. Każdy w mojej sieci może uzyskać dostęp do udziału i jego zawartości po prostu wpisując \ Hostname. Hasło nie jest konieczne. Użytkownicy, którzy nie byli w grupie roboczej udziału, mieli dostęp do odczytu, ale użytkownicy, którzy byli w grupie roboczej, mieli dostęp do odczytu / zapisu. (System Windows 7)
Teraz, jeśli spróbuję połączyć się z \ Nazwa hosta, zostanie wyświetlony monit o podanie nazwy użytkownika i hasła. Jeśli wejdę do un pw, otrzymam pełny dostęp, ale nie powinienem; moje obecne ustawienia to ...
security = user
map to guest = bad user
[Shares]
path = /home/shares
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
Wyciągam włosy z tego. Jakieś sugestie?
EDYTOWAĆ:
Ugh, to sprawia mi tyle trudności. Jestem tak blisko.
Oto co mam.
Mogę uzyskać dostęp do udziału z systemu Windows 7, rozpoczynając i wpisując \ Hostname \ Sharename, ale pojawia się monit o podanie nazwy użytkownika i hasła. Nie mogę jednak pozostawić tego pola pustego, ponieważ użyje mojej grupy roboczej jako domeny; więc wpisuję \, aby nazwa użytkownika została usunięta i zalogować się przy użyciu pustej nazwy użytkownika i hasła. Świetnie, teraz mogę uzyskać dostęp do plików w udziale.
Po wejściu konfiguracja grupy roboczej działa poprawnie. Jeśli pracuję na komputerze z domyślną grupą roboczą, mogę czytać i wykonywać; komputer w mojej domowej grupie roboczej może odczytywać zapis i wykonywanie. Więc to działa.
Problem polega na tym, że wcale nie powinno to wymagać hasła. Powinien być całkowicie publiczny dla każdego w sieci. Próbuję udostępnić to XBMC i nawet nie pojawia się pod smb w menedżerze plików. Nie mogę uzyskać do niego dostępu ręcznie z XBMC. Otrzymuję błąd odmowy połączenia.
Nadal wyciągam z tego włosy. Najgorsze jest to, że po raz pierwszy zrobiłem to około tygodnia temu, spędziłem na tym około 30 minut i działało idealnie. Teraz prawdopodobnie spędziłem co najmniej 4 godziny i nadal nie działa.
Testparm:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = FELLOWSHIP
server string = %h server (Samba, Ubuntu)
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = No
wins support = Yes
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
print ok = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[Shares]
path = /home/shares
read only = No
guest ok = Yes
AKTUALIZACJA: Tak więc udział jest teraz dostępny w mojej sieci niezależnie od grupy roboczej. Każdy użytkownik systemu Windows, który łączy się z moją siecią, może zobaczyć NAS pod Netowork i uzyskać do niego dostęp. Kluczem było ustawienie bezpieczeństwa na security = share. Wiem, że jest przestarzałe, ale działa i bezpieczeństwo = użytkownik i mapowanie na użytkownika = zły użytkownik nie działał dla mnie.
W każdym razie teraz wydaje się, że każdy, kto łączy się z udziałem, otrzymuje globalne uprawnienia unix dla katalogu, który jest zarządzalny, ale chcę, aby użytkownicy dołączeni do grupy roboczej określonej w smb.conf otrzymali uprawnienia grupy unix.
W ten sposób mogę ustawić katalog na 775 i będę mógł pisać, ponieważ jestem przyłączony do grupy roboczej, ale inni użytkownicy mogą tylko czytać i wykonywać.
Odpowiedzi:
Zdarzyło się, że natknąłem się na ten wątek na forach Ubuntu i pomyślałem, że może to pomóc. Wyjaśnia kroki, które mają miejsce za kulisami:
Spróbuj dodać
force user = nobody
do definicji udziału i sprawdź, czy to wystarczy.Edytuj 02/20/2013:
Czy
testparm
zwracany jest kod wyjścia czegoś innego niż zero? Mimo wszystko chciałbym nadać temu obszarowi konfiguracji dobry, twardy wygląd. Poza tym nie jestem pewien, czy w pliku smb.conf rozróżniana jest wielkość liter, ale każdy przykład, który widzę (na przykład)map to guest = Bad User
ma wielkie litery B i U. Sprawdź strony podręcznika Samby pod kątem używanych opcji i dokładnie sprawdź wszystko.źródło
[Shares] path = /home/shares browsable = yes available = yes read only = no public = yes writable = yes guest ok = yes
jeśliforce user = nobody
go dodam , zepsuje się i nie będę mógł uzyskać dostępu do udziału. Tutaj jest jednak dziwnie; kiedy uruchamiam testparm, zrzuty[Shares] path = /home/shares read only = no guest ok = yes
Z jakiegoś powodu to tak, jakby nie widziałem publicznych, zapisywalnych, dostępnych i możliwych do przeglądania definicji. Czy może to wskazywać, gdzie jest problem?4.3.11+dfsg-0ubuntu0.14.04.3
na Ubuntu 14.04 złamała mój publiczny udział,force user = nobody
to tylko poprawka, której potrzebowałem, aby przywrócić publiczny udziałTak konfiguruje się OpenElec. Powinieneś zrobić to, o co prosisz. (nawet jeśli będzie to rok później ... może to pomoże następnej). Po prostu dostosuj ustawienia udostępniania w razie potrzeby.
źródło
Ponieważ wyszukiwarka Google prowadzi nas tutaj i nie ma jednoznacznej odpowiedzi, podsumowałem to.
Poniżej przedstawiono warunki wymagane, aby klienci SMB nie pytali o nazwę użytkownika i hasło podczas uzyskiwania dostępu do serwera Samba:
Dodaj
guest account = <owner-of-your-shares>
w[global]
sekcji. Ważne jest, aby konto właściciela Twoich udziałów miało do nich dostęp. Jeśli tego nie zrobisz, Samba przyjmie, że konto gościa jestnobody
użytkownikiem, który raczej nie ma dostępu do danych w twoim udziale.Alternatywnie możesz określić
force user = <owner-of-your-share>
pod swoim[shareXYZ]
blokiem.Upewnij się, że
[shareXYZ]
maguest ok = yes
.Zestaw,
browsable = yes
ale zwykle jest dziedziczony z[global]
i jestyes
domyślnie ustawiony .Następnie prawdopodobnie
security = user
powinien być również ustawiony (jest to domyślny, gdy nie masz Active Directory w swoim środowisku). Chociaż nie jestem pewien, czy ta flaga jest wymagana, ponieważ nie mam AD w moim środowisku.Oczywiście, jeśli chcesz, aby
nobody
użytkownik pracował, możesz to zrobićchown -Rh 65534:65534 /yourshare
, po tym wszystko będzie w porządku tylko z jednym ustawieniemguest ok = yes
pod twoim[shareXYZ]
.Zauważ, że ustawienie
rwx
naothers
(chmod o+rwx /yourshare
) nie pozwoliło Sambie wraz znobody
użytkownikiem na udział. Sprawdziłem to za pomocąstrace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>
. Prawdopodobnie Samba po prostu ignoruje uprawnienia ustawione dlaothers
? Niepewny.źródło
Działa dla mnie za 30 sekund
Źródło: https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
[światowy]
[Gość]
źródło