Créer un partage Samba temporaire


9

Est-il possible de partager temporairement un répertoire par Samba ?

Avec Python 3, je peux servir le répertoire actuel par HTTP en utilisant:

python -m http.server.

Je voudrais faire la même chose avec Samba .


La net share addcommande est-elle ce que vous recherchez?
derobert

Ou peut-être net usershare...
derobert

Réponses:


1

Il ne semble pas y avoir de moyen de créer un partage ad hoc similaire à la façon dont exportfsil le fait pour NFS sur Linux et le sharefait sur Solaris. Les raisons peuvent varier, mais vous pourriez techniquement faire quelque chose comme décrit dans la page Exécution de plusieurs serveurs sur la même machine et avec la coutume smb.confaccomplir ce que vous devez faire.

Il existe également une option pour créer et supprimer des partages dynamiquement à l'aide de SWAT , ce qui nécessitera des modifications de smb.conf pour permettre que cela se produise voir les sections sur add share commandetdelete share command

Personnellement, si vous voulez avoir une dynamique de partage, vous voudrez peut-être partager votre répertoire personnel et utiliser des partages dynamiques à domicile via Samba, discuté dans de nombreux endroits, y compris les forums Ubuntu et la liste de diffusion Samba .


1

Selon l'âge de votre démon samba et les options de configuration utilisées lors de sa construction, vous pouvez toujours avoir la possibilité de définir un partage "dynamique" dans votre smb.conf, pointé par exemple / var / dynamic /, voir ci-dessous, puis en ajoutant simplement un lien symbolique aux répertoires que vous souhaitez temporairement partager dans le répertoire.

Ce hack nécessite que l' option de liens larges soit définie sur oui , pour permettre à samba de suivre les liens en dehors de la racine des partages. Malheureusement, il y a quelques années, l'équipe de Samba a modifié sa configuration par défaut pour empêcher les partages larges, car elle pourrait être exploitée. Google pour: Samba et "liens larges" pour l'historique et les solutions.

[dynamic]
    comment = Somewhere to park dynamic shares 
    path = /var/dynamic
    read only = Yes
    inherit acls = Yes
    follow symlinks = yes
    wide links = yes

Un test rapide devrait voir si votre bien, par exemple

mkdir -p /var/dynamic/test
cd /var/dynamic
ln -s test a_link
ln -s /tmp/  tmp_test

0

Disons que vous souhaitez partager rapidement / un dossier vers someuser temporairement en lecture seule.

Ajoutez un utilisateur système:

useradd -r someuser

Souvent, par défaut, le dossier est lisible par un autre (vérifiez avec ls -ld / somefolder), si vous devez le forcer:

chmod -R o+r /somefolder

Ajoutez l'utilisateur à samba avec un mot de passe comme:

smbpasswd -a someuser

Modifiez rapidement smb.conf et ajoutez-le en bas

[someshare]
path = /somefolder
read list = someuser

quitter, enregistrer et enfin exécuter

smbcontrol smbd reload-config

et voilà.

Évidemment, vous voudrez peut-être supprimer la section "someshare" une fois terminé et réexécuter la commande reload-config.

Avis de non-responsabilité: je n'ai pas entièrement testé cela, mais j'ai été étonné de la simplicité de la réponse à la question. Vous pouvez éventuellement ignorer certaines étapes et plonger directement dans l'édition de smb.conf si vous avez déjà un utilisateur avec un accès samba existant - exactement ce que je viens de rencontrer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.