Compartilhamento de arquivos e diretórios

Esta seção documenta como disponibilizar arquivos e impressoras com o SAMBA e os parâmetros usados para realizar restrições de compartilhamento, modo que os dados serão disponibilizados e ítens de performance. A maior parte destes parâmetros são empregados em serviços do SAMBA, mas nada impede que também sejam colocado na seção [global] do arquivo de configuração, principalmente quando isto é válido para diversos serviços compartilhados (veja “Seção [global]).

Descrição de parâmetros usados em compartilhamento

Abaixo o guia traz algumas das opções que podem ser usadas para controlar o comportamento do compartilhamento de arquivos por serviços no servidor SAMBA:

path

Indica o diretório que será compartilhado. Lembre-se que o usuário terá as permissões de acesso que ele teria caso estivesse logado no sistema como um usuário UNIX normal, exceto se estiver fazendo mapeamento para outros nomes de usuários (veja “Mapeamento de nomes de usuários”).

Ex: path=/pub - Compartilha o diretório local /pub.

OBS: Quando não é definido um path, o diretório /tmp é usado como padrão.

comment

Descrição do compartilhamento que será mostrada na janela de procura de rede ou no smbclient -L maquina.

Ex: comment=Pasta de conteúdo público do sistema.

browseable

Define se o compartilhamento será ou não exibido na janela de procura de rede. Mesmo não sendo exibido, o compartilhamento poderá ser acessado. Veja “Criando um compartilhamento invisível” para uma explicação mais detalhada.

Ex: browseable=yes - Lista o compartilhamento na janela de pesquisa de servidores.

guest account

Conta que será usada para fazer acesso sem senha (convidado) quando o parâmetro guest ok ou public forem usados em um compartilhamento. Por padrão ela é mapeada para o usuário nobody. É importante especificar uma nome de usuário guest (convidado), principalmente porque seu UID será usado para fazer várias operações no SAMBA, como exibir os recursos disponíveis na máquina para a rede. Por motivos claros, é recomendável que este usuário não tenha acesso login ao sistema.

Caso não tenha a intenção de ocultar o SAMBA na lista de máquinas da rede (fazendo apenas acesso direto aos recursos), especifique um valor para esta opção.

Ex: guest account = sambausr - Mapeia os usuário se conectando sem senha para o usuário sambausr, desde que o acesso guest seja permitido pela opção public.

public

Permitem aos usuários usuários se conectarem ao compartilhamento sem fornecer uma senha usando o usuário guest. O UID que o usuário guest será mapeado é especificado pelo parâmetro guest account). Veja “Criando um compartilhamento para acesso sem senha”. O parâmetro guest ok é equivalente a public.

Ex: public = no - Não permite

guest only

Permite somente conexões guest ao recurso. O UID do usuário é mapeado para guest, mesmo que forneça uma senha correta. O valor padrão é no.

Ex: guest only = no.

write list

Lista de usuários separados por espaço ou vírgula que poderão ler e gravar no compartilhamento. Caso o nome for iniciado por "@", o nome especificado será tratado como um grupo UNIX (/etc/group) e todos os usuários daquele grupo terão acesso de gravação. O uso deste parâmetro ignora o read only = yes. Veja “Excessão de acesso na permissão padrão de compartilhamento” para mais detalhes.

Ex: write list = gleydson, @usuarios - Permite acesso gravação somente do usuário gleydson e todos os usuários pertencentes ao grupo @usuarios.

OBS: - O significado de "@" nos parâmetros "invalid users"/"valid users" é diferente das opções write list e read list.

read list

Lista de usuários separados por espaço ou vírgula que poderão apenas ler o compartilhamento. O caracter "@" pode ser especificado para fazer referência a grupos, como no write list. O uso deste parâmetro ignora o read only = no. Veja “Excessão de acesso na permissão padrão de compartilhamento” para mais detalhes.

Ex: read list = nobody, system, operador, @usuarios - Permite acesso de leitura somente do usuário nobody, system, operador e todos os usuários pertencentes ao grupo @usuarios.

user

Especifica um ou mais nomes de usuários ou grupos (caso o nome seja seguido de "@") para checagem de senha. Quando o cliente somente fornece uma senha (especialmente na rede Lan Manager, Windows for Workgroups e primeira versão do Windows 95) ela será validada no banco de dados de senhas usando o usuário especificado nesta opção.

Ex: user = john @usuariosrede

only user

Especifica se somente serão permitidas conexões vindas de usuários da diretiva user. O padrão é no. Caso deseje restringir o acesso a determinados usuários, o certo é faze-lo usando valid users e invalid users (veja “Restringindo o acesso por usuários”). O uso de only user é apropriado quando é necessário um controle específico de acesso sobre a diretiva user.

Ex: only user = no.

locking

Permite ao SAMBA fazer um lock real de arquivo ou apenas simular. Caso seja especificado como "0", o arquivo não é bloqueado para acesso exclusivo no servidor mas uma resposta positiva de lock é retornada ao cliente. Se definido como "1", um lock real é feito. O padrão é yes.

Ex: locking = yes

available

Faz o SAMBA ignorar o compartilhamento (como se tivesse retirado do servidor). O valor padrão é "no".

follow symlinks

Permite o uso de links simbólicos no compartilhamento (veja também a opção wide links). A desativação desta opção diminui um pouco a performance de acesso aos arquivos. Como é restrita a compartilhamento, o impacto de segurança depende dos dados sendo compartilhados. O valor padrão desta opção é "YES".

Ex: follow symlinks = yes

wide links

Permite apontar para links simbólicos para fora do compartilhamento exportada pelo SAMBA. O valor padrão esta opção é "YES".

Ex: wide links = yes.

OBS: - A desativação desta opção causa um aumento na performance do servidor SAMBA, evitando a chamada de funções do sistema para resolver os links. Entretanto, diminui a segurança do seu servidor, pois facilita a ocorrência de ataques usando links simbólicos.

Lembre-se mais uma vez que a segurança do seu sistema começa pela política e uma instalação bem configurada, isso já implica desde a escolha de sua distribuição até o conhecimento de permissões e planejamento na implantação do servidor de arquivos.

dont descend

Não mostra o conteúdo de diretórios especificados.

Ex: dont descend = /root, /proc, /win/windows, "/win/Arquivos de Programas", "/win/program files".

printable

Especifica se o compartilhamento é uma impressora (yes) ou um compartilhamento de arquivo/diretório (no). O padrão é "no".

read only

Especifica se o compartilhamento é somente para leitura (yes) ou não (no) para todos os usuários. O parâmetro writable é um antônimo equivalente a este parâmetro, só que utiliza as opções invertidas. Por segurança, o valor padrão é somente leitura. Veja uma explicação mais detalhada em “Criando um compartilhamento com acesso somente leitura”.

Ex: read only = yes.

create mask

Modo padrão para criação de arquivos no compartilhamento. O parâmetro "create mode" é um sinônimo para este. O modo de arquivos deve ser especificado em formato octal. Veja ???).

Ex: create mask = 0600.

directory mask

Modo padrão para a criação de diretórios no compartilhamento. O parâmetro "directory mode" é um sinônimo para este. O modo de diretório deve ser especificado em formato octal.

Ex: directory mask = 0700.

getwd cache

Permite utilizar um cache para acesso as requisições getwd, diminuindo o número de ciclos de processamento para acesso a arquivos/diretórios. O valor padrão é "Yes".

write cache size

Tamanho do cache de leitura/gravação do compartilhamento. Este valor é especificado em bytes e o padrão é "0". Veja “Melhorando a performance do compartilhamento/servidor” para detalhes sobre seu uso.

Ex: write cache size = 384000.

inherit permissions

Permite herdar permissões de arquivos/diretórios do diretório pai quando novos arquivos/diretórios são criados, isto inclui bits SGID (set group ID). O padrão é NÃO herdar permissões. O uso desta opção substitui as opções fornecidas por create mask, directory mask, force create mask e force directory mask.

Ex: inherit permissions.

preexec

Executa um comando antes a abertura de um compartilhamento. O parâmetro exec é um sinônimo para este. Veja “Executando comandos antes e após o acesso ao compartilhamento”.

postexec

Executa um comando depois da utilização do compartilhamento. Veja “Executando comandos antes e após o acesso ao compartilhamento”.

preexec close

Fecha imediatamente o compartilhamento caso o valor do comando executado pela opção preexec seja diferente de 0. O uso desta opção só faz sentido em conjunto com preexec. O valor padrão é "no". Veja “Executando comandos antes e após o acesso ao compartilhamento”.

Exemplo: preexec close = yes.

volume = nome

Retorna o nome de volume especificado quando é feito o acesso ao compartilhamento. Isto é muito útil para instalações onde o serial do CD, disquete ou HD é verificado durante o acesso. Isto acontece com freqüência em produtos de fabricantes proprietários como forma de evitar a execução ilegal do programa.