preload

jul 10

Hi,

Este artigo tem como objetivo mostrar como instalar o fonte (source) do kernel do freebsd, editá-lo e recompilar o mesmo.

Primeiramente, caso na instalação do freebsd você não tenha instalado o fonte (source), os passos são os seguintes:

~#
~# sysinstall

1. Selecione “Configure”…

2. “Distributions”…

3. Marque “src” (com a tecla “espaço”)…

4. Marque “sys” (ô kernel! :P)…

5. “OK”…

Depois de instalado o kernel, vamos fazer um backup do arquivo de configuração do mesmo e editá-lo…

~#
~# cd /usr/src/sys/i386/conf
~# cp GENERIC JUPITER

“JUPITER” é o nome do servidor (neste caso…), lembre-se de colocar o nome do arquivo de configuração em maiúsculo.

Agora, edite seu arquivo de configuração (não vou me aprofundar à explicação do arquivo, o mesmo é bem comentado e simples de entender…):

~#
~# vi JUPITER

Como você pode ver, o arquivo de configuração é simples de ser entendido. Ou seja, os drivers/módulos que não tem interesse é só comentar com um #

Clique aqui e baixe um exemplo de um arquivo de configuração. obs: este arquivo está praticamente todo comentado, sobrando somente os drivers/módulos básicos para uso do freebsd, aconselho usá-lo somente como consulta.

Depois de editado seu arquivo de configuração, vamos compilar o kernel. Existe 2 formas de recompilar: as versões mais antigas do freebsd usavam o modo “padrão” de compilação por etapas. Já as novas versões (acima de 6.x ~ 7.x) usam um novo modo de compilação por parâmetro (bem mais prático, use o tipo baseado na sua versão do freebsd), vejamos:

[x] Modo “antigo”…

~#
~# /usr/sbin/config JUPITER
~# cd ../compile/JUPITER
~# make depend
~# make
(tome um café… rsrs)
~# make install

Depois de todo o processo, é só reiniciar o S.O.:

~#
~# shutdown -r now

[x] “Novo” modo…

~#
~# cd /usr/src
~# make buildkernel KERNCONF=JUPITER
(tome um café… rsrs)
~# make installkernel KERNCONF=JUPITER

Como senpre, depois do processo…

~#
~# shutdown -r now

Pronto! Seu kernel foi instalado, editado a suas necessidades e recompilado. Espero ter ajudado. ;)

Marcadores:
jun 17

Hi,

Quota. Usamos quando quremos limitar o uso do espaço em disco a um determinado usuário. O uso de quota previne o uso indevido dos usuários com relação ao espaço em disco, evitando – assim – o esgotamento repentino do espaço de uma determinada partição.

No FreeBSD o sistema de Quota é nativo do sistema, não nessitando instalar nenhum outro aplicativo. Necessário  somente habilitar o recurso no kernel.

Adicione a quota no seu kernel, recompile e habilite o sistema de quotas ao sistema (não me aprofundarei na recompilação do kernel, pois, não é o alvo do post).

~#
~# cd /usr/src/sys/i386/conf
~# vi SEUKERNEL

Adicione a opção de cotas no final do arquivo:
options          QUOTA

Recompile o kernel:
~#
~# cd /usr/src/
~# make buildkernel KERNCONF=SEUKERNEL
~# make installkernel KERNCONF=SEUKERNEL

Habilite o sistema de quotas ao sistema:
~#
~# cd /etc/
~# vi rc.conf

Adicione as linhas abaixo no seu rc.conf
enable_quotas=”YES”
check_quotas=”NO”

Pronto! Com o sistema de quota habilitado vamos definir as configurações nas partições e usuários!

Ah, em check_quotas, neste caso, deixei desabilitado (NO) para optimizar o boot do sistema. O check_quotas, como o próprio nome descreve, serve para checar a integridade dos dados no disco em relação a quota definida em cada usuário. Mas, em um sistema com muitos usuários acaba se tornando uma checagem muito demorado.

Neste exemplo vamos habilitar a partição /home para o uso de quotas. Neste caso, editamos o /etc/fstab e habilitamos o recurso na partição, depois reinicie o sistema.

~#
~# cd /etc/
~# vi fstab

Adicione o parametro “userquota” no /home:
/dev/ad0s1f      /home   ufs   rw,nosuid,userquota   2   2

Reinicie o sistema:
~#
~# shutdown -r now

Depois de reinicar o sistema, execute:

~#
~# quotacheck -a

Com este comando ele cria o arquivo quota.user na raiz de cada partição que você definiu como o sistema de quotas. Este arquivo é resposável pela base de dados das quotas de seus usuários.

O sistema de quotas pode ser configurado de duas formas: por blocos (1KB por bloco) ou inodes (arquivos).  Geralmente usa-se quota por bloco, o que traduz-se no espaço utilizado em disco.

O sistema de quotas também usá dois tipos de limites: o hard e soft. No limite hard, ele não pode ser ultrapassado, ou seja, se você define 50MB de limite hard ao atingir este limite o usuário não poderá mais adicionar dados no disco. Já o limite soft pode ser ultrapassado, por um determinado periodo chamado de “grace period”. Neste caso, ao ser ultrapassado o limite soft, o usuário pode utilizar esta “ultrapassagem de dados” até o limite do “grace period” (por default 1 semana), quando o “grace period” expira o limite de quota se torna hard (não podendo ser ultrapassado, até regulariar a situação).

Depois de entendido o sistema de quotas vamos editar e adicionar as regras. Para editar as quotas de um determinado usuário usamos:

~#
~# edquota -u usuario

No nosso exemplo, vamos visualizar as regras de quota para o usuário “bleno”, vejamos:

~#
~# edquota -u bleno
Quotas for user bleno:
/home: kbytes in use: 988, limits (soft = 0, hard = 0)
inodes in use: 4, limits (soft = 0, hard = 0)

Veja que os limites de soft e hard estão com 0 KB! Vamos então definir 10MB de limite hard usando blocos (tamanho em disco). Neste caso 10 * 1024 = 10240, ficando nosso arquivo assim:

~#
~# edquota -u bleno
Quotas for user bleno:
/home: kbytes in use: 988, limits (soft = 0, hard = 10240)
inodes in use: 4, limits (soft = 0, hard = 0)

Simples, não? Veja que o sistema de quotas é muito simples de se trabalhar. Vamos por exemplo definir para o usuário “bleno” uma quota de 10MB hard, 8MB soft por blocos e 200 arquivos hard e 190 arquivos soft por inodes (arquivos).

~#
~# edquota -u bleno
Quotas for user bleno:
/home: kbytes in use: 988, limits (soft = 8192, hard = 10240)
inodes in use: 4, limits (soft = 190, hard = 200)

Não há segredo. O único “problema” é quando temos um sistema com muitos usuários. Fica praticamente inviável editar cada usuário na mão. Mas é possível criar um shell script e gerenciar toda a manipulação de quotas. Vamos exemplificar mais um pouco.

Para copiar as regras de quota do usuário “bleno” para “joao”:

~#
~# edquota -p bleno joao

Copiar as regras de quota de “bleno” para usuários com UID 1000:

~#
~# edquota -p bleno 1000

Copiar as regras de quota de “bleno” para usuários com UID entre 1000 e 5000:

~#
~# edquota -p bleno 1000-5000

Assim finalizo este post sobre quota. O assunto é muito mais profundo e extenso. As man pages do comando “edquota” é bem explicativo (principalmente se você for criar algum shell script para gerenciar seu sistema de quota), vale a pena dar uma lida!

;)

Marcadores:
jun 16

Hi,

Esta é uma dica simples mas que as vezes o pessoal iniciante no FreeBSD não atenta ao detalhe. Para usar o comando “su” para um novo usuário é necessário que o mesmo faça parte do grupo wheel. Assim, este novo usuário ganhará alguns privilégios, entre eles o de usar o comando “su”. Para adicionar o novo usuário ao grupo wheel:

~#
~# vi /etc/group

na linha:
wheel:*:0:root

adicione o seu novo usuário:
wheel:*:0:root,novousuario

Assim, seu “novousuario” terá priviléigios suficiente para usar o comando “su”.

Marcadores:

2006 - 2009 (c) bleno.org
100% Compatível com Mozilla Firefox