A seção "homes"

De Wiki Hackstore

A seção [homes]

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. Dessa 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 omitir a linha "path" 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 home 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

Concluindo, 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.


fonte:

http://www.hardware.com.br/tutoriais/samba-configuracao-avancada/pagina4.html