terça-feira, 30 de outubro de 2007

Linux Manual - Iniciante

Linux Manual


*** Estrutura de pastas Linux ***

/ : Topo da hierarquia de pastas

/bin : Binários, programas executáveis, exemplo: cat, ls , rm, pwd, vi...(excutáveis mais comuns usados no sistema)

/boot : Arquivos relacionados ao boot do sistema, kernel.

/dev : Onde ficam os arquivos q indicam o caminho para unidades físicas ex.: /sda, /cdrom.

/etc : Arquivos de configuração do sistema.

/home : Onde fica as pastas dos usuários.

/lib : Shared Program Libraries, muitos programas compartilham codigos em comum, são bibliotecas compartilhadas.

/mnt : Onde ficam as unidades montadas removíveis como CD-ROM e Floppy.

/opt : Onde é instalado software opcional.

/root : É o home directory do user root.

/sbin : Programas executáveis do sistema, para administração do sistema.

/proc : Onde ficam informações sobre processos do sistema.

/tmp : usado para armazenamento temporário, qualquer usuário pode ter acesso a esta pasta.

/usr : User Specific Resources, possui pastas e arquivos relacionados a comandos de administração voltados a administração de usuários.

/usr/local : O que esta nesta pasta não é visivel por outros computadores na rede, pois é apenas local.

/var : Onde ficam dados que variam (mudam) seguidamente como arquivos de log, diretório de mail dos users.

*** Arquivos de ajuda ***

man nomedocomando : Abre o manual do comando com todas as informações sobre sintaxe. Para ir a próxima página pressiona "space", para voltar pressiona "b", para sair "q". Para pesquisar em uma man page tecle "/palavraaprocurar" para ir até a próxima digite "n".

info nomedocomando : Abre a página de informação sobre o comando. Para descer pressiona "space" ou usa as setas. A diferença da info page para a man page é que a info possui no final do documento subpaginas que podem ser acessadas colocando o cursor sobre o * e pressionando [enter], para voltar a página anterior pressiona "l". Para fazer uma pesquisa em uma info page, tecla "Ctrl+S" e digita o que procura, pressionando "Ctrl+S" novamente vai para a próxima palavra e assim por diante; Para sair do modo de pesquisa "Ctrl+G". Para sair da Info page tecle "q".

man -k jpg : Procura por comandos que possuem "jpg" na palavra do comando. Isso server para procurar por comandos relacionados a pesquisa e pode ser util para descobrir comandos desconhecidos.

apropos jpeg : Similar ao man -k este procura por comandos que possuem "jpeg" no nome do comando ou na descrição.

*** Listar e Copiar Arquivos ***

ls : Lista arquivos e diretórios. "-l" lista as permissões e tamanho, "-a" lista todos arquivos incluindo os que começam com "."

cp : Copia arquivos "copy"

cp /home/rafael/teste.deb /home/lucas/.
: Copia o arquivo teste da pasta rafael para a pasta lucas com o mesmo nome "teste.deb"

cp /tmp/spoungebob.mov . : Copia o arquivo spoungebob.mov para o diretório atual.

which nomedocomando : Mostra o caminho do comando onde fica o executável do comando.

more nomedoarquivo :
Exibe o conteúdo de um arquivo texto pausando por tela "more".

updatedb : Autaliza o Index de arquivos para procura.

*** Editar .bash_profile ***

Editar o arquivo .bash_profile para informar o sistema onde buscar os arquivos executáveis que eventualmente irá usar, adiciona-se as seguintes linhas:

# User specific enviroment and startup programs

PATH=$PATH:/usr/sbin:/sbin

export PATH

salvar e sair do editor.
Após, para rodar o arquivo de configuração e aplicar as alterações sem precisar logar novamente digitar:
source .bash_profile

*** Editar .bashrc ***

Serve para criar aliases de comandos, como por exemplo fazer com que toda vez que executar o comando "rm" ele assuma como sendo "rm -i", o qual interroga por confirmação toda vez que usar o rm para deletar arquivos.

Abrir o vi .bashrc e adicionar no final do documento:

alias rm='rm -i'

Salvar e sair.
Rodar source .bashrc

*** Add, Modify, Delete User ***

useradd -D : Mostra as configurações Default usadas na criação de um novo usuário.

useradd nomedousuario : Cria um novo usuário com as configurações default.
useradd -c "Joe Schmo" joe : Cria o user Joe com comentário "Joe Schmo"
passwd nomedousuário : Altera a senha do user, somente root tem permissões para isso.
cat /etc/passwd : Mostra os usuários, password "x", Group ID, comentário, home directory, default shell.

cat /etc/shadow : Mostra o username, password criptografado.

man useradd : Mostra todas opções para o comando useradd (abre o manual do comando)

man userdel : Mostra todas opções do userdel.

userdel -r nomedousuario : Remove o usuário e todo o diretório dele no /home

man usermod : Mostra opções do usermod.

usermod -c "Lisa Simpson" lisa : Adiciona um comentário ao user já existente Lisa.

------
Para alterar a senha de vários usuário de 1 vez só, criar um arquivo, por exemplo, com nome de pwlist e digitar dentro dele a seguinte estrutura:
"nomedouser:senha"

Ex.:


alice:ScRatch44x
bob:Lego77eggo
candy:niner9erX

Após digitar "chpasswd < pwlist" . Todos os usuários do arquivo pwlist tiveram suas senha alteradas. Após apagar o pwlist para não deixar a senha exposta.

rm pwlist : remove o arquivo.
------

*** File Permissions ***

ls -l : mostra as permissões

-rwxr-xr-- = diretório, user, group, other(everyone).

chmod g+w nomedoarquivo : Muda permissão adicionando write permitions para o grupo.
chmod ug=rw nomedoarquivo : Muda permissão de user e group para read e write, quando o sinal = é usado ele apaga a permissão anterior.

chmod 754 nomedoarquivo : Altera a permissão em modo binário 1 0 1 = 5 1 1 1 = 7 0 1 1 = 3 1 0 0 = 4
- - - - - - - - - - - -
- rwx r-x r-- 4 2 1 4 2 1 4 2 1 4 2 1
111 101 100

Directory Modes:

rwx -> Full access
r-x -> Limited access (enter, read)
--- -> No access

chown nomedouser.nomedogrupo nomedoarquivo : altera o Owner do arquivo.

*** Gerenciamento de Grupos ***

cat /etc/group : mostra a lista de grupos nome:x:numerodogrupo.

groupadd nomedogrupo (máx 8 caracteres) : cria um grupo

usermod -G nomedogrupo nomedousuário : adiciona um user a um grupo.

usermod -G nomedogrupo1,nomedogrupo2 nomedousuario : Adiciona o usuário a mais de um grupo.

groups nomedousuario : Lista todos os Grupos ao qual o usuário faz parte.

newgrp nomedogrupo : altera o grupo ao qual o user esta fazendo parte no momento. ao criar novo arquivo ou pasta ela é criada com o owner sendo o grupo atual.
gppaswd -A nomedousuário nomedogrupo : configura um usuásio como sendo administrador de um grupo.

gpasswd -a nomedousuário nomedogrupo : inclui um usuário ao grupo.

gpasswd -d nomedousuário nomedogrupo : exclui um usuário do grupo.
*** Instalando Softwares packages ***

tar : Tape archive

É um arquivo que contem arquivos e pastas dentro dele mesmo. Após "untar" o arquivo terá um executavel ou um arquivo source que terá que ser compilado.

- Funciona em todas distribuições
- Mais trabalho para instalar
- Uso Básico: tar xvf pkg.tar pkg_directory

Se o nome do package acabar com .tgz significa que é um arquivo .tar compactado. Neste caso o comando seria:
tar xvfz pkg.tgz pkg_directory
No arquivo "readme" dentro do diretótrio descompactado há informações sobre os passos a seguir, como compilar o source code, etc...

rpm : Red Hat Package Manager

Também utilizado por outras distribuições como Mandrake, Linux PPC, etc...

Name convention: packagename -a.b.c-x.arch.rpm
Ex.: skype-1.4.0.118-fc5.i586.rpm [1.4.0.118 é a versão do software, -fc5 é a release que no caso fedoracore5, i586 é a arquiterura de processador compatível].

Sintaxe:

rpm [operations] [options] [package]

[operations] = -i (install), -U (update), -q (query), -e (uninstall).
[options] = --force (força overwriting de libraries), --nodeps (força a instalação mesmo faltando libraries dependentes).
[package] = nome do package

Um exemplo comum utilizado na instalação de packages rpm é: rpm -ivh skype-1.4.0.118-fc6.i586.rpm
Para desinstalar o mesmo software o comando seria: rpm -e skype

deb : Debian Package Manager


Também utilizado por outras disttribuições como Ubuntu, Storm, Corel, etc...

Comandos básicos utilizados: dpkg e apt-get


-i (install)
-P (purge)
dpkg ---> -p (print info about installed pkg)
-I (info about uninstalled pkg)


update (obtains updates from remote locations)
apt-get --->
install (Install from remote locations)

No arquivo sources.list fica a lista de endereços de sites confiáveis onde o comando apt-get irá procurar pelo software solicitado.

Exemplo:

dpkg -i nomedopacote.deb
apt-get install nomedopacote
*** Administration of Filesystems ***

Filesystems: ext2fs, ext3, ReiserFS.

Comandos utilizados para gerenciar aquivos de sistema, partições e devices:

cfdisk : Semelhente ao fdisk, interface mais amigável

mkfs : formata e cria filesystems em uma partição.

fdisk : criar e examinar file systems e partições .

fdisk -l : Lista todas as partições do sistema.

fdisk /dev/sda : Entra no modo de configuração do HD /sda no caso.

fsck : examina partições em busca de erros.

fsck /dev/sda2 : inicia checagem da partição sda2. (OBS.: A partição deve ser desmontada antes de rodar o fsck para evitar danos, ou montada como read-only).

mount : monta file systems, partitions e devices.

mount -t iso9660 /dev/cdrom /mnt/cdrom : monta a unidade de CD na pasta /mnt/cdrom

umount : desmonta file systems, partitions e devices, para usar o comando deve estar fora da pasta de montagem do mesmo).

umount /dev/cdrom : desmonta a unidade de CD.

df : Informa quanto espaço em um file system esta sendo usado.

df -h : Mostra a informação em modo humano, facilitando a compreensão das informações.

du : Informa quanto espaço esta sendo usado em cada pasta e arquivo abaixo da hirarquia da pasta atual.

du -h
: modo humano.

du --max-depth=1 -h : Mostra o total de espaço descendo apenas 1 pasta na hierarquia, mas mesmo assim incluindo o tamanho de pastas e arquivos abaixo dela informando o total, facilitando por exemplo verificar o total de cada usuário abaixo da pasta /home.

*** Administration of Networks ***

Configurar placa de rede:

netconfig : Configura a rede no Red Hat Linux.

cd /etc/sysconfig
: acessa diretório onde estão as configurações das placas de rede.

cat ifcfg-eth0 : mostra as configurações da placa de rede.

ifconfig eth0 up 192.168.0.5 netmask 255.255.255.0 : Configura placa de rede em outras versões do linux que não possuem o programa netconfig, pode ser utilizado no Red Hat também. (Obs.: Neste comando não é informado o gateway, para isso utiliza o comando route add).

route add default gw 192.168.0.254 : Configura o default gateway.

cat /etc/resolv.conf : mostra qual o DNS server (name server) configurado. Para alterar o DNS configurar com vi resolv.conf, para adicionar DNS secundário é só descrever em uma nova linha abaixo.

mii-tool : Mostra as placas de rede instaladas e quais estão com link ativo.

Configurar modem para conexão a internet:
cd /usr/share/doc/ppp-2.4.1/scripts : acessar a pastas /scripts

more ppp-on : mostra as configurações de discagem atuais.

vi ppp-on : editar as configurações de conexão de acordo com informações do provedor.

ppp-on : inicializa a discagem.

*** Acesso Remoto no Linux ***

Acessando um computador com linux remotamente em modo texto:

telnet sdf.lonestar.org : Inicia uma sessão em modo texto com o computador remoto. As desvantagens são que não possui modo gráfico e ao digitar o user name e password para acesso é enviado em plain text sendo fácil de alguém roubar a senha com um sniffer. Telnet não é seguro, para segurança deve ser usado SSH (Secure Shell).

ssh -l [loginname] [hostname | user@hostname] [command] : sintaxe do comando para iniciar sessão ssh. Sempre usar SSH para administração remota, nunca o telnet.

Acessando um computador com linux remotamente em modo GUI:

Exemplo: Para conectar à uma estação de nome micro02 a partir da estação micro01.

1) logar no micro01
2) digitar "xhost+micro02"
3) logar no micro02 com SSH
4) digitar "export DISPLAY micro01:0.0"
5) Inicializar Programas

Acessando um computador com linux remotamente com FTP:

ftp : Inicializa FTP em modo texto, para iniciar digita ftp [enter], depois help [enter] mostra as opções.

Ex.:
ftp
ftp> open ftp.bermudas.com
name:(ftp.bermudas.com:benkens): "[enter] para aceitar user atual ou digitar novo user para logar."
Password: ******
User Benkens Logged In.
ftp> ls "mostra as pastas e arquivos no servidor. digamos que exista um arquivo chamado ubuntu.iso"
ftp> get ubuntu.iso /home/benkens/ubuntu710.iso "Faz o download do arquivo ubuntu.iso e salva em /home/benkens localmente com o nome de ubuntu710.iso"
ftp> put /home/benkens/ubuntu710.iso ubuntu710.iso "Faz o upload do arquivo local ubuntu710 para o servidor gravando com o mesmo nome"
ftp> close "Fecha a conexão"
ftp> quit "Sai do FTP"

gftp : Inicializa ferramenta FTP com modo gráfico.



*** Secutity Administration ***

Um site bom com vários recursos e informações de configurar a segurança no linux em várias áreas é Linux-Sec.net

No caso de encontrar algum programa desconhecido que possuiu uma permissão SetuID (-r-s--x--x como por exemplo passwd) talvez seja o ideal remover o programa (somente se nao for conhecido). pois essa permissão indica que em algum momento ao rodar um programa um usuário irá ter permissão root para escrever em algum arquivo no sistema, caso a operação de alguma maneira for interrompida neste momento, o user pode estar com permissões root e danificar o sistema.


*** Firewall ***

Um site bom sobre firewall no linux é Linux-Firewall-Tools.com. O programa "Manson" disponível neste site ajuda a configurar o Firewall.

Há duas maneiras de bloquear acesso no Linux, usando o Firewall (Bloqueia qualquer servico) e os superdaemons (daemons são programas que rodam no sistema em background) inetd e xinetd (bloqueiram apenas alguns serviços). Configurar os 2 juntos fornece uma segurança ainda maior caso uma das opções venha a falhar.

Os superdaemons ficam rodando no background e ao receberem uma requisição de um serviço, por exemplo FTP, iniciam o serviço do ftp para encaminhar a requisição, isso evita que todos os serviços precisem estar sempre ativos consumindo recursos do servidor, ao terminar a sessão com FTP o superdaemon volta a colocar o FTP inativo.

O inetd trabalha em conjunto com chamados TCP Wrapper que são basicamente dois arquivos /etc/hosts.allow e /etc/hosts.deny. Estes arquivos possuem a lista de hosts que podem ou não acessar o sistema. Se um Host estiver configurado nos dois arquivos o hosts.allow vence, portanto certifique-se que não há nenhum host no allow que você quer manter fora de acesso.

O xinetd é uma ferramenta semelhante mais atual e permite configurações mais refinadas, vem incluida com o Red Hat. Não utiliza os mesmos arquivos do inetd (hosts.deny/hosts.allow). Maiores informações sobre a ferramenta pode ser encotradas em xinetd.org é uma ferramenta mais segura do que o inetd.

0 comentários:

New Releases Top Sellers Future Releases
Bargain Bin UMD Video Accessories

Browse Categories: Playstation 2, XBox, XBox 360, Playstation 3, Nintendo Wii, Sony PSP, Gamecube, Gameboy Advance, Nintendo DS, PC