Configurar o SAMBA

Pode configurar o servidor SAMBA editando o ficheiro /etc/samba/smb.conf para alterar as definições padrão ou adicionar novas definições. Informação extra sobre cada definição está disponível nos comentários do ficheiro /etc/samba/smb.conf ou consultando o manual do /etc/samba/smb.conf a partir da consola com o seguinte comando:

man smb.conf

[Dica]

Antes de editar o ficheiro de configuração, deve efectuar uma cópia do ficheiro original e protegê-lo contra escrita por forma a manter as definições originais como referência e reutilizá-las quando necessário.

Criar cópia de segurança do ficheiro /etc/samba/smb.conf:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

Agora, edite o ficheiro /etc/samba/smb.conf e faça as suas alterações.

Servidor

Além do conjunto de aplicações SAMBA para partilha de ficheiros e impressoras no servidor, o Ubuntu também inclui outras aplicações de servidor poderosas concebidas para fornecer funcionalidades adicionais a clientes Windows, semelhantes às funcionalidades disponibilizadas por servidores Windows genuínos. Por exemplo: Ubuntu faculta a gestão centralizada de recursos de rede, tais como computadores e utilizadores através de Serviços de Directório e faculta a identificação e autorização de computadores e utilizadores através de Serviços de Autenticação.

As secções que se seguem aprofundam o SAMBA e as tecnologias de suporte, tais como o servidor Lightweight Directory Access Protocol (LDAP), e o servidor de autenticação Kerberos. Também irá tomar conhecimento de algumas directivas de configuração disponíveis no ficheiro de configuração do SAMBA que facultam a integração com clientes e servidores Windows.

Active Directory

O Active Directory é uma implementação proprietária da Microsoft dos Serviços de Directório e é utilizada para fornecer meios de partilhar informação acerca dos recursos e utilizadores de rede. Além de fornecer uma fonte centralizada destas informações, o Active Directory também funciona como uma autoridade centralizada de autenticação e segurança para a rede. O Active Directory junta funcionalidades tradicionalmente encontradas separadamente, especializadas em sistemas de directórios para simplicar a integração, a gestão e a segurança de recursos de rede. O pacote SAMBA poderá ser configurado para utilizar serviços do Active Directory a partir de um Controlador de Domínio Windows.

LDAP

A aplicação servidora de LDAP fornece funcionalidades de Serviços de Directório para computadores Windows de uma forma semelhante à dos serviços Active Directory da Microsoft. Estes serviços incluem a gestão de entidades e relações de computadores, utilizadores e grupos de computadores ou utilizadores que participam numa rede e providenciam meios consistentes para descrever, localizar e gerir os recursos. A implementação gratuita do LDAP disponível para o seu sistema Ubuntu tem o nome de OpenLDAP. Os serviços responsáveis por tratar os pedidos OpenLDAP e a propagação dos dados de directório de um servidor LDAP para outro, no Ubuntu, são slapd e slurpd. O OpenLDAP pode ser utilizado em conjunto com o SAMBA para providenciar serviços de Ficheiros, Impressão e Directório de uma forma muito semelhante à de um Controlador de Domínio Windows, desde que o SAMBA seja compilado com suporte LDAP.

Kerberos

O sistema de autenticação segura Kerberos é um serviço padrão para fornecer autenticação a computadores e utilizadores através de um servidor central que emite bilhetes de autorização codificados aceites por qualquer computador que utilize o Kerberos. As vantagens do Kerberos incluem autenticação mútua, autenticação por delegação, interoperabilidade e gestão simplificada de domínios de confiança. Os processos do servidor principal para gestão da autenticação Kerberos e da administração da base de dados do Kerberos no Ubuntu são krb5kdc e kadmin. O SAMBA pode utilizar o Kerberos como mecanismo de autenticação de computadores e utilizadores num Controlador de Domínio Windows. Para isso o Ubuntu deve ter o Kerberos instalado e o ficheiro /etc/samba/smb.conf deve ser modificado para seleccionar o modo adequado de realm e security. Por exemplo: edite o ficheiro /etc/samba/smb.conf e acrescente os valores:

realm = NOME_DOMÍNIO

security = ADS

para o ficheiro, e grave o ficheiro.

[Dica]

Assegure-se de que substitui NOME_DOMÍNIO no exemplo acima pelo nome real do seu Domínio Windows específico.

Deve reiniciar os serviços SAMBA para as alterações surtirem efeito. Reinicie os serviços SAMBA com o seguinte comando escrito no terminal:

sudo /etc/init.d/samba restart

Contas de Computador

Contas de Computador são usadas nos Serviços de Directório para a identificação única de sistemas de computador participando em rede, e são mesmo tratadas da mesma maneira que utilizadores em termos de segurança. Contas de Computador podem ter palavras passe tal como têm as contas de utilizador, e são sujeitas a autorização a recursos de rede na mesma maneira que as contas de utilizador. Por exemplo, se um utilizador de rede, com uma conta válida para uma rede específica se tentar autenticar com um recurso de rede de um computador que não possui conta de computador válida, dependendo de políticas impostas na rede, pode ser negado ao utilizador acesso ao recurso se o computador a partir do qual o utilizador se tenta autenticar é considerado um computador não autorizado.

Uma conta para um computador pode ser adicionada ao ficheiro de palavras-passe do SAMBA desde que o computador já exista como um utilizador válido na base de dados local de palavras-passe. Para adicionar um computador ou máquina ao ficheiro de palavras-passe do SAMBA utilize o comando smbpasswd na linha de comandos, com a sintaxe seguinte:

sudo smbpasswd -a -m NOME_COMPUTADOR

[Dica]

Tenha em conta que deve substituir o NOME_DE_COMPUTADOR no exemplo acima com o verdadeiro nome do computador específico para o qual deseja adicionar uma conta de máquina.

Permissões de Ficheiros

Permissões de Ficheiros definem explicitamente os privilégios que um computador ou utilizador têm para um directório, ficheiro ou conjunto de ficheiros. Tais privilégios podem ser definidos editando o ficheiro /etc/samba/smb.conf e indicando explicitamente as permissões de uma partilha. Por exemplo, se tiver definida uma partilha chamada sourcedocs e pretende dar permissões "só de leitura" read-only ao grupo de utilizadores definido como planning, mas pretende atribuir privilégios de escrita ao grupo de utilizadores authors e ao utilizador richard, então pode editar o ficheiro /etc/samba/smb.conf e acrescentar as seguintes linhas dentro da secção [sourcedocs] :

read list = @planning

write list = @authors, richard

Grave o /etc/samba/smb.conf para as alterações surtirem efeito.

Outro privilégio possível é declarar permissões administrativas administrative para uma partilha em particular. Os utilizadores com permissões administrativas podem ler, escrever ou modificar qualquer informação dentro do recurso para o qual o utilizador deu explicitamente permissões administrativas. Por exemplo, se quiser dar ao utilizador melissa permissões administrativas para a partilha sourcedocs, edite o ficheiro /etc/samba/smb.conf e adicione a seguinte linha dentro da secção [sourcedocs] :

admin users = melissa

Grave o /etc/samba/smb.conf para as alterações surtirem efeito.

Clientes

O Ubuntu inclui aplicações cliente e capacidades para aceder a recursos de rede partilhados com o protocolo SMB. Por exemplo, o utilitário smbclient permite o acesso remoto a sistemas de ficheiros partilhados, de forma semelhante a uma aplicação cliente de FTP File Transfer Protocol. Para aceder a uma pasta partilhada designada documents oferecida por uma máquina remota Windows com o nome bill, utilizando o smbclient, poderia-se introduzir por exemplo, um comando similar ao seguinte na linha de comandos:

smbclient //bill/documents -U <utilizador>

Ser-lhe-á pedida a palavra-passe para o utilizador especificado após o parâmetro -U e, após autenticação bem-sucedida, ser-lhe-á apresentada uma linha de comandos onde podem ser emitidos comandos para manipular e transferir ficheiros numa sintaxe semelhante à utilizada em clientes FTP não-gráficos. Para mais informações acerca do utilitário smbclient, leia a página do manual do utilitário, com o comando:

man smbclient

A montagem local de recursos em rede utilizando o protocolo SMB é possível com recurso ao programa smbfs.

Para montar uma pasta partilhada chamada codigo-projecto existente num servidor Windows com o nome desenvolvimento em nome do utilizador dlightman no ponto de montagem /mnt/codigop do seu sistema Ubuntu (o ponto de montagem deve ser um directório vazio), quererá enviar para a consola o seguinte comando:

sudo mount -t smbfs -o username=dlightman //desenvolvimento/codigo-projecto /mnt/codigop

Ser-lhe-á pedida a palavra-passe e, após autenticação validada, os conteúdos do recurso partilhado estarão disponíveis através do ponto de montagem especificado como último argumento do comando mount. Para desligar o recurso partilhado, utilize o comando umount como com qualquer outro sistema de ficheiros montado. Por exemplo:

sudo umount /mnt/codigop

Contas de Utilizadores

As Contas de Utilizador definem pessoas com algum tipo de permissões para utilizarem determinados computadores e recursos de rede. Tipicamente, num ambiente de rede, é fornecida a cada pessoa uma conta com a qual pode aceder a um computador ou rede, onde políticas e permissões definem quais os privilégios específicos desse utilizador. Para definir utilizadores de rede SAMBA para o seu sistema Ubuntu pode utilizar o comando smbpasswd. Por exemplo, para adicionar um utilizador SAMBA ao seu sistema Ubuntu com o nome de utilizador jseinfeld, digite este comando na linha de comandos:

sudo smbpasswd -a jseinfeld

A aplicação smbpasswd irá então pedir-lhe que introduza a palavra-passe para o utilizador:

Nova palavra-passe SMB:

Insira a palavra-passe que deseja para este utilizador, e a aplicação smbpasswd irá pedir-lhe que confirme a palavra-passe:

Insira novamente a nova palavra-passe SMB:

Confirme a palavra-passe e o smbpasswd adicionará a entrada do novo utilizador no ficheiro de palavras-passe do SAMBA.

Grupos

Os Grupos definem um conjunto de computadores ou de utilizadores com um nível de acesso comum a um recurso particular da rede e oferece um nível de granularidade no controlo de acesso a esses recursos. Por exemplo, se um grupo qa estiver definido e contiver os utilizadores freda, danika, e rob, e um segundo grupo support estiver definido e contiver os utilizadores danika, jeremy e vincent, então alguns recursos de rede configurados para permitirem o acesso pelo grupo qa permitirão o acesso de freda, danika, e rob, mas não de jeremy ou vincent. Dado que a utilizadora danika pertence a ambos os grupos, qa e supportrole="italic">support

Ao definir grupos no ficheiro de configuração do SAMBA /etc/samba/smb.conf a sintaxe reconhecida é acrescentar o símbolo @ como prefixo ao nome do grupo. Por exemplo, se pretende definir um grupo chamado sysadmin numa determinada secção do ficheiro /etc/samba/smb.conf, fá-lo-á indicando nessa secção o grupo como @sysadmin .

Política de Grupo

A Política de Grupo define determinadas configurações do SAMBA respeitantes ao Domínio ou Grupo de Trabalho ao qual o computador pertence, e outras configurações globais do servidor SAMBA. Por exemplo, se o servidor SAMBA pertence a um Grupo de Trabalho de computadores em Windows chamado LEVELONE, o ficheiro /etc/samba/smb.conf pode ser editado e o valor seguinte alterado em conformidade:

workgroup = LEVELONE

Grave o ficheiros e reinicie os serviços (daemons) do SAMBA para aplicar as alterações.

Outra configuração importante de política global inclui a server string que define o nome NETBIOS do servidor comunicado pelo seu sistema Ubuntu a outras máquinas da rede baseada em Windows. É por este nome que o seu sistema Ubuntu será reconhecido pelos clientes Windows e outros computadores capazes de pesquisar na rede utilizando o protocolo SMB. Adicionalmente, pode especificar o nome e a localização do ficheiro de registos log do servidor SAMBA utilizando a directiva log file no ficheiro /etc/samba/smb.conf.

Algumas das directivas adicionais que comandam a política de grupo global incluem a especificação da natureza global de todos os recursos partilhados. Por exemplo, ao colocar determinadas directivas dentro da secção [global] no início de ficheiro /etc/samba/smb.conf afectarão todos os recursos partilhados a não ser que uma directiva que se sobreponha seja colocada na secção de um recurso em particular. Pode especificar que todas as partilhas são pesquisáveis por todos os clientes da rede colocando a directiva browseable, que aceita um valor Lógico, dentro da secção [global] no início de /etc/samba/smb.conf. Isto é, se editar o ficheiro e adicionar a linha:

browseable = true

dentro da secção [global] do ficheiro /etc/samba/smb.conf, todas as partilhas disponibilizadas pelo seu sistema Ubuntu através do SAMBA ficarão pesquisavéis por todos os clientes autorizados, a não ser que uma partilha específica contenha a directiva browseable = false que se sobrepõe à directiva global.

Outros exemplos que funcionam de forma similar são as directivas public e writeable . A directiva public aceita um valor lógico e determina que um recurso partilhado em particular é visível para todos os clientes, autorizados ou não. A directiva writeable também aceita um valor lógico e define se um recurso partilhado em particular tem acesso de escrita para todo e qualquer cliente de rede.