quarta-feira, 31 de julho de 2013

Como listar somente uma coluna específica de um arquivo texto

Entre as várias ferramentas que existem para tratar arquivos texto, uma das mais usadas é o Cut. Ele serve para especificar quais colunas de um arquivo texto você quer mostrar. Por exemplo, o arquivo /etc/passwd contém todos os usuários do sistema.

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
ricardo:x:1000:1000:Ricardo Lino Olonca,,,:/home/ricardo:/bin/bashsshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:109:118:MySQL Server,,,:/var/lib/mysql:/bin/false

Repare que o delimitador de colunas, nesse arquivo, é o caracter ":". Para listar somente o nome dos usuários (primeira coluna) podemos usar:

$ cut -d":" -f1 /etc/passwd
root
daemon
bin
games
man
lp
mail
www-data
ricardo
sshd
mysql
$

Se quisermos o nome (primeira coluna) e seu diretório home (sexta coluna), digitamos:

$ cut -d":" -f1,6 /etc/passwd
root:/root
daemon:/usr/sbin
bin:/bin
games:/usr/games
man:/var/cache/man
lp:/var/spool/lpd
mail:/var/mail
www-data:/var/www
ricardo:/home/ricardo
sshd:/var/run/sshd
mysql:/var/lib/mysql
$

Se quisermos mostrar da primeira até a quarta coluna, use:

$ cut -d":" -f1-4 /etc/passwd
root:x:0:0
daemon:x:1:1
bin:x:2:2
games:x:5:60
man:x:6:12
lp:x:7:7
mail:x:8:8
www-data:x:33:33
ricardo:x:1000:1000
sshd:x:104:65534
mysql:x:109:118
$

Você pode usar o Cut com outros programas. Por exemplo, se você quiser verificar o que está passando pelo arquivo /var/log/syslog, mas só quer ver as mensagens de erro, digite:

# tail -f /var/log/syslog | cut -d":" -f4
 device not found for removing
 device not found for removing
 device not found for removing
 device not found for removing
 4 new devices added
 4 devices removed (good-bye!)
 device not found for removing
 device not found for removing
 device not found for removing

terça-feira, 30 de julho de 2013

Configurando impressoras com Cups e Swat

O Cups é uma das ferramentas usadas para administrar impressoras e filas de impressão no Linux. Ele tem se tornado padrão em muitas distribuições, substituindo o Lpd. Com o Cups ainda há a possibilidade de usar uma interface web para configurar a administrar suas impressoras e tarefas de impressão.

Primeiramente é necessário instalar as ferramentas necessárias.

# apt-get install cups swat

Após a instalação, basta acessar, através de um navegador, o endereço http://localhost:631


Nesta tela você pode fazer os ajustes que forem necessários. Por exemplo, para ver as impressoras instaladas, acesse a aba Printers.


Para instalar uma nova impressoras, acesse a aba Administration e clique em Add Printer.


Após uma pequena demora, o Cups trás todas as impressoras locais e da rede que podem ser instaladas. Escolha a que você quer instalar.


Confira os dados e clique em Continue.

Agora  são apresentados os drivers disponíveis para a impressora. Geralmente o Cups acerta, mas caso não, escolha o drive mais apropriado.

 Escolha a resolução padrão que você quer trabalhar. Dependendo da impressora, outras opções podem aparecer.


Pronto. Sua impressora está instalada. Se você tiver várias impressoras do mesmo modelo, você poderá fazer um pool de impressoras. Dessa forma, o usuário verá apenas uma impressora, e o Cups se encarregará de enviar o arquivo para a impressora que estiver ociosa. Ótimo para empresas que trabalham com centrais de impressão. 

quinta-feira, 25 de julho de 2013

Agendamento de tarefas usando Cron

Um recurso muito usado na administração de servidores (mas que pode ser muito útil também no desktop) é o agendamento de tarefas. No Linux, o Cron é o programa que cuida dessa função, e é bem provável que venha instalado em todas as distribuições.

De uma forma bem fácil, se você quiser executar uma tarefa diariamente, basta criar um script e colocá-lo na pasta /etc/cron.daily. Se for semanalmente, coloque-o na pasta /etc/cron.weekly. Da mesma forma, se for uma tarefa mensal, coloque-a em /etc/cron.monthly. No exemplo abaixo mostro a tarefa diária que cuida do rotacionamento das logs do sistema.

$ cat /etc/cron.daily/logrotate
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
$

Por padrão, todos os usuários do sistema também podem agendar tarefas pelo Cron usando o comando "crontab -e". O programa Cron roda a cada minuto e verifica o crontab de todos os usuários e executa os comandos nos horários programados.

# crontab -e
10 1 * * 6     /usr/local/sbin/backup.sh Linux 2&>/dev/null
30 1 1 * *     /usr/local/sbin/audit.sh 2&>/dev/null
0 7 * * 1-5     /usr/local/sbin/sarg.sh 2&>/dev/null
0,30 * * * *     /usr/sbin/ntpdate a.ntp.br 2&>/dev/null
*/5 * * * * /usr/local/sbin/nconexao.sh 2&>/dev/null
23 19 * * 0 /etc/webmin/package-updates/update.pl

Aqui, cada linha é uma tarefa. A primeira coluna é o minuto; a segunda a hora; a terceira o dia; a quarta o mês; o quinto o dia da semana. Um "*" significa "qualquer valor". O restante é o programa a ser executado e seus parâmetros.

O backup.sh é executado no sábado a 01:10 da manhã. O dia da semana começa no domingo (0 ou 7). 6 é sábado.

Audit.sh roda todo dia 1º a 01:30 da manhã.

Sarg.sh roda as 07:00 da manhã, de segunda (1) até sexta (5). Não roda, portanto, nos finais de semana.

Ntpdate é executado a cada 30 minutos, ou seja, em todas as horas de todos os dias nos minutos 0 e 30.

Nconexao.sh é executado a cada 5 minutos (*/5)

Update.pl roda todo domingo as 19:23.

Com esse esquema versátil fica fácil agendar tarefas. Vale lembrar que o intervalo mínimo é de 1 minutos.

quarta-feira, 24 de julho de 2013

Cópia de arquivos pela linha de comando

Copiar arquivos e pastas pela linha de comandos do Linux é fácil. A sintaxe é simples:

cp [OPÇÃO] ORIGEM DESTINO

Você pode especificar várias origens separadas por espaços. O último parâmetro é o destino. 

As opções mais utilizadas são:
  • -a - Copia diretórios recursivamente preservando os atributos dos arquivos
  • -i - Pergunta antes de sobrescrever um arquivo
  • -n - Não sobrescreve o arquivo destino
  • -p - Preserva os atributos do arquivos (modo, dono, grupo e timestamps)
  • -R, -r - Faz cópia de pastas e sub-pastas recursivamente
  • -s - Cria links simbólicos ao invés de copiar
  • -u - Copia apenas se o arquivo original for mais recente que o arquivo destino ou se este não existir
  • -v - Explica o que está sendo feito

Alguns exemplos:

1- Copiar o arquivo /home/ricardo/Programas/binario.sh para /tmp.

$ cp /home/ricardo/Programa/binario.sh /tmp

2- Copiar a pasta /home/ricardo/Programas e todas os arquivos e sub-pastas para o pasta /tmp.

$ cp -R /home/ricardo/Programa /tmp

3- Copiar todos os arquivos da pasta /home/ricardo/Programas para a pasta /tmp preservando seus atributos.

$ cp -p /home/ricardo/Programa/* /tmp

4- Copiar os arquivos /etc/hosts e /home/ricardo/tmp/teste.txt para a pasta /tmp.

$ cp /etc/hosts /home/ricardo/tmp/teste.txt /tmp

terça-feira, 23 de julho de 2013

Altere a forma como o Java trabalha

Quem trabalha administrando uma rede com filtros de conteúdo, firewall, etc, já se deparou com sites (ou "pedaços" do site) feitos em Java e que não funcionam direito dentro da rede. Você analisa a log do Proxy e não encontra qualquer problema. Atualiza o Java, mas o problema continua. Pode ser bloqueio de firewall.

Geralmente nas empresas o navegador está configurado para usar Proxy. Porém, o Java, por padrão, não utiliza Proxy. Assim, as requisições do Java não são listadas na log.

Uma forma de fazer com que o Java passe a usar o Proxy é instalando o pacote JRE. Com ele vem um programa chamado ControlPanel. Com ele você consegue alterar algumas opções do Java.

Com ele você pode alterar o tamanho máximo do Cache, por exemplo. Na minha máquina ele estava com 1Gb. Diminuí para 100Mb. Em "Configurações de rede..." você pode configurar o Proxy.


Isso fará com que as aplicações feitas em Java usem o Proxy.


segunda-feira, 22 de julho de 2013

Configure o teclado no terminal texto com kdb-config

Kbd-config é um programa incluído no pacote Console-common. Com ele você pode configurar o idioma e o mapa de caracteres do teclado no terminal texto.

Como root, digite:

# kbd-config

A seguinte tela será mostrada.


Escolha a primeira opção, "Selecionar mapa de teclado da lista de arquiteturas".



Agora escolha "qwerty".


 Escolha o layout do teclado. Aqui no Brasil, usamos "Brazilian". Se você estiver com um teclado sem "ç", use "US American".


Deixe o padrão e escolha "Ok". Agora teste se teu teclado está configurado corretamente.



sexta-feira, 19 de julho de 2013

Navegadores para Linux. Escolha o teu.

No Linux há uma infinidade de navegadores de internet disponíveis, cada um com suas características e vantagens. Abaixo eu cito alguns.

Começando pelos mais conhecidos:

Chrome


O navegador criado pelo Google tem ganhado fãs até no Windows. Entre seus plugins há um que permite o compartilhamento do desktop. Ótimo apra suporte remoto


Firefox

Derivado do antigo Netscape, o Firefox foi o primeiro navegador a fazer frente ao Internet Explorer da Microsoft. Os desenvolvedores do Debian chamam o navegador de Iceweasel, pois o nome Firefox não é livre, e também usam um outro logotipo pelo mesmo motivo. Assim como o Chrome, possui uma infinidade de plugins.


Opera


Muito presente em dispositivos móveis, o Opera sempre foi um ótimo navegador, mas nunca coseguiu uma gama muito grande de usuários no desktop.


Safari


O principal navegador usado no Mac OSX, o Safari tembém pode ser instalado no Linux.


Internet Explorer


Sim, o Internet Explorer roda no Linux! Via emulador Wine, mas roda. Com alguns probleminhas, mas roda. Em sites que exigem que o Internet Explorer isso pode ser uma solução paliativa. Mas o Windows Update não funciona.



Galeon



O Galeon era o navegador padrão do Gnome há alguns anos atrás, mas ainda pode ser instalado. Com ele eu tive alguns probleminhas com páginas que rodam flash.


Konqueror


O Konqueror é o navgador padrão do Kde, mas eu o uso mais para trabalhar com arquivos. Com ele eu consigo, por exemplo,  copiar arquivos de um servidor Windows para um servidor Ssh simplesmente arrastando os arquivos.


Agora, ver alguns navegadores não tão conhecidos, mas que podem ser muito úteis.


Links


O Links é um navegador de linha de comando que pode ser usado em servidores que não possui um ambiente gráfico.


Lynx


Semelhante ao Links, mas com um colorido que deixa a página, digamos, um pouco menos feia.



Netrik
 
 
Outro navegador de linha de comando.



Links2


Uma implementação do Links com suporte a gráficos, imagens, etc.


Kazehakase



O nome é estranho, mas ele pode usar tanto Gecko quanto Webkit, ou seja, pode renderizar páginas de Internet usando tanto o método do Firefox quanto o do Chrome.



Arora



Baseado em Webkit, o Arora consome até mais memória que o F
Firefox, mas eu o achei mais rápido e estável. Esse navegador me surpreendeu. Não tive problemas com ele, e olhe que ele ainda está na versão 0.11.0.


Chimera2


Ainda em versão alfa, ele é voltado para terminais gráficos leves.




Midori


Leve, usa cerca de 1/5 da memória usada pelo Firefox.

Teste e escolha o que melhor de adequar a você.




terça-feira, 16 de julho de 2013

Tire fotos com Cheese

Se você tem uma webcam pode tirar fotos com ou sem efeitos especiais usando o Cheese.


Clicando em Efeitos, você pode aplicar algumas opções como foto em preto e branco, saturação, inverter, deformar, entre outros. Inclusive pode aplicar vários efeitos ao mesmo tempo.


Abaixo, uma deformação simples.


Agora, o efeito vidraça.
 

Dá prá dar algumas risadas com os resultados.  E também é possível fazer pequenas filmagens.

O Cheese está disponível na maioria das distribuições. No Debian, ele pode ser instalado usando o Synaptic. Ele está na seção "Ambiente de trabalho do Gnome". Ou use o tradicional apt-get install cheese.

segunda-feira, 15 de julho de 2013

Permissões especiais em arquivos no Linux

Nessa última parte da nossa conversa sobre permissões em arquivos no Linux, vamos ver alguns atributos especiais.

$ ls -l / | grep tmp
drwxrwxrwt  20 root root   600 Jul 15 11:25 tmp
$

Reparem no atributo "t". Ele é chamado de "stick bit" e informa que um arquivo criado nesta pasta só poderá ser alterado e apagado pelo seu criador. A pasta /tmp tem essa característica. Não faz muito sentido ter essa permissão em um arquivo.

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 45396 Mai 25  2012 /usr/bin/passwd
$

O "s" nas permissões de usuário é chamado de "suid" e informa que esse programa rodará com as permissões do dono do arquivo (neste caso o root), independente de quem o tenha executado. Só faz sentido usá-lo em programas executáveis. Isso permite que usuários normais possam fazer tarefas administrativas, ou que requeiram permissões especiais. No exemplo acima, para alterar a senha é necessário ter acesso de escrita no arquivo /etc/shadow.

Quando "s" estiver nas permissões do grupo (sgid) o programa será executado pelo grupo ao qual ele pertence, ao invés do grupo do usuário que o executou. Se colocado em uma pasta, os arquivos criados nesta pasta terão as mesmas permissões da pasta. Muito útil em pastas compartilhadas.

Para alterar essas permissões especiais você pode usar a notação escrita ou a numérica.

$ chmod +t,+s fileone
$ ls -l fileone
-rwsrwxrwt 1 ricardo root 13 Jul  2 12:57 fileone
$

Na notação numérica, t=1, sgid=2, suid=4. Para setar o stick bit, dando permissão total ao dono, leitura e execução ao grupo e aos demais usuários, bata digitar:

# chmod 1755 fileone
# ls -l fileone
-rwxr-xr-t 1 ricardo root 8528 Jul  1  2011 fileone
#

Para setar também o suid, basta somar t (=1) com suid (=4).

# chmod 5755fileone
# ls -l fileone
-rwsr-xr-t 1 ricardo root 8528 Jul  1  2011 fileone
#


sexta-feira, 12 de julho de 2013

Mudando as permissões de um arquivo pelo modo numérico

Já falamos sobre como mudar as permissões dos arquivos. Agora vamos ver como fazer isso pela notação numérica. A idéia é simples e engenhosa.

  • Leitura (r) = 4
  • Escrita (w) = 2
  • Execução (x) = 1

Se o dono do arquivo precisa de permissão de leitura e escrita, basta somar seus equivamente; ou seja, 4+2=6. Portanto, a permissão rw é igual e 6. Vejamos o nosso arquivo de exemplo:

$ ls -l fileone
-rwxr-x--- 1 ricardo root 13 Jul  2 12:57 fileone
$

Ele possui permissão total para  o dono, leitura e execução para o grupo, e nenhum acesso para os demais. O comando para configurar essa permissão na notação numérica é:

$ chmod 750 fileone
$ ls -l fileone
-rwxr-x--- 1 ricardo root 13 Jul  2 12:57 fileone
$

Se quiser dar permissão de execução aos demais usuários, basta digitar:

$ chmod 751 fileone
$ ls -l fileone
-rwxr-x--x 1 ricardo root 13 Jul  2 12:57 fileone
$

Permitir tudo para todos (tá no desespero?): 777.

$ chmod 777 fileone
$ ls -l fileone
-rwxrwxrwx 1 ricardo root 13 Jul  2 12:57 fileone
$

Há mais três ítens que você precisa conhecer sobre permissões em arquivos no Linux: o suid, o sgid e o stick bit. Esses atributos especiais serão o assunto do próximo post.

quinta-feira, 11 de julho de 2013

Mudando as permissões de um arquivo

Continuando o assunto sobre as permissões em arquivos no Linux, agora vamos ver como modificar as permissões de leitura, escrita e execução.

No mundo Linux, há várias formas de se fazer a mesma coisa, e com relação a mudanças em permissões de arquivos isso não podia ser diferente. Primeiramente vamos ver a permissão em um arquivo em particular.

$ ls -l fileone
-rw-r--r-- 1 ricardo root 13 Jul  2 12:57 fileone
$


Vamos supor que o arquivo fileone seja um programa. Precisamos dar permissão para execução (x) para o dono (ricardo). Basta digitar:

$ chmod u+x fileone
$ ls -l fileone
-rwxr--r-- 1 ricardo root 13 Jul  2 12:57 fileone
$

Reparem agora que o dono pode executar o arquivo, mas os demais usuários não. Para tirar a permissão de execução é só usar u-x.

$ chmod u-x fileone
$ ls -l fileone
-rw-r--r-- 1 ricardo root 13 Jul  2 12:57 fileone
$

Se eu quiser que o grupo também tenha direitos de escrita eu posso usar tanto g+w como g=rw.

$ chmod g=rw fileone
$ ls -l fileone
-rw-rw-r-- 1 ricardo root 13 Jul  2 12:57 fileone
$

Se for necessário tirar a permissão de leitura dos demais usuários, basta usar o-r.

$ chmod o-r fileone
$ ls -l fileone
-rw-rw---- 1 ricardo root 13 Jul  2 12:57 fileone
$ su - teste
Senha:
$cat fileone
cat: fileone: Permissão negada
$ exit

logout
$

Reparem como me loguei como usuário teste e este não conseguiu ver o conteúdo do arquivo. Se for necessário adicionar a permissão de execução para todos, inclusive ao grupo e ao dono, você pode usar a+x, ou simplesmente +x.

$ chmod a+x fileone
$ ls -l fileone
-rwxrwx--x 1 ricardo root 13 Jul  2 12:57 fileone
$

Agora, vamos dar permissão de leitura, execução e escrita para o dono, leitura e execução para o grupo, e somente execução para os demais.

$ chmod u=rwx,g=rx,o=x fileone
$ ls -l fileone
-rwxr-x--x 1 ricardo root 13 Jul  2 12:57 fileone
$

Essa é a forma mais fácil de trabalhar com as permissões, mas ainda há uma outra forma, chamada "numérica". Esse assunto fica para a próxima postagem.

quarta-feira, 10 de julho de 2013

Mudando o dono de um arquivo

Continuando o nosso assunto sobre permissões em arquivos do Linux, vamos ver agora como mudar o dono de um arquivo. Para mudar o dono você precisa estar logado como root.

# ls -l fileone
-rw-r--r-- 1 ricardo ricardo 13 Jul  2 12:57 fileone

Aqui temos o arquivo fileone que pertence ao usuário ricardo. Para mudarmos o dono para root, digitamos:

# chown root fileone
# ls -l fileone
-rw-r--r-- 1 root ricardo 13 Jul  2 12:57 fileone
#

Agora, o fileone pertence ao usuário root. Se precisar alterar o dono de todos os arquivos de uma pasta, basta usar o parâmetro "-R".

# chown -R root origem/
# ls -l origem/
total 12
drwxr-xr-x 2 root ricardo 4096 Jul  4 11:02 a
drwxr-xr-x 2 root ricardo 4096 Jul  4 07:53 cache
drw-r--r-- 4 root ricardo 4096 Jul  4 11:01 site

#

No próximo post vamos aprender a mudar as permissões de escrita, leitura e execução dos arquivos.


sexta-feira, 5 de julho de 2013

Mudando o grupo de um arquivo

Continuando o nosso assunto sobre permissões em arquivos do Linux, vamos ver agora como mudar o grupo de um arquivo. Para mudar o grupo você precisa estar logado como root.

# ls -l fileone
-rw-r--r-- 1 ricardo ricardo 13 Jul  2 12:57 fileone

Aqui temos o arquivo fileone que pertence ao grupo ricardo. Para mudarmos o grupo para root, digitamos:

# chgrp root fileone
# ls -l fileone
-rw-r--r-- 1 ricardo root 13 Jul  2 12:57 fileone
#

Agora, o fileone pertence ao grupo root. Se precisar alterar o grupo de todos os arquivos de uma pasta, basta usar o parámetro "-R".

# chgrp -R root origem/
# ls -l origem/
total 12
drwxr-xr-x 2 ricardo root 4096 Jul  4 11:02 a
drwxr-xr-x 2 ricardo root 4096 Jul  4 07:53 cache
drw-r--r-- 4 ricardo root 4096 Jul  4 11:01 site

#

No próximo post vamos aprender a mudar o dono de um arquivo.


quinta-feira, 4 de julho de 2013

Entendendo as permissões dos arquivos do Linux

Como todo sistema multi-usuário, o Linux possui algumas ferramentas para gerenciar as permissões nos arquivos do sistema. Vamos entender primeiro como essas permissões funcionam.

$ls -l /tmp/
total 32
-rw------- 1 ricardo  ricardo   5238 Jul  4 10:54 clementine-art-A25846.jpg
-rw------- 1 ricardo  ricardo  16944 Jul  4 10:54 clementine-art-D25846.jpg
srw-rw-rw- 1 root     root         0 Jul  3 08:08 cmg-statistic
drwxr-xr-x 2 openfire openfire    60 Jul  3 08:08 hsperfdata_openfire
drwxr-xr-x 2 ricardo  ricardo    100 Jul  4 08:18 hsperfdata_ricardo
drwxr-xr-x 2 tomcat6  tomcat6     60 Jul  3 08:08 hsperfdata_tomcat6
drwxr-xr-x 4 openfire openfire    80 Jul  3 08:08 jetty-0.0.0.0-9000-webapp-_-any-
drwx------ 2 kdm      nogroup     60 Jul  3 08:08 kde-kdm
drwx------ 2 ricardo  ricardo     40 Jul  3 08:10 kde-ricardo
drwx------ 2 kdm      nogroup     60 Jul  3 08:08 ksocket-kdm
drwx------ 2 ricardo  ricardo     80 Jul  4 10:05 ksocket-ricardo
drwx------ 2 ricardo  ricardo     40 Dez 31  1969 orbit-ricardo
drwx------ 2 ricardo  ricardo    100 Jul  3 08:09 pulse-9GQy3jIzLNhc
drwx------ 2 root     root        40 Jul  3 08:08 pulse-PKdhtXMmr18n
srwxr-xr-x 1 ricardo  ricardo      0 Jul  3 08:09 qtsingleapp-cav-e7d7-3e8
-rw-r--r-- 1 ricardo  ricardo      0 Jul  3 08:09 qtsingleapp-cav-e7d7-3e8-lockfile
srwxr-xr-x 1 ricardo  ricardo      0 Jul  4 10:23 qtsingleapp-clemen-d211-3e8
-rw-r--r-- 1 ricardo  ricardo      0 Jul  3 09:47 qtsingleapp-clemen-d211-3e8-lockfile
-rw------- 1 ricardo  ricardo      5 Jul  3 08:09 sparkleshare-ricardo.pid
drwx------ 2 ricardo  ricardo     60 Jul  3 08:08 ssh-aYpzNyAsTglL
drwxr-xr-x 2 tomcat6  root        40 Jul  3 08:08 tomcat6-tomcat6-tmp
$

Aqui temos vários arquivos, sendo que cada linha contém informações de um arquivo específico. Para o nosso estudo, vamos pegar o último arquivo.

drwxr-xr-x 2 tomcat6  root        40 Jul  3 08:08 tomcat6-tomcat6-tmp

Para ficar mais fácil, vamos começar da última coluna. Esta possui o nome do arquivo (tomcat6-tomcat6-tmp). As colunas 6, 7 e 8 possuem a data da última alteração (Jul  3 08:08). A quinta coluna possui o tamanho da pasta ou arquivo (40). Se for uma pasta, essa tamanho não considera os arquivos que estão dentro dela. É mostrado apenas o tamanho que a própria pasta isolada possui. A quarta coluna é o grupo a quem esse arquivo/pasta pertence (root). A tercea coluna possui o dono (usuário) do arquivo (tomcat6). A segunda coluna mostra quantos ítens (2)há dentro da pasta. Se for um arquivo, esse valor será 1. E a primeira coluna possui as permissões, e merece um parágrafo à parte.

A primeira letra diz se o "arquivo" é realmente um arquivo (-), um diretório (d), um link (l), etc. As próximas três letras dizem qual a permissão que o dono do arquivo tem. No nosso exemplo o dono pode ler (r), modificar (w) e executar o arquivo (x). Se for uma pasta, o (x) dá permissão para o dono entrar na pasta. As próximas três configuram as permissões para o grupo, e as três últimas as permissões para os demais usuários. E ainda existe o suid (s no usuário) que permite executar arquivos como se fosse o dono dele, e o sgid (s no grupo) que permite ao grupo executar um arquivo com as permissões do grupo do arquivo, e também permite que os novos arquivos sejam criados com as mesmas permissões da pasta, ideal para compartilhamentos via rede. Também há o bit stick (t colocado em outros) que só deve ser usado em pastas e permite que somente o criador do arquivo possa excluí-lo. Essa é uma configuração típica do diretório /tmp, onde todos podem escrever, mas um usuário não pode excluir arquivos criados por outros usuários.

No próximo post vamos mostrar como alterar essas permissões.

quarta-feira, 3 de julho de 2013

Configurando os serviços que serão iniciados no boot

Há várias formas de configurar os serviços que devem ser iniciados no boot. Uma delas é usando o chkconfig.

# chkconfig apache 35

Aqui, o servidor web Apache irá iniciar automaticamente nos níveis 3 e 5.

# chkconfig apache off

Aqui, o servidor web Apache não vai iniciar automaticamente.

# chkconfig apache on

Aqui, o Apache vai iniciar nos níveis padrão.

O chkconfig nada mais faz do que criar e excluir links simbólicos dos serviços do diretório /etc/rc.d/init.d (no Debian e derivados) em seus respectivos diretórios de níveis (/etc/rc1.d, /etc/rc2.d, etc). Nos casos onde os níveis não são especificados, o script procura os níveis na linha "Default-Start" do arquivo do serviço. 

Se você não sabe o que é um nível, ou runlevel, no Linux, não se preocupe. Daqui a alguns dias eu vou escrever sobre isso.

O chkconfig pode ser instalado via apt-get.

terça-feira, 2 de julho de 2013

Mudando os parâmetros de expiração de senha dos usuários com Chage

Uma forma de configurar os parâmetros referentes ao tempo de expiração das senhas dos usuário Linux é alterando o arquivo /etc/login.defs. Abaixo um trecho do arquivo para servir de exemplo.

/etc/login.defs
# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_WARN_AGE   7

Neste exemplo, as senhas nunca expiram e não há um período mínimo para trocá-las.

Para verificar como estão esses parâmetros de um usuário em especial use o chage. (Não tem "n". É chage, mesmo!).

# chage classicos
Mudando a informação de idade para classicos
Informe o novo valor ou pressione ENTER para aceitar o padrão

    Idade Mínima da Senha [0]:
    Idade Máxima da Senha [99999]:
    Última Mudança de Senha (YYYY-MM-DD) [2013-04-22]:
    Aviso de Expiração de Senha [7]:
    Senha Inativa [-1]:
    Data de Expiração de Senha (YYYY-MM-DD) [2013-10-22]:
#

Você pode alterar os dados, ou dar um ENTER para manter o padrão. Aqui, o usuário classicos mudou a senha em 22/04/2013, e ela expira em 22/10/2013. O aviso de expiração vai ser enviado quando faltar 7 dias para a expiração. Neste caso, o usuário classico deverá trocar a senha.

Vale lembrar que, nativamente, essa opção não afeta usuários do Samba ou de qualquer outro usuário não mostrado no comando "getent passwd"