Criar compartilhamento temporário de samba


9

Existe a possibilidade de compartilhar temporariamente um diretório por Samba ?

Com o Python 3, posso servir o diretório atual por HTTP usando:

python -m http.server.

Eu gostaria de fazer a mesma coisa com o Samba .


O net share addcomando é o que você está procurando?
11264 derobert

Ou possivelmente net usershare...
derobert 13/11/2012

Respostas:


1

Parece não haver uma maneira de criar um compartilhamento ad-hoc semelhante ao exportfsNFS no Linux e shareno Solaris. Os motivos podem variar, mas tecnicamente você pode fazer algo como descrito na página para Executar Vários Servidores na mesma máquina e, com o costume, smb.confrealizar o que você precisa fazer.

Também existe uma opção para criar e excluir compartilhamentos dinamicamente usando SWAT , o que exigirá alterações no smb.conf para permitir que isso aconteça, consulte as seções sobre add share commandedelete share command

Pessoalmente, se você deseja ter um compartilhamento dinâmico, você pode compartilhar seu diretório pessoal e usar compartilhamentos domésticos dinâmicos via samba discutidos em muitos lugares, incluindo fóruns do Ubuntu e lista de discussão do Samba .


1

Dependendo da idade do seu samba daemon e das opções de configuração usadas quando ele foi construído, você ainda pode ter a opção de definir um compartilhamento "dinâmico" no seu smb.conf, apontado para / var / dynamic /, veja abaixo, e, em seguida, basta adicionar um link simbólico aos diretórios que você deseja compartilhar temporariamente no diretório.

Esse hack requer que a opção de links largos seja definida como yes , para permitir que o samba siga os links fora da raiz dos compartilhamentos. Infelizmente, alguns anos atrás, a equipe do Samba ajustou sua configuração padrão para evitar compartilhamentos amplos, pois poderia ser explorada. Google para: Samba e "links amplos" para a história e soluções alternativas.

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

Um teste rápido deve verificar se o seu bem, por exemplo,

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

0

Vamos dizer que você deseja compartilhar rapidamente / alguma pasta para algum usuário temporariamente somente leitura.

Adicione um usuário do sistema:

useradd -r someuser

Geralmente, por padrão, a pasta é legível por outras fontes (verifique com ls -ld / somefolder), se você precisar forçá-la:

chmod -R o+r /somefolder

Adicione o usuário ao samba com uma senha como:

smbpasswd -a someuser

Edite rapidamente o smb.conf e adicione-o na parte inferior

[someshare]
path = /somefolder
read list = someuser

sair, salvar e finalmente executar

smbcontrol smbd reload-config

et voila.

Obviamente, você pode remover a seção "someshare" uma vez concluída e executar novamente o comando reload-config.

Disclaimer: eu não testei isso completamente, mas fiquei espantado com o quão simples a resposta para a pergunta poderia ser. Você pode pular algumas etapas e mergulhar diretamente na edição do smb.conf se você já possui algum usuário com acesso ao samba - exatamente o que acabei de encontrar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.