14.3. Como configurar o servidor Samba direto pelo arquivo de configuração?

Antes de editar o arquivo de configuração, recomendamos que faça uma cópia de segurança, para isso digite:

    [root@localhost ]# cp /etc/smb.conf /etc/smb.conf.original

É possível verificar se a configuração de seu smb.conf está correta, com o comando:

    [root@localhost ]# testparm

Agora edite o smb.conf, conforme suas necessidades:

    [root@localhost ]# mcedit /etc/smb.conf

Abaixo existe uma explicação do arquivo /etc/smb.conf, onde fica a maioria das configurações do samba, e onde é possível usar as citadas acima.

Obs.: Os # e ; são comentários.

    [global]
    #   A Seção [global] significa que a configuração especificada abaixo,
    # aplicam-se ao servidor ou são gerais. Enfim é a base para o funcionamento
    # do samba
    
    # Especifica a quantidade de memória do servidor SAMBA
    # quanto mais melhor, mas 10MB já é bastante
    # para umas 5 a 10 estações.
    ;shared mem size = 1048576
    
    # Nome o workgroup que as estações Windows irão apontar
    workgroup = MYGROUP
    
    # Observação que irá aparecer sobre o computador, e caso a observação do
    # compartilhamento esteja vazio o compartilhamento usará essa observação.
    server string = Servidor de Samba %h - Versão %v 
    
    # Especifica o tipo de servidor nmbd (Servidor de Nomes NetBIOS) que será
    # divulgado na rede. O padrão é igual a Windows NT. As opções válidas são
    # "NT", "NT Server", "NT Workstation", "Win95" ou "WfW" .  Exemplo:
    ; announce as = NT Server
    
    # O diretório-base dos logon scripts é o volume [netlogon]. No exemplo, se o
    # diretório de compartilhamento netlogon for igual a "/home/samba/netlogon",
    # o script do usuário "roberto" seria procurado em
    # /home/samba/netlogon/roberto.bat
    ;logon script = %U.bat
    
    
    # Este parâmetro define o conjunto de máquinas que podem acessar o servidor
    # samba. Pode-se utilizar o nome ou o endereço IP da máquina.
    #
    # É possível, por exemplo, restringir o acesso a somente uma sub-rede de
    # classe C, como em "allow hosts = 150.203.5.". Pode-se ainda usar o sub
    # parâmetro "EXCEPT" para excluir-se alguma(s) máquina(s), como por
    # exemplo:
    ;hosts allow = 150.203. EXCEPT 150.203.6.66 150.203.15.0/255.255.255.0
    # Abaixo abre acesso para lapland e somente hosts no nis com o grupo da net:
    # foonet
    ;hosts allow = lapland @foonet 
    
    
    # Exatamente o oposto do parâmetro anterior, já que aqui podem ser
    # listadas todas as máquinas que não devem ter acesso aos serviços.
    ;hosts deny = 150.203.5. minha_máquina.domínio.com.br
    
    # Carrega a configuração das impressoras que estão
    # instaladas no servidor samba
    printcap name = /etc/printcap
    load printers = yes
    
    # Seleciona o tipo de impressão padrão, caso não funcione normalmente.
    # bsd, sysv, plp, lprng, aix, hpux, qnx
    ;   printing = bsd
    
    # Transforma todos os usuários que de algum modo foram indicados como
    # visitantes em usuário guest
    ;  guest account = guest
    
    # Criará um arquivo de log para cada usuário. Ex. log.renato
    # É possível usar %m para obter logs por maquinas
    log file = /var/log/samba/log.%u
    
    # Tamanho máximo permitido para um log.
    max log size = 50
    
    # Nível do log, enquanto maior mais detalhes são mostrados. É recomendado
    # usar até 2 e o nível 0 representa nenhum.
    debug level = 1
    
    # Máquinas Windows tendem a travar de tempos em tempos. Este
    # parâmetro é utilizado para verificar o estado da conexão, a cada 20
    # segundos.
    keepalive = 20
    
    # Autenticação de usuários - Modalidade de segurança
    #
    # "security=share": Sem segurança. Todo e qualquer usuário será aceito. As
    # operações de arquivo e impressão serão executadas com as permissões do
    # usuário UNIX associado ao hóspede (guest account = ...). Se você escolher
    # essa modalidade, verifique se o usuário UNIX terá permissões suficientes
    # para acessar arquivos e, se for o caso, imprimir. Assim senhas de acesso
    # são solicitadas por recurso compartilhado e não por usuário. Ou seja cada
    # diretório ou impressora poderá ter uma senha única conhecida por todos os
    # usuários autorizados.
    #
    # "security=user": Segurança por usuário, local. A senha do usuário é
    # reduzida a letras minúsculas e confrontada com a senha UNIX. Essa
    # modalidade de segurança obriga que os usuários sejam cadastrados no Linux,
    # e suas senhas sejam atribuídas corretamente. As operações sobre arquivos e
    # de impressão serão feitas com a permissão do respectivo usuário UNIX.
    # Todavia, pode-se abrir aos hóspedes o acesso a determinados volumes ou
    # impressoras - para esses objetos, a segurança operará no estilo SHARE.
    #
    # "security=server": Segurança por usuário, remota. O Samba pega o nome de
    # usuário e a senha, e autentica junto a outro servidor, que poderá ser
    # outro Linux rodando Samba, ou um Windows NT. Apesar da autenticação ser
    # remota, ainda é necessário criar os usuários UNIX localmente em
    # determinados casos.
    #
    # "security=domain": Segurança por usuário, remota. Praticamente idêntica à
    # modalidade SERVER, porém convive com instalações mais complexas onde
    # existem computadores NT operando como PDCs (primary domain controllers)  e
    # BDCs (backup domain controllers). Nesse modo, mais de um servidor de
    # autenticação pode ser especificado na linha password server do arquivo de
    # configuração. (O suporte do Samba a domínios do NT ainda é incompleto e
    # deve estar pronto na versão 2.1; por ora, a modalidade DOMAIN não difere
    # muito da modalidade SERVER.)
    security = user 
    
    # Quando tentarem efetuar um login, e o usuário ou a senha não sejam
    # válidos, será repassado para o usuário visitante: 
    # Onde são válidos: "Bad User" (mau usuário), "bad  password" (má senha)
    # ou "never" (não será repassado para o usuário visitante).
    map to guest = Bad User
    
    # Servidor de senhas, ou seja, o nome NetBIOS da máquina junto a qual
    # o Samba vai autenticar os usuários.
    ;password server = Senhs_server
    
    # Especifica o nome do servidor de usuários e senhas, quando especificado
    # security = server
    ;   password server = <NT-Server-Name>
    
    # Quando a senha não for válida tente 8 modos diferentes. Ex.: Para uma
    # senha ou usuário abcdefgh, tente 
    # abcdefgh Abcdefgh aBcdefgh ... ABCDEFGh ABCDEFGH
    ;  password level = 8
    ;  username level = 8
    
    # O Windows 98, bem como versões mais recentes do Windows NT Workstation,
    # transmitem senhas criptografadas no processo de autenticação. Como não é
    # possível usar o mesmo padrão de criptografia, é necessário executar o
    # programa smbpasswd para a criação de senhas criptografadas.
    ;  encrypt passwords = yes
    ;  smb passwd file = /etc/smbpasswd
    
    # É usado para sincronizar a alteração de senhas feitas no windows, para o
    # servidor linux.
    ;  unix password sync = Yes
    ;  passwd program = /usr/bin/passwd %u
    ;  passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
    
    # Usuários UNIX não precisam necessariamente ter o mesmo nome dos
    # usuários NetBIOS. A tabela /etc/smbusers permite estabelecer
    # equivalências entre nomes dessemelhantes.
    ;  username map = /etc/smbusers
    
    # Esta opção é um tuning de performance.
    # Em muitos casos ela realmente melhora o desempenho.
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    
    # É o tamanho do pacote de dados enviado para as
    # estações, normalmente é melhor deixar tudo com 16Kb
    # em se tratando de interfaces de rede tipo NE2000
    ;max xmit = 16384
    
    # Esta opção indicara para as máquinas da rede 192.168.2.255, que esta
    # máquina estará no grupo de trabalho CONECTIVA, além do grupo original.
    ;   remote announce = 192.168.2.255/CONECTIVA
    
    # Está opção vai anunciar para outra rede, que existe o workgroup remoto
    # e que pode ser acessado.
    ;   remote browse sync = 192.168.3.25 192.168.5.255
    
    #Navegador-mestre local (local master browser)
    # É um servidor onde são guardados os nomes das máquinas que existem na rede
    # windows.
    # Configure a seguinte opção como 'no' se você não quiser que o Samba
    # torne-se um mestre local. Do contrário, as regras normais de eleição
    # é que valerão. (ou seja, local master = yes NÃO garante que o Samba
    # seja o mestre local)
    local master = yes
    
    # Nïvel do sistema operacional, que determina sua preferência em
    # tornar-se mestre local. Quanto maior o número, maior a chance de o
    # servidor tornar-se um mestre. O padrão do windows nt é 32. Evite colocar o
    # mesmo número que alguma máquina windows, pois a mesma não gosta de perder
    # eleições para máquinas linux que tenham o mesmo número.
    os level = 33
    
    ## Se a seguinte linha for configurada como 'yes', o Samba será o
    # navegador-mestre do DOMÍNIO. Não use esta opção se você já tem um
    # servidor NT que seja o PDC.
    ;   domain master = yes
    
    # Esta opção força uma eleição para mestre local quando o Samba é
    # acionado, e lhe dá uma pequena vantagem na disputa.
    #
    # NÃO habilite esta opção em mais de uma máquina, do contrário
    # os diversos 'preferred masters' vão ficar promovendo eleições
    # para mestre o tempo todo; isso causará tráfego inútil de rede
    # e pode prejudicar a qualidade das listas de navegação i.e. elas
    # poderão não conter todas as máquinas da rede e não ficará tão lento, se
    # tudo estiver configurado corretamente.
    preferred master = yes
    
    # Use somente se existe um nt server em sua rede, configurado para ser o
    # primeiro domínio de controle
    ;   domain controller = <NT-Domain-Controller-SMBName>
    
    # Caso seja habilitado, tornará o linux um domínio de login, para estações
    # windows 95
    ;   domain logons = yes
    
    # sicroniza a data do sevidor para as estações.
    # interessante para ter controle sobre data/hora
    # de criação de arquivos e coisas do genero
    # E em sua máquina windows/dos digite para configurar a hora:
    # net time /set /yes
    time server = True
    
    
    # É a forma de como será procurada a máquina:
    # As opções são: "lmhosts", "host", "wins" e "bcast"
    # lmhosts - Tenta usar um arquivo de configuração do samba 
    # hosts - Tenta resolver o nome pelo ip, usando o /etc/hosts, o nis ou o dns
    # wins  - Procura o ip no servidor wins
    # bcast - Procura a máquina por Broadcast 
    #
    # É recomendável deixar sempre o bcast como último recurso, pois assim
    # pelo menos a rede local continuará funcionando se por acaso ficar
    # isolada das demais redes.
    name resolve order = wins lmhosts bcast
    
    #A comunicação inter-redes
    # wins grava as informações repassadas pelos servidores masters de cada rede
    # e possibilita que uma rede converse com outra
    # Ao retransmitir essas informações do mestre de domínio, o mestre obtem a
    # lista de servidores mestres do servidor wins, essa retransmissão demora
    # em média 15 minutos, e usa endereços ip.
    ;   wins support = yes
    
    # Indique aqui o IP do servidor WINS da instalação. Se o computador
    # for ele mesmo o servidor WINS (a linha 'wins support = yes' está
    # ativa), não use esta opção, pois do contrário o Samba acabará conectando
    # a si mesmo, recursivamente, e *travará*.
    ; wins server = 10.120.1.26
    
    # Se o nmbd responder às perguntas do nome da transmissão em nome de outras
    #máquinas. Você pode necessitar ajustar este a " sim " para alguns clientes mais velhos.
    ;   wins proxy = yes
    
    # Diz ao samba se é ou não para tentar resolver nomes netbios, atraves do
    # nslookup do DNS.
    dns proxy = no
    
    # Diz para o SAMBA preservar o nome do arquivo como foi enviado pela estacao
    ;preserve case = yes
    
    # Diz para o SAMBA interpretar minúsculas como
    # minúsculas.
    ;short preserve case = yes
    
    # Se a máquina possuir mais de uma placa de rede, é necessário estabelecer
    # em que interface(s) o Samba vai atuar. Note que isto NÃO é suficiente
    # para evitar conexões originárias de redes diferentes da(s)
    # especificada(s),
    # pois os soquetes UDP do Samba "ouvem" em todas as interfaces. Veja
    # a linha "hosts allow", mais acima, para configuração de segurança.
    #
    # No exemplo abaixo, a máquina tem 2 intefaces, cujos números IP e
    # netmasks estão bem óbvios.
    ;interfaces = 168.1.1.1/24 10.120.1.24/16
    
    #   A seção [homes], epecifica que deve ser ativado um serviço que permite o
    #acesso aos diretório pessoais de seus respectivos usuários. Isto é permite
    #que os usuários acessem seu home.
    
    [homes]
    comment = Diretórios Pessoais
    
    # Evita que os diretórios pessoais sejam vistos por outros usuários
    browseable = no
    
    # Samba proíbe por padrão a gravação em recursos exportados.
    # O parâmetro a seguir permite que os usuários possam gravar em
    # seus diretórios pessoais.
    read only = no
    
    # Permite que apenas o hóspede(convidado) tenha acesso ao volume ou
    # impressora que contiver o parâmetro 'guest only = yes'
    guest only = no
    
    # writeable é parecido com o writable, e permite que exista gravação no
    # compartilhamento 
    writeable = yes
    
    
    
    #   A seção [printers] especifica como se configura uma impressora, para ser
    #usada pelo samba, ou faz o sistema ler as configurações do printcap.
    #
    # A configuração abaixo fará com que os usuários das
    # estações Windows vejam todas as impressoras do
    # servidor.
    
    [printers]
    #Este parâmetro define o nome da impressora para a qual os serviços de
    #impressão serão enviados. Exemplo:
    ;printer name = laserwriter
    comment = Spool de Impressao
    path = /var/spool/samba
    
    # Controla se o compartilhamento será visualizado na lista de recursos
    # disponíveis. O padrão é
    browseable = no
    
    # Caso este parâmetro seja definido como 'yes' para um serviço, então
    # nenhuma senha será solicitada ao usuário. Os privilégios serão iguais
    # aos definidos para a conta "guess account" definida no parâmetro
    # anterior. Exemplo:
    guest ok = no
    
    #Caso este parâmetro seja definido como "no", não será permitida a
    #criação ou modificação de arquivos no diretório compartilhado.
    #Note-se que o parâmetro "printable = yes" sempre permitirá a gravação
    #através de operações de geração de arquivos temporários de impressão.
    # Exemplos:
    ;read only = no
    ;writeable = yes
    ;write ok = yes
    # São iguais
    
    printable = yes
    # caso public seja = yes não é necessário possuir uma senha para entrar no
    # compartilhamento
    public = no
    read only = yes
    
    
    # Este parâmetro permite que a seção atual seja uma cópia de qualquer seção
    # anterior. Caso haja necessidade de alterar um parâmetro, basta informá-lo na
    # seção atual.
    # Esta funcionalidade é muito útil para a criação de modelos que podem ser
    # replicados e rapidamente alterados para todos os recursos compartilhados.
    [hom]
    copy = homes
    guest ok = yes
    read only = yes
    
    # Especifica o diretório ao qual o usuário do serviço terá acesso. No
    # caso de impressoras, será o diretório de arquivos temporários de
    # impressão. Exemplo:
    [PUBLICO]
    comment = Diretorio Publico
    path = /home/samba
    public = yes
    guest ok = yes
    printable = no
    
    #Permite configurar o número máximo de conexões simultâneas a esse
    #serviço. Exemplo:
    ;max connections = 10
    
    # Permite definir um limite aparente da área em disco que pode ser
    # utilizada pelo compartihamento. A unida padrão é igual a Mb
    # (megabytes). Exemplo:
    ;max disk size = 250
    
    # Para compartilhar o CD-ROM do servidor nas estações
    # Usa o mesmo princípio do diretorio PUBLICO
    [CDROM]
    comment = CD-Rom SAMBA
    path = /mnt/cdrom
    read only = yes
    public = yes
    
    # Permite a gravação no spool 
    printable = no
    guest ok = yes
    browseable = yes
    
    #Permite definir os usuários que terão privilégios de administração do
    #compartilhamento, ou seja terão poderes de superusuário. E pode ser usado a
    #qualquer seção de compartilhamentos. Exemplo:
    ;admin users = renato, teste
    
    # Descomentando, os seguintes críam o diretório do netlogon para login's de
    # uma sessão do domínio.
    ; [netlogon]
    ;   comment = Network Logon Service
    ;   path = /home/netlogon
    ;   guest ok = yes
    ;   writable = no
    ;   share modes = no
    
    # A impressora privada, será usada somente por fred. Os dados do spool serão colocados
    # no diretório home, usado somente por fred. Abaixo o usuário terá acesso de
    # gravação para o diretório spool
    ;[fredsprn]
    ;   comment = Fred's Printer
    
    # Valid users é usado para especificar quais os usuários que podem usar o
    # serviço. E inválid users, expecifíca quais não tem acesso. Caso deseje
    # trabalhar com um grupo use @
    ;   invalid users = @user
    ;   valid users = fred
    ;   path = /homes/fred
    ;   printer = freds_printer
    ;   public = no
    ;   writable = no
    ;   printable = yes
    
    # Quando o sistema for carregar um arquivo é para ele utilizar as permissões:
    ;force create mode = 775
    ;force directory mode = 2775
    
    # no compartilhamento abixo, cada máquina terá um compartilhamento
    # diferente.
    # Pode ser usado uma configuração por usuários, para isso, basta substituir
    # o %m por %u
    ;[pchome]
    ;  comment = PC Directories
    ;  path = /usr/pc/%m
    ;  public = no
    ;  writable = yes