# Guia do Linux/Avançado/SAMBA/Compartilhamento de arquivos e diretórios
## 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 [#s-s-samba-s-global Seção [global], Seção 18.2.8]).

### 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 [#s-s-samba-a-usernamemap Mapeamento de nomes de usuários, Seção 18.12.16]).
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 [#s-s-samba-a-invisivel Criando um compartilhamento invisível, Seção 18.12.12] 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 um 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 [#s-s-samba-a-publico Criando um compartilhamento para acesso sem senha, Seção 18.12.7]. 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 [#s-s-samba-a-restr Exceção de acesso na permissão padrão de compartilhamento, Seção 18.12.10] 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 [#s-s-samba-a-restr Exceção de acesso na permissão padrão de compartilhamento, Seção 18.12.10] 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 [#s-s-samba-a-restrusu Restringindo o acesso por usuários, Seção 18.12.4]). 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 [#s-s-samba-a-ro Criando um compartilhamento com acesso somente leitura, Seção 18.12.8].
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.
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 [#s-s-samba-perf Melhorando a performance do compartilhamento/servidor, Seção 18.13] 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 [#s-s-samba-a-comandos Executando comandos antes e após o acesso ao compartilhamento, Seção 18.12.13].

#### postexec

    Executa um comando depois da utilização do compartilhamento. Veja [#s-s-samba-a-comandos Executando comandos antes e após o acesso ao compartilhamento, Seção 18.12.13].

#### 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 [#s-s-samba-a-comandos Executando comandos antes e após o acesso ao compartilhamento, Seção 18.12.13].
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 frequência em produtos de fabricantes proprietários como forma de evitar a execução ilegal do programa.