Question Comment configurer le partage samba pour être monté en tant qu'utilisateur spécifique?


Je souhaite créer un partage Samba auquel les utilisateurs peuvent se connecter en tant qu'utilisateur samba spécifique. J'ai créé utilisateur, disons Henry, et je veux faire du stockage chez lui.

J'ai donc dans mon /etc/samba/smb.conf:

[myshare]
  path = /home/henry
  browsable = yes
  read only = no
  guest ok = no
  create mask = 0644

Maintenant, quand je me connecte par smbclient tout va bien. Mais je veux monter cette part en tant que CIFS. Je peux faire:

sudo mount -t cifs //myserver/myshare /media/remote-share -o user=henry

Mais ensuite, lorsque j'essaie de créer un fichier dans / media / remote-share, j'obtiens une autorisation refusée :(

Comment dois-je le configurer si je veux que tout le monde y ait accès, mais en tant qu'utilisateur spécifique, pas en tant qu'invité?

Le serveur et le client sont des machines Ubuntu.


7
2017-08-02 19:26


origine


Avez-vous essayé de coller "-o user = henry" juste après "-t cifs"? La syntaxe de mount (et la pratique habituelle sous unix) indique que les options suivent la commande. Peut-être que -o dans votre commande est ignoré parce que vous l'avez placé à la fin de la commande? - Anonymous
Non, ce n'est pas ignoré. Sans cela, je ne pourrais pas le monter, il y a "guest ok = no". Je peux monter et voir des fichiers, je ne peux tout simplement pas en créer un nouveau. - amorfis


Réponses:


ok, j'ai relu ta question et ai une autre réponse.

lorsque vous le montez dans / etc / fstab ou avec sudo mount à partir de la ligne de commande, vous devez également définir l'uid et le gid et éventuellement l'umask (file_mode et dir_mode) afin que les utilisateurs locaux du client puissent utiliser le partage. sinon, il appartiendra par défaut à root et W uniquement à root. et ça ne fait probablement pas de mal de le monter explicitement en RW.

sudo mount -t cifs // myserver / myshare / media / remote-share \
  -o rw, utilisateur = henry, uid = xxx, gid = yyy

où xxx et yyy sont les local (localement sur le client, c’est-à-dire) utilisateur et groupe qui doivent "posséder" le partage lorsqu’il est monté. si seul un utilisateur local a besoin d'un accès, le gid n'a probablement aucune importance. si plusieurs utilisateurs locaux ont besoin d'un accès, le gid doit être défini et chaque utilisateur local ayant besoin d'un accès doit être membre de ce gid.

En fonction de la configuration de votre réseau, vous devrez peut-être définir d'autres options, par exemple, vous devrez peut-être spécifier le domaine. voir la page de manuel de mount.cifs (8) pour plus de détails.

BTW, voir les notes sur le fichier d’identifiants si vous le montez depuis / etc / fstab. fstab est lisible par tout le monde, donc ce n’est pas un bon endroit pour mettre des mots de passe. un fichier d'informations d'identification peut appartenir à root, mode 600.


7
2017-08-03 11:25



Je pense que c'est la réponse. Je vais essayer ce soir. Merci! - amorfis
Je pense que mes deux réponses sont pertinentes. une réponse porte sur le côté serveur, l'autre sur le côté client. bonne chance, espérons que cela fonctionne pour vous. - cas
la commande que vous avez donnée dans cette réponse me donne une erreur d'utilisation - Edward Torvalds
Les options de montage de @edwardtorvalds peuvent changer en 6 ans. - cas


la commande mount est du côté client et ne contrôle pas ce que le serveur autorise.

vous devez configurer le partage sur le serveur pour que toute personne appartenant à un groupe particulier ("utilisateurs valides = nom du groupe") puisse se connecter au partage, puis forcer la connexion en tant qu'utilisateur henry ("force user = henry"), peu importe le nom d'utilisateur / mot de passe avec lequel ils se sont connectés.

sur ubuntu, comme sur debian, Henry a probablement déjà son propre groupe dédié (adduser sur debian par défaut pour créer un groupe pour chaque utilisateur), mais ne l'utilisez pas, à moins que vous ne vouliez que tous les membres de ce groupe aient accès à tous les contacts de Henry. fichiers plutôt que seulement ceux du partage.

par exemple. créez un groupe unix (ou LDAP ou Active Directory) appelé "henry-share-g", et ajoutez toute personne ayant besoin d'accéder au partage à ce groupe.

puis configurez le partage dans samba pour définir les autorisations de sorte que les fichiers soient créés RW par utilisateur & groupe, et les répertoires sont créés RWX par utilisateur & groupe ET setgid (afin que les nouveaux fichiers / répertoires soient créés avec le groupe 'henry-share-g' ).

par exemple. quelque chose comme ça:

[mon partage]
    chemin = / home / henry
    forcer le mode de sécurité = 0664
    forcer le mode de sécurité du répertoire = 2775
    mode création forcée = 0664
    mode de répertoire de force = 2775
    lecture seule = non
    navigable = oui
    forcer l'utilisateur = henry
    groupe de force = henry-share-g
    utilisateurs valides = + henry-share-g

Cet exemple rend les fichiers et répertoires lisibles de par le monde ainsi que les RW par utilisateur et groupe. si vous ne le souhaitez pas, utilisez 0660 pour les fichiers et 2770 pour les répertoires.

BTW, ce qui précède est à peu près ce que je fais sur mon serveur samba au travail chaque fois qu'un des professeurs veut une part de groupe pour que tous les membres de son groupe de recherche puissent l'utiliser.

la seule différence réelle est que je n'utilise pas un compte d'utilisateur existant. Je crée un utilisateur dédié dans le partage pour AD ainsi qu'un groupe dédié, car il doit y avoir une séparation entre les fichiers personnels du prof et ceux de son groupe de recherche. J'ai également défini un quota pour cet utilisateur et ce groupe, qui est distinct du quota personnel de l'utilisateur. c'est-à-dire que je créerais et utiliserais quelque chose comme "henry-share-u" plutôt que d'utiliser le compte "henry" existant.


6
2017-08-02 21:18



Je crains que cela ne fonctionne pas :( j'ai créé un groupe sur le serveur, y ai ajouté l'utilisateur henry, j'ai configuré smb.conf comme vous l'avez dit et c'est toujours la même chose. Je peux mettre des fichiers dans smbclient, mais pas lorsque je monte partager par "monter". Et oui, j’ai redémarré samba après avoir édité smb.conf. - amorfis
J'ai aussi remarqué une chose étrange. Quand je mets des fichiers par smbclient, ils se retrouvent avec les autorisations rwxrw-r--. Ce n'est pas ce que nous avons défini dans smb.conf, n'est-ce pas? - amorfis
il doit y avoir quelque chose d'autre dans votre smb.conf qui affecte cette part ... peut-être la part par défaut "[maisons]"? essayez de renommer le partage et de le déplacer de sous / home, ou de désactiver temporairement le partage [homes]. et recherchez d’autres paramètres ou partages qui pourraient outrepasser la définition de partage. - cas
plus j'y pense, plus il semble que c'est ce qui se passe. s'il existe un utilisateur appelé henry, l'accès à un partage appelé "henry" accédera à celui défini par [homes], quelle que soit la définition ultérieure d'un partage appelé henry. alors renommer le partage en quelque chose qui ne correspond pas à la connexion d'un utilisateur devrait fonctionner. - cas
[foyers] part est commenté. (Je n'ai pas changé la valeur par défaut ici). Je vais essayer de changer le nom de partage. - amorfis


Cela dépend du backend de passdb que vous avez choisi dans votre fichier smb.conf.

Si vous utilisez le tdbsam backend (recommandé par samba) et set security à user:

security = user
passdb backend = tdbsam

Vous pouvez utiliser /usr/bin/smbpasswd pour ajouter des utilisateurs de samba:

  1. Ajouter un utilisateur UNIX en utilisant /usr/sbin/useradd
  2. Ajouter un utilisateur samba en utilisant smbpasswd -L -a <user> (-L: mode local, -a: ajouter un utilisateur)
  3. Cartographiez vos utilisateurs en utilisant /etc/samba/smbusers [Syntaxe: <unix-user> = <smb-user1> <smb-user2> <smb-userN>]

Les chemins peuvent différer dans votre distribution GNU / Lunux.


1
2017-08-02 20:24



Eh bien, je vais l'essayer, mais de cette façon, tous les utilisateurs doivent se connecter eux-mêmes, non? Je ne peux pas donner "henry" à tout le monde? Si c'est le cas, cela ne m'aidera pas, car je veux mettre une entrée de montage dans / etc / fstab et la faire monter automatiquement pour tout le monde. - amorfis
Je pense ne pas suivre votre question, mais vous pouvez quand même inscrire «Henry» dans plusieurs lignes (= plus d’un utilisateur UNIX) dans la liste. /etc/samba/smbusers fichier. - Manuel Faux