#***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# ,o888b,`?88888--*-#####**************#####-*--88888P',d888o, ,8888 888 ?888 Eliel Vieira 888P 888 8888, 8888888P' 888 Niteroi - RJ - 10/12/2004 888 `?8888888 888P' 888 elielvieira@gmail.com 888 `?888 `88 O d888 http://elielvieira.go.to 888b O 88/' `?._ _.o88888--*-#####**************#####-*--88888o._ _.P' #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# Como Instalar/Configurar/Utilizar o Samba: ###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq Instalação: [root@localhost /mnt/cdrom/conectiva/RPMS]# rpm -ivh samba-numero_da_versao-1.rpm ou... [root@localhost /mnt/cdrom/conectiva/RPMS]# tar -zxvf samba_numero_da_versao-1.tar.gz [root@localhost /mnt/cdrom/conectiva/RPMS]# ./configure [root@localhost /mnt/cdrom/conectiva/RPMS]# make [root@localhost /mnt/cdrom/conectiva/RPMS]# make install Obs.: Deverá ser instalado primeiro o pacote common no conectiva e outros pacotes no caso do mandrake. ###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq 1. Verifique se o mesmo está instalado e funcionando corretamente: [root@localhost /root]# samba start Iniciando os serviços SMB: [ OK ] Iniciando os serviços NMB: [ OK ] [root@localhost /root]# obs.: Pode ser executado o comando: samba start (conectiva) ou /etc/rc.d/init.d/smb start (redhat e mandrake) 2. Criar um diretório para compartilhamento e acesso(completo) por outras máquinas: [root@localhost /root]# cd / [root@localhost /]# mkdir /elielvieira [root@localhost /]# chmod 777 /elielvieira 3. Configurar o arquivo /etc/samba/smb.conf(redhat) ou /etc/smb.conf(conectiva 7,8 e 9) - para dizer que tal pasta criada está disponível na rede. Deverá ter o seguinte conteúdo: [root@localhost /]# vi /etc/smb.conf [global] workgroup = GRUPO_CPD netbios name = MAQUINA_ELIEL server string = Samba por Eliel Vieira security = SHARE wins server = 192.168.0.1 encrypt password = yes [arquivos] comment = Servidor Linux path = /elielvieira read only = No guest ok = yes browsetable = yes Obs.: [root@localhost /]# vi /etc/smb.conf (conectiva) ou [root@localhost /]# vi /etc/samba/smb.conf (redhat, mandrake e conectiva 10) 4. Feita as configurações acima, deverá ser reinicializados os serviços do samba: [root@localhost /]# samba restart Interrompendo os serviços SMB: [ OK ] Interrompendo os serviços NMB: [ OK ] Iniciando os serviços SMB: [ OK ] Iniciando os serviços NMB: [ OK ] [root@localhost /]# obs.: Pode ser executado o comando samba restart (conectiva) ou /etc/rc.d/init.d/smb restart (redhat) 5. Agora acesse o ambiente de rede em uma maquina windows e pronto! 6. Para que esta máquina linux enxergue uma outra linux ou windows: [root@lab03bit05 windows]# smbclient -L maquina_eliel [root@lab03bit05 windows]# mount -t smbfs //maquina_eliel/arquivos /mnt/windows 7. Para adicionar usuários no linux e no samba: [root@lab03bit05 windows]# adduser eliel [root@lab03bit05 windows]# passwd eliel [root@lab03bit05 windows]# smbadduser eliel:cpd ou no conectiva 10 (com samba 3.0.1): [root@lab03bit05 windows]# pdbedit -a -u eliel 8. Para ver os usuarios e grupos cadastrados: [root@lab03bit05 windows]# cat /etc/smbusers 9. Configurar o arquivo /etc/samba/smb.conf(redhat e mandrake) ou /etc/smb.conf(conectiva 7,8 e 9) - para dizer que a pasta do usuário estará disponível na rede. Deverá ter o seguinte conteúdo: [root@localhost /]# vi /etc/smb.conf [global] # workgroup = NT-Domain-Name or Workgroup-Name workgroup = computerlife # server string is the equivalent of the NT Description field server string = Servidor de Arquivos do Samba em Server01 security = user encrypt password = yes #============== Share Definitions ============== [arquivos_de_eliel] comment = Servidor Linux path = /home/eliel read only = No guest ok = yes browsetable = yes valid users = root flavio julio rita lincoln alexandre eliel # Access of directorys homes [homes] comment = Home Directories browseable = yes writable = yes path = /home/%u # Un-comment the following and create the netlogon directory for Domain Logons [alunos] comment = Diretorio de Armaz. de Dados dos Alunos da Bit Company path = /home/alunos guest ok = yes writable = yes share modes = no read only = no # Access for teachers [instrutores] comment = Diretorio de Armaz. de Dados dos Instrutores da Bit Company path = /home/instrutores guest ok = yes writable = no share modes = no read only = no valid users = eliel alan antonio julio diego tamiro rony cibelly priscilla 4. Feita as configurações acima, deverá ser reinicializados os serviços do samba: [root@localhost /]# samba restart Interrompendo os serviços SMB: [ OK ] Interrompendo os serviços NMB: [ OK ] Iniciando os serviços SMB: [ OK ] Iniciando os serviços NMB: [ OK ] [root@localhost /]# obs.: Pode ser executado o comando samba restart (conectiva), /etc/rc.d/init.d/smb restart (redhat) ou service smb start (conectiva 10) ###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq### 1a. Revisão em 31/03/2005 2a. Revisão em 12/05/2005 ###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq###mnq### M O D E L O E X P L I C A T I V O D O A R Q U I V O smb.conf vi /etc/smb.conf [global] # A Seção [global] significa que a configuração especificada abaixo, # aplicam-se ao servidor ou são gerais. Enfim é a base para o funcionamento # do samba # Especifica a quantidade de memória do servidor SAMBA # quanto mais melhor, mas 10MB já é bastante # para umas 5 a 10 estações. ;shared mem size = 1048576 # Nome o workgroup que as estações Windows irão apontar workgroup = MYGROUP # Observação que irá aparecer sobre o computador, e caso a observação do # compartilhamento esteja vazio o compartilhamento usará essa observação. server string = Servidor de Samba %h - Versão %v # Especifica o tipo de servidor nmbd (Servidor de Nomes NetBIOS) que será # divulgado na rede. O padrão é igual a Windows NT. As opções válidas são # "NT", "NT Server", "NT Workstation", "Win95" ou "WfW" . Exemplo: ; announce as = NT Server # O diretório-base dos logon scripts é o volume [netlogon]. No exemplo, se o # diretório de compartilhamento netlogon for igual a "/home/samba/netlogon", # o script do usuário "roberto" seria procurado em # /home/samba/netlogon/roberto.bat ;logon script = %U.bat # Este parâmetro define o conjunto de máquinas que podem acessar o servidor # samba. Pode-se utilizar o nome ou o endereço IP da máquina. # # É possível, por exemplo, restringir o acesso a somente uma sub-rede de # classe C, como em "allow hosts = 150.203.5.". Pode-se ainda usar o sub # parâmetro "EXCEPT" para excluir-se alguma(s) máquina(s), como por # exemplo: ;hosts allow = 150.203. EXCEPT 150.203.6.66 150.203.15.0/255.255.255.0 # Abaixo abre acesso para lapland e somente hosts no nis com o grupo da net: # foonet ;hosts allow = lapland @foonet # Exatamente o oposto do parâmetro anterior, já que aqui podem ser # listadas todas as máquinas que não devem ter acesso aos serviços. ;hosts deny = 150.203.5. minha_máquina.domínio.com.br # Carrega a configuração das impressoras que estão # instaladas no servidor samba printcap name = /etc/printcap load printers = yes # Seleciona o tipo de impressão padrão, caso não funcione normalmente. # bsd, sysv, plp, lprng, aix, hpux, qnx ; printing = bsd # Transforma todos os usuários que de algum modo foram indicados como # visitantes em usuário guest ; guest account = guest # Criará um arquivo de log para cada usuário. Ex. log.renato # É possível usar %m para obter logs por maquinas log file = /var/log/samba/log.%u # Tamanho máximo permitido para um log. max log size = 50 # Nível do log, enquanto maior mais detalhes são mostrados. É recomendado # usar até 2 e o nível 0 representa nenhum. debug level = 1 # Máquinas Windows tendem a travar de tempos em tempos. Este # parâmetro é utilizado para verificar o estado da conexão, a cada 20 # segundos. keepalive = 20 # Autenticação de usuários - Modalidade de segurança # # "security=share": Sem segurança. Todo e qualquer usuário será aceito. As # operações de arquivo e impressão serão executadas com as permissões do # usuário UNIX associado ao hóspede (guest account = ...). Se você escolher # essa modalidade, verifique se o usuário UNIX terá permissões suficientes # para acessar arquivos e, se for o caso, imprimir. Assim senhas de acesso # são solicitadas por recurso compartilhado e não por usuário. Ou seja cada # diretório ou impressora poderá ter uma senha única conhecida por todos os # usuários autorizados. # # "security=user": Segurança por usuário, local. A senha do usuário é # reduzida a letras minúsculas e confrontada com a senha UNIX. Essa # modalidade de segurança obriga que os usuários sejam cadastrados no Linux, # e suas senhas sejam atribuídas corretamente. As operações sobre arquivos e # de impressão serão feitas com a permissão do respectivo usuário UNIX. # Todavia, pode-se abrir aos hóspedes o acesso a determinados volumes ou # impressoras - para esses objetos, a segurança operará no estilo SHARE. # # "security=server": Segurança por usuário, remota. O Samba pega o nome de # usuário e a senha, e autentica junto a outro servidor, que poderá ser # outro Linux rodando Samba, ou um Windows NT. Apesar da autenticação ser # remota, ainda é necessário criar os usuários UNIX localmente em # determinados casos. # # "security=domain": Segurança por usuário, remota. Praticamente idêntica à # modalidade SERVER, porém convive com instalações mais complexas onde # existem computadores NT operando como PDCs (primary domain controllers) e # BDCs (backup domain controllers). Nesse modo, mais de um servidor de # autenticação pode ser especificado na linha password server do arquivo de # configuração. (O suporte do Samba a domínios do NT ainda é incompleto e # deve estar pronto na versão 2.1; por ora, a modalidade DOMAIN não difere # muito da modalidade SERVER.) security = user # Quando tentarem efetuar um login, e o usuário ou a senha não sejam # válidos, será repassado para o usuário visitante: # Onde são válidos: "Bad User" (mau usuário), "bad password" (má senha) # ou "never" (não será repassado para o usuário visitante). map to guest = Bad User # Servidor de senhas, ou seja, o nome NetBIOS da máquina junto a qual # o Samba vai autenticar os usuários. ;password server = Senhs_server # Especifica o nome do servidor de usuários e senhas, quando especificado # security = server ; password server = # Quando a senha não for válida tente 8 modos diferentes. Ex.: Para uma # senha ou usuário abcdefgh, tente # abcdefgh Abcdefgh aBcdefgh ... ABCDEFGh ABCDEFGH ; password level = 8 ; username level = 8 # O Windows 98, bem como versões mais recentes do Windows NT Workstation, # transmitem senhas criptografadas no processo de autenticação. Como não é # possível usar o mesmo padrão de criptografia, é necessário executar o # programa smbpasswd para a criação de senhas criptografadas. ; encrypt passwords = yes ; smb passwd file = /etc/smbpasswd # É usado para sincronizar a alteração de senhas feitas no windows, para o # servidor linux. ; 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* # Usuários UNIX não precisam necessariamente ter o mesmo nome dos # usuários NetBIOS. A tabela /etc/smbusers permite estabelecer # equivalências entre nomes dessemelhantes. ; username map = /etc/smbusers # Esta opção é um tuning de performance. # Em muitos casos ela realmente melhora o desempenho. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # É o tamanho do pacote de dados enviado para as # estações, normalmente é melhor deixar tudo com 16Kb # em se tratando de interfaces de rede tipo NE2000 ;max xmit = 16384 # Esta opção indicara para as máquinas da rede 192.168.2.255, que esta # máquina estará no grupo de trabalho CONECTIVA, além do grupo original. ; remote announce = 192.168.2.255/CONECTIVA # Está opção vai anunciar para outra rede, que existe o workgroup remoto # e que pode ser acessado. ; remote browse sync = 192.168.3.25 192.168.5.255 #Navegador-mestre local (local master browser) # É um servidor onde são guardados os nomes das máquinas que existem na rede # windows. # Configure a seguinte opção como 'no' se você não quiser que o Samba # torne-se um mestre local. Do contrário, as regras normais de eleição # é que valerão. (ou seja, local master = yes NÃO garante que o Samba # seja o mestre local) local master = yes # Nïvel do sistema operacional, que determina sua preferência em # tornar-se mestre local. Quanto maior o número, maior a chance de o # servidor tornar-se um mestre. O padrão do windows nt é 32. Evite colocar o # mesmo número que alguma máquina windows, pois a mesma não gosta de perder # eleições para máquinas linux que tenham o mesmo número. os level = 33 ## Se a seguinte linha for configurada como 'yes', o Samba será o # navegador-mestre do DOMÍNIO. Não use esta opção se você já tem um # servidor NT que seja o PDC. ; domain master = yes # Esta opção força uma eleição para mestre local quando o Samba é # acionado, e lhe dá uma pequena vantagem na disputa. # # NÃO habilite esta opção em mais de uma máquina, do contrário # os diversos 'preferred masters' vão ficar promovendo eleições # para mestre o tempo todo; isso causará tráfego inútil de rede # e pode prejudicar a qualidade das listas de navegação i.e. elas # poderão não conter todas as máquinas da rede e não ficará tão lento, se # tudo estiver configurado corretamente. preferred master = yes # Use somente se existe um nt server em sua rede, configurado para ser o # primeiro domínio de controle ; domain controller = # Caso seja habilitado, tornará o linux um domínio de login, para estações # windows 95 ; domain logons = yes # sicroniza a data do sevidor para as estações. # interessante para ter controle sobre data/hora # de criação de arquivos e coisas do genero # E em sua máquina windows/dos digite para configurar a hora: # net time /set /yes time server = True # É a forma de como será procurada a máquina: # As opções são: "lmhosts", "host", "wins" e "bcast" # lmhosts - Tenta usar um arquivo de configuração do samba # hosts - Tenta resolver o nome pelo ip, usando o /etc/hosts, o nis ou o dns # wins - Procura o ip no servidor wins # bcast - Procura a máquina por Broadcast # # É recomendável deixar sempre o bcast como último recurso, pois assim # pelo menos a rede local continuará funcionando se por acaso ficar # isolada das demais redes. name resolve order = wins lmhosts bcast #A comunicação inter-redes # wins grava as informações repassadas pelos servidores masters de cada rede # e possibilita que uma rede converse com outra # Ao retransmitir essas informações do mestre de domínio, o mestre obtem a # lista de servidores mestres do servidor wins, essa retransmissão demora # em média 15 minutos, e usa endereços ip. ; wins support = yes # Indique aqui o IP do servidor WINS da instalação. Se o computador # for ele mesmo o servidor WINS (a linha 'wins support = yes' está # ativa), não use esta opção, pois do contrário o Samba acabará conectando # a si mesmo, recursivamente, e *travará*. ; wins server = 10.120.1.26 # Se o nmbd responder às perguntas do nome da transmissão em nome de outras #máquinas. Você pode necessitar ajustar este a " sim " para alguns clientes mais velhos. ; wins proxy = yes # Diz ao samba se é ou não para tentar resolver nomes netbios, atraves do # nslookup do DNS. dns proxy = no # Diz para o SAMBA preservar o nome do arquivo como foi enviado pela estacao ;preserve case = yes # Diz para o SAMBA interpretar minúsculas como # minúsculas. ;short preserve case = yes # Se a máquina possuir mais de uma placa de rede, é necessário estabelecer # em que interface(s) o Samba vai atuar. Note que isto NÃO é suficiente # para evitar conexões originárias de redes diferentes da(s) # especificada(s), # pois os soquetes UDP do Samba "ouvem" em todas as interfaces. Veja # a linha "hosts allow", mais acima, para configuração de segurança. # # No exemplo abaixo, a máquina tem 2 intefaces, cujos números IP e # netmasks estão bem óbvios. ;interfaces = 168.1.1.1/24 10.120.1.24/16 # A seção [homes], epecifica que deve ser ativado um serviço que permite o #acesso aos diretório pessoais de seus respectivos usuários. Isto é permite #que os usuários acessem seu home. [homes] comment = Diretórios Pessoais # Evita que os diretórios pessoais sejam vistos por outros usuários browseable = no # Samba proíbe por padrão a gravação em recursos exportados. # O parâmetro a seguir permite que os usuários possam gravar em # seus diretórios pessoais. read only = no # Permite que apenas o hóspede(convidado) tenha acesso ao volume ou # impressora que contiver o parâmetro 'guest only = yes' guest only = no # writeable é parecido com o writable, e permite que exista gravação no # compartilhamento writeable = yes # A seção [printers] especifica como se configura uma impressora, para ser #usada pelo samba, ou faz o sistema ler as configurações do printcap. # # A configuração abaixo fará com que os usuários das # estações Windows vejam todas as impressoras do # servidor. [printers] #Este parâmetro define o nome da impressora para a qual os serviços de #impressão serão enviados. Exemplo: ;printer name = laserwriter comment = Spool de Impressao path = /var/spool/samba # Controla se o compartilhamento será visualizado na lista de recursos # disponíveis. O padrão é browseable = no # Caso este parâmetro seja definido como 'yes' para um serviço, então # nenhuma senha será solicitada ao usuário. Os privilégios serão iguais # aos definidos para a conta "guess account" definida no parâmetro # anterior. Exemplo: guest ok = no #Caso este parâmetro seja definido como "no", não será permitida a #criação ou modificação de arquivos no diretório compartilhado. #Note-se que o parâmetro "printable = yes" sempre permitirá a gravação #através de operações de geração de arquivos temporários de impressão. # Exemplos: ;read only = no ;writeable = yes ;write ok = yes # São iguais printable = yes # caso public seja = yes não é necessário possuir uma senha para entrar no # compartilhamento public = no read only = yes # Este parâmetro permite que a seção atual seja uma cópia de qualquer seção # anterior. Caso haja necessidade de alterar um parâmetro, basta informá-lo na # seção atual. # Esta funcionalidade é muito útil para a criação de modelos que podem ser # replicados e rapidamente alterados para todos os recursos compartilhados. [home] copy = homes guest ok = yes read only = yes # Especifica o diretório ao qual o usuário do serviço terá acesso. No # caso de impressoras, será o diretório de arquivos temporários de # impressão. Exemplo: [PUBLICO] comment = Diretorio Publico path = /home/samba public = yes guest ok = yes printable = no #Permite configurar o número máximo de conexões simultâneas a esse #serviço. Exemplo: ;max connections = 10 # Permite definir um limite aparente da área em disco que pode ser # utilizada pelo compartihamento. A unida padrão é igual a Mb # (megabytes). Exemplo: ;max disk size = 250 # Para compartilhar o CD-ROM do servidor nas estações # Usa o mesmo princípio do diretorio PUBLICO [CDROM] comment = CD-Rom SAMBA path = /mnt/cdrom read only = yes public = yes # Permite a gravação no spool printable = no guest ok = yes browseable = yes #Permite definir os usuários que terão privilégios de administração do #compartilhamento, ou seja terão poderes de superusuário. E pode ser usado a #qualquer seção de compartilhamentos. Exemplo: ;admin users = renato, teste # Descomentando, os seguintes críam o diretório do netlogon para login's de # uma sessão do domínio. ; [netlogon] ; comment = Network Logon Service ; path = /home/netlogon ; guest ok = yes ; writable = no ; share modes = no # A impressora privada, será usada somente por fred. Os dados do spool serão colocados # no diretório home, usado somente por fred. Abaixo o usuário terá acesso de # gravação para o diretório spool ;[fredsprn] ; comment = Eliel's Printer # Valid users é usado para especificar quais os usuários que podem usar o # serviço. E inválid users, expecifíca quais não tem acesso. Caso deseje # trabalhar com um grupo use @ ; invalid users = @user ; valid users = eliel ; path = /homes/eliel ; printer = freds_printer ; public = no ; writable = no ; printable = yes # Quando o sistema for carregar um arquivo é para ele utilizar as permissões: ;force create mode = 775 ;force directory mode = 2775 # no compartilhamento abixo, cada máquina terá um compartilhamento # diferente. # Pode ser usado uma configuração por usuários, para isso, basta substituir # o %m por %u ;[pchome] ; comment = PC Directories ; path = /usr/pc/%m ; public = no ; writable = yes ESC: wq Obs.: Os # e ; são comentários. #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# ,o888b,`?88888--*-#####**************#####-*--88888P',d888o, ,8888 888 ?888 Eliel Vieira 888P 888 8888, 8888888P' 888 Niteroi - RJ - 10/12/2004 888 `?8888888 888P' 888 elielvieira@gmail.com 888 `?888 `88 O d888 http://elielvieira.go.to 888b O 88/' `?._ _.o88888--*-#####**************#####-*--88888o._ _.P' #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***# #***##rmldrsdlvrvr###rmldrsdlvrvr##rmldrsdlvrvr###rmldrsdlvrvr##***#