sábado, 14 de março de 2009

Win-get o Apt-get para Windows

Os utilizadores de Windows já podem sentir o belo prazer de fazer o download e instalação de uma aplicação com um simples comando, graças ao win-get.
O win-get é um programa escrito em Pascal para o terminal e que funciona da uma forma semelhante ao apt-get para GNU/Linux Debian e seus derivados. Este gestor de pacotes instala 189 aplicações, como o Firefox ou o 7Zip, através do uso de repositórios de software. Se, por exemplo, desejarem instalar a versão mais recente do Firefox disponível nos repositórios, basta executarem este simples comando: win-get install firefox.
O win-get vai na versão 1.01 e download dos dois aplicativos necessários pode ser feito wget e win-get . Para terem este comando disponível em todo o sistema, basta copiarem os aplicativos para a pasta onde instalaram o Windows (normalmente C:\Windows\).

Agora até os winusers podem usufruir da ferramente apt-get, ops win-get :D

domingo, 1 de março de 2009

Entendendo e usando permissões no Linux

As permissões são um dos aspectos mais importantes do Linux (na verdade, de todos os sistemas baseados em Unix). Elas são usadas para vários fins, mas servem principalmente para proteger o sistema e os arquivos dos usuários.
Somente o super-usuário (root) tem ações irrestritas no sistema, justamente por ser o usuário responsável pela configuração, administração e manutenção do Linux. Cabe a ele por exemplo, determinar o que cada usuário pode executar, criar, modificar, etc. Naturalmente, a forma usada para determinar o que o usuário pode fazer é a determinação de permissões.
Um ponto interessante de citar é que o Linux trata todos os diretórios como arquivo também, portanto, as permissões se aplicam de igual forma para ambos. Tais permissões podem ser divididas em quatro partes para indicar: tipo, proprietário, grupo e outras permissões. O primeiro caractere da string indica o tipo de arquivo: se for "d" representa um diretório, se for "-" equivale a um arquivo. Entretanto, outros caracteres podem aparecer, já que existem outros tipos de arquivo no Linux, conforme mostra a tabela abaixo:

d => diretório
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
- => arquivo normal

É necessário ter um certo cuidado com as permissões. Por exemplo, do que adianta o usuário ter permissão de gravação se ele não tem permissão de leitura habilitada? Ele poderá ler o arquivo para poder modifica-lo? Não! De certo, isso tem utilidade em arquivos de log. Fazendo associação com as letras r, w, x e o caractere -, vamos entender cada uma:

r => significa permissão de leitura (read);
w => significa permissão de gravação (write);
x => significa permissão de execução (execution);
- => significa permissão desabilitada.

A ordem em que as permissões devem aparecer é rwx.

Muitas vezes a pessoa não sabe o que está fazendo quando dá uma permissão 777 ou 455 para um arquivo. Vou explicar mais a fundo o funcionamento do chmod.
Veja o exemplo parcial no comando ls-la

drwx------ 4 reginaldo reginaldo 4096 2009-02-10 20:26 .mozilla
drwxr-xr-x 2 reginaldo reginaldo 4096 2009-02-10 20:25 Música
-rwxr-xr-x 1 reginaldo reginaldo 6388 2009-02-28 15:19 teste
-rw-r--r-- 1 reginaldo reginaldo 95 2009-02-28 15:19 teste.c
-rw-r--r-- 1 reginaldo reginaldo 89 2009-02-28 15:14 teste.c~
-rw-r--r-- 1 reginaldo reginaldo 453 2009-02-28 15:22 teste.class
-rw-r--r-- 1 reginaldo reginaldo 152 2009-02-28 15:22 teste.java
-rw-r--r-- 1 reginaldo reginaldo 152 2009-02-28 15:21 teste.java~

trocando em miúdos:
d rwx rwx rwx

1. d: tipo de arquivo (diretório);
2. rwx: permissões do proprietário e/ou usuário;
3. rwx : permissões para usuários do mesmo grupo;
4. rwx: permissões para todos usuários.

Configurando permissões com chmod
Acima, você dever tido pelo menos uma noção do que são permissões e sua importância no Linux. Chegou a hora de aprender a configurar permissões e isso é feito através do comando chmod (de change mode). Um detalhe interessante deste comando é que você pode configurar permissões de duas maneiras: simbolicamente e numericamente. Primeiramente veremos o método simbólico.
Para ter uma visão mais clara da forma simbólica com o chmod, imagine que tais símbolos se encontram em duas listas, e a combinação deles gera a permissão:
Lista 1
Símbolo
u => usuário
g => grupo
O (letra o maiúscula) => outro
a => totos
Lista 2
Símbolo
r => leitura
w => gravação
x => execução
Para poder combinar os símbolos destas duas listas, usam-se os operadores:
+ (sinal de adição) => adicionar permissão
- (sinal de subtração) => remover permissão
= (sinal de igualdade) => definir permissão

Para mostrar como essa combinação é feita, vamos supor que você deseje adicionar permissão de gravação no arquivo teste.c para um usuário. Então o comando a ser digitado será:
chmod u+w teste.c
O ?u? indica que a permissão será dada a um usuário, o sinal de adição (+) indica que está sendo adicionada a permissão e ?w? indica que a permissão que está sendo dada é de gravação.
Caso você queira dar permissões de leitura e execução ao seu grupo, o comando será:
chmod g+rw teste.c

Também se pode trabalhar com valores decimais de 0 a 7. Cada valor tem uma combinação de permissões pelos 3 grupos de caracteres que expliquei acima. Vamos à elas.

0 : --- (nenhuma permissão)
1 : --x (somente execução)
2 : -w- (somente escrita)
3 : -wx (escrita e execução)
4 : r-- (somente leitura)
5 : r-x (leitura e execução)
6 : rw- (leitura e escrita)
7 : rwx (leitura, escrita e execução)

Exemplos:
#chmod 740 arquivo.txt
atribui permissão de leitura, escrita e execução (7) para o dono do arquivo, somente leitura para os usuários do mesmo grupo (4), e nenhuma permissão para outros usuários.

#chmod 640 arquivo2.txt
atribui permissão de leitura e escrita (6) para o dono do arquivo, somente leitura para os usuários do mesmo grupo (4), e nenhuma permissão para outros usuários

Dica:
Para você não perder dono e grupo definidos anteriormente, use o número 4 antes das permissões:
# chmod -R 4777 pasta

Só o dono do arquivo possa removê-lo
#chmod -R 1777 pasta

Status

Estar letras que aparecem junto com as permissoes (chmod u=rwx), são chamadas de status. Abaixo segue algumas dicas interessantes a respeito dos tipos de status. Para maiores informaçoes, você pode acessar a manpage stat.

Sequencia de formatos validos para arquivos (sem filesystem)
%a acesso direita octal
%F tipo de arquivo
%f cru modalidade hex
%G nome do proprietário do grupo
%g ID do proprietario do grupo
%n nome do arquivo
%U nome do proprietario
%u id do proprietario
%x horario do ultimo acesso
%y da última vez da modificação
Sequencia de formatos validos para file system
%a blocos livres para usuarios comuns
%b tamanho de um arquivo do sistema
%n nome do arquivo


Para apagar todas as permissões da pasta do user
# chmod a-rwx

Para fazer com que só o user mexa nos seus arquivos:
# chmod u=rwx

é o mesmo que
chown user.user -R /home/user
chmod 740 -R /home/user