Udział publiczny Samby - odmowa dostępu

3

Próbuję skonfigurować Sambę do udostępniania folderów publicznych - bez konieczności logowania. Korzystam z Fedory 16.

$ smbd --version
Version 3.6.1-74.fc16

Konfiguracja:

[global]
   workgroup = WORKGROUP
   security = share
   hosts allow =  192.168.
   load printers = yes
   guest account = nobody
   log file = /var/log/samba/log.%m
   max log size = 50
   domain master = no
   local master = yes
   os level = 35
   null passwords = true
   username map = /etc/samba/smbusers
   name resolve order = hosts wins bcast
   dns proxy = no

[test]
   comment = Pliki Estomedu
   path = /tmp/test/share
   public = yes
   writable = yes
   browseable = yes
   force user = nobody
   force group = nogroup
   create mask = 0777
   directory mask = 0777
   available = yes

Ścieżka:

ls -la /tmp/test/share/
total 8
drwxr-xr-x. 2 root root 4096 Nov 14 13:09 .
drwxrwxrwx. 3 root root 4096 Nov 14 13:09 ..

smbusers:

# Unix_name = SMB_name1 SMB_name2 ...
root = admin
nobody = guest pcguest smbguest

Co otrzymuję, gdy próbuję się połączyć (podając puste hasło):

$ smbclient \\\\localhost\\test
WARNING: The security=share option is deprecated
Enter root's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.1-74.fc16]
Server not using user level security and no password supplied.
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*

Proszę pomóż. Udział jest widoczny z WinXP i Win7, ale także komunikat o odmowie dostępu.

rotman
źródło

Odpowiedzi:

7

Znalazłem alert:

SELinux is preventing /usr/sbin/smbd from read access on the directory share.

Najlepszym rozwiązaniem jest udostępnianie tylko wybranych katalogów:

/usr/sbin/semanage fcontext -a -t samba_share_t <path>

Możesz także zezwolić SAMBA na udostępnianie wszystkich katalogów:

setsebool -P samba_export_all_ro 1
rotman
źródło
1
Lepszym rozwiązaniem byłoby użycie / usr / sbin / semanage fcontext -a -t samba_share_t <ścieżka> i dodanie tego katalogu zamiast zezwalania na udostępnianie wszystkich katalogów sambie. Zobacz więcej na docs.fedoraproject.org/en-US/Fedora/13/html/...
Artifex
Masz rację. Dodam to do mojej odpowiedzi.
rotman
Możesz także użyć setsebool -P samba_enable_home_dirs 1do katalogów domowych.
Garrett Hyde
2

Mam z tobą ten sam problem, widziałem to w smb.conf. To rozwiązało mój problem

Bezpieczeństwo w systemie Linux (SELinux) Uwagi:

#
# Turn the samba_domain_controller Boolean on to allow Samba to use the useradd
# and groupadd family of binaries. Run the following command as the root user to
# turn this Boolean on:
# setsebool -P samba_domain_controller on
#
# Turn the samba_enable_home_dirs Boolean on if you want to share home
# directories via Samba. Run the following command as the root user to turn this
# Boolean on:
# setsebool -P samba_enable_home_dirs on
#
# If you create a new directory, such as a new top-level directory, label it
# with samba_share_t so that SELinux allows Samba to read and write to it. Do
# not label system directories, such as /etc/ and /home/, with samba_share_t, as
# such directories should already have an SELinux label.
#
# Run the "ls -ldZ /path/to/directory" command to view the current SELinux
# label for a given directory.
#
# Set SELinux labels only on files and directories you have created. Use the
# chcon command to temporarily change a label:
# chcon -t samba_share_t /path/to/directory
#
# Changes made via chcon are lost when the file system is relabeled or commands
# such as restorecon are run.
#
# Use the samba_export_all_ro or samba_export_all_rw Boolean to share system
# directories. To share such directories and only allow read-only permissions:
# setsebool -P samba_export_all_ro on
# To share such directories and allow read and write permissions:
# setsebool -P samba_export_all_rw on
#
# To run scripts (preexec/root prexec/print command/...), copy them to the
# /var/lib/samba/scripts/ directory so that SELinux will allow smbd to run them.
# Note that if you move the scripts to /var/lib/samba/scripts/, they retain
# their existing SELinux labels, which may be labels that SELinux does not allow
# smbd to run. Copying the scripts will result in the correct SELinux labels.
# Run the "restorecon -R -v /var/lib/samba/scripts" command as the root user to
# apply the correct SELinux labels to these files.
minma
źródło