Fonte: http://centosbr.org/site/artigos/print.php?itemid=178
[global]
Define configurações que afetam o servidor samba como um todo, fazendo efeito em to dos os compartilhamentos existentes na máquina. Por exemplo, o grupo de trabalho, nome do servidor, página de código, restrições de acesso por nome.
[homes]
Especifica opções de acesso a diretórios homes de usuários. O diretório home é disponibilizado somente para seu dono, após se autenticar no sistema.
[printers]
Define opções gerais para controle das impressoras do sistema. Este compartilhamento mapeia os nomes de todas as impressoras encontradas no /etc/printcap.
[profile]
Define um perfil quando o servidor samba é usado como PDC.
Qualquer outro nome de [seção] no arquivo smb.conf são tratados como compartilhamento ou impressora
Agora que entendemos o arquivo de configuração vamos entender como funcionam algumas dessas TAGs.
Primeiro, vamos editar o arquivo de configuração do SAMBA.
Para editar o arquivo basta digitar o comando abaixo, lembrando que você tem que ser um superusuário.
Citando:
#vi /etc/samba/smb.conf
Começaremos pela seção [global] onde esta a grande maioria das TAGs.
Netbios Name
Define o nome NetBIOS primário do servidor, caso não seja citado será usado o hostname da máquina como valor padrão
Ex.: netbios name = Centos-BR
Work Group
Define o nome do domínio.
Ex.: workgroup = CENTOS
Server String
Define a descrição do servidor.
Ex.: server string = Servidor CentosBR
Admin Users
Define quem são os administradores do servidor SAMBA, que também pode ser passado o grupo ou o usuario
Ex. admin users = @administradores
Printer Admin
Define quem são os administradores das impressoras do servidor SAMBA, que também pode ser passado o grupo ou o usuario
printer admin = @admins
Hosts Allow
Hosts permitidos na rede. Esta opção informará ao servidor quais os hosts que poderão “enxergar” a rede. Poderão ser inseridas várias redes, separadas por vírgula ou por espaço em branco. Os endereços devem ser colocados de acordo com o exemplo.
Ex.: hosts allow = 192.168.1. 192.168.2. 127.
Obs.: A rede 127. deverá ser inseria por default, já que representa a rede interna (loopback).
Load Printers
Informa ao servidor se irá carregar as impressoras configuradas automaticamente
Ex.: load printers = yes
Printing
Informa qual o sistema de impressão será adotado pelo servidor.
Os sistemas de impressão podem ser: bsd, sysv, plp, lprng, aix, hpux, qnx. Por padrão é usado o sistema de impressão cups.
Ex.: printing = cups
Cups Options
Informa qual o formato de impressão que será mandado para a fila de impressão. O default é raw, que significa que será mandado independente do tipo de impressora.
Ex.: cups options = raw
Guest Account
Esta TAG informa se terá uma conta convidado (guest) na rede, ou seja, um usuário que não precisa de senha para entrar na rede. Se esta TAG ficar comentada ela recebe o valor default que é nobody
Ex.: guest account = nobody
Log File
Especifica o arquivo de log que será utilizado pelo servidor.
A variável %m indica que o log será gravado por máquina, podendo ser modificado para %u para gravar um log por usuário.
Ex.: log file = /var/log/samba/%m.log
Max Log Size
Informa o tamanho máximo do arquivo de log do servidor, citado em KB.
Ex.: max log size = 50
Security
TAG onde será definida a segurança do servidor, nesta TAG é onde teremos os níveis de autenticação que podem ser:
share
Usada somente quando apenas a senha é enviada por compartilhamento acessado para o servidor, hoje em dia usado muito raramente.
Um detalhe muito importante nesta opção é que a opção de senha criptografada encrypt passwords NÃO funciona com o share.
user
Este é o valor default. O usuário precisa ter uma conta de usuário no Linux para acessar seus compartilhamentos.
domain
Aqui o acesso só será permitido quando a máquina for adicionada ao domínio com o smbpasswd.
server
A máquina samba tentara autenticar o usuário em outro servidor NT (ou samba)
Ex.: security = user
Password Server
Esta TAG deverá ser usada somente se a TAG security estiver definida como server.
Nesta TAG você irá definir em qual máquina será realizada a busca pela senha de domínio.
Ex.: password server =
Password Level e Username Level
Nestas duas TAGs serão definidas o tamanho mínimo de caracteres que serão usados na senha e no nome de usuário.
Ex.: password level = 8
username level = 8
Encrypt Passwords
Esta TAG é a responsável pela encriptação das senhas, o default é yes.
Ex.: encrypt passwords = yes
SMB Passwd File
Informa ao servidor onde buscar a informação de usuário e senha.
Ex.: smb passwd file = /etc/samba/smbpasswd
Unix Password Sync
Esta TAG é usada em conjunto com a passwd program e com o passwd chat e é responsável por sincronizar a senha do domínio com a senha UNIX do usuário. No Passwd Program é especificado o programa usado para gardar as senhas UNIX do usuário e o passwd chat é o questionamento feito pelo sistema para o usuário digitar a nova senha.
Ex.: 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*
Username Map
Com esta TAG você pode criar usuários do domínio diferentes dos usuários UNIX. Aqui você especifica o arquivo onde será gravado os nomes dos usuários.
Ex.: username map = /etc/samba/smbusers
Include
Permite você a customizar a configuração do servidor por máquina, onde o %m indica o nome NetBIOS da máquina.
Ex.: include = /etc/samba/smb.conf.%m
Socket Options
Usado para aumentar a performance no transporte dos dados. A opção TCP_NODELAY já apresenta uma considerável melhoria no acesso a arquivos locais.
Ex.: socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
Interfaces
Aqui você poderá configurar o SAMBA para utilizar múltiplas interfaces, podendo citar as interfaces artavés do endereço IP com ou sem a máscara e também através do nome da interface, separadas por vírgula ou espaço em branco.
Ex.: interfaces = 192.168.12.2/24 eth1 eth2
Obs.: Uma boa prática se for usado uma interface de IP fixo é usar a máscara /32 que representa unicast.
Remote Browse Sync e Remote Anounce
Nestas TAGs você informará onde o servidor sincronizará os nomes NetBIOS das máquinas e onde ele irá publicas estes nomes. Normalmente se usa o endereço de broadcast da rede.
Ex.: remote browse sync = 192.168.3.25 192.168.5.255
remote announce = 192.168.1.255 192.168.2.44
Local Master
Informa se o SAMBA tentará se tornar o Principal Navegador Local, para isto irá depender do valor na TAG OS Level que veremos mais a frente.
Ex.: local master = yes
OS Level
Determina o nível do sistema operacional para processo de eleição do Local Master. Para que o SAMBA vença a eleição ele precisa ter o maior OS Level da rede.
Os OS Levels padrões dos sistemas são:
Windows for Workgroups: 1
Windows 95: 1
Windows 98: 2
Windows 98 Second Edition: 2
Windows 2000 Server (standalone): 16
Windows 2000 Professional: 16
Windows NT 4.0 Wks: 17
Windows NT 3.51 Wks: 16
Windows NT 3.51 Server: 32
Windows NT 4.0 Server: 33
Windows 2000 Server (Domain Controller): 32
SAMBA: 33
Ex.: os level = 66
Domain Master
Infomará se o SAMBA tentará se tornar o controlador de domínio da rede.
Ex.: domain master = yes
Preferred Master
Indica se o SAMBA será o preferido a se tornar controlador de domínio da rede.
Ex.: preferred master = yes
Domain Logons
Use esta TAG se em sua rede tiver máquinas com sistema operacional Windows 95.
Ex.: domain logons = yes
Logon Script
Esta TAG só poderá ser utilizada se domain logons[/] estiver ativo e especifica o arquivo de script logon que será usado. Você poderá utilizar um arquivo por usuário, com a opção [i]%U, por máquina %m ou um arquivo único, apenas citando o nome do arquivo. Lembrando que este arquivo deverá estar cituado dentro da pasta especificada no compartilhamento Netlogon.
Ex.: logon script = %m.bat
logon script = %U.bat
Logon Path
Especifica onde será locado os Profiles dos usuários, onde %L substitui o nome do servidor e o &U o nome do usuário.
Ex.: logon path = \\%L\Profiles\%U
Name Resolve Order
Especifica a ordem dos mecanismos de resolução de nome. O default é host lmhosts wins bcast
Ex.: name resolve order = host lmhosts wins bcast
Wins Support
Definirá se o SAMBA será também um servidor WINS (Resolução de NetBIOS Name)
Ex.: wins support = yes
Wins Server
Se o SAMBA não foi definido como servidor WINS, nesta TAG será definido quem será o servidor WINS através do número IP.
Ex.: wins server = 10.0.0.5
Obs.: Esta opção não deve ser descomentada caso o wins support estiver habilitado.
Wins Proxy
Esta TAG deverá ser usada em conjunto com o Wins Server e define que o SAMBA irá responder a requisições de resolução de nomes de clientes WINS através de outro servidor.
Ex.: wins proxy = yes
DNS Proxy
Define se o SAMBA irá ou não responder requisições de resolução de nomes. Se esta TAG for habilitada o SAMBA irá responder às solicitações via DNS nslookups.
Ex.: dns proxy = no
Preserve Case
Informa ao SAMBA se será preservado as letras digitadas maiúsculas e minúsculas.
Ex.: preserve case = no
short preserve case = no
Default Case
Define se o padrão do sistema terá letras maiúsculas (high) ou minúsculas (lower)
Ex.: default case = lower
Case Sensitive
Informa se terá diferença entre letras maiúsculas e minúsculas.
Ex.: case sensitive = no
Dos Charset
Define qual o tipo de nomenclatura utilizado para o ambiente DOS
Ex. Dos charset = 850
Unix Charset
Define o tipo de nomenclatura utilizado pelo Unix
Ex. Unix charset = ISO8859-1
Time Server
Esta TAG habilita no servidor SAMBA a utilização também de servidor de tempo. Replicando a hora e data setada no servidor, mantendo os clientes sincronizados.
Ex. time server = yes
Finalizando esta seção, partimos para a parte de compartilhamento.
As seções de compartilhamento terão seus nomes definidos por um nome entre “[ ]”.
Ex. [Drivers]
Em seguida veremos algumas TAGs utilizadas nos compartilhamentos.
Path
Indica qual pasta está sendo compartilhada.
Ex. path = /home/samba/sistemas
Comment
Esta TAG define o comentário do compartilhamento que será visto no ambiente de rede windows.
Ex. comment= Pasta compartilhada Livre.
Veto Files
Define quais extensões de arquivos não podem ser gravadas no(s) compartilhamento(s)
Ex. veto files = /*.mp3/*.divx/*.eml/
Obs.: Note que ao final da opção possui uma /, esta barra é obrigatória. Se for vetar apenas um tipo de arquivo deverá ser usado como por exemplo: /*.mp3/
Delete Veto Files
Deleta todos os arquivos com extensões setadas na TAG veto files
Ex.: delete veto files = yes
Valid Users
Esta TAG indica os usuários válidos para acessar o compartilhamento, pode ser utilizada como parâmetro o grupo (colocando um @ antes do nome do grupo) ou o nome do usuário. Para inserir mais de um usuário ou grupo basta separá-los com vírgula ou espaço em branco.
Ex. valid users = gustavo renato @administradores
Read List
Esta TAG serve para limitar os usuários passados para apenas leitura no compartilhamento, pode-se utilizar como parâmetro o grupo (colocando um @ antes do nome do grupo) ou nome do usuário. Para inserir mais de um usuário ou grupo basta separá-los com vírgula ou espaço em branco.
Ex. read list = josé @estagiarios
Write List
Parecido com o Read List, porém, nesta TAG será indicado os usuários ou grupos que podem ter o acesso de escrita ao compartilhamento.
Ex. write list = @administradores
Force Group
Força que todo arquivo criado no compartilhamento pertença ao grupo setado nesta TAG.
Ex. force group = @centosbr
Read Only
Define se o tipo de acesso ao compartilhamento será somente leitura ou não.
Ex. read only = No
Create mask
Define estas permissões a todos os arquivos criados no compartilhamento.
Ex. create mask = 0774
Directory Mask
Define estas permissões a todas as pastas criadas no compartilhamento.
Ex. directory mask = 0775
Hide Dot Files
Esta TAG oculta os arquivos iniciados por “.”(ponto), que no Unix são arquivos ocultos.
Ex. hide dot files = yes
Dos Filemode
Esta TAG Define que a nomenclatura utilizada no compartilhamento será a mesma utilizada no Sistema Operacional DOS.
Ex. dos filemode = yes
Browseable
Define se o compartilhamento estará visível para navegação.
Ex. browseable = no
Guest OK
Define se quaisquer usuários podem acessar este compartilhamento sem precisar de autenticação.
Ex. guest ok = yes
Agora que vimos a parte de compartilhamento do SAMBA, vamos entender um pouco de uma ferramenta muito útil na administração de redes com o SAMBA como controlador de domínio.
O comando net é uma ferramenta para administração do samba e servidores remotos CIFS. Nele existe a opção groupmap que é utilizado para fazer o mapeamento do SID (Windows) com os grupos do Unix, as opções do groupmap são:
unixgroup – Nome do grupo do Unix
ntgroup – Nome do Grupo NT (Que irá ser resolvido para o SID)
rid - Unsigned 32-bit integer
sid – O SID Completo na forma de "S-1-..."
type – Tipo do grupo quo pode ser domain[/], [i]local, ou builtin
comment – Texto livre para descrição do grupo.
Os parâmetros do groupmap são:
net groupmap add
Criar um novo mapeamento de grupos
net groupmap modify
Atualizar um mapeamento de grupo
net groupmap delete
Remover um mapeamento de grupo
net groupmap addmem
Adicionar um apelido para um membro externo
net groupmap delmem
Deleta o apelido do membro externo
net groupmap listmem
Lista os grupos externos
net groupmap memberships
Lista os menbros dos grupos esternos
net groupmap list
Lista os grupos atuais
net groupmap set
Setar um mapeamento de grupo
net groupmap cleanup
Remove as entradas de grupos esternos
Exemplos de comandos net groupmap:
Citando:
# net groupmap list
System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Power Users (S-1-5-32-547) -> -1
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Account Operators (S-1-5-32-548) -> -1
Domain Users (S-1-5-21-1392192516-306617864-1375923666-513) -> -1
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1
Domain Admins (S-1-5-21-1392192516-306617864-1375923666-512) -> -1
Domain Guests (S-1-5-21-1392192516-306617864-1375923666-514) -> -1
Para fazer um mapeamento de grupos existentes utilize o parâmetro modify.
Antes temos que criar os grupos no Unix
Citando:
#groupadd administradores
#groupadd usuarios
Agora podemos fazer o mapeamento.
Citando:
#net groupmap modify ntgroup="Domain Admins" unixgroup=administradores
Updated mapping entry for Domain Admins
Citando:
#net groupmap modify ntgroup="Domain Users" unixgroup=usuarios
Update mapping entry for Damain Users
Note que na saída do comando net groupmap list agora existe um vínculo dos grupos.
Citando:
#net groupmap list
System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Power Users (S-1-5-32-547) -> -1
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Account Operators (S-1-5-32-548) -> -1
Domain Users (S-1-5-21-1392192516-306617864-1375923666-513) -> usuarios
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1
Domain Admins (S-1-5-21-1392192516-306617864-1375923666-512) -> administradores
Domain Guests (S-1-5-21-1392192516-306617864-1375923666-514) -> -1
Agora vamos mostrar como criar outros grupos
Citando:
#groupadd centosbr
#net groupmap add ntgroup="CentosBR" unixgroup=centosbr
No rid or sid specified, choosing algorithmic mapping
Successully added group CentosBR to the mapping db
Citando:
#groupadd sistemas
#net groupmap add ntgroup="Sistema" unixgroup=sistemas
No rid or sid specified, choosing algorithmic mapping
Successully added group Sistema to the mapping db
Note que na saída do comando net groupmap list existem dois novos grupos e que automaticamente foi criado um SID para cada um deles.
Citando:
#net groupmap list
System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
CentosBR (S-1-5-21-1392192516-306617864-1375923666-2007) -> centosbr
Power Users (S-1-5-32-547) -> -1
Sistema (S-1-5-21-1392192516-306617864-1375923666-2009) -> sistemas
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Account Operators (S-1-5-32-548) -> -1
Domain Users (S-1-5-21-1392192516-306617864-1375923666-513) -> usuarios
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1
Domain Admins (S-1-5-21-1392192516-306617864-1375923666-512) -> administradores
Domain Guests (S-1-5-21-1392192516-306617864-1375923666-514) -> -1
Agora que entendemos como funciona o arquivo de configuração, vamos ver um arquivo já configurado como exemplo.
Citando:
[global]
workgroup = CENTOS
netbios name = Centos-SRV
admin users = @admin
server string = Servidor Samba
log file = /var/log/samba/%m.log
max log size = 50
security = user
smb passwd file = /etc/samba/smbpasswd
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*
username map = /etc/samba/smbusers
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
interfaces = eth0
remote browse sync = 192.168.10.255 192.168.5.255
remote announce = 192.168.1.255 192.168.2.44
local master = yes
os level = 66
domain master = yes
preferred master = yes
domain logons = yes
#logon script = script.bat
logon path = \\Centos-SRV\Profiles\%U
name resolve order = hosts lmhosts wins bcast
wins support = yes
dns proxy = no
preserve case = no
short preserve case = no
default case = lower
case sensitive = no
#=========================== Share Definitions ==============================
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[homes]
comment = Home Directories
browseable = no
writable = yes
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
writable = no
share modes = no
[Profiles]
path = /home/samba/profiles
browseable = no
create mask = 0700
directory mask = 0700
guest ok = yes
Depois de configurado corretamente podemos realizar um teste geral testeparm
Dentro da pasta /usr/sbin digite o comando testeparm para verificar se o arquivo está configurado corretamente.
Citando:
[root@vm-ldap sbin]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[netlogon]"
Processing section "[Profiles]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
# Global parameters
[global]
workgroup = CENTOS
netbios name = CENTOS-SRV
server string = Servidor Samba
interfaces = eth0
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*
username map = /etc/samba/smbusers
unix password sync = Yes
log file = /var/log/samba/%m.log
max log size = 50
name resolve order = hosts lmhosts wins bcast
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
logon script = script.bat
logon path = \\Centos-SRV\Profiles\%U
domain logons = Yes
os level = 66
preferred master = Yes
domain master = Yes
dns proxy = No
wins support = Yes
remote announce = 192.168.1.255 192.168.2.44
remote browse sync = 192.168.10.255 192.168.5.255
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
admin users = @admin
case sensitive = No
preserve case = No
short preserve case = No
[homes]
comment = Home Directories
read only = No
browseable = No
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = Yes
share modes = No
[Profiles]
path = /home/samba/profiles
guest ok = Yes
browseable = No
Postar um comentário