Samba - configuração e uso

Iniciado por maurov, 23 de Setembro de 2014, 18:34

tópico anterior - próximo tópico

maurov

Desejo compartilhar uma pasta na rede, numa máquina com Ubuntu 14.04.

Criei uma pasta dentro da /home, em 'compartilhamento de rede local' clicado compartilhar esta pasta, com nome de compartilhamento 'myshare', marcado compartilhar, marcado permitir outras pessoas, e marcado acesso anônimo.

Também instalei: sudo apt-get install samba samba-common system-config-samba python-glade2 gksu e já fucei um monte na configuração pelo dashboard->samba.

Penso que antes de mais nada, a própria máquina com a pasta compartilhada deve ter acesso à ela (pela interface gráfica), através de :
arquivos->navegar_na_rede->Rede_Windows->Workgroup(em maiúsculas).

Ao clicar no ícone Workgroup, abre uma janela com:
Senha requerida para workgroup
Usuário: o_usuario_do_login
Domínio: Workgroup (em maiúsculas)
Opções de lembrar ou não a senha.

Mas, não tenho senha de rede. Já tentei a do login, em branco, e não consigo. Assim que enxergar a pasta myshare via rede, trago as informações sobre o restante.

Resumo do smb.conf
Não tenho certeza, mas acho que quando edito o dashboard->samba. altera o smb.conf.

[global]
workgroup = workgroup
server string = Meu Samba Server
security = share
;  encrypt passwords = yes
guest ok = yes
;  guest account = nobody
;  read only = yes
;[profiles]
;   comment = Users profiles
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700

[myshare]
comment = Meus Compartilhamentos
path = /home/usuario/myshare
writeable = yes
; browseable = yes
guest ok = yes
create mask = 0755


maurov

Aqui um belo tutorial,

http://ubuntuhandbook.org/index.php/2014/05/ubuntu1404-file-sharing-samba/

embora ainda não tenha conseguido resolver meu problema.
Dicas?

maurov

OK,
removi tudo
sudo apt-get remove --purge samba

Reboot, deletei a pásta antiga que era para compartilhar, criei uma nova com outro nome, e botão da direita, compartilhar pasta.

Mensagens:

Serviço de compartilhamento não está instalado
É necessário instalar o serviço de compartilhamento de redes Windows para compartilhar suas pastas.
OK

CitarInstalar programa adicional?
Você quer instalar o pacote 'samba'?
OK

CitarSystem program problem detected.
ExecutablePath
/user/sbin/samba

Deixei enviar o report do erro.

Refazendo tudo de novo:

Citarcompartilhamento de rede de usuário" retornou erro 255: WARNING: Ignoring invalid value 'share' for parameter 'security'
net usershare add: cannot convert name "Everyone" to a SID. The connection was refused. Maybe smbd is not running.
Ainda aceitando sugestões.

maurov

Parece que o assunto é complicado.
Pelo visto, de tanto mexer, deve ter ficado algo errado no sistema  e não tem como voltar atrás.
Supondo que eu reinstale a máquina toda, qual o processo básico para ter uma pasta compartilhada entre máquinas ubuntu 14.04?

zekkerj

Citarsecurity = share

Teu problema começa e termina aqui. Essa opção é arcaica, e não funciona como você espera. Use "security = user" e libere acesso anônimo, se vc não liga pra sua própria segurança, ou faça um esforcinho e cadastre seus usuários.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Aceito a dica. Então compartilhar via interface gráfica vai ficar sem uso. Só  para informação, a opção share deve corresponder a um checkbox:
Compartilhar a pasta, ou Permitir que outras pessoas criem e excluem arquivos, ou Acesso anônimo.

Cadastrar usuários não é esforço farei conforme sugestão.
Onde cadastro usuários? Parece que no final do smb.conf fica uma relação, não sei em qual formato? Tem alguma outra interface?


zekkerj

Não, a opção share corresponde ao modo de compartilhamento do Windows 95. Compartilhar é apenas compartilhar; o ato de compartilhar cria compartilhamentos (shares), e você pode compartilhar normalmente no modo "security = user". Dá pra ter acesso anônimo nesse modo de segurança.

O cadastramento de usuários é feito em dois passos, no primeiro passo você cria o usuário no Linux ("sudo adduser fulano"), no segundo você os adiciona ao Samba ("sudo smbpasswd -a fulano").

O site do Guia do Hardware tem tutoriais bons de configuração. Dá uma olhada lá.
http://www.hardware.com.br/guias/configurando-samba/
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Vou primeiro ler este tutorial.

Sobre o cadastramento de usuarios no Linux: Em cada máquina preciso cadastrar todo os usuários das outras máquinas da rede? Ou só na que tem a pasta selecionada cadastro-os? Tá certo que são poucas, isso não seria nenhum grande empecilho, mas é só para entender.

zekkerj

Você precisa cadastrar todos os que vão usar esse compartilhamento. O que significa que você tem que cadastrar aí os usuários das outras máquinas, de preferência com a mesma senha que eles já usam.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Claro que não faz sentido adicionar o próprio usuário com liberado para usar uma pasta local via rede, mas como este é um tópico educativo, segue.

Suponho que para o usuário da maquina (aparece por último na relação abaixo) não precise fazer o sudo adduser fulano por já estar existir como usuário conforme visto em:
awk -F':' '{ print $1}' /etc/passwd

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
libuuid
syslog
messagebus
usbmux
dnsmasq
avahi-autoipd
kernoops
rtkit
saned
whoopsie
speech-dispatcher
avahi
lightdm
colord
hplip
pulse
maurov


Mas preciso adicioná-lo ao Samba "sudo smbpasswd -a fulano".

zekkerj

CitarMas preciso adicioná-lo ao Samba "sudo smbpasswd -a fulano".

Sim, precisa. Depois é só autorizar o usuário em algum compartilhamento que vc queira/precise.


[Arquivos]
    path = /media/Arquivos
    writeable = yes
    visible = yes
    valid users = fulano beltrano sicrano


Sem essa linha "valid users" (ou qq outra restringindo o acesso a um grupo de usuários), o compartilhamento se torna liberado para qualquer usuário autenticado.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

com
# smbpasswd -a maurov
Failed to open /var/lib/samba/private/secrets.tdb

Parece que pode haver sincronia da senha do unix com a do smb.

        server role = standalone server

; passdb backend = tdbsam
obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes


Ou não será por isso?

zekkerj

A sincronia faz parte... o usuário Samba pode ter sua senha trocada remotamente; nesse caso, o Samba providencia a troca da senha Unix pra garantir a sincronia.

Estranho esse erro com o "secrets.tdb". Vc instalou o pacote Samba completo, certo? Talvez seja o caso de forçar a reinstalação do pacote "samba-common" pra ver se ele cria esse arquivo.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

maurov

Reinstalei o samba-common e não alterou nada.

Para não complicar mais, me proponho a fazer um fresh start.

1 - Desinstalação completa:
Será que

sudo apt-get remove --purge samba

Remove os adicionais, tipo samba-common, smbclient, outros? Quais?
Remove a pasta samba no etc e seu conteudo?
Remove outros arquivos de configuração?

2 - Reinstalação

Apenas o

apt-get install samba

é suficiente? Não precisamos usar a interface gráfica.

3 - Configuração

Iniciar por um modo o mais simples possível para se certificar antes da autenticação, do browsable, etc.

zekkerj

Sim, a princípio basta instalar o pacote "samba", por enquanto. Os outros pacotes seriam instalados conforme a necessidade.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D