Friday, July 27, 2007

Gnome/Nautilus and Mozilla Shortcut Keys

Here are some very handy shortcut keys for Gnome/Nautilus an Mozilla you might not now.

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:


  • /proc/devices
    Aqui estão os dispositivos encontrados no seu sistema, incluindo modem, placa de som, placa de rede, teclado, impressora, etc.
  • /proc/interrupts
    Neste arquivo estão as informações das IRQs dos dispositivos.
  • /proc/ioports
    Informações sobre os endereços das portas I/O (Input/Output).
  • /proc/pci
    Dispositivos PCI instalados no sistema. O comando 'lspci' também serve para mostrar esse arquivo.
  • /proc/cpuinfo
    Aqui você pode ver as características do seu processador e máquina.
  • /proc/filesystems
    Sistemas de arquivos suportados pelo kernel.
  • /proc/devices
    Dispositivos gerais instalados.
  • /proc/meminfo
    Informações da memória usada. O comando 'free' também serve para mostrar este arquivo.
  • /proc/modules
    Módulos carregados no kernel. O comando 'lsmod' também serve para mostrar este arquivo.
  • /proc/mounts
    Partições montadas. O comando 'mount' sem parâmetro nenhum mostra esse arquivo.
  • /proc/partitions
    Partições existentes e que o Linux reconheceu.
  • /proc/version
    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.

  • Tirado de: http://www.devin.com.br/eitch/fsproc/
  • 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
    drwxr-xr-x 2 root root 1024 Dec 31 05:48 boot
    drwxr-xr-x 2 root root 1024 Dec 6 15:51 cdrom
    drwxr-xr-x 3 root root 8192 Mar 11 10:17 dev
    drwxrwxr-x 2 root root 1024 Feb 27 13:52 dosa
    dr-xr-xr-x 11 root root 2048 Mar 11 10:19 etc
    drwxr-xr-x 11 root root 2048 Feb 23 19:08 home
    drwxr-xr-x 3 root root 1024 Feb 23 19:13 lib
    drwxr-xr-x 2 root root 12288 Nov 2 11:25 lost+found
    -rwxr--r-- 1 root root 57 Mar 10 03:44 make-backup
    -rw-rw-r-- 1 killer users 2342 Mar 10 03:12 teste.txt
    -rw-rw-rw- 1 hugo visits 23412 Mar 09 22:22 teste2.doc

    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
    0111222333

    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
    \--------> Não contém a letra 'd', não é diretório, e sim arquivo

    O exemplo abaixo mostra o que seria um diretório:

    drwxr--r--   1 root     root            1 Mar 10 01:12 bin
    \----------> Contém a letra 'd' na primeira coluna, é um diretório

    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
    brw-rw---- 2 hugo cdrom 22, 64 May 5 1998 hdd
    lrwxrwxrwx 1 root root 8 Oct 17 22:53 cdrom -> /dev/hdd

    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
    ||\--------> O dono do arquivo (killer) pode executar o arquivo, x=executable!
    |\---------> O dono do arquivo (killer) pode gravar no arquivo, w=writable!
    \----------> O dono do arquivo (killer) pode ler o arquivo, r=readable!

    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
    ||\-----> O grupo dono do arquivo (visits) pode executar o arquivo!
    |\------> O grupo dono do arquivo (visits) pode gravar no arquivo!
    \-------> O grupo dono do arquivo (visits) pode ler o arquivo!

    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
    ||\--> Todos os usuários (exceto fernando e usuários do grupo visits)
    || tem permissão para acessar o arquivo!
    |\---> Todos os usuários (exceto fernando e usuários do grupo visits)
    | tem permissão para gravar no arquivo!
    \----> Todos os usuários (exceto fernando e usuários do grupo visits)
    tem permissão para ler o arquivo!

    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
    ||||| \----> Todos os usuários podem ler o interior do diretório, mas não
    ||||| podem usar o comando 'cd' para entrar nele, pois não existe
    ||||| o FLAG 'x' para a quarta coluna!
    ||||\-------> Usuários do grupo 'root' podem ler o interior do diretório,
    |||| mas também não podem usar 'cd' para entrar no diretório!
    |||\--------> O usuário 'root' pode usar 'cd' para entrar no diretório!
    ||\---------> O usuário 'root' pode gravar arquivos nesse diretório!
    |\----------> O usuário 'root' pode ler o interior desse diretório!
    \-----------> Indica que o nome listado é um diretório!

    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
    $ chown hugo.users teste6.txt
    Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br

    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
    passwd 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ó:

    CampoSignificado
    hugoLogin do Usuário, aqui você pode colocar o nome que quiser com até 8 caracteres.
    xAqui 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.
    1001UID (User IDentification), o número de identificação do usuário.
    100GID (Group IDentification), o número de identificação do grupo do usuário.
    Hugo CisneirosComentários do usuário, como nome, telefone, etc
    /home/hugoO diretório HOME do usuário, ou seja, o diretório pertencente a ele. Geralmente estes diretorios sempre estao no /home
    /bin/bashShell 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
    hugo:x:0:0: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!

    Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br

    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.