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!
Wednesday, November 28, 2007
How To Play RMVB (Real Media) in Mplayer
Basically in this "how to" we are going to show how to add a additional pack of codecs (Windows codecs), in which the RMVB codec is included.
First off all, let's start by installing the Mplayer, using apt-get:
$ sudo apt-get install mplayer
Now that the mplayer is installed let's download the the pack, at:
ftp://opensys.linuxpackages.net/pub/Slackware-10.1/jay/mplayer/MPlayer_codecs-20050412-i686-1jto.tgz
Extract the MPlayer_codecs-20050412-i686-1jto.tgz like this:
$ mkdir /tmp/codecs
$ cd /tmp/codecs
$ tar -zxvf /.../MPlayer_codecs-20050412-i686-1jto.tgz
Now we have all the extracted content of MPlayer_codecs-20050412-i686-1jto.tgz in /tmp/codecs.
The next step is to copy the codecs to the rigth place, so that Mplayer can use them,
that place is the directory /usr/lib/win32 (which probably doesn't exist). To do that just do like this:
$ sudo mkdir /usr/lib/win32
$ sudo cp /tmp/codecs/usr/lib/codecs/* /usr/lib/win32
And that's it, now you can play RMVB files along with many others.
Just one more thing, cleaning up the extracted codecs:
$ sudo rm -rf /tmp/codecs
All set! Enjoy :)
Thursday, August 2, 2007
Tunelling P2P (Bitorrent) Over SSH
Have you ever been on a network somewhere where Bittorrent simply doesn’t work? The ports might be blocked, the packets are inspected, etc…? Well, after a little research and a buck i’ve managed to come up with a pretty good solution. I’d heard about tunneling content through SSH, but never really figured out how to get it working. That is, until now.
I was really excited my first day at Blue Lava when I heard that they had a 20mbps connection. I was told I could download full Linux ISO’s in ten minutes. Pretty quick. Sadly the ports for Bittorrent were blocked and my downloading spree never began.
Right now I am sitting in a Starbucks right near the south shore of Oahu, Hawaii. I’ve got Azureus open and its downloading at a steady pace of 170kbps, I’ve pretty much maxxed out the connection over here. The funny (or cool) thing is, the ports are blocked! So how can you bypass your corporate firewall or public hotspot (like Starbucks T-Mobile WiFi) and work out your download muscle? Read on!
First of all, you are going to need some sort of shell account to tunnel everything through. I’ve already tried using my Silenceisdefeat account, but their SSH server is not configured the way that we want it, so that won’t work. A friend of mine told me about Disflux, a service almost exactly like Silenceisdefeat. Disflux has their SSH servers configured the way we want em though, so that is what we are going to use.
UPDATE: Turns out that Disflux died or something. But! Don’t flip out! As it turns out (Thanks Chris! - #19) Silenceisdefeat.org, which is my choice of shell anyway, does work with this guide. However, it will only work if you connect to ssh.silenceisdefeat.org!
So I shelled out the $1 for my disflux Silenceisdefeat.org shell account (I actually already had one, best thing ever), and went on my merry way figuring out how to configure everything else. Some may think that paying for something like this is nuts, but honestly, Bittorrent has become a part of my everyday life, I depend on it like a crack addict depends on his crack. One buck is totally worth the hours of glee BitTorrent has to offer.
First thing you need to do after buying your shell account is open up a terminal (in OSX its in the Utilities folder), or download putty if you’re on Windows. If you are on Linux and don’t know how to open a terminal I feel sorry for you.
In the terminal type “ssh username@domain -D portnumber”, this goes for OSX and Linux. Now, with PuTTY on Windows I am not quite sure how to go about doing this. I am pretty sure you would just type “-D portnumber” into a extra flags option box or something, but I am really not quite sure. Edit: Scroll down for Eberth’s Windows guide! Or you lazy people can clicky.
For example, I use: “ssh whalesalad@ssh.silenceisdefeat.org -D 7777″. You can use any port you want, but make sure it isn’t being used by anything else. I happen to like the number 7777 so thats what I chose.
NOTE: In the screenshots Disflux is used, simply replace shelly.disflux.com with ssh.silenceisdefeat.org after creating an account and you will have no problems!
Now, what does this do? This has your open SSH session act as a SOCKS proxy. This is what we are going to have Azureus or any other bittorrent client of choice use.
-----------------------------------------------------------------------------------------------------------------------In detail the -D [bind_address:]port option does the following:
Specifies a local “dynamic” application-level port forwarding.
This works by allocating a socket to listen to port on the local
side, optionally bound to the specified bind_address. Whenever a
connection is made to this port, the connection is forwarded over
the secure channel, and the application protocol is then used to
determine where to connect to from the remote machine. Currently
the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
as a SOCKS server. Only root can forward privileged ports.
Dynamic port forwardings can also be specified in the configura‐
tion file.
----------------------------------------------------------------------------------------------------------------------------
Once that terminal is open, just minimize or hide it, but leave it open. The proxy will only work if that terminal is open and connected, so try not to fiddle with it.
Now we have to configure our BitTorrent client of choice. I recently “switched” to OSX and am using Azureus, but if I had my way I would be using the greatest client ever: uTorrent. Because I can’t get the internet working in Paralells at the moment I can’t help explain how to configure uTorrent, but here is what you need to do to get Azureus up and running with our newly created SOCKS proxy.
First of all you need to enable the Advanced options area of Azureus. You can do this by re-running (or running if this is your first time using Azureus) the configuration wizard. On OSX this is under the Azureus menu, I’m not quite sure where it is on Windows (=P). Choose the advanced user option, this will let us configure Azureus to use proxies. Once this is done, open up the preferences area of Azureus.
From there open up the “Connection” sub items and then the “Proxy Options”. From there, check the “Enable proxying of tracker communications” and “I have a SOCKS proxy”. In the host field enter “localhost” and in the port field enter whatever number you used to start the proxy, for me thats “7777″.
Save your options and thats it! Now you should be able to head to any one of the online tracker websites and download away! Legal files of course, we don’t encourage piracy or stealing here at the salad. Make sure to leave comments if it works for you, and any other tips or tidbits you’d like to share!
Edit: For all you windows users out there, Eberth made a comment below on how to get this working. He did such a good job, I’m going to include it right here in my guide.
First you need to get PuTTY. It’s a great client, back when I used Windows it was my SSH client of choice. You can find a direct link to PuTTy here.
Open up PuTTY and enter shelly.disflux.com into the host field.
Go to Connection > SSH > Tunnels, and write your port on the source port field (in this case i’m using the same as Michael, 7777) and select the “Dynamic” checkbox, click the add button.
I’d reccomend what Eberth explains in his comment, which would be to save your session so that next time you can just fire up PuTTY and double click your saved session to reload the same settings. Enter a name for the saved session and click save, its as easy as pie!
Now you’ve got your SOCKS proxy running, time to fire up your favorite BitTorrent client. Azureus users can use the same configuration that I have above, but if you’re smart you’re going to be using uTorrent. Here is a screenshot of the way Eberth configured his client:
Thanks Eberth!
Based on: http://www.whalesalad.com/2006/08/27/tunneling-bittorrent-over-ssh/
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"