web-dev-qa-db-fra.com

Comment faire pour partager Samba à NE PAS DEMANDER DE MOT DE PASSE

REMARQUE: J'ai lu probablement jusqu'à 50 pages différentes décrivant comment configurer le partage Samba public sur une période de 2 ANS et rien n'a jamais fonctionné pour moi. Je ne sais pas combien RTFM j'ai besoin de régler ce genre de choses.

J'ai besoin/souhaite configurer un partage de fichiers public complètement ouvert sur mon serveur domestique pour deux postes de travail.

La configuration est la suivante:

Serveur :

  • Debian Wheezy
  • Sudo smbd --version Donne moi Version 3.6.6.
  • 2 partitions locales que je souhaite partager, formatées en NTFS en raison de leur ancienneté et provenant de la machine Windows. Je ne peux pas les formater en ext * FS car ils ont beaucoup de données que je ne peux pas (encore) déplacer ailleurs).
  • machine nommée "homeserv" par manque d'originalité.

Client :

  1. Test Debian (Jessie)
  2. Windows 7 (2 machines différentes). En fait, ma machine est à double démarrage Debian/Windows, et la machine de ma femme est Windows uniquement.

Mon smb.conf après la distillation ressemble à ceci ( textuellement , rien d'autre n'est là):

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

Sur les deux machines clientes, dans Debian et Windows, j'obtiens le même résultat: dialogue de connexion/mot de passe. AUCUNE COMBINAISON de security = user, map to guest = Bad user, security = share, guest ok = yes et tel a aidé.

Windows 7 affiche la boîte de dialogue de connexion/mot de passe juste après avoir cliqué sur la machine partagée dans le voisinage réseau. smb://homeserv/ le chemin du fichier dans Debian (dans n'importe quel navigateur de fichiers) me montre deux dossiers: disk1 et disk2, comme prévu, en essayant de les ouvrir, ouvrez la boîte de dialogue de connexion/mot de passe.

Alors, ce qui me manque dans le schéma pour NE PAS avoir à saisir de login/mot de passe? Ceci est une question d'utilisabilité, je ne créerai pas d'authentification basée sur l'utilisateur pour le fichier Junkyard.

20
hijarian

OK, j'ai moi-même trouvé une réponse.

Comme c'est absolument pas évident à partir des documents et des HOWTO et autres, la raison pour laquelle cette chose demande un mot de passe est qu'elle ne peut pas mapper l'utilisateur invité au propriétaire de le répertoire partagé .

J'ai des partitions NTFS dont j'ai besoin pour monter RW donc j'ai utilisé la configuration suivante dans mon /etc/fstab:

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

Les éléments de configuration les plus importants sont uid et gid (peut-être seulement uid, je ne sais pas). Ils sont définis sur l'UID et le GID de l'utilisateur jonnie configuré sur le serveur (évidemment pas root). Ainsi, lorsque ntfs-3g montera ces disques, tout lui appartiendra.

Après cela, j'ai ajouté cet utilisateur au registre Samba (ou peut-être créé un nouveau identique, peu importe):

# smbpasswd -a jonnie

Il a demandé un mot de passe, j'ai entré le même que pour le système principal.

Après cela, j'ai ajouté le force user et force group paramètres sur smb.conf:

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

Donc, le plus important le morceau de configuration qui me concerne était force user.

Avec l'aimable autorisation de Samba HOWTO

15
hijarian

La configuration peut être plus courte:

Créer un utilisateur unix jonnie

useradd jonnie -s /usr/sbin/nologin

Créer un smbuser

smbpasswd -a jonnie

Créez le répertoire Linux à partager

mkdir /mysmbshare

Changer le propriétaire du répertoire en jonnie

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

Tous les fichiers appartiennent à jonnie et tout le monde a un accès rw aux fichiers.

2
BdK

Le moyen rapide et sale d'avoir un partage Samba ouvert est d'avoir:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

et avoir des actions définit comme tel:

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

Redémarrez le démon.

Pour les clients Windows 7, à partir de 2014, j'ai dû définir la stratégie de domaine: signer numériquement les communications de toujours sur DISABLE.

1
ewwhite