FreeBSD: Como montar uma imagem ISO

Filed Under (freebsd) by EliRios on 15-07-2008

Tagged Under : , , ,

Para montar uma imagem ISO, use o comando mdconfig. A man page pode dar mais informações sobre esse comando, mas para nosso caso será assim:

mdconfig -a -t vnode -f image.iso

Você agora pode ver:

md0

(Assumindo que é o primeiro disco. O segundo será obviamente md1)

Então vamos ver como montar um disco como cdrom

mount_cd9660 /dev/md0 /mnt

O dispositivo será então montado como se fosse um CDROM. Para liberar, use o -d para desatachar (e -u para unidade)

mdconfig -d -u 0

0, lógico, refere-se ao número da unidade. Se for md1, então use mdconfig -d -u 1.

umask - o que é isso?

Filed Under (freebsd, linux, unix) by EliRios on 04-07-2008

Tagged Under : , , ,

Muito comum em sistemas unix like, o umask (user file creation mode mask) é uma função POSIX que afeta a máscara de permissão que o arquivo é criado.

É simples. Para arquivos, acesso total se tem como permissão 666(rw-) e para diretórios 777(rwx). O valor de umask deve ser calculado assim:

<acesso total> - <valor da permissão> = <valor umask>

Exemplo:

666 - 664 = 002 => gera arquivos que o usuário e o grupo tem acesso total e que todos tem acesso somente leitura.

Importante: O comando umask define um novo umask somente para sessão atual. Programas daemon de ftp também usam para definir parâmetros de criação de arquivos, assim como o samba

Fontes:

http://en.wikipedia.org/wiki/Umask

http://www.tech-faq.com/lang/pt/umask.shtml

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6994&pagina=2

FreeBSD - como gerar uma senha aleatória

Filed Under (freebsd) by EliRios on 03-07-2008

Tagged Under : , , ,

Para gerar uma senha aleatória para um usuário (com o usuário já existente no sistema, já que se não existe, o script adduser já fornece a opção de criação de senha aleatória) pode-se usar o comando pw:

pw usermod -w random

onde:

  • pw - cria, remove, modifica e mostra usuários e grupos do sistema;
  • usermod - define que o comando pw será usado para modificar um usuário;
  • - nome do usuário para gerar a senha aleatória;
  • -w - define que será editada a senha de um usuário já existente no sistema;
  • random - define que o método de edição será a geração aleatória da senha.

Ports - Primeira visão no FreeBSD

Filed Under (freebsd) by EliRios on 30-06-2008

Tagged Under : ,

Como bom usuário Slackware que sou, sempre instalava-o zerado e compilava o servidor que queria rodar nele. Aprendi isso com um guru que eu tinha para Linux, um amigo que apelidamos de Jesus, dizia que assim o sistema ficaria leve, personalizado e tudo mais.

Bom, cresci (profissionalmente), tive contatos com outros gurus de informática e aprendi que antes de “leveza”, mais importante era estabilidade.

Quando se compila algum programa, fica complicado sua atualização, durante a complicação você pode perceber que há uma dependência de outra lib ou programa para continuar poder compilar, deve-se pensar em muitos detalhes para rodar o “configure” da instalação, o sistema pode ficar instável, entre mais alguma coisa que possa ter esquecido.

Já instaladores de pacotes (rpm, apt-get, etc) instalam programas que foram testados e retestados pelos mantedores das distros (mas não em todas distros), mas como são binários, não podem ser personalizados.

Conheci então com o Renato o ports (Ports Collection)do FreeBSD. É uma estrutura baseada em Makefiles, diferente do apt-get, rpm, yum, etc, onde os pacotes são baixados da internet no seu formato código-fonte e não em binário. O legal do ports é que ele, além de baixar os sources e compilar, ele também baixa e compila todas as dependências para a instalação.

Vou descrever então como monto um servidor FreeBSD, usando o disco 1 do sistema operacional com o ports. Fácil, instalo o FreeBSD com a opção Custom, onde escolho somente os módulos para User, acesso o site http://www.freebsd.org/ports/ para pesquisar o software que quero instalar, acesso a pasta que indicada com o make de instalação.

Chegou no diretório, agora é fácil fácil: rode make && make install clean. Ele vai exibir uma tela de configuração dos módulo e então vai fazer o download do source, checar dependências, fazer download das dependências, compilar dependências e compilar o módulo, tudo sozinho. Lógico que tem o tempo do donwload, mas nada que mate não.

Assim, a grande vantagem é a personalização do pacote, coisa que não se tem com o apt-get e rpm da vida.

Ah, e se quiser desisntalar algo, no diretório do programa no ports, rode make deinstall. Muito fácil.

Estou adorando FreeBSD…

Sobre sistemas operacionais - minha opinião atual

Filed Under (freebsd, linux, macos, unix, windows) by EliRios on 30-06-2008

Tagged Under : , , , , ,

Todo mundo fala, opina e retruca, mas não sou “xiita”.
Assim como as pessoas, cada sistema operacional tem algo de bom a oferecer.
Descrevo o que acho:

FreeBSD

FreeBSD

Ágil, leve, rápido e robusto, tem como ponto forte sua segurança, padronização e boa documentação. A primeira coisa que me chamou atenção nele foi o ports: um gerenciador de instalação fácil e rápido. Outro ponto forte é a velocidade para se colocar qualquer serviço no ar - levei 15 minutos para instalar um serviço de http com Apache, sem muitos ajustes, em um servidor sem sistema operacional. Seu ponto fraco fica em sua baixa compatibilidade de hardware, já que só e mantido pela Berkeley. Recomendo para serviços de rede, nunca para desktop.

Linux

Com o mundo todo programando, tem amplo suporte a hardware e uma grande gama de softwares livres a la carte. E o sistema mais integrado ao protocolo TCP/IP, tendo, no meu ponto de vista, a melhor implementação. Muito customizável, sendo isso sua fraqueza e sua fortaleza.
Pelo Linux ser o seu kernel e ser aberto, há muitas distribuições com suas próprias padronizações (ou com a falta dela), o que torna o uso para o leigo um inferno. Para esses indico o Ubuntu, Debian ou ate mesmo Red Hat.
Fácil de programar, leve, versátil e robusto, há distros para todos os gostos.
Recomendo para firewalls e desktops (Ubuntu). Bom também como servidor:
- se o que procura for velocidade, Slackware. Ótimo para firewalls;
- se for novidade, Fedora no seu constante estado beta. Ótimo para programadores;
- se for usabilidade (entendi esse termo com meu amigo, Hodney) e compatibilidade de hardware, Ubuntu. Muito bom para leigos, curiosos e marinheiros de primeira viagem,
- serviços, Debian ou Red Hat.

Mac OS X

Usabilidade e design definem o sistema. E ao contrário do que se pensa, não é só para designers e gente moderninha - é um sistema muito rápido, estável, compatível com outros sistemas, amigável, além de gerenciável por se basear em Unix.
Ainda não oferece bons servidores, mas não importa - é tão compatível que não faz falta.
Seus pontos negativos que percebi até agora são somente rodar em computadores Mac e um editor de apresentações nativo (alguma coisa com Key no nome) pobre de recursos, mas que nada que uma instalação de um Open Office não resolva.
Para mim, o melhor como desktop.

Windows

Muitos vão rir. Até eu nunca pensei antes em dizer isso, mas ele funciona.
Mas calma, que explico minha teoria - ele funciona, mas no estado que chamo de “travado”. Por causa de sua estrutura de bibliotecas, se instalarem muitos programas, o sistema acaba ficando instável. Ideal rodando poucos programas, sem muitas instalações, desinstalações e reinstalações.
E também a plataforma ainda mais rica em quantidade de jogos.
Como servidor, sua versão server tem o ótimo recurso chamado Active Directory, ou AD, perfeito para ambientes corporativos.
Um bom desktop, se não houver muitas instalações, uma boa estação para jogos, com muitos títulos. E é um bom servidor corporativo.
Li há pouco tempo sobre o servidor Samba 4 (para Linux, FreeBSD e outros Unix like), ainda em estado alpha. Promete um AD, o que é bom, para que haja um rival ao Windows Server.

Solaris, Beos, HPUX e outros.

Não usei ou não vi ainda a fundo outros sistemas. Quando tiver algum contato, posto aqui.

Conclusão

Não se pode ser um “xiita” nesse assunto. Para uso pessoal ou corporativo, deve-se estudar a aplicação para melhor escolha.

Sobre esse texto

  1. Essa é uma opinião pessoal, por isso não definitiva. Não pretendo aqui nada mais que expressar minha opinião atual, por isso comentários serão bem vindos.
  2. E esse texto foi todo escrito em um velho Palm Vx, em toda minha ansiedade por blogar.

Qual o nome do seu servidor?

Filed Under (freebsd, humor, linux, unix, windows) by EliRios on 25-06-2008

Tagged Under : , , ,

Quem foi administrador de servidores ou é, já passou, passa ou passará por algo assim: que nome dar ao servidor?
Já vários modelos.
Veja alguns exemplos de modelos de nomes para servidor:

  • Animais : macaco, zebra, leão, gorilla, touro;
  • Frutas : banana, goiaba, morango;
  • Criaturas mitológicas: Cérberos, Medusa, Pégasus;
  • Países e cidades : Monaco, Kosovo, Paris;
  • Nomes de compositors: Jobim, Bach, Sulivam;
  • Deuses gregos: Athena, Zeus, Hades, Hécules;
  • Nomes de mulheres famosas: Pamela, Britney, Paris, Melancia (ué, mas não é fruta?);
  • Personagens de animação: Andy, Flash, Gordon, Bruce (Wayne), Kent;
  • Personagens de anime: Goku, Akira, Luffy, Zoro, Oliver;
  • Personagens femininas: Ino, Rogue, Cheetara, Nami;
  • Números sequenciais: server1, server1, srv11;
  • e assim por diante…

Eu tive um servidor que meu ex-chefe nomeou. Se chamada Dell. Muito sem graça. Os servidores que gerencio atualmente seguem uma ordem numérica (server1, server2), também “sem sal”.
No site pessoal do meu ex-professor (Ulisses do INPE), ele descreve a saga dos nomes de seus servidores: link. Muito bom o texto. Ele descreveu o porque dos nomes e até conta sobre um triangulo amoroso entre três deles, a Patroa, a Outra e o Felots.
Diga então, quais padrões você já seguiu? Eu mesmo já usei nomes de personagens de anime, personagens mitológicos, nome de compositores e nome de mulheres famosas. Imagine um servidor chamado Melancia, hummmm.
Comente, diga o que já usou para nomear seus servidores:

Comandos FreeBSD x Linux

Filed Under (freebsd, linux, unix) by EliRios on 23-06-2008

Tagged Under : , , ,

São sistemas realmente próximos. O FreeBSD veio de Berkeley e o Linux da Finlândia. Existem boas diferenças, eu mesmo notei agora que tenho mais contato com o FreeBSD. Pesquisando encontrei:

Disco e sistema de arquivos

Uso do disco:

{linux}$ du -sh
{freebsd}$ du -sh

Contagem de subdiretórios no diretório atual:

{linux}$ du --max-depth=1
{freebsd}$ du -d1

Comando para encontrar o maior arquivo/diretório no disco:

{linux}$ du --max-depth=1 -kx|sort -n
{freebsd}$ du -d1 -kx|sort -n

Encontrando alguns tipos de arquivos:

{linux}$ find . -regextype posix-xtended -type f -regex ".*\.(java|class)"
{freebsd}$ find -E . -type f -regex ".*\.(java|class)"

Mostrar arquivos abertos e programas:

{linux}$ lsof
{freebsd}$ fstat

Uso do disco em tempo real:

{linux}$ vmstat 3
{freebsd}$ iostat 3

Rede

Apresenta portas abertas e aplicativos conectador a elas:

{linux}$ netstat -apne --inet
{freebsd}$ sockstat

Kernel

Apresenta módulos carregados:

{linux}$ lsmod
{freebsd}$ kldstat

Carrega módulo kernel:

{linux}$ modprobe SomeModule
{freebsd}$ kldload SomeModule

Remove módulo carregado:

{linux}$ rmmod SomeModule
{freebsd}$ kldunload SomeModule

Desenvolvimento de programas

Traca chamadas de sistema de um programa:

{linux}$ strace
{freebsd}$ truss
(strace is also available in /usr/ports/devel/strace)

libraries - mostra todos paths + libs:

{linux}$ ldconfig -p
{freebsd}$ ldconfig -r

Gerenciamento de pacotes

Distribuições diferentes de linux fazem de sua forma. Aqui colocarei a análise sobre o Debian, Ubuntu, Kubuntu etc.

Encontra qual pacote o arquivo pertence:

{freebsd}$ pkg_info -W /path/to/checked_file
{linux}$ dpkg -S /path/to/checked_file

Aproximação de pesquisa de pacotes

{linux}$ apt-cache search your_name
{freebsd}$ cd /usr/ports; make search key=your_name
                          make search name=pear display=name,path
    ou simplesmente locate (somente em nome dos pacotes):
{freebsd}$ locate -i your_name | grep "/usr/ports/"

Instalar um pacote binário

{linux}$ apt-get install package_name
{freebsd}$ pkg_add -r package_name

Instala pacotes de sources

{linux}$ apt-src
{freebsd}$ cd /usr/ports/path/package; make install clean
http://langs-tech-stuff.blogspot.com/2007/07/linux-freebsd-commands.html

Vi: Pesquisa e Substituição

Filed Under (freebsd, linux, unix) by admin on 18-03-2008

Mudar para modo normal com <ESC&gt.

Pesquisa (Posição atual até final de arquivo):

  Pesquisa STRING abaixo:   / STRING.  Pesquisa STRING acima :   ? STRING.

  Repete pesquisa:   n  Repete pesquisa na direção oposta:  N  (SHIFT-n)

Substituição: O mesmo que com o SED, Troca OLD com NEW:

  Primeira ocorrencia na linha atual:    :s/OLD/NEW  Globalmente (todas) na linha atual:    :s/OLD/NEW/g  Entre duas linhas #,#:                 :#,#s/OLD/NEW/g  Todas ocorrencias no arquivo:          :%s/OLD/NEW/g

Como migrar usuários do Linux para o FreeBSD

Filed Under (freebsd, linux) by admin on 05-03-2008

Vai uma dica para quem quer migrar usuários do Linux para o FreeBSD

No Linux:

Como root, execute o comando pwunconv, para colocar no arquivo /etc/passwd as senhas que estão no shadow:
# pwunconv

Para gerar o arquivo master.passwd do FreeBSD, execute o seguinte comando:
# cat /etc/passwd awk -F”:” ‘{printf(”%s:%s:%s:%s::0:0:%s:%s:%s\n”,$1,$2,$3,$4,$5,$6,$7); }’ > /home/eu/master.passwd

Copiar alguns arquivos que vamos usar depois para uma pasta qualquer de nosso acesso:
#cp /etc/passwd /home/eu/
#cp /etc/shell /home/eu/
#cp /etc/group /home/eu/

Com o vi ou outro editor qualquer, cheque então o conteúdo do master.passwd gerado por precaução.

Execute o comando pwconv para colocar de volta as senhas do /etc/passwd para o /etc/shadow:
# pwconv

No FreeBSD:

Copiar o novo master.passwd, passwd, shell e group para uma pasta local.

NÃO ESQUECER DE FAZER UM BACKUP DOS ARQUIVOS LOCAIS (passwd, master.passwd e group)

Editar esses arquivos, excluindo as primeiras linhas do master.passwd, passwd e groups de tal forma que se apague as linhas de usuários de sistema, como root, wheels, sshd, etc. Após apagar essas linhas, adicione ao início desses arquivos os usuários de sistema do FreeBSD (arquivo original no FreeBSD). Alterar os shells dos usuários para shells permitidos pelo sistema, na lista descrita no arquivo /etc/shell no FreeBSD. Verificar alterações extras necessárias.

Após editar o arquivo, tomando esses cuidados acima, copiar os arquivos de /home/eu (master.passwd, passwd e group) para /etc :
# cp /home/eu/master.passwd /etc
# cp /home/eu/passwd /etc
# cp /home/eu/group /etc

Dar permissões corretas:
# chmod 644 /etc/passwd
# chmod 644 /etc/group
# chmod 600 /etc/master.passwd
# chown root.wheel /etc/passwd
# chown root.wheel /etc/master.passwd
# chown root.wheel /etc/group

Gerar o novo pwd.db :
# pwd_mkdb /etc/master.passwd

Por precaução, mudar a senha de root, para evitar perder acesso.

# passwd root

obs: no caso ainda não foi criada as pastas home de cada usuário. É necessário então criar a mão ou escrever um script para tal tarefa.