ct

    A seção [homes]

    Samba, parte 2: Configuração avançada do Samba

    Carlos E. Morimoto
    04/12/2007


    Uma vantagem de utilizar usuários "reais" no servidor Samba em vez de usuários castrados é que você tem a opção de compartilhar os diretórios home através da seção [homes] no smb.conf. Este é um serviço interno do Samba, que permite compartilhar automaticamente o diretório home de cada usuário, sem precisar criar um compartilhamento separado para cada um.

    A configuração mais comum é compartilhar os diretórios home com permissão de acesso apenas para o respectivo usuário. Desta forma, cada usuário tem acesso apenas ao seu próprio diretório home (que aparece no ambiente de redes como um compartilhamento com o mesmo nome), sem poder acessar, nem muito menos alterar o conteúdo dos diretórios home dos demais usuários. Nesse caso, a configuração fica:

    [homes]
    valid users = %S
    read only = no
    create mask = 0700
    directory mask = 0700
    browseable = no

    Não é necessário especificar a pasta a compartilhar, pois ao usar o nome "homes" o Samba sabe que deve compartilhar o home de cada usuário. As opções "create mask = 0700" e "directory mask = 0700" fazem com que todos os arquivos e pastas criados pelo usuário dentro do home sejam acessíveis apenas por ele mesmo. A opção "browseable = no" faz com que cada usuário possa ver apenas seu próprio diretório, o que é reforçado pela opção "valid users = %S", que diz explicitamente que apenas o próprio usuário deve ter acesso à sua pasta home.

    Uma queixa comum é que ao acessar o diretório home através do Samba, os usuários verão todos os arquivos e pastas de configuração de programas que são salvos dentro do diretório home, o que pode ser confuso.

    Uma forma de evitar isso é alterar a configuração, de forma que o Samba compartilhe uma pasta vazia dentro do home, e não o diretório home em si. Com isso é mantido o propósito de oferecer uma pasta particular para o usuário, onde ele possa salvar seus arquivos particulares e seus backups, sem a poluição gerada pela presença dos arquivos de configuração. A configuração nesse caso ficaria:

    [homes]
    path = /home/%u/share
    valid users = %S
    read only = no
    create mask = 0700
    directory mask = 0700
    browseable = no

    A linha "path = /home/%u/share" especifica que o Samba deve agora compartilhar a pasta "share" dentro do home e não mais o diretório hoje em si (você pode especificar outra pasta qualquer) e a linha "valid users = %S" garante que a pasta ficará acessível apenas para o próprio usuário.

    Naturalmente, a pasta "share" precisa ser criada dentro do home de cada usuário manualmente. Você pode fazer isso de forma automática para todos os usuários usando este mini shell script:

    cd /home
    for i in *; do
    mkdir $i/share
    chown $i.$i $i/share
    done

    Aproveite para criar também a pasta "share" dentro do diretório "/etc/skel", que é usado como um modelo para a criação do home de novos usuários, isso faz com que o diretório seja adicionado ao home de todos os usuários criados daí em diante de forma automática:

    # mkdir /etc/skel/share

    Aqui vai uma lista de outras variáveis do Samba para referência:

    %a : A versão do Windows usada, onde o "%a" é substituído pelas strings "Win95" (Windows 95/98), "WinNT" (Windows NT 3.x ou 4.x), "Win2K" (Windows 2000 ou XP) ou "Samba" (máquinas Linux rodando o Samba)
    %I : Endereço IP da máquina cliente (ex: 192.168.1.2)
    %m : Nome da máquina cliente (ex: cliente1)
    %L : Nome do servidor (ex: athenas)
    %u : Nome do usuário, como cadastrado no servidor Linux (ex: joao)
    %U : Nome do usuário, como enviado pelo cliente Windows (pode ser diferente do login cadastrado no servidor em algumas situações)
    %H : Diretório home do usuário (ex: /home/maria)
    %g : Grupo primário do usuário (ex: users)
    %S : Nome do compartilhamento atual (o valor informado entre colchetes, ex: arquivos)
    %P : Pasta compartilhada (o valor informado na opção "path", ex: /mnt/arquivos)
    %v : Versão do Samba (ex: 3.2.24)
    %T : Data e horário atual

    Ao longo do texto veremos alguns outros exemplos de uso destas variáveis, mas você pode usá-las em outras situações para criar compartilhamentos "inteligentes", que mostram pastas diferentes de acordo com as propriedades do cliente.

    Por exemplo, a variável "%a" (que indica a versão do Windows no cliente), poderia ser usada para criar um compartilhamento com drivers, que mostrasse diretamente a pasta com os drivers corretos para a versão do Windows usada. Nesse caso, você poderia usar algo como:

    [drivers]
    path = /mnt/sda2/drivers/%a
    read only = yes

    A pasta "/mnt/sda2/drivers/" incluiria uma série de sub-pastas, com os valores possíveis para a variável, incluindo "Win95", "WinNT", "Win2K" e "Samba". Ao acessar o compartilhamento, o cliente vê apenas o conteúdo da pasta correspondente ao sistema operacional usado.



    Página 04 de 08
        



    Blog:

    Add to Google

    » Gostou do texto? Veja nossos livros impressos:
    Hardware | Redes | Servidores | Kurumin 7

    ... ou encontre o que procura usando a busca:

cb
Livros de Carlos E. Morimoto HOME