terça-feira, 2 de agosto de 2016

Um Servidor DHCP com subredes e impressora .

Configurando o servidor DHCP para gerenciar sub-redes

Esta configuração  um outro exemplo de um Servidor DHCP.
vejamos o exemplo desta configuração:

#Define valores globais para todo o sistema
max-lease-time 604800;
default-lease-time 86400;
option domain-name "Minha.rede.br";
option domain-name-servers 10.10.0.2, 10.10.0.101;
option pop-server 10.10.0.106;

#Define  endereços dinâmicos 

subnet 10.10.0.0 netmask 255.255.0.0 {
#  roteador  principal,

option routers 10.10.0.7; 
option broadcast-address 10.10.255.255;
range 10.10.0.10 10.10.0.30;
}
#
subnet 10.10.3.0 netmask 255.255.255.0 {
option routers 10.10.3.202;
option broadcast-address 10.10.3.255;
range 10.10.3.31 10.10.3.50;
}
#
subnet 10.10.4.0 netmask 255.255.255.0 {
option routers 10.10.4.208;
option broadcast-address 10.10.4.255;
range 10.10.4.51 10.10.4.70;
}
#
# Define os host dos clientes que obteram
endereços IP estáticos
#
group {
use-host-decl-names true;
host lab100 {
  hardware ethernet 00:80.c7:aa:a8:04;
   fixed-address 10.10.0.2;
}
#
host lab110 {
 Hardware ethernet 00:00:c0:a1:5e:10;
  fixed-address 10.10.0.101;

}
#
###Reservando IPs Fixos para Impressora e Servidor de Arquivos
 host impressora_A {
  hardware ethernet 00:03:11:11:11:11;
   fixed-address 192.168.1.10;
    }
#
 host servidor_arquivos {
   hardware ethernet 00:01:12:12:12:12;
    fixed-address 192.168.1.11;
    }


}

Executar um script automaticamente ao iniciar o sistema


E muito comum a gente criar um script e querer que ele  execute automatica durante o system init, veja como é simples.

criei um arquivo bash o autocleam.sh e queria que  ele executase sempre ao iniciar o sistema.

para isso e  preciso criar um link do arquivo entro do difretorio /etc/rc.d

1) Criei um arquivo em /doc/  nomeado de autcleam.sh,

2) Para que ele possa executar e preciso mudar as permissões tornando o arquivo executável, isso  é feito com o comando chmod veja:

chmod +x autocleam.sh

3)  depois e preciso criar um link em  /etc/rc.d/  isso e feito com o comando ln
assim:

ln -s /doc/autocleam.sh /etc/rc0.d/

e preciso  rebootar o sistema para que o link funcione.


ANTERIOR                                                                                                               PROXIMA

Configurar Interface de Rede Cliente no Debian

Configurar Interface de Rede Cliente

Podemos configurar a maior parte do trabalho a partir do arquivo de configuração interfaces /etc/network/interfaces.

Podemos configurar os IP de rede Cliente de duas maneiras, automaticamente
através do DHCP, ou declarando um IP fixo manualmente.

Configurando um IP estático manualmente.
Allow-hotplug eth0;

iface eth0 inet static
        address 192.0.2.7
        netmask 255.255.255.0
        gateway 192.0.2.254

Com ipv6
iface eth0 inet6 static
       
address
2001:db8::c0ca:1eaf

       
[parcial]netmask
255.255.255.0
       
gateway
2001:db8::1ead:ed:beef

Configurando Uma interface para receber o IP
automaticamente pelo  DHCP-SERVER;

auto eth0
   
allow-hotplug
eth0
    iface
eth0 inet dhcp
Alternativamente, podemos autoconfigurar IPv6 utilizando o SLAAC (stateless address autoconfiguration), que se especifica utilizando auto em vez de dhcp:
    iface
eth0 inet6 auto

ANTERIOR

segunda-feira, 1 de agosto de 2016

Servidor DHCP Debian configuração Básica.


Configuração Básica de um Servidor DHCP



DHCP (para Dynamic Host Configuration Protocol) é um protocolo pelo qual uma máquina pode receber automaticamente sua configuração de rede no momento de inicialização, ele provê muitos parâmetros relacionados a redes. Os mais comunsdesses são um endereço IP e a rede a qual a máquina pertence, mas ele também pode prover outras informações, como servidores DNS, servidores WINS, servidores NTP, e assim por diante.
A Internet Software Consortium (também envolvida no desenvolvimento do bind) é a principal autora do servidor DHCP. O pacote Debian correspondente é o isc-dhcp-server.
Os primeiros elementos que precisam ser editados no arquivo de configuração de um servidor DHCP (/etc/dhcp/dhcpd.conf) são o nome de domínio e os servidores DNS. Se esse servidor é o único na rede local (como definido pela propagação broadcast), a diretiva authoritative também tem que ser ativada (ou descomentada). Também é necessário criar uma seção subnet descrevendo a rede local e a informação de configuração a ser fornecida. O exemplo a seguir descreve uma rede local 192.168.0.0/24 com um roteador em 192.168.0.1 servindo de gateway. Endereços IP disponíveis estão no intervalo de 192.168.0.128 até 192.168.0.254.
Exemplo . Trecho do /etc/dhcp/dhcpd.conf
#
# Sample configuration file for ISC dhcpd for
Debian
#
Proxima

# The ddns-updates-style parameter controls
whether or not the server will
# attempt to do a DNS update when a lease is
confirmed. We default to the
# behavior of the version 2 packages ('none',
since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style interim;

# option definitions common to all supported
networks...
option domain-name "Minha.rede.com";
option domain-name-servers ns.Minha.rede.com;

default-lease-time 800;
max-lease-time 8200;

# If this DHCP server is the official DHCP
server for the local
# network, the authoritative directive should be
uncommented.
authoritative;

# Use this to send dhcp log messages to a
different log file (you also
# have to hack syslog.conf to complete the
redirection).
log-facility local7;

#
My subnet
subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option broadcast-address 192.168.0.255;
    range 192.168.0.128 192.168.0.254;
    ddns-domainname "internal.falcot.com";
}
Um recurso legal é o registro automatizado de clientes DHCP em uma zona DNS, para que cada máquina receba um nome significativo (ao invés de alguma coisa impessoal como machine-192-168-0-131.Minha.rede.com). Usar esse recurso requer a configuração do servidor DNS para aceitar atualizações para a zona DNS Minha.rede.com a partir do servidor DHCP, e configurar esse último para submeter atualizações para cada registro.
No caso do bind, a diretiva allow-update precisa ser adicionada a cada uma das zonas que o servidor DHCP deve editar (uma para o domínio Minha.rede.com, e uma para a zona reversa). Essa diretiva lista o endereço IP que tem permissão para realizar essas atualizações; ela deve então conter os possíveis endereços do servidor DHCP (tanto o endereço local quanto o endereço público, se apropriado).
allow-update {
127.0.0.1 192.168.0.1 212.94.201.10 !any };
Esteja atento! Uma zona que pode ser modificada será alterada pelo bind, e esse último irá sobrescrever seus arquivos de configuração em intervalos regulares. Como esse procedimento automatizado produz arquivos que são menos legíveis por humanos que os escritos manualmente, os administradores da Falcot lidam com o domínio Minha.rede.com com um servidor DNS delegado; isso significa que o arquivo de zona rede.com continua firmemente sob controle manual.
O trecho da configuração do servidor DHCP acima inclui as diretivas necessárias para atualização da zona DNS: elas são as linhas ddns-update-style interim; e ddns-domain-name "Minha.rede.com"; no bloco que descreve a subrede.



#/etc/init.d/isc-dhcp-server restart
Pronto, nosso servidor está rodando.
                                                                                                                                                                              ANTERIOR                                                                             PROXIMA


Extraido de :
https://www.debian.org/doc/manuals/debian-handbook/sect.dhcp.pt-br.html

domingo, 31 de julho de 2016

O protocolo dhcp-server instalação


Protocolo DHCP

DHCP é um acrônimo para Protocolo de Configuração Dinâmica de computador [Dinamic Host Configuration Protocol]. É um protocolo cliente/servidor, que possibilita computadores clientes recebam configurações TCP/IP dinamicamente. 
Esta funcionalidade tem muita importância em grandes redes, pois o controle das configurações TCP/IP são feitas de forma centralizada e automática, liberando um tempo de serviço precioso para o administrador,  da para pensar em  configurar IPs manualmente numa rede  de 1000 clientes.
O cliente quando iniciado, envia um pedido de configuração (request) em broadcast e espera a resposta de um servidor e tão somente o servidor e capaz de ouvir a solicitação.
 E a resposta do servidor são as informações específicas propriamente ditas. O servidor escuta a porta 67 e transmite na porta 68.
dhcp configura automaticamente  os ip de todas as  interfaces que estiverem configuradas para receber  o seu IP via DHCP.
A atribuição ded IPS pelo DHCP  segue um ritual..

1º - dhcpdiscover --> pedido do  cliente a toda rede, e somente o servidor ira reconhecer esta solicitação
2º - dhcpoffer --> O servidor envia uma oferta de Ip para a maquina solicitante.
3º - A maquina solicitante aceita  a oferta de ip e envia o  dhcprequest
4º - O servidor então envia o dhcpack, que configura o endereço do ip para a maquina.

Uma vez que o cliente, antes da inicialização, não possui endereço IP, como ele pode  se comunicar com o servidor?
Na verdade, toda comunicação inicial entre o cliente e o servidor independe do protocolo IP, utilizando protocolo a nível de enlace para que um cliente e o servidor negocie os parâmetros de configuração necessários.
Esta negociação é realizada por mensagens transmitidas por difusão  (broadcast] na sub-rede, sendo limitada a estações fisicamente conectadas na mesma rede.
Uma vez estabelecido esta negociação inicial, a comunicação pode ser baseada no protocolo IP. Para saber mais sobre este processo de negociação, consulte a RFC2131 disponibilizada no endereço http://ftp.rfc-editor.org/in-notes/rfc2131.txt.
o protocolo de enlace que o DHCP utiliza é baseado no BOOTP - acrônimo de BOOTstrap Protocol - que é um protocolo que permite que estações sem disco rígido inicializem-se pela rede, carregando e inicializando o sistema operacional pela própria rede, além de obter vários parâmetros essenciais para o funcionamento da estação na rede, como seu próprio endereço IP, através de um servidor BOOTP na rede.
Por isso, o protocolo DHCP é considerado como uma extensão do BOOTP, por ser apenas um subconjunto do complexo protocolo BOOTP.



O DHCP também é um protocolo essencial para provedores Internet, uma vez que permite que clientes obtenham dinamicamente seus parâmetros quando se conectam no provedor, via linha discada,
por exemplo.
Assim, toda vez que um cliente estabelece uma conexão com o servidor, geralmente um novo endereço IP é obtido. Se o DHCP não for utilizado, todo cliente deveria ser configurado estaticamente, cada um com um número IP exclusivo, o que seria inviável na prática. Para um provedor com 1000 clientes, por exemplo, deveria se ter disponível 1000 endereços IP's, o que seria impraticável levando se em conta a escassez dos endereços IP. Além disto, seria totalmente inviável a administração destes números IP's, com a entrada e saída de novos clientes.
Não existem muitas implementações de DHCP para Linux licenciados sob a GPL, talvez seja devido ao grande sucesso do DHCP do ISC (ISC DHCP)- Internet Software Consortium - http://www.isc.org - que é a implementação mais popular, disponível em quase todas as distribuições de Linux. Além deste software além de ser considerado muito bom, é totalmente disponibilizado sob a GPL. Outra boa alternativa de DHCP é o DHCP conjugado com BOOTP criado pela Universidade de Carnegie Mellon (CMU BOOTP/DHCP) mantido pela Universidade de Princeton, disponível no endereço: http://www.net.princeton.edu/software/dhcpd/. Neste documento iremos enfocar no ISC DHCP. Toda vez que citarmos DHCP estaremos referindo ao ISC DHCP, existem várias outras implementações do DHCP comerciais, geralmente implementadas por empresas donas de sistemas operacionais, como: Microsoft, Novell, Cisco, IBM, HP e Sun.

Instalando o DHCP

O DHCP está disponível através de pacotes RPM - arquivos binários que podem ser instalados através da ferramenta RPM - porém também é possível obter o código fonte do programa, compilar e instalar.
Instalando o DHCP através de arquivos binários
Os pacotes RPMs disponibilizados são: dhcpcd (cliente) e dhcp (servidor), execute:
#rpm -ivh dhcp*
dhcp        
###########################################################
dhcpcd      
###########################################################
O primeiro pacote é referente ao DHCP daemon servidor, baseado no ISC DHCP. Além de instalar o binário do daemon DHCP (dhcpd), também instala a documentação oficial e as páginas de manual. O segundo pacote é referente a um daemon cliente DHCP de autoria de Sergei Vizniuk.
%T% o pacote original via código-fonte do ISC DHCP fornece um cliente DHCP denominado dhclient, porém este não é disponibilizado no pacote RPM do Linux Conectiva. Isto é devido às limitações do cliente dhclient, que além de não ser implementado como daemon, também não tem as várias funcionalidades que o dhcpcd - DHCP Client Daemon, de Sergei Vizniuk - possui.

Instalando o DHCP através do código fonte

O protocolo DHCP geralmente é implementado através de um daemon cliente (dhclient ou dhcpcd) e um daemon servidor (dhcpd).
%PASSO% O código-fonte está disponível no endereço www.isc.org ou via FTP anônimo em ftp://ftp.isc.org/isc/dhcp. Esta implementação engloba o servidor dhcpd, assim como o cliente dhclient. Faça download do arquivo que contém os fontes, descompacte-o utilizando o comando tar, em seguida compile-o e instale-o. Vejamos:
#cp dhcp-2.0pl5.tar.gz /usr/local/src
#cd /usr/local/src
#tar xvfz dhcp-2.0pl5.tar.gz    
#cd dhcp-2.0pl5
#./configure
#make
#make install
Basicamente este comando instala o daemon DHCP, em /usr/sbin/dhcpd; o cliente DHCP, em /usr/sbin/dhclient, porém este não é muito utilizado na prática; e as páginas de manual do comando. Veja também disponibilizado uma amostra de arquivo de instalação, disponível em server/dhcpd.conf.
Um cliente bastante utilizado é o dhcpcd, de autoria de Sergei Vizniuk. Seu código fonte é disponível em ftp://ftp.phystech.com/pub. Para maiores informações sobre a utilização deste cliente, acesse o endereço: http://www.scrounge.org/linux/dhcpcd.html.
A vantagem de compilar diretamente o código fonte é que esta maneira é genérica para qualquer distribuição, ou seja, a forma apresentada acima, desde que se tenha pré-instalado as bibliotecas padrões do linux, o compilador gcc e o utilitário de execução de scripts de compilação make, pode ser usada em todas distribuições. Para maiores informações, veja o README que acompanha o pacote para maiores detalhes.

Podemos instalar o dhcp pela ferramenta apt.
Existem dois pacotes entre os quais devemos escolher para instalar o nosso servidor: dhcpd e dhcp3-server nas versões atuais e o isc-dhcp-server.
lab152:~# apt-get install isc-dhcp-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
dhcp3-common
The following packages will be REMOVED:
dhcp
The following NEW packages will be installed:
dhcp3-common dhcp3-server
0 upgraded, 2 newly installed, 1 to remove and
384 not upgraded.
Need to get 684kB of archives.
After unpacking 1127kB of additional disk space
will be used.
Do you want to
continue? [Y/n]
Anterior                                                                                                                Proxima 

As funções do Poderoso Editor de Textos VI ou VIM

As funções do Poderoso Editor de Textos VI ou VIM

O "vi" é a sigla para "Visual Interface". A origem desse nome se deve ao seguinte fato: quando o vi foi criado (começo da década de 80), não era comum existirem editores de textos como nos dias de hoje. Naquela época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado o vim
(Vi IMitator), um clone fiel ao vi, porém com muitas outras funcionalidades, que
só foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved' (vi melhorado).
O vim é um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm algumas diferenças.

O que você verá abaixo fala sobre o vim.
O vim é um editor de textos muito poderoso, ele pode: abrir vários arquivos ao mesmo tempo, possui sistema de autocorreção, auto identação, seleção visual, macros, seleção vertical de texto, uso de expressões regulares, sintaxe colorida, e muito mais. Ele não é exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.
Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em pleno funcionamento, o que muda é apenas o modo gráfico mesmo.

O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais:
Modo de inserção e de comandos
Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela.
Agora, vamos à prática. Para executar o vim, utilize:
$ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação.
$ vi arquivo => Abre o arquivo de nome "arquivo".
$ vi arquivo + => Abre o arquivo de nome "arquivo", com o cursor no final do
mesmo.
$ vi arquivo +10 => Abre o arquivo de nome "arquivo", com o cursor na linha
10.
$ vi arquivo +/Copag => Abre o arquivo de nome "arquivo", na primeira ocorrência da palavra "Copag".
Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na última linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever nada, pode digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione "i" em seu teclado. O vim entra em modo de inserção, que você comprova (como falado anteriormente) pelo rodapé da tela, onde fica a seguinte marcação:
- - -- INSERT --
Suponha que você já digitou o bastante, e quer salvar, por segurança.
Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair:
:w => Salva o arquivo que está sendo editado no momento.
:q => Sai.
:wq => Salva e sai.
:x => Idem.
ZZ => Idem.
:w! => Salva forçado.
:q! => Sai forçado.
:wq! => Salva e sai forçado. Então, você editou uma boa quantidade de textos e quer salvar:
:w
Agora, quer voltar a editar o texto:
i
Lembre que utilizando o "i" para inserção, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de inserção de texto:
A => Insere o texto no fim da linha onde se encontra o cursor
o => Adiciona uma linha vazia abaixo da linha corrente
O => Adiciona uma linha vazia acima da linha corrente
Ctrl + h => Apaga último caractere à esquerda
Voltando ao modo de comando:
Veja agora subcomandos para movimentação pelo texto:
Ctrl + f => Passa para a tela seguinte.
Ctrl + b => Passa para a tela anterior.
H => Move o cursor para a primeira linha da tela.
M => Move o cursor para o meio da tela.
L => Move o cursor para a última linha da tela.
h => Move o cursor para caractere a esquerda.
j => Move o cursor para linha abaixo.
k => Move o cursor para linha acima.
l => Move o cursor para caractere a direita.
w => Move o cursor para o início da próxima palavra (não ignorando a pontuação).
W => Move o cursor para o início da próxima palavra (ignorando a pontuação).
b => Move o cursor para o início da palavra anterior (não ignorando a pontuação).
B => Move o cursor para o início da palavra anterior (ignorando a pontuação).
0 (zero) => Move o cursor para o início da linha corrente.
^ => Move o cursor para o primeiro caractere não branco da linha.
$ => Move o cursor para o fim da linha corrente.
nG => Move o cursor para a linha de número "n"
(susbstitu-a n pelo número da linha)..
G => Move o cursor para a última linha do arquivo.
Copiando e colando textos no vim (utilizando o mouse)
Selecione o texto necessário com o botão esquerdo do mouse. Quando você for colar, saiba que o texto será colado a partir de onde se encontra o cursor (esse que aparece, às vezes piscando e às vezes não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode utilizar uma dessas opções:1) Pressionando o botão direito do mouse;
2) Pressionando o botão direito + botão esquerdo juntos;
3) Pressionando o botão do meio do mouse (mouse de 3 botões);
Observação: Lembre-se que o vim deve estar no modo de inserção.
Usando o modo visual do vim
Entre no modo visual: v
Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione e cole, utilizando a tecla "p" (paste).
Veja agora como apagar um determinado texto:
Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete.
Você pode remover até o final de uma palavra, utilizando: dw
Pode também remover até o final de uma frase: d$
Desfazendo uma ação
É claro que você pode desfazer uma ação que você considera errado, ou que errou ao digitar o texto. É só utilizar: u
Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.
Subcomandos para localização de texto
/palavra => Procura pela palavra ou caractere acima ou abaixo do texto.
?palavra => Move para a ocorrência anterior da palavra (para repetir a busca
use "n").
n => Repete o último comando utilizando / ou ?.
N => Repete o último comando / ou ? ao contrário (baixo para cima).
Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de
linhas.
Mais opções para remoção de caracteres
x => Apaga o caractere onde o cursor estiver.
dd => Apaga a linha inteira onde o cursor estive
D => Apaga a linha a partir da posição do cursor até o fim.
J => Une a linha corrente à próxima.
:5dd => Remove-as próximas 7 linhas a partir da posição do atual do cursor
(qualquer número).Mais para copiar e colar
:yy => Copia a linha onde o cursor se encontra.
:5yy => Copia as próximas 5 linhas a partir da posição atual do cursor.
:p => Cola o que foi copiado na linha abaixo do cursor atual.
Opções para substituição de textos
rCARACTER => Substitui o caractere onde o cursor se encontra pelo caractere especificado em CARACTER.
RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe).
cw => Remove a palavra corrente para substituição.
cc => Remove a linha corrente para substituição.
C => Substitui o restante da linha corrente, esperando o texto logo após o comando.
J => Une a linha corrente à próxima.
:s/velho/novo => Substitui a primeira ocorrência de "velho" por "novo" na linha corrente.
:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de
"velho" por "novo" em cada linha.
:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho" por "novo".
:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada substituição.
:% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed.
:% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caractere (.) de cada linha.
Abreviações
:ab => Mostra todas as abbr.
:abc[lear] => Remove todos.
:iab => Apenas para modo de inserção.
:iabc[lear] => Tira todos de inserção.
:cab => Apenas p/modo de comando ( : ).
:cabc[lear] => Tira todos os modos de comando.
:una vc => Tira ab para vc.
Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação. Porém, Ctrl+] também pode ser usado, para expandir sem adicionar caracteres.
Opções para o comando SET
:set
autowrite aw => Salva a cada alteração.
backspace bs => Comportamento backspace (1 ou 2).
errorbell eb => Campainha de erro.
expandtab et => Troca tab por espacos.fileformat=dos ff => Converte o arquivo para DOS.
hidden hid => Preserva o buffer.
hlsearch hls => ilumina a última procura.
ignorecase ic => Case insensitive na busca.
incsearch is => Ilumina procura enquanto digita.
laststatus=2 => Mostra linha de estado.
lazyredraw lz => Não redesenha em macros.
lines=N => número de linhas na tela.
magic => Usar mágicas na procura de padrões.
number nu => Mostra o número da linha.
report=N => Mostra aviso quando N linhas mudaram (0=sempre).
showcmd => Mostra o comando que se está fazendo.
showmatch sm => Mostra o casamento de {},[],().
smartcase scs => Assume "noic" quando tiver maiúsculas.
textwidth=N => Quebra de linha do texto.
undolevels ul=N => Guarde os N últimos comandos para desfazer
(padrão=1000).
vb t_vb= => Retira o "beep" de erro.
Agora invertendo maiúsculas/minúsculas
5~ => Inverte os 5 próximos caracteres.
g~$ => Inverte todos os caracteres até o fim da linha.
seleciona, u => Converte para minúsculas.
seleciona, U => Converte para maiúsculas.
seleciona, ~ => Inverte.
Observação: Onde está escrito "seleciona", é para fazer utilizando o modo visual (v).
Agora veja como definir coluna de quebra de linha (problema que eu tive quando iniciei no aprendizado do vim):
:set textwidth=N
Se você já estiver num arquivo pronto:
:set wm=5 => O número 5 aqui são as colunas que serão "cortadas".
gqG => Até o final do arquivo.
Vamos ver agora o que podemos fazer pressionando a tecla "Ctrl":
É claro que é segurando Ctrl + .
No modo de COMANDO:
A => Incrementa um número (Add)
X => Decrementa um número
S => ScrollLock
L => Redesenha telaV => Modo visual (Visual Vertical)
G => Status do arquivo
M => Início da próxima linha
E => Linha abaixo sem mover cursor
Y => Linha acima sem mover cursor
N => Próxima linha (Next)
P => Linha anterior (Previous)
F => PageDown (Forward)
B => PageUp (Backyard)
U => PageUp / 2 (Up)
D => PageDown / 2 (Down)
Agora, no modo de INSERÇÃO:
A => Insere o último texto inserido
I => TAB
S => ScrollLock
H => BackSpace
T => 2 tab's no início da linha (Two Tabs)
V => Anula expansão do próximo caractere
J => Enter - quebra de linha
M => Enter - quebra de linha
L => Redesenha tela
R => Insere conteúdo do registrador [a-z] (Veja abaixo)
K => Insere um dígrafo (Veja abaixo)
N => Procura palavra no texto atual (Next)
P => Procura palavra no texto atual (Previous)

Y => Copia caractere que está acima (Yank)

Fonte do artigo.
https://drive.google.com/file/d/0B_aOLYRrVoJJWkpFTHdyLXEtM0k/view?usp=sharing

sábado, 30 de julho de 2016

Configurando Placas de Rede no LINUX.

Administração e Gerenciamento de REDES no LINUX DEBIAN.

Parte I
Configurando Placas de Rede


Instalando uma Placa de Rede.

Supondo que a Placamãe de nosso PC seja offbord, que seja necessário a instalação de uma ou duas placas de rede.

Para que possamos instalar as placas de redes se faz necessário desligar e fazer a instalação das placas com o PC desconectado da rede eletrica.

Após a instalação das redes em seus respectivos slots, ao ligarmos o PC pode acontecer duas coisas, a interface foi reconhecida pelo sistema ou não.

O sistema Debian pode reconhecer uma placa de rede, levanta e configura seus módulos através do serviço de detecção de hardware hotplug, deixando a placa funcionando e pronta para ser configurada.
Quando isso não ocorre fica por conta de módulos que por algum motivo não puderam ser inicializados corretamente pelo sistema, isso é o que chamamos de troubleshooting.

Uma vez detectado o problema precisamos nos certificar de que placa esta funcionando, de nada vai adiantar os esforços para levantar a interface se a mesma estiver queimada. Para checar as placas e saber se estão funcionando o GNULinux oferece o programa lspci, este comando faz o levantamento de todo o hardware instalado.

Veja:

urutau@urutec ~ $ lspci
00:00.0 RAM memory: NVIDIA Corporation MCP61 Memory Controller (rev a1)
00:01.0 ISA bridge: NVIDIA Corporation MCP61 LPC Bridge (rev a2)
00:01.1 SMBus: NVIDIA Corporation MCP61 SMBus (rev a2)
00:01.2 RAM memory: NVIDIA Corporation MCP61 Memory Controller (rev a2)
00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev a3)
00:02.1 USB controller: NVIDIA Corporation MCP61 USB 2.0 Controller (rev a3)
00:04.0 PCI bridge: NVIDIA Corporation MCP61 PCI bridge (rev a1)
00:05.0 Audio device: NVIDIA Corporation MCP61 High Definition Audio (rev a2)
00:06.0 IDE interface: NVIDIA Corporation MCP61 IDE (rev a2)
00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)
00:08.0 IDE interface: NVIDIA Corporation MCP61 SATA Controller (rev a2)
00:08.1 IDE interface: NVIDIA Corporation MCP61 SATA Controller (rev a2)
00:09.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2)
00:0b.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2)
00:0c.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control
02:00.0 VGA compatible controller: NVIDIA Corporation NV44 [GeForce 7100 GS] (rev a1)
urutau@urutec~ $

No exemplo acima a placa de rede foi reconhecida o que significa que esta funcionando é podemos então começar sua configuração.

No LINUX exite um arquivo responsável pela configuração das placas de rede, e o
  /etc/network/interfaces.


# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

allow hotplug eth0

ifce eth0 inet  static
address 192.168.0.3
networkmask 192.168.0.0/24
broadcast 192.168.0.255

No arquivo acima configuramos manualmente o endereço de Ip para a inerface eth0, e obrigatório o uso de pelo menos duas diretivas,
 o address = nº do IP
e a netmaskmask.

Também podemos configurar a rota com o route.

route add default gw {IP-ADDRESS} {INTERFACE-NAME}

  • IP-ADDRESS: Configura o ip do roteador
  • INTERFACE-NAME:  o nome da interface  eth0
Supondo que o endereço do IP  e 192.168.1.254 dar o seguinte comando como root user:
# route add default gw 192.168.1.254 eth0
OU  você pode usar o hostname  tipo dsl-router:

# route add default gw dsl-router eth0


Ou com o comando IP

  IP 192.168.1.254  do gateway conectado  via eth0 network interface:

# ip route add 192.168.1.0/24 dev eth0
OR
# ip route add 192.168.1.0/24 via 192.168.1.254

Depois de tudo definido podemos usar o  comando IFCONFIG  para gerenciar nossa rede e  interfaces.

O comando ifconfig e responsável por levantar  derrubar e configurar uma placa de rede.

urutau@urutau-MCP61M-M3 / $ ifconfig
eth0      Link encap:Ethernet  Endereço de HW 10:78:d2:17:10:5f  
          inet end.: 192.168.0.3  Bcast:192.168.0.255  Masc:255.255.255.0
          endereço inet6: fe80::1278:d2ff:fe17:105f/64 Escopo:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
          pacotes RX:144027 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:84968 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:177349032 (177.3 MB) TX bytes:9562280 (9.5 MB)

eth1      Link encap:Ethernet  Endereço de HW 00:21:91:92:59:ad  
          UP BROADCAST MULTICAST  MTU:1500  Métrica:1
          pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000 
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo        Link encap:Loopback Local  
          inet end.: 127.0.0.1  Masc:255.0.0.0
          endereço inet6: ::1/128 Escopo:Máquina
          UP LOOPBACK RUNNING  MTU:65536  Métrica:1
          pacotes RX:1877 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:1877 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:0 
          RX bytes:321251 (321.2 KB) TX bytes:321251 (321.2 KB)

ifconfig - configura uma interface de rede
SINOPSE

ifconfig interface [aftype] opções | endereços ...

EX.

ifconfig eth0 192.168.0.3 networkmask 255.255.255.0
DESCRIÇÃO
ifconfig é usado para configurar (e posteriormente manter) as interfaces de rede. É usado durante o boot para configurar a maioria delas para um estado usável. Depois disto, é normalmente somentenecessário durante depurações ou quando for necessária uma configuração fina do sistema.
Se nenhum argumento for informado, ifconfig somente mostra o estado das interfaces correntemente definidas. Se um argumento interface for informado, ele mostra somente o estado da interface informada. De outra forma ele assume que os parâmetros devem ser configurados.
OPÇÕES
interface
O nome da interface de rede. Usualmente é um nome como eth0 , sl3 ou algo parecido: um nome de driver de dispositivo seguido por um número.

Para sabe quais são a interfaces dispoivéis  TYPE 

ifconfig -a

Depois de configurar a placa a rede o gateway, precisamos levantar o serviço
isso pode ser feito com o comando:

ifup eth0

up Esta flag causa a ativação da interface.
veja que apos o comando o systema executa os quatro passos para atribuição do ip, se for definido nenhum endereço o dhcp aloca um automaticamente.



down Esta flag desativa o driver desta interface, é útil quando alguma coisa começar a dar problemas.
[-]arp Habilita ou desabilita o uso do protocolo ARP para esta interface. Se o sinal de menos (-) estiver presente a opção é desligada.

urutau-MCP61M-M3 / # ifdown eth0
ifdown: interface eth0 not configured

urutau-MCP61M-M3 / # 

Outra diretivas.

[-]trailers
Habilita ou desabilita o uso de trailer em frames Ethernet. Não é utilizada na implementação atual do pacote net-tools.
[-]allmulti
Habilita ou desabilita o modo promiscuous da interface. Isto significa que todos os frames passarão pela camada de rede do kernel, permitindo monitoração da rede.
metric N
Este parâmetro configura a métrica da interface. Não é usado atualmente, mas será implementado no futuro.
mtu N Este parâmetro configura a Unidade Máxima de Transferência (MTU) de uma interface. Para Ethernet é um número entre 1000-2000 (o padrão é 1500). Para SLIP, use algo entre 200 e 4096. Note que a implementação atual não manipula fragmentação IP ainda, então é melhor configurar a MTU com um tamanho adequado!

dstaddr addr
Configura o endereço IP do "outro lado" no caso de um link
Ponto-A-Ponto, como PPP. Esta palavra-chave tornou-se obsoleta e deve ser usada a nova palavra-chave pointopoint.

netmask addr
Configura a máscara de rede IP para esta interface. Este valor assume o padrão usual das classes A, B ou C (deduzindo-o a partir do endereço IP da interface), mas pode ser configurado para qualquer valor para o uso de sub-redes.

irq addr
Configura a linha de interrupção (IRQ) usada por este dispositivo. Muitos dispositivos não suportam configuração dinâmica de IRQ.

[-]broadcast [endereço]
Se o argumento endereço for informado, configura o endereço de protocolo broadcast para esta interface. De outra forma ele somente configura a flag IFF_BROADCAST da interface. Se a
palavra-chave for precedida por um sinal de menos (-) , então a flag é removida.

[-]pointopoint [endereço]
Esta palavra-chave habilita o modo ponto-a-ponto da interface, significando que ela é um link direto entre duas máquinas sem ninguém ouvindo (ou, pelo menos nós esperamos que este seja o
caso :-) Se o argumento endereço for informado, configura o endereço de protocolo do outro lado do link, exatamente como a palavra-chave obsoleta dstaddr faz. De outra forma, ela somente
configura a flag IFF_POINTOPOINT da interface. Se a palavrachave for precedida por um sinal de menos (-) , então a flag é removida.

hw
 Configura o endereço de hardware para esta interface, se o driver do dispositivo suportar esta operação. A palavra-chave deve ser seguida pelo nome da classe do hardware e o equivalente
em ASCII do endereço de hardware. As classes de hardware atualmente suportadas incluem ether (Ethernet), ax25 (AMPR AX.25), ARCnet e netrom (AMPR NET/ROM).

multicast
Inicializa a flag de multicast para a interface. Normalmente, isto não será necessário já que os drivers ajustam as flags corretas por si só.

endereço
O nome ou endereço IP da máquina (um nome de máquina será traduzido para um endereço IP) da interface. Este parâmetro é necessário, apesar da sintaxe atualmente não requisitá-lo.

ARQUIVOS
/proc/net/socket
/proc/net/dev


Depois de configurar e Levantar o serviço vamos testar o funcionamento dando um ping externo para um site qualquer www.globo.com

Assim:

urutau@urutec ~ $ ping www.globo.com
PING www.globo.com (186.192.82.163) 56(84) bytes of data.
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=1 ttl=248 time=13.1 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=2 ttl=248 time=13.9 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=3 ttl=248 time=14.7 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=4 ttl=248 time=15.1 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=5 ttl=248 time=12.4 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=6 ttl=248 time=13.1 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=7 ttl=248 time=13.7 ms
64 bytes from 186-192-82-163.ptr.globo.com (186.192.82.163): icmp_seq=8 ttl=248 time=14.0 ms
^C
--- www.globo.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7010ms
rtt min/avg/max/mdev = 12.444/13.800/15.101/0.820 ms
urutau@urutec ~ $

OK nossa placa já esta instalada configurada e funcionando perfeitamente, veja ao final que foram transmitidos 8 pacotes recebidos 8 pacotes sem nenhuma perda.

Para a implementação de uma rede, precisaremos de um servidor, este obrigatoriamente deverá t er no mínimo duas placas de rede, uma para a conexão externa e outra para conexão com os host internos.

Alguns truques de configuração de placas de redes.
Veremos isso no próximo post.



sexta-feira, 1 de julho de 2016

Linux Como mudar o hostname via linha de comando

Linux Como mudar o hostname via linha de comando

abrindo o terminal para que possamos executar o comando (Ctrl + Alt + T), ou atraveś do menu de arquivos, o hostname não padrão e  em algumas distros e preciso instalar o programa, para checar se o mesmo esta instalado e só digitar hostname
 Edson@edTec#hostname
 edTec

Para fazer a alteração o comando e bem simples:
hostname  "novo nome"
 Edson@edTec#hostname Tec-Ed



Edson@edTec#hostname
Tec-Ed
  O procedimento também pode ser feito configurando o arquivo /etc/hosts   
primeiro vamos checar para ver se as configuraões foram alteradas

nano /etc/hosts




 GNU nano 2.2.6              File: /etc/hosts                                

127.0.0.1       localhost
127.0.1.1       edson-Tec.

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
                [ Read 9 lines (Warning: No write permission) ]
^G Get Help  ^O WriteOut  ^R Read File ^Y Prev Page ^K Cut Text  ^C Cur Pos
^X Exit      ^J Justify   ^W Where Is  ^V Next Page ^U UnCut Text^T To Spell
                                                            

   



Para alterar o hostname e so editar a linha e digitar o novo hostname.
Se houver alguma referência ao hostname antigo neste arquivo, altere-o para o novo nome.
127.0.1.1   Matrix-Server
Em seguida, grave o arquivo com Ctrl + O e saia do editor com Ctrl + X.
Agora, para que as mudanças tenham efeito em todo o sistema, você precisa reiniciar o computador.
Se preferir,pode-se  apenas reiniciar o hostname, assim:
sudo /etc/init.d/hostname stop
sudo /etc/init.d/hostname start

quarta-feira, 3 de fevereiro de 2016

Permissões de Acesso.
Cada arquivo tem um conjunto de permissõesdfn {} que controlam os tipos dede acesso que os usuários/grupos têm para esse arquivo.  Eles podem ser representados tanto em forma simbólica ou como um número octal.* Estrutura Modo     :: Estrutura de permissões de arquivo.* Modos Simbólicos :: Mnemonic representação permissões.* Numéricos             :: permissões como números octais.
 Estrutura Modo permissões de arquivoExistem três tipos de permissões que um usuário pode ter para um arquivo:

  • permissão de leitura
permissão para ler o arquivo. Para diretórios, isso significa permissão paralistar o conteúdo do diretório.

  • permissão de gravação
permissão para gravar (modificar) o arquivo. Para diretórios, isso significa permissão para criar e remover arquivos no diretório. 
  •  permissão de execução
permissão para executar o arquivo (executá-lo como um programa). Para diretórios, isto significa permissão para acessar arquivos no diretório.
Existem três categorias de usuários que podem ter diferentes permissõespara executar qualquer uma das operações acima em um arquivo:

  1. o proprietário do arquivo;
    2. outros usuários que estão no grupo do arquivo;

    3. todos os outros.
proprietário e grupo:
 
Os arquivos são dados proprietário e grupo quando eles são criados. Normalmente, o proprietário é o usuário atual/quem cria o diretório/arquivo, e o grupo é o grupo do diretório onde o arquivo está , mas isso varia com o sistema operacional, o sistema de arquivos do arquivo é criado, e da forma como o arquivo é criado.
 Vocês podem mudar o proprietário e grupo de um arquivo usando o comando  chown e o comando chgrp.Além dos três conjuntos de três permissões listadas acima, A permissões de arquivo têm três componentes especiais, que afetam somente arquivos executáveis ​​(programas) e, em alguns sistemas, diretórios: setuidAjuste do processo eficaz ID do usuário para que o arquivo após a execuçãonão tenha  Nenhum efeito sobre diretórios.

 setgidAjuste do processo eficaz ID do grupo para que o arquivo após a execução(chamado dedfn {bit setgid}). Para diretórios em alguns sistemas, colocáarquivos criados no diretório para o mesmo grupo do diretório, nãoimporta que grupo do usuário que cria-los está em.@itemcindex pegajosoespaço de trocacindex, imagem do texto salvar emcindex imagem do texto, economizando em espaço de trocacindex marcação para eliminação restritoimpedir que os usuários de remover ou renomear um arquivo em um diretórioa não ser que possui o arquivo ou o diretório; este é denominado odfn {eliminação bandeira restrito} para o diretório.Para arquivos regulares em alguns sistemas, salvar a imagem de texto do programa nodispositivo de troca para que ele irá carregar mais rapidamente quando executado; este é denominado odfn {} sticky bit.end enumerarAlém de as permissões listados acima, pode haver atributos de arquivo, por exemplo, específicas para o sistema de arquivos: listas de controle de acesso (ACLs), quer umarquivo é compactado, se um arquivo pode ser modificado (imutabilidade), seum arquivo pode ser despejado. Estes são geralmente definida usando programasespecífico para o sistema de arquivos. Por exemplo:c provavelmente deve dizer muito mais sobre ACLs algum dia ...asisTableitem ext2Emacronym {} GNU eacronym {} GNU / Linux as permissões de arquivo(`` atributos '') específico parao sistema de arquivos ext2 são definidos usando comando @ {} chattr.item FFSNo FreeBSD as permissões de arquivo (`` bandeiras '') específico para o FFSsistema de arquivos são definidos usandoCommand {} chrflags.@mesa finalEmbora a permissão de um arquivo `` bits '' permitem uma operação em que arquivo,que a operação ainda pode falhar, porque:itemize@itemas permissões de arquivo-específicos do sistema não o permitem;@itemo sistema de arquivos está montado como somente leitura.end itemizePor exemplo, se o atributo imutável é definido em um arquivo,ele não pode ser modificada, independentemente do facto depode ter acabado de executarcode {chmod a + w FILE}.node Modos simbólicassection Modos simbólicascindex modos simbólicosdfn {modos simbólicos} representar mudanças em permissões dos arquivos conforme ooperações em símbolos de caractere simples. Eles permitem que você modifique quertudo ou partes selecionadas de permissões dos arquivos, opcionalmente, com base emseus valores anteriores, e talvez na atualcode {} umask bem(pxref {Umask e Proteção}).O formato de modos simbólicos é:@exemplor {[} ugoa @ dots {} @ {r] [} + - = @ r @ {]} var {perms}} {dots @ r {[}, {} @ pontos @ r {]}exemploendnoindentondevar {perms} é zero ou mais letras do conjuntosamp {} rwxXst, ou uma única letra dosamp conjunto {} Ugo.As seções seguintes descrevem os operadores e outros detalhesmodos simbólicos.@cardápio* Definir permissões :: operações básicas sobre permissões.* Cópia de permissões :: Copiando permissões existentes.* Mudando permissões especiais :: permissões especiais.* Executabilidade condicional :: afetando Condicionalmente exequibilidade.* Várias alterações :: Fazer várias alterações.* Umask e Proteção :: O efeito da umask.MenuendPermissõesnode AmbientePermissõessubsection AmbienteAs operações simbólicas básicas sobre as permissões de um arquivo são acrescentando:removendo, e definindo a permissão que determinados usuários tem que ler,escrever e executar o arquivo. Estas operações têm o seguinteformato:@exemplovar {} usuáriosvar {}var {operação permissões}exemploendnoindentOs espaços entre as três partes acima são mostrados apenas para legibilidade;modos simbólicos não pode conter espaços.A partevar {} usuários diz que o acesso dos usuários ao arquivo é alterado.É constituída por um ou mais dos seguintes letras (ou pode estar vazia;pxref {Umask e Proteção}, para uma descrição do que acontece em seguida). Quandomais de uma dessas cartas é dada, a fim de que eles estão em faznão importa.codeTableitem ucindex proprietário de arquivo, permissões parao usuário que possui o arquivo;item gcindex grupo, permissões paraoutros usuários que estão no grupo do arquivo;item ocindex outras permissõestodos os outros usuários;item umtodos os usuários; o mesmo quesamp {Ugo}.@mesa finalOvar {} operação parte explica como alterar o acesso dos usuários afetadospara o arquivo, e é um dos seguintes símbolos:codeTableitem +cindex adicionar permissõespara adicionar osvar {} permissões para o que quer que as permissões dovar {} usuáriosjá temos para o arquivo;@item -cindex remover permissõescindex subtraindo permissõespara remover ovar {} permissões de quaisquer permissõesvar {} já tem usuários para o arquivo;item =cindex definição de permissõespara fazer asvar {} permissões as permissões somente que ovar {} usuáriostem para o arquivo.@mesa finalOvar {} Permissões parte diz que tipo de acesso ao processo deveser alterado; é normalmente zero ou mais das seguintes letras. Tal como acontece com ovar {} usuários parte, a ordem não importa quando mais de uma letra édado. Omitindo avar {} Permissões parte é útil apenas com osamp {} = operação, onde se dá avar especificado {} usuários sem acessoem tudo para o arquivo.codeTableitem rcindex permissão de leitura, simbólicoa permissão dos usuáriosvar {} tem que ler o arquivo;item wpermissão de gravaçãocindex, simbólicoa permissão dos usuáriosvar {} tem de escrever para o arquivo;item xcindex permissão de execução, simbólicoa permissão dos usuáriosvar {} tem que executar o arquivo.@mesa finalPor exemplo, para dar a todos permissão para ler e gravar um arquivo,mas para não executá-lo, use:@exemploA = rwexemploendPara remover permissões de escrita para todos os outros do que o arquivo de usuáriosproprietário, use:@exemplogo-wexemploendnoindentO comando acima não afeta o acesso que o proprietário doo arquivo tem a ele, nem afecta os usuários podem se outrosler ou executar o arquivo.Para dar a todos, exceto o proprietário de um arquivo não tem permissão para fazer qualquer coisa comesse arquivo, utilize o modo abaixo. Outros usuários ainda poderiam remover o arquivo,se eles têm permissão de gravação no diretório que se encontra.@exemplo? go =exemploendnoindentOutra maneira de especificar a mesma coisa é:@exemploog-rwxexemploendnode Copiando permissõessubsection Copiando permissões existentescindex copiar permissões existentesPermissõescindex, copiando existenteVocê pode basear as permissões de um arquivo em suas permissões existentes. Façameste, em vez de usar uma série desamp {r},samp {w}, ou {x}sampletras após ooperador, você usa a letrasamp {u},samp {g} ou {o}samp. Paraexemplo, o modo de@exemploo + gexemploendnoindentadiciona as permissões para os usuários que estão no grupo de um arquivo para opermissões que outros usuários têm para o arquivo. Assim, se o arquivocomeçou como modo de 664 (samp {rw-rw-r--}), o modo acima mudaria-o no modo 666 (samp {rw-rw-rw-}). Se o arquivo tinha começado como modo de741 (samp {rwxr ---- x}), o modo acima iria mudá-lo para o modo 745(samp {rwxr - r-x}). Osamp {-} e {samp =} operações funcionamanalogamente.node Alterando permissões especiaissubsection Alterando permissões especiaiscindex alterar permissões especiaisAlém de alterar leitura de um arquivo, gravar e executar permissões,você pode alterar suas permissões especiais. Modo Estruturaxref {}, para umaresumo dessas permissões.Para alterar a permissão do arquivo para definir o ID do usuário em execução, usosamp {u} na partevar {} usuários do modo simbólico esamp {s} novar {} Permissões parte.Para alterar a permissão do arquivo para definir o ID do grupo em execução, usosamp {g} na partevar {} usuários do modo simbólico esamp {s} novar {} Permissões parte.Para alterar a permissão do arquivo para definir a marcação para eliminação restrita ou pouco pegajoso,omitir a partevar {} usuários do modo simbólico (ou usesamp {a}) e colocá-samp {t} novar {} Permissões parte.Por exemplo, para adicionar permissão set-user-ID para um programa,você pode usar o modo:@exemplou + sexemploendPara remover ambos set-user-ID e set-group-ID permissão do-lo, você pode usar o modo:@exemploUG-sexemploendPara definir a marcação para eliminação restrita ou pouco pegajosa, você pode usaro modo:@exemplo+ texemploendA combinaçãosamp {o + s} não tem qualquer efeito. Emacronym {} sistemas GNUas combinaçõessamp {u + t} e {samp g + t} não têm nenhum efeito, esamp {o} + t age comosamp planície {+} t.Osamp {} = operador não é muito útil com permissões especiais; paraexemplo, o modo:@exemploo = texemploendnoindentse definir a marcação para eliminação restrita ou pouco pegajoso, mas tambémremove todos os ler, escrever e executar permissões que os usuários não noO grupo de arquivo pode ter tido para ele.node condicional Executabilidadesubsection condicional Executabilidadecindex exequibilidade condicionalHá um tipo mais especial de permissão simbólico: se você usarsamp {X} em vez desamp {x}, permissão de execução é apenas se o afetadoarquivo é um diretório ou já teve permissão de execução.Por exemplo, este modo:@exemploa + xexemploendnoindentdá a todos os usuários permissão para pesquisar diretórios, ou executar arquivos sequalquer um poderia executá-los antes.node várias alteraçõessubsection Fazer várias alteraçõescindex várias alterações nas permissõesO formato de modos simbólicos é realmente mais complexo do que o descritoacima (pxref {} Definindo permissões). Ele fornece duas maneiras de fazervárias alterações nas permissões dos arquivos.A primeira maneira é especificar múltiplosvar {} e operaçãovar {} permissões partes depois de uma partevar {} usuários no modo simbólico.Por exemplo, o modo:@exemploog + RX-wexemploendnoindentdá que não o proprietário do arquivo de permissão de leitura e, se os usuáriosé um diretório ou se alguém já teve permissão de execuçãopara ele, dá-lhes permissão de execução; e ele também nega-lhes escreverpermissão para o arquivo. Ela não afeta a permissão que oproprietário do arquivo tem para ele. O modo acima é equivalente aos dois modos:@exemploog + rXog-wexemploendA segunda maneira de fazer várias alterações é especificar mais do que ummodo simbólico simples, separados por vírgulas. Por exemplo, o modo:@exemploa + r, go-wexemploendnoindentdá a todos permissão para ler o arquivo e remove gravaçãopermissão nele para todos os usuários, exceto seu proprietário. Outro exemplo:@exemplou = rwx, g = rx, o =exemploendnoindentdefine todas as permissões não-especiais para o arquivo explicitamente. (Istodá aos usuários que não estão no grupo do arquivo sem a permissão a todos paraisto.)Os dois métodos podem ser combinados. O modo:@exemploA + R, G + x-Wexemploendnoindentdá a todos os usuários permissão para ler o arquivo, e dá aos usuários que estão empermissão de grupo do arquivo para executá-lo, bem, mas não permissãopara escrever a ele. O modo acima poderia ser escrita em vários diferentemaneiras; outro é:@exemplou + r, g + rx, o + r, g-wexemploendnode Umask e Proteçãosubsection O Umask e Proteçãoumaskcindex e modosmodoscindex e umaskSe a partevar {} usuários de um modo simbólico é omitido, o padrão ésamp {a} (afetam todos os usuários), exceto que quaisquer permissões que sãoemph {conjunto} na variável de sistemacode {} umask sãoemph {} não afetados.O valor decode {} umask pode ser definido utilizando ocode {} umask comando. Seu valor padrão varia de sistema para sistema.cindex dando permissõesOmitindo avar {} usuários parte de um modo simbólico, geralmente não é útilcom excepçãosamp {+} operações. É útil comsamp {+} porqueele permite que você usecode {} umask como uma proteção facilmente personalizávelcontra dando mais permissão para arquivos que você pretendia.Como um exemplo, secode umask {} tem o valor 2, que remove escreverpermissão para usuários que não estão no grupo do arquivo, em seguida, o modo:exemplo+ Wexemploendnoindentacrescenta permissão para gravar o arquivo para seu proprietário e para outros usuários queestão no grupo do arquivo, mas nãoemph {} para outros usuários. Em contraste,o modo:exemploa + wexemploendnoindentignoracode {} umask, eemph {} não dar permissão de gravação parao arquivo para todos os usuários.Modos numéricosnodeModos numéricossectioncindex modos numéricospermissões de arquivocindex, numériconúmeros octaiscindex para os modos de arquivosComoalternativa para dar um modo simbólico, você pode dar um octal (base 8)número que representa o novo modo.Este número é sempre interpretado em octal; você não tem que adicionar uma0 à esquerda, como você faz em C. Modo de 0055 é o mesmo que o modo 55.Um modo numérico é geralmente mais curto do que o correspondente simbólicamodo, mas é limitada na medida em que não pode levar em conta um arquivo depermissões anteriores; ele só pode configurá-los absolutamente.As permissões concedidas ao usuário,para outros usuários no grupo do arquivo,e para outros usuários não no grupo do arquivo de cada um requer trêsbits, que são representados como um dígito octal. A três especiaispermissões também requerem um bit cada, e eles são, como um gruporepresentado como outro dígito octal. Aqui está como os bits são organizados,começando com o menor pouco valorizado:exemploValor em CorrespondentePermissão Modo

          
Outros usuários não no grupo do arquivo:
   
1 Executar
   
2 Write
   
4 Leia

          
Outros usuários no grupo do arquivo:
  
10 Executar
  
20 Write
  
40 Leia

          
O dono do arquivo:
 
100 Executar
 
200 Write
 
400 Leia

          
Permissões especiais:1000 bandeira eliminação restrita ou pouco pegajoso2000 Set ID de grupo na execução4000 Set ID do usuário em execuçãoexemploendPor exemplo, o modo numérico 4755 corresponde ao modo simbólicosamp {u = rwxs, go = rx} e, em modo numérico 664 corresponde ao modo simbólicosamp {ug = rw, o = r}. Modo numérico 0 corresponde ao modo simbólicosamp {a} =.