This blog is about: Open Source, Operating Systems (mainly linux), Networking and Electronics The information here is presented in the form of howtos. Sometimes the information migth be in portuguese! As vezes a informação pode estar em portugues!
Friday, July 27, 2007
Gnome/Nautilus and Mozilla Shortcut Keys
nautilus / gnome:
ctrl-h : show hidden files
ctrl-t : move to trash
f9 : toggle side-pane
alt-home : jump to home folder
alt-enter : file / folder properties
alt-f1 : launch applications menu
alt-f2 : launch “run application” dialogue
ctrl-alt - right/left arrow : move to the next virtual desktop
ctrl-alt-shift - right/left arrow : take current window to the next virtual desktop
ctrl-atl-l - to lock your screen while you are away
firefox:
ctrl-k : firefox search field
ctrl-l : firefox address bar
ctrl-pgup : next tab (left to right)
ctrl-pgdn : previous tab (right to left)
ctrl-t : new tab
ctrl-r / f5: reload page
ctrl-u : view page source
Based on: http://ubuntu-tutorials.com/2007/02/20/shortcut-keys-you-might-not-know-about/
Sunday, July 15, 2007
Sistema de ficheiros /proc
Hugo Cisneiros, hugo@devin.com.br
Última atualização em 06/02/2003
O sistema de arquivos /proc é um diretório especial onde fica todas as informações de depuração do kernel. Também se encontram algumas configurações que habilitam e desabilitam o suporte à alguma coisa no kernel. É muito útil para o diagnóstico do seu hardware. Vou aqui comentar arquivos do /proc para você 'depurar' o seu hardware:
Aqui estão os dispositivos encontrados no seu sistema, incluindo modem, placa de som, placa de rede, teclado, impressora, etc. Neste arquivo estão as informações das IRQs dos dispositivos. Informações sobre os endereços das portas I/O (Input/Output). Dispositivos PCI instalados no sistema. O comando 'lspci' também serve para mostrar esse arquivo. Aqui você pode ver as características do seu processador e máquina. Sistemas de arquivos suportados pelo kernel. Dispositivos gerais instalados. Informações da memória usada. O comando 'free' também serve para mostrar este arquivo. Módulos carregados no kernel. O comando 'lsmod' também serve para mostrar este arquivo. Partições montadas. O comando 'mount' sem parâmetro nenhum mostra esse arquivo. Partições existentes e que o Linux reconheceu. Versão do kernel. O comando 'uname' também serve para mostrar este arquivo. Explore este diretório! Só não dê um cat no arquivo /proc/kcore, por favor! :) kcore = kernel core. |
Permissões de directorias e ficheiros em Linux
Hugo Cisneiros, hugo@devin.com.br
Última atualização em 06/02/2003
No Linux, como em outros sitemas Unix, cada arquivo tem uma permissão. As permissões são atributos dos arquivos que especificarão se ele pode ser lido, executado ou escrito. Estas permissões que vão definir o que um usuário pode fazer. Para saber se um programa é executável ou não, execute um 'ls -l' e veja no lado esquerdo se o arquivo tem X nos seus argumentos, como no exemplo abaixo:
drwxr-xr-x 2 root root 1024 Dec 23 15:22 bin |
No exemplo acima todos os arquivos tem como dono root e como grupo também root, com exceção do 'teste.txt' que o dono é 'killer' e o grupo é 'users', e também 'teste2.doc', no qual 'hugo' é o dono e o grupo 'visits' também é dono. Como você pode ver do lado esquerdo de cada arquivo/diretório existe um série de letras r, w, x ou d! Vamos ver o que representa cada uma delas:
drwxrwxrwx |
No caso acima, a primeira coluna significa (numero 0) se o nome listado é um diretório ou não, caso não seja um diretório ele será exibido da seguinte maneira:
-rwxr--r-- 1 root root 57 Mar 10 03:44 make-backup |
O exemplo abaixo mostra o que seria um diretório:
drwxr--r-- 1 root root 1 Mar 10 01:12 bin |
Também há casos em que no lugar do 'd', aparecem outras letras que indicam outros tipos de arquivos. A letra 'l' significa que é um link simbólico, as letras 'c' e 'b' correspondem à dispositivos (/dev). Veja alguns exemplos abaixo:
crw-rw---- 1 hugo audio 14, 4 Dec 2 1999 audio |
Continuando, na segunda coluna (números 1 de acordo com o exemplo mais acima) temos as definições para o dono do arquivo, como mostra o exemplo:
-rwxr--r-- 1 killer users 1231 Mar 09 12:12 teste.txt |
Seguindo, na terceira coluna (números 2 de acordo com o exemplo lá em cima) temos as definições para o grupo que é dono do arquivo, como mostra o exemplo:
-r--rwxr-- 1 fernando visits 212 Mar 01 12:42 exemplo.doc |
Finalmente, temos a quarta coluna (composto pelos números 3), essa coluna se refere as permissões para todos os outros usuários do sistema, sem ser os donos e grupos-donos dos mesmos, exemplo:
-r--r--rwx 1 fernando visits 1231 Mar 03 12:42 exemplo2.doc |
Quando nos referimos a diretório invés de arquivos, o FLAG x (executável) diz se o diretório é ou não acessível, já que não podemos "EXECUTAR" diretórios... Exemplo:
drwxr--r-- 1 root root 2134 Mar 01 12:54 exemplo3 |
O comando chmod pode ser usado para mudar os FLAGS 'rwx' dos arquivos e/ou diretórios, a sintaxe básica do comando é:
chmod [ugoa]{-+}[rwx] nome_do_arquivo_ou_diretório |
Então vamos à um exemplo. Se eu quero mudar a permissão para o dono do arquivo (u=user) poder ler e gravar (rw) no 'arquivo1.txt', faço o seguinte:
$ chmod u+rw arquivo1.txt |
Caso você queira desfazer o comando, você faria: "chmod u-rw arquivo1.txt". Como se vê, o + ou - define se os FLAGS serão ativados ou desativados! Outros exemplos:
$ chmod a+r arquivo2.txt |
(Todos usuários (a=all) podem ler o 'arquivo2.txt')>
$ chmod o+w arquivo3.txt |
(Outros usuários (o=others) sem ser o dono e o grupo dono do arquivo, podem gravar no 'arquivo3.txt')
$ chmod g+x netscape |
(O grupo-dono do arquivo (g=group) pode executar o arquivo 'netscape')
O comando chmod pode também ser usado com números, em vez dos flags. Este método é chamado de octal, veja o exemplo abaixo:
$ chmod 664 arquivo.txt |
O que quer dizer cada um desses números? Veja abaixo:
Número | Significado |
0 | Nenhuma permissão |
1 | Permissão para executar |
2 | Permissão para gravar |
3 | Permissão para gravar e executar |
4 | Permissão para ler |
5 | Permissão para ler e executar |
6 | Permissão para ler e gravar |
7 | Permissão para ler, gravar e executar |
No exemplo o comando informou que o 'arquivo.txt' pode ser lido e gravado pelo seu dono (numero 6 na primeira coluna), informou que pode também ser lido e gravado pelos usuários que compõem o grupo-dono (numero 6 na segunda coluna), e informou que pode ser lido por todos os outros usuários do sistema (numero 4 na ultima coluna).
O comando chown é simples e pode ser usado para mudar o dono e o grupo dono de um arquivo/diretório. E é usado da seguinte maneira:
$ chown usuario.grupo arquivo_ou_diretorio |
Como exemplo, vamos definir que um arquivo 'teste4.txt' terá como dono 'killer' e como grupo 'users':
$ chown killer.users teste4.txt |
Outros exemplos:
$ chown mrdvs.visits teste5.txt |
Tirado de: http://www.devin.com.br/eitch/permissoes/
Gestão de Utilizadores (Linux)
Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br
Última atualização em 12/02/2003
Como você já deve saber, o Linux é um sistema multi-usuário, então, é claro que não só pode existir um usuário usando o sistema. Uma primeira coisa que possamos dizer é que o Linux não pode de alguma maneira ser usada sem estar sendo um usuário. O usuário 'root' é o administrador do sistema, e é ele quem você vai usar primeiro para criar outros usuários depois (a não ser que você tenha criado um usuário comum durante a instalação do seu Linux).
Antes de mais nada, fique sabendo que o root é um usuário especial, ele pode fazer TUDO em seu sistema, não importa o que acontecer, ele faz. Ao contrário dos usuários comuns, que têm restrições. Se você já instalou algum Linux, você verá que a primeira coisa que você irá fazer antes de usar o sistema é se logar como root, ou seja, preencher aquele campo login: com o usuário root. Mas aí por alguma razão você quer mudar de usuário, ou criar outro, ou qualquer coisa do tipo, então você se pergunta: "Como?"
Há um comando específico para isto. Este comando é o "adduser" ou "useradd". Dependendo da distribuição, o comando "adduser" vai ser apenas um comando igual ao "useradd", ou então um script interativo que irá lhe fazendo perguntas, você irá preenchendo, e então o script criará um usuário no sistema para você.
No caso do "adduser" ser um comando mesmo, você poderá utilizar assim:
adduser hugo |
Isso respectivamente irá criar um usuário padrão chamado hugo, e depois com o comando "passwd", você definirá uma senha para este usuário. Você pode especificar outros parâmetros para o usuário, como no comando a seguir:
adduser hugo -d /var/usuarios/hugo -s /dev/null |
Com estes parâmetros, especifiquei que o usuário hugo terá como diretório home o "/var/usuarios/hugo" e como shell o "/dev/null" (ou seja, não terá shell). Sem estes parâmetros, o diretório home seria "/home/hugo" e o shell seria "/bin/bash".
Vamos entender agora como este comando funciona, que é uma coisa essencial que todos deveriam saber em relação ao sistema Linux. Cada um desses programas escrevem o usuário no arquivo de configuração do Linux referente aos usuários do sistema. Este arquivo é o "/etc/passwd". Cada linha deste arquivo é um usuário cadastrado no sistema. Com as informações que vou lhe dar aqui, você pode muito bem criar uma conta sem usar estes programas/scripts citados acima.
O passwd é formado por linhas onde cada linha é um usuário, como falei acima, então vamos aprender a montar cada linha desta. Vou pegar um exemplo para vocês:
hugo:x:1001:100:Hugo Cisneiros:/home/hugo:/bin/bash |
Vamos dividir esta linha em "campos", onde cada um é separado por : (dois pontos), olhe só:
Campo | Significado |
hugo | Login do Usuário, aqui você pode colocar o nome que quiser com até 8 caracteres. |
x | Aqui diz que o password está no arquivo /etc/shadow. Se estivesse *, a conta estaria desabilitada, e se estivesse sem nada (::), a conta não teria password. |
1001 | UID (User IDentification), o número de identificação do usuário. |
100 | GID (Group IDentification), o número de identificação do grupo do usuário. |
Hugo Cisneiros | Comentários do usuário, como nome, telefone, etc |
/home/hugo | O diretório HOME do usuário, ou seja, o diretório pertencente a ele. Geralmente estes diretorios sempre estao no /home |
/bin/bash | Shell do usuário, ou seja, o programa que irá enterpretar os comandos que o usuário executar. |
Obs: O /etc/shadow é um arquivo que contém a senha do usuário criptografada, se alguém tiver posse dela, esta pessoa pode muito bem comparar as senhas com uma lista de palavras, e pode descobrir as senhas dos usuários. Felizmente este arquivo está muito bem protegido pelo sistema :)
Bem, legal, aprendi sobre adicionar um usuário, mas como faço para removê-lo? Simples, você pode apagar a linha referente a ele no /etc/passwd e os seus arquivos, ou simplesmente digitar userdel usuario. Combine com a opção -r para deletar junto o diretório HOME do usuário.
Ahhhhh? Você quer mais? O quê? Quer deixar um usuário como se fosse root? Então vamos lá que não temos nada a perder! O root possui o UID e o GID igual à 0 (zero), e um usuário comum não. Se nós forçássemos a mudança do UID e GID de um usuário para 0, ele ficaria como se fosse o root! Por exemplo, eu tenho a linha do usuário no /etc/passwd e mudo:
hugo:x:1001:100:Hugo Cisneiros:/home/hugo:/bin/bash |
Pronto, o usuário hugo vai ser também o root do sistema, o administrador do sistema, o deus do sistema, etc. Outra dica: Não é muito bom ficar usando o usuário root, este usuário é somente para a administração do sistema, então eu recomendo à você a usar sempre um usuário normal, ser da plebe :) E se for precisar usar o root, logar como ele ou utilizar o comando "su -" para se tornar o próprio root.
Outro arquivo que tem muito haver com os usuários no Linux é o /etc/group. Que contém as definições de cada grupo, como por exemplo seus nomes, GIDs, e usuários adicionais que pertencem à ele. Você adicionando uma linha neste arquivo estará criando um novo grupo. Vamos criar aqui um novo grupo no /etc/group:
metal:x:666:hugo,jim,eitch |
Adicionando esta linha acima no arquivo /etc/group, um novo grupo é criado: com o nome 'metal', o GID '666' e como usuários adicionais pertencentes à ele, 'hugo, jim, eitch'. Fácil não?
Bem é isso, combinando este conhecimento com algo sobre permissões dos arquivos, você pode controlar muito bem quem usa o seu sistema ou servidor, dizendo quem pertence à que grupo, quais seus diretórios, que arquivos podem acessar, entre outros. Bom proveito!
Tirado de: http://www.devin.com.br/eitch/manip_usuarios/
Monday, July 2, 2007
Save of a partition table (MBR)
Introduction to partitions
Even if you have only one volume, your hard disk is divided into
partitions. The standard MSDOS voulme label allows to have up to 4
primary partitions. The partition table is stored in the MBR (Master
Boot Record). This area is the first 512 bytes of the physical hard
drive. It also contain some code which will start the operating system,
which can be the bootloader (LILO, grub, ...). If your hard disk is
hda, parimary partitions are hda1, hda2, hda3 and hda4. It's easy to
save to primary partitions table, by copying the MBR.
To get past this limitation of 4 primary partitions, you can
create an extended partition. An extended partition is a primary
partition which contains a lot of partitions. For example, if hda2 is
an extended partition, its logicial partitions will lappear as hda5,
hda6, hda7, ... even if you don't use 4 primary partitions. That's why
you can have an hda5 device, with no hda4. The problem with extended
partition is there is no table we can easily save. The extended
partition contains a linked list. hda5 will point to hda6, hda6 will
point to hda7 and so on. This makes it difficult to save the partition
table of the extended partition.
Partimage can save the data of one partition, but it won't save
your partition table. If you have a major problem with your hard drive,
you may have to restore both the partition table and the data - having
the images of the partitions won't be a lot of help on there own. Which
is why we'll show you how to save the partition image now.
Making a backup of the partition entries
We will save all the partitions entries (both primary and logicial
ones which appear in the extended partition). In this example, we'll be
assuming that hda (the first IDE hard disk) is to be backed up.
First, we will save the MBR with DD (GNU convert and copy)
cd /root
mkdir partition-backup
cd partition-backup
dd if=/dev/hda of=backup-hda.mbr count=1 bs=512
It will produce a very small, but very important file: 512 bytes of data. Now, we will save entries of the extended partitions:
sfdisk -d /dev/hda > backup-hda.sf
sfdisk is a tool provided with the util-linux package.
IMPORTANT: You should now put these files somewhere safe
- copy them to a floppy disk (and take a copy of it!), or burn them
onto a CD. Keep these files safe. Do not leave them on your hard drive
- if there is a problem with th drive, you may not be able to access
these files, and while your partition images won't be wortheless, it
will certainly be a lot harder to restore your data.
Restoring partition entries from the backup
Be careful, restoring is a dangerous action - it can destroy data! First, we will restore the Master Boot Record:
dd if=backup-hda.mbr of=/dev/hda
Then, here is how to restore extended partitions entries:
sfdisk /dev/hda < backup-hda.sf
To finish, you will have to reboot your computer.
Retrieved from "http://www.partimage.org/Partimage-manual_Usage"
Wednesday, June 27, 2007
SSH Tunneling Tested With VNC
You can create a tunel by tiping the folowing command:
# ssh -L local_port:127.0.0.1:remote_port you_login_on_remote_host@remote_host_ip
now you will have to input your ssh password, wich is your password on the remote host.
With this tunel when you connect a VNC client (or any other client) to your "local_port"
on the localhost (127.0.0.1) the data the client generated is sent through the tunel
to the "remote_port" on the remote host which is the VNC server port (or any other server).
To connect your VNC client through the tunel (assuming you use vncviewer), type the folowing comand:
# vncviewer 127.0.0.1:local_port
now input the vnc password, and that's it, you sould see a window with the remote desktop.
Note: the data in the tunel on the network is encripted, so an ssh tunel provides you security on the network, you can have a tunel that goes through the internet and no one will see what you are transfering, because all of the data is encripted.
Nessus Instalation and Configuration
The first step is to install the server and the client with the folowing comands:
# apt-get install nessusd
# apt-get install nessus
Now you need to add a user to nessus or else it wont connect to the server, even if you try your login and password on the machine where the server is instaled.
# sudo nessus-adduser
Password:
Using /var/tmp as a temporary file holder
Add a new nessusd user
----------------------
Login : my_login
Authentication (pass/cert) [pass] :
Login password :
Login password (again) :
User rules
----------
nessusd has a rules system which allows you to restrict the hosts
that my_login has the right to test. For instance, you may want
him to be able to scan his own host only.
Please see the nessus-adduser(8) man page for the rules syntax
Login : my_login
Password : ***********
DN :
Rules :
Is that ok ? (y/n) [y] y
user added.
On the "Authentication (pass/cert) [pass] :" just press enter.
Now you just need to start the nessus server, with the folowing command:
# /etc/init.d/nessusd start
And start the client with:
# nessus
input the login and password you added before, select the plugins you want to use in the vulnerability scan and input the target of scan and press "Start the scan"