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

20

REMARQUE: J'ai lu probablement jusqu'à 50 pages différentes décrivant comment configurer un partage Samba public en l'espace de 2 ans et rien n'a jamais fonctionné pour moi. Je ne sais pas combien de RTFM j'ai besoin pour régler ce truc.

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 --versionme donne 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" pour 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 se présente comme suit ( textuellement , il n'y a rien d'autre):

[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. NO COMBINAISON de security = user, map to guest = Bad user, security = share, guest ok = yeset 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: disk1et disk2, comme prévu, en essayant de les ouvrir, amenez 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.

hijarien
la source

Réponses:

14

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

Comme cela n'est absolument pas évident dans les documents et les 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 du 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 uidet gid(peut-être seulement uid, je ne sais pas). Ils sont définis sur l'UID et le GID de l'utilisateur jonnieconfiguré 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é les paramètres force useret force groupà 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 morceau de configuration pertinente pour moi était force user.

Avec l'aimable autorisation du Samba HOWTO

hijarien
la source
1
"évidemment pas root". Ce n'est pas si évident. Samba propose des dizaines de modes de défaillance. La plupart donnent lieu à des messages d'erreur identiques. C'est pourquoi vous avez consacré autant de temps à des recherches Google infructueuses. Non seulement une seule recherche soulèvera un mélange de problèmes, mais les réponses trouvées souffriront également de la même confusion. L'utilisation de root élimine le côté Linux de la sécurité, mais vous permet également de diagnostiquer le problème. Si cela fonctionne en tant que root, vous avez un problème de sécurité au niveau Linux, si Samba échoue toujours, le problème est dans l'idée des utilisateurs de Samba (ils sont différents et auraient dû avoir des erreurs uniques)
MSalters
2

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.

BdK
la source
Oui, "changer le propriétaire du répertoire en jonnie" est probablement la partie la plus importante ici. Merci pour la solution beaucoup plus courte!
hijarien
1

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, depuis 2014, j'ai dû définir la stratégie de domaine: signer numériquement les communications de toujours à DÉSACTIVER.

ewwhite
la source
Mon Dieu, changer la politique de domaine pour les partages supposément publics ... (facepalm). D'accord, merci quand même, mais non, j'ai essayé tout à l'heure et l'accès smb://homeserv/disk1nécessite toujours un mot de passe dans Debian. J'ai utilisé les navigateurs de fichiers Dolphin et Krusader. Peut-être que c'est quelque chose dans KDE.
hijarien
hé ça a marché! : D public = yeset les 777autorisations ont fait l'affaire (Win 10 hébergeant Ubuntu 18.04). Heureusement, c'est sur mon poste de travail personnel, donc je n'ai pas à m'en inquiéter
Arthur Tarasov