neste tutorial, vamos aprender a instalar e configurar um servidor de Samba no Ubuntu para partilhar ficheiros na rede local. Samba é uma implementação de protocolo SMB/CIFS livre e de código aberto Para Unix e Linux que permite compartilhamento de arquivos e impressão entre máquinas Unix / Linux, Windows e macOS em uma rede local.
Samba é normalmente instalado e executado no Linux., Ele compreende vários programas que servem propósitos diferentes mas relacionados, os dois mais importantes dos quais são:
- smbd: provides SMB/CIFS service (file sharing and printing), can also act as a Windows domain controller.
- nmbd: este servidor oferece serviço de nomes NetBIOS, escuta pedidos de servidores de nomes. Ele também permite que o servidor de Samba seja encontrado por outros computadores na rede.
Como instalar o servidor de Samba no Ubuntu
Samba está incluído na maioria das distribuições Linux. Para instalar o Samba no Ubuntu, basta executar o seguinte comando no terminal.,
sudo apt install samba samba-common-bin
a última versão estável disponível é 4.12.0, lançado em 03 de Março de 2019. Para verificar a sua versão do Samba, execute
smbd --version
Sample output:
Version 4.7.6-Ubuntu
para verificar se o serviço de Samba está a correr, envie o seguinte comando.
systemctl status smbd nmbd
Para começar a estes dois serviços, emita o seguinte comando:
sudo systemctl start smbd nmbd
uma Vez iniciado, o smbd
será escuta na porta TCP 139 e 445. nmbd
estará à escuta nas portas UDP 137 e 138.,
- TCP 139: usado para partilha de ficheiros e impressoras e outras operações.
- TCP 445: The NetBIOS-less CIFS port.
- UDP 137: usado para navegação na rede NetBIOS.
- UDP 138: usado para o serviço de nomes NetBIOS.
Se activou a firewall UFW no Ubuntu, então terá de abrir as portas acima na firewall com o seguinte comando.
sudo ufw allow samba
crie uma partilha de Samba privada
nesta secção, veremos como criar uma partilha de Samba privada que exija que o cliente indique o nome de utilizador e a senha para obter acesso., O principal arquivo de configuração do Samba está localizado em: /etc/samba/smb.conf
. Você pode editá-lo no terminal com um editor de texto da linha de comandos como nano
.
sudo nano /etc/samba/smb.conf
In Thesection, make sure the value of
workgroup
is the same with the workgroup settings of Windows computers.,
workgroup = WORKGROUP
Você pode encontrar a configuração no seu computador com Windows, indo para Control Panel
> System and Security
> System
.
depois descer para o fundo do ficheiro. (In nano text editor, you can achieve that by pressing CTRL+W
then CTRL+V
. ) Adicione uma nova seção como abaixo.,
explicação:
-
Private
é o nome da pasta que será mostrado na rede Windows. - o comentário é uma descrição para a pasta partilhada.
- o parâmetro path especifica a localização da pasta partilhada. I use
/srv/samba/private/
as an example. Você também pode usar uma pasta na sua pasta pessoal. -
browseable = yes
: permitir que outros computadores na rede vejam o servidor de Samba e a partilha de samba., Se configurado como não, os usuários têm que saber o nome do servidor de Samba e, em seguida, digitar manualmente um caminho no Gestor de arquivos para acessar a pasta compartilhada. -
guest ok = no
: desactivar o acesso aos hóspedes. Em outras palavras, você precisa digitar o nome de usuário e senha no computador do cliente para acessar a pasta compartilhada. -
writable = yes
: concede permissão de leitura e escrita aos clientes. -
valid users = @samba
: apenas os utilizadores do Grupo samba estão autorizados a aceder a esta partilha de Samba.
Salve e feche o ficheiro., (Para gravar o arquivo em nano editor de texto, pressione , em seguida, pressione Enter para confirmar o nome do arquivo para escrever. Para fechar o arquivo, pressione Ctrl+X
.) Agora precisamos criar um usuário de Samba. Primeiro, precisamos criar uma conta padrão de usuário Linux com o seguinte comando. Substitua username
pelo seu nome de utilizador desejado.
sudo adduser username
ser-lhe-á solicitado que defina uma senha Unix., Depois disso, você também precisa definir uma senha de Samba separada para o novo usuário com o seguinte comando:
sudo smbpasswd -a username
Crie o grupo de samba.
sudo groupadd samba
e adicionar este utilizador ao Grupo samba.
sudo gpasswd -a username samba
Crie a pasta de partilha privada.
sudo mkdir -p /srv/samba/private/
o grupo de samba necessita de ter lido, escrever e executar permissões na pasta partilhada. Você pode conceder estas permissões executando o seguinte comando., (If your system doesn’t have the setfacl
command, you need to install the acl
package with sudo apt install acl
.)
sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/
Next, execute o seguinte comando para verificar se há erros sintáticos.
testparm
Agora tudo o que resta a fazer é reiniciar smbd
e nmbd
daemon.,
sudo systemctl restart smbd nmbd
como criar uma partilha pública Samba sem autenticação
para criar uma partilha pública sem necessidade de utilizador e senha, as seguintes condições devem ser cumpridas.
- Set
security = user
na secção global do ficheiro de configuração do Samba. Embora você possa criar uma partilha pública com o modosecurity = share
, mas este modo de segurança está desactualizado. It is strongly suggested that you avoidshare
mode. - Set
map to guest = bad user
na secção global do ficheiro de configuração do Samba., Isto fará com que use uma conta de hóspedes para autenticar clientes que não tenham conta registrada no servidor Samba. Uma vez que é uma conta de hóspedes, os clientes de Samba não precisam digitar a senha. - Set
guest ok = yes
na definição de partilha para permitir o acesso dos hóspedes. - Grant ler, escrever e executar a permissão da pasta pública para a conta
nobody
, que é a conta de hóspedes por omissão.
de facto, as duas primeiras condições já estão preenchidas, uma vez que o Samba por omissão USA estas duas definições.,
Aqui está um guia passo a passo para criar uma partilha pública. Primeiro, abrir e editar o ficheiro de configuração do Samba.
sudo nano /etc/samba/smb.conf
In Thesection, make sure the value of
workgroup
is the same with the workgroup settings of Windows computers.
workgroup = WORKGROUP
Você pode encontrar a configuração no seu computador com Windows, indo para Control Panel
> System and Security
> System
.,
em seguida, descer para o fundo do ficheiro e colar as seguintes linhas.
Salve e feche o arquivo. Em seguida, crie a pasta /srv/samba/public/
.
sudo mkdir -p /srv/samba/public
em Seguida, certifique-se de que o nobody
conta de ler, escrever e executar permissão na pasta pública, executando o seguinte comando. (If your system doesn’t have the setfacl
command, you need to install the acl
package with sudo apt install acl
.,)
sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/
reiniciar smbd e nmbd.
sudo systemctl restart smbd nmbd
acessando a pasta compartilhada Samba do Windows
em um computador do Windows que está na mesma rede, open File Explorer e clique em Network
na área esquerda. Se você ver a seguinte mensagem, então você precisa clicar na mensagem e ligar a descoberta da rede e compartilhamento de arquivos.
File sharing is turned off. Some network computers and devices might not be visible.
Next, enter \\
seguido do endereço IP do servidor de Samba na barra de endereços do File Explorer, como este: \\192.168.0.102
., Você verá uma lista de recursos compartilhados no servidor de Samba.
em seguida, faça duplo-click na pasta partilhada. Para acessar a partilha privada, você precisa digitar o nome de usuário e senha do samba. Não precisa de o fazer para aceder a acções públicas.
Uma Vez ligado, poderá ler, escrever e apagar ficheiros na pasta partilhada com o Samba.
erro de ligação
Se tiver o seguinte erro:
You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.
pode tentar ligar-se à partilha do Samba a partir da linha de comandos., Abre uma linha de comandos e depois executa o seguinte comando para fechar a sessão de Samba actual.
net use \\samba-server-ip\share-name /delete
em seguida, conectar-se ao compartilhamento do Samba com o seguinte comando:
net use \\samba-server-ip\share-name /user:samba-username password
o comando foi concluído com êxito, vá para o guia de Rede no Explorador de arquivos e agora você deve ser capaz de acessar o compartilhamento do Samba.
Drive Mapping on Windows
Uma característica do Sistema Operacional Windows é a capacidade de mapear uma carta de condução (como S:) para um diretório remoto., Para mapear a letra drive S:
para a partilha Samba, carregue com o botão direito na pasta partilhada samba e seleccione a unidade de rede de mapas. Em seguida, escolha uma carta de condução e clique em Terminar.
Uma vez estabelecido o mapeamento de Unidades, as aplicações podem aceder aos ficheiros na partilha de Samba através da letra de transmissãoS:
. E esta partilha do Samba será montada automaticamente quando entrar no seu computador do Windows.,
a aceder à pasta de partilha do Samba no Gestor de ficheiros Nautilus no Linux
Se estiver a usar o Gestor de ficheiros Nautilus, carregue emOther Locations
na área esquerda. No fundo, você verá uma opção para se conectar ao servidor. Para aceder à sua partilha de Samba, escreva smb://
seguido do endereço IP do servidor de Samba e carregue em Enter. Por exemplo:
- smb://192.168.0.102
Você vai ver uma lista de recursos compartilhados no servidor Samba.,
Se carregar na pasta partilhada privada, terá de indicar o nome de utilizador e a senha do Samba. Se você clicar na pasta pública compartilhada, então escolha se conectar como anônimo.
montar automaticamente a partilha de Samba a partir da linha de comandos no Linux
Se tiver de montar automaticamente a partilha de Samba no arranque, poderá usar a linha de comandos para montar e Adicionar depois um item no ficheiro /etc/fstab
. Para fazer isso, você precisa instalar o pacote cifs-utils
.,
CentOS/RHEL
sudo dnf install cifs-utils
Debian/Ubuntu
sudo apt install cifs-utils
em Seguida, crie um ponto de montagem para o compartilhamento do Samba.
sudo mkdir /mnt/samba-private
Agora você pode usar o seguinte comando para montar uma pasta partilhada privada.
sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/
pedir-lhe-á para introduzir a senha do Samba. Depois disso, ele será montado em/mnt/samba-private/
diretório.
para montar automaticamente a partilha do Samba, edite /etc/fstab
ficheiro.
sudo nano /etc/fstab
adicione a seguinte linha no ficheiro.,
em que:
- /192.168. 0. 102/privado: o endereço IP do servidor de Samba e o nome da partilha.
- /mnt / samba-private: ponto de montagem para a partilha de Samba.
- cifs: tipo de Sistema de ficheiros
- x-systemd.automount: esta opção diz ao systemd para criar uma unidade de montagem automática para o sistema de ficheiros. Nós usamos isso porque ele garante que o sistema de arquivos remoto é montado apenas depois de haver acesso à rede.
- _netdev: indica que a montagem necessita de rede.
- credenciais=: Linux deve procurar por credenciais no arquivo .,
- uid=1000, gid = 1000: por padrão, o sistema de ficheiros montado seria propriedade do utilizador root. Usamos uid e gid para mudar a propriedade do sistema de arquivos. Normalmente você usa seu próprio uid e gid, que são ambos 1000 por padrão.
- x-gvfs-show: se estiver a usar o ambiente de trabalho GNOME ou os seus derivados, poderá usar esta opção para mostrar o sistema de ficheiros montado no Gestor de ficheiros.
Salve e feche o ficheiro. Em seguida, criar o arquivo credencial.
sudo nano /etc/samba-credential.conf
adicione as seguintes linhas no ficheiro.
gravar e fechar o ficheiro., Certifique-se de que apenas o usuário root pode ler este arquivo.
sudo chmod 600 /etc/samba-credential.conf
Se reiniciar o seu computador Linux agora, a partilha do Samba será montada automaticamente.
não consegue escrever para a partilha de Samba?
a montagem CIFS acima descrita permite-lhe escrever para a partilha de Samba. Se vir o seguinte erro ao criar um ficheiro:
Read-only file system
verifique se definiu writable = yes
no ficheiro de configuração do Samba., Às vezes, a pasta compartilhada Samba está em um disco rígido externo, em seguida, certifique-se de montar o disco rígido externo em Modo de leitura-escrita no servidor Samba. Por exemplo, eu montei o meu btrfs
disco rígido com a seguinte linha em /etc/fstab.
LABEL=5TB /mnt/5TB btrfs defaults 0 0
acontece que a opção defaults
não permite a operação de escrita. Para que possa ser escrita, adicione rw
opção.
LABEL=5TB /mnt/5TB btrfs defaults,rw 0 0
depois desmontar o disco rígido. Tens de usar o teu próprio ponto de montagem.
sudo umount /mnt/5TB
e montá-lo novamente.,
sudo mount -a
dica de resolução de problemas
Se o seu servidor de Samba não estiver a funcionar como esperado, poderá verificar os ficheiros de registo em /var/log/samba/
directory. Pode adicionar a seguinte linha no ficheiro secção de
/etc/samba/smb.conf
para aumentar o nível de registo se quiser registar mais informações.
log level = 2
encerrando
é isso! Espero que este tutorial o tenha ajudado a configurar o servidor de Samba no Ubuntu. Como sempre, se você achou este post útil, então subscreva a nossa newsletter gratuita., E você também pode querer ler o seguinte artigo para compartilhar impressora na rede local.
- Configurar Servidor de Impressão CUPS no Ubuntu (Bonjour, IPP, o Samba, o AirPrint)