web-dev-qa-db-fra.com

Configuration d'un partage Samba public anonyme accessible via Windows 7 et XBMC

Je devrais donc commencer par dire que j’ai réussi à le faire il ya moins d’une semaine et que je n’ai eu aucun problème, mais depuis, j’ai reformaté et reconfiguré mon serveur et j’ai maintenant le plus de mal à me rappeler comment je l’ai fait.

Voici ce que j'avais auparavant et ce que j'essaie d'accomplir à nouveau. J'ai eu un partage public Samba sur le serveur Ubuntu. N'importe qui sur mon réseau peut accéder au partage et à son contenu en tapant simplement\Hostname. Aucun mot de passe nécessaire. Les utilisateurs qui ne faisaient pas partie du groupe de travail du partage avaient un accès en lecture, mais les utilisateurs du groupe de travail avaient un accès en lecture/écriture. (Windows 7)

Maintenant, si j'essaie de me connecter à\Hostname, un identifiant et un mot de passe sont demandés. Si j'entre dans le compte, j'obtiens un accès complet, mais je ne devrais pas être obligé de le faire. mes réglages actuels sont ...

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

Je tire mes cheveux sur celui-ci. Aucune suggestion?

MODIFIER:

Ugh, cela me donne un moment si difficile. Je suis si proche.

Voici ce que j'ai.

Je peux accéder au partage à partir de Windows 7 en allant au démarrage et en tapant\Hostname\Sharename, mais un mot de passe et un nom d'utilisateur me sont demandés. Je ne peux pas simplement laisser le champ vide car il utilisera mon groupe de travail comme domaine; donc je saisis\pour que le nom d'utilisateur disparaisse et que je me connecte avec un nom d'utilisateur et un mot de passe vierges. Génial, je peux maintenant accéder aux fichiers du partage.

Une fois entré, la configuration du groupe de travail fonctionne correctement. Si je suis sur un ordinateur avec le WORKGROUP par défaut, je peux lire et exécuter; un ordinateur de mon groupe de travail à domicile peut lire, écrire et exécuter. Donc ça marche.

Le problème est, il ne devrait pas être demandé du tout un mot de passe. Il devrait être totalement public pour quiconque sur le réseau. J'essaie de le partager avec XBMC et il n'apparaît même pas sous la marque de smb dans le gestionnaire de fichiers. Je ne peux pas y accéder manuellement à partir de XBMC. Je reçois une erreur de connexion refusée.

Toujours en train de me tirer les cheveux. Le pire, c’est la première fois que j’ai fait cela il ya environ une semaine; j’y ai consacré environ 30 minutes et cela a parfaitement fonctionné. Maintenant, j'ai probablement passé au moins 4 heures et cela ne fonctionne toujours pas.

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: Ainsi, le partage est maintenant disponible sur mon réseau, quel que soit le groupe de travail. Tout utilisateur Windows qui se connecte à mon réseau peut voir le NAS sous Netowork et y accéder. La clé était de définir la sécurité à security = share. Je sais, c'est déconseillé, mais cela fonctionne et security = user et mapper à user = bad user ne fonctionnait pas pour moi.

Quoi qu'il en soit, il semble maintenant que toute personne qui se connecte au partage obtienne les autorisations globales unix pour le répertoire, ce qui est gérable, mais je veux que les utilisateurs qui sont joints au groupe de travail spécifié dans smb.conf obtiennent les autorisations de groupe Unix.

De cette façon, je peux définir le répertoire sur 775 et je pourrai écrire car je suis associé au groupe de travail, mais les autres utilisateurs ne peuvent que lire et exécuter.

8
George Spake

Voici comment OpenElec est configuré. Devrait faire ce que vous demandez. (Même si c'est un an plus tard ... cela aidera peut-être le prochain) Modifiez simplement les paramètres de partage selon vos besoins.

[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
7
Ken

Est tombé par hasard ce fil sur les forums Ubunt , et a pensé que cela pourrait aider. Il explique les étapes qui se passent dans les coulisses:

Sous Windows, le nom d'utilisateur et le mot de passe du client sont automatiquement envoyés lorsqu'il parcourt des partages - ceci se fait à l'insu de l'utilisateur. Cela oblige Samba à gérer les informations d'identification envoyées, même s'il s'agit d'un partage d'invité ne nécessitant aucune authentification.

Lorsque ce nom d'utilisateur est transmis, Samba recherchera cet utilisateur dans sa base de données de mots de passe:

  • S'il n'y a pas de correspondance avec le nom d'utilisateur, l'utilisateur client est identifié comme "utilisateur incorrect" et converti (mappé) en compte invité, qui est par défaut "personne".

  • S'il trouve une correspondance avec le nom d'utilisateur et si un mot de passe samba correspond à celui envoyé par le client Windows, l'utilisateur Windows obtient automatiquement l'accès, mais pas en tant qu'utilisateur anonyme. C'est pourquoi vous avez dû ajouter "force user = nobody" à votre définition de part.

  • S'il trouve une correspondance avec le nom d'utilisateur mais que le mot de passe samba ne correspond pas exactement au mot de passe envoyé automatiquement par le client Windows, un mot de passe vous sera demandé, même pour un partage d'invité.

Essayez d’ajouter force user = nobody à la définition de votre partage et voyez si cela y parvient.

Edit 20/02/2013:

testparm renvoie-t-il un code de sortie différent de zéro? Néanmoins, j'irais de l'avant et jetterai un coup d'œil sérieux sur cette zone de la configuration. De plus, je ne sais pas à quel point smb.conf est sensible à la casse, mais chaque exemple que je vois (par exemple) de map to guest = Bad User a les lettres B et U en majuscule. Consultez le pages de manuel Samba pour connaître les options que vous utilisez et vérifiez tout.

6
Aaron

Puisque la recherche Google nous amène ici et qu'il n'y a pas de réponse claire, je l'ai résumée.

Vous trouverez ci-dessous les conditions requises pour vous assurer que les clients SMB ne vous demanderont pas le nom d'utilisateur et le mot de passe lors de l'accès à votre serveur Samba:

  1. Ajoutez guest account = <owner-of-your-shares> dans une section [global]. Il est important que le compte propriétaire de vos actions y ait accès. Si vous ne le faites pas, Samba supposera que le compte invité est un utilisateur de nobody qui a probablement accès aux données de votre partage.

    Vous pouvez également spécifier force user = <owner-of-your-share> sous votre bloc [shareXYZ].

  2. Assurez-vous que votre [shareXYZ] a guest ok = yes.

    Définissez browsable = yes mais il est généralement hérité du [global] et a pour valeur yes par défaut.

Ensuite, probablement security = user devrait également être défini (il s'agit de la valeur par défaut lorsque Active Directory n'est pas défini dans votre environnement). Cependant, je ne suis pas sûr que cet indicateur soit requis car je n'ai pas d'AD dans mon environnement.

Bien sûr, si vous voulez que l'utilisateur nobody fonctionne, vous pouvez simplement chown -Rh 65534:65534 /yourshare, après quoi tout ira bien avec le paramètre unique guest ok = yes situé sous votre [shareXYZ].

Notez qu'avoir défini rwx sur others (chmod o+rwx /yourshare) n'a pas laissé Samba avec son utilisateur nobody dans le partage. J'ai vérifié cela avec strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>. Probablement Samba ignore-t-il simplement les permissions définies pour le others? Pas certain.

0
Andrey Arapov

Cela fonctionne pour moi en 30 secondes

Source: 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

[guest] # Ce partage permet un accès anonyme (invité)

    # without authentication!

    path = /srv/samba/guest/

    read only = no

    guest ok = yes
0
Gustavo Paredes