Menyiapkan Samba Share publik anonim untuk diakses melalui Windows 7 dan XBMC

9

Jadi saya harus mulai dengan mengatakan bahwa saya melakukan ini dengan sukses kurang dari seminggu yang lalu dan saya tidak mengalami kesulitan tetapi saya sejak itu memformat ulang dan mengkonfigurasi ulang server saya dan sekarang saya mengalami kesulitan mengingat bagaimana saya melakukannya.

Inilah yang saya miliki sebelumnya dan apa yang saya coba capai lagi. Saya memiliki share samba publik di server Ubuntu. Siapa pun di jaringan saya dapat mengakses berbagi dan isinya cukup dengan mengetikkan \ Hostname. Tidak perlu kata sandi. Pengguna yang tidak berada di workgroup berbagi memiliki akses baca tetapi pengguna yang berada di workgroup memiliki akses baca / tulis. (Windows 7)

Sekarang, jika saya mencoba menghubungkan ke \ Hostname, saya akan diminta nama pengguna dan kata sandi. Jika saya memasuki un pw saya mendapatkan akses penuh tetapi saya tidak harus melakukannya; pengaturan saya saat ini adalah ...

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

Saya mencabut rambut saya di atas yang ini. Ada saran?

EDIT:

Ugh, ini memberiku kesulitan. Aku sangat dekat.

Inilah yang saya punya.

Saya bisa mendapatkan bagian dari Windows 7 dengan memulai dan mengetik \ Hostname \ Sharename tapi saya diminta untuk nama pengguna dan kata sandi. Saya tidak bisa membiarkannya kosong karena akan menggunakan workgroup saya sebagai domain; jadi saya memasukkan \ untuk nama pengguna untuk menghapusnya dan masuk dengan nama pengguna dan kata sandi kosong. Hebat sekarang saya bisa mengakses file-file yang di share.

Setelah saya masuk, konfigurasi workgroup berfungsi dengan baik. Jika saya menggunakan komputer dengan WORKGROUP default, saya dapat membaca dan mengeksekusi; komputer di workgroup Home saya dapat membaca menulis dan mengeksekusi. Jadi itu berhasil.

Masalahnya adalah, seharusnya tidak meminta kata sandi sama sekali. Itu harus benar-benar umum untuk siapa saja di jaringan. Saya mencoba untuk membagikannya dengan XBMC dan itu bahkan tidak muncul di bawah seseorang di file manager. Saya tidak bisa mengaksesnya secara manual dari XBMC. Saya mendapatkan koneksi yang ditolak kesalahan.

Masih mencabut rambut karena ini. Bagian terburuknya adalah pertama kali saya melakukan ini sekitar seminggu yang lalu, saya menghabiskan sekitar 30 menit untuk itu dan itu bekerja dengan sempurna. Sekarang saya mungkin menghabiskan setidaknya 4 jam dan itu masih tidak berfungsi.

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

UPDATE: Jadi, pembagian sekarang tersedia di jaringan saya terlepas dari kelompok kerja. Setiap pengguna Windows yang terhubung ke jaringan saya dapat melihat NAS di bawah Netowork dan mengaksesnya. Kuncinya adalah mengatur keamanan ke keamanan = berbagi. Saya tahu, ini sudah usang, tetapi berfungsi dan keamanan = pengguna dan peta ke pengguna = pengguna yang buruk tidak bekerja untuk saya.

Pokoknya, sekarang tampaknya siapa pun yang terhubung dengan hak akses global unix berbagi mendapatkan untuk direktori, yang dikelola, tapi saya ingin pengguna yang bergabung dengan workgroup yang ditentukan dalam smb.conf untuk mendapatkan izin grup unix.

Dengan cara ini, saya dapat mengatur direktori ke 775 dan saya akan dapat menulis karena saya bergabung dengan workgroup tetapi pengguna lain hanya dapat membaca dan mengeksekusi.

George Spake
sumber
Anda harus dapat memetakan pengguna workgroup untuk mendapatkan izin spesifik dengan file peta nama pengguna: samba.org/samba/docs/man/manpages-3/smb.conf.5.html#USERNAMEMAP
Aaron

Jawaban:

8

Kebetulan menemukan thread ini di forum Ubuntu , dan berpikir itu mungkin membantu. Ini menjelaskan langkah-langkah yang terjadi di balik layar:

Di Windows, nama pengguna dan kata sandi klien secara otomatis dikirim ketika meramban untuk dibagikan - ini dilakukan tanpa sepengetahuan pengguna. Itu memaksa Samba untuk berurusan dengan kredensial yang dikirim meskipun itu adalah pembagian tamu yang tidak memerlukan otentikasi.

Ketika nama pengguna itu disahkan Samba akan mencari melalui basis data kata sandi untuk pengguna itu:

  • Jika tidak ada kecocokan dengan nama pengguna, pengguna klien diberi tag "Pengguna Buruk" dan dikonversi (dipetakan) ke akun tamu yang secara default adalah "tidak ada".

  • Jika menemukan kecocokan dengan nama pengguna dan ada kata sandi samba yang cocok dengan yang dikirim oleh klien Windows maka pengguna Windows secara otomatis mendapatkan akses meskipun bukan sebagai pengguna anonim yang mengapa Anda perlu menambahkan "memaksa pengguna = tidak ada" ke definisi berbagi Anda.

  • Jika menemukan kecocokan dengan nama pengguna tetapi kata sandi samba tidak sama persis dengan kata sandi yang secara otomatis dikirim oleh klien Windows maka Anda akan diminta untuk kata sandi - bahkan untuk berbagi tamu.

Coba tambahkan force user = nobodydefinisi berbagi Anda, dan lihat apakah itu berhasil.

Sunting 02/20/2013:

Apakah testparmmengembalikan kode keluar selain dari nol? Semua sama, saya akan melanjutkan dan memberikan area konfigurasi yang bagus, tampilan yang sulit. Juga, saya tidak yakin bagaimana smb.conf case-sensitive, tapi setiap contoh yang saya lihat (misalnya) map to guest = Bad Usermemiliki huruf B dan U huruf kapital. Periksa halaman manual Samba untuk opsi yang Anda gunakan, dan periksa semuanya.

Harun
sumber
Hei Bryce, Terima kasih telah menjawab. Saya telah berhasil membuat sedikit kemajuan sejak pertanyaan awal saya, tetapi pada dasarnya saya masih memiliki masalah yang sama. Saya telah berhasil mendapatkan bagian saya (saya menyebutnya Saham) yang dikonfigurasi sehingga siapa pun di workgroup, yang didefinisikan dalam global seettings di smb.conf, dapat langsung melakukannya - Tidak perlu kata sandi. Melanjutkan komentar berikutnya ...
George Spake
Berikut adalah pengaturan untuk pembagian: [Shares] path = /home/shares browsable = yes available = yes read only = no public = yes writable = yes guest ok = yes Jika saya menambahkannya force user = nobodyrusak dan saya tidak dapat mengaksesnya sama sekali. Di sinilah tempatnya aneh; ketika saya menjalankan testparm, dump [Shares] path = /home/shares read only = no guest ok = yesjadi untuk beberapa alasan sepertinya tidak melihat definisi publik, dapat ditulis, tersedia dan dapat ditelusuri. Mungkinkah ini menjadi indikator di mana masalahnya.
George Spake
@GeorgeSpake edit dibuat ...
Aaron
1
Saya pikir testparm hanya meludahkan hal-hal seperti itu. Semuanya huruf kecil di file conf. Saya juga menemukan, dan saya perlu memverifikasi ini, bahwa testparm hanya membuang definisi non-standar yang akan menjelaskan mengapa beberapa hasil dihilangkan.
George Spake
Pembaruan samba baru-baru ini 4.3.11+dfsg-0ubuntu0.14.04.3di Ubuntu 14,04 memecahkan pangsa publik saya, force user = nobodyhanya perbaikan yang saya butuhkan untuk mengembalikan saham publik
Antony
7

Beginilah OpenElec dikonfigurasi. Harus melakukan apa yang Anda minta. (bahkan jika itu setahun kemudian ... mungkin itu akan membantu yang berikutnya) Hanya mengubah pengaturan berbagi sesuai kebutuhan.

[global]
  server string = YOURSERVERNAME
  workgroup = WORKGROUP
  netbios name = %h
  security = share
  guest account = root
  socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
  smb ports = 445
  max protocol = SMB2
  min receivefile size = 16384
  deadtime = 30
  os level = 20
  mangled names = no
  syslog only = yes
  syslog = 2
  name resolve order = lmhosts wins bcast host
  preferred master = auto
  domain master = auto
  local master = yes
  printcap name = /dev/null
  load printers = no
  browseable = yes
  writeable = yes
  printable = no
  encrypt passwords = true
  enable core files = no
  passdb backend = smbpasswd
  smb encrypt = disabled
  use sendfile = yes

[share]
comment = Share
path = /share
available = yes
browsable = yes
writable = yes
public = yes
Ken
sumber
Terima kasih untuk tambahan ini! Saya telah berjuang untuk mendapatkan share publik bekerja dengan Windows 8.1 pengaturan ini berhasil.
davidmdem
13
URGH! "akun tamu = root". Ini berarti akun tamu dipetakan untuk di-root, yaitu memiliki izin tidak terbatas untuk melakukan apa pun. BERHATI-HATILAH! NAGA KE DEPAN!
DanielSmedegaardBuus
0

Karena pencarian Google membawa kami ke sini dan tidak ada jawaban yang jelas, saya menyimpulkannya.

Di bawah ini adalah persyaratan yang diperlukan untuk memastikan klien SMB tidak akan meminta nama pengguna dan kata sandi saat mengakses server Samba Anda:

  1. Tambahkan di guest account = <owner-of-your-shares>bawah [global]bagian. Penting bahwa akun pemilik saham Anda memiliki akses kepadanya. Jika Anda tidak melakukan ini, Samba akan menganggap akun tamu adalah nobodypengguna yang tidak mungkin memiliki akses ke data di bagian Anda.

    Atau, Anda dapat menentukan di force user = <owner-of-your-share>bawah [shareXYZ]blokir Anda .

  2. Pastikan [shareXYZ]sudah guest ok = yes.

    Diatur browsable = yestetapi biasanya diwarisi dari [global]dan diatur yessecara default.

Kemudian, mungkin security = userjuga harus diatur (ini adalah default ketika Anda tidak memiliki Direktori Aktif yang diatur di lingkungan Anda). Namun, saya tidak yakin apakah bendera ini diperlukan karena saya tidak memiliki AD di lingkungan saya.

Tentu saja, jika Anda ingin nobodypengguna bekerja, maka Anda bisa chown -Rh 65534:65534 /yourshare, setelah itu Anda akan baik-baik saja hanya dengan satu pengaturan di guest ok = yesbawah Anda [shareXYZ].

Perhatikan bahwa setelah disetel rwxke others( chmod o+rwx /yourshare) tidak membiarkan Samba dengan nobodypenggunanya menjadi bagian. Saya sudah memeriksa ini dengan strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>. Mungkin Samba mengabaikan izin yang ditetapkan untuk others? Tidak yakin.

Andrey Arapov
sumber
0

Ini bekerja untuk saya dalam 30 detik

Sumber: https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server

[global]

    map to guest = Bad User

    log file = /var/log/samba/%m

    log level = 1

[tamu]

    # This share allows anonymous (guest) access

    # without authentication!

    path = /srv/samba/guest/

    read only = no

    guest ok = yes
Gustavo Paredes
sumber