DICAS E DÍVIDAS
Dicas de kylix
Jairo M. de Barros Júnior - supreme@linux-lover.co.uk
Procedimento padrão para limpar componentes
Este procedimento varre o formulário atual e limpa os dados dos componentes do tipo TMemo e TEdit.
procedure Limpar;
var
n:Integer;
begin
for n := 0 to Self.ComponentCount -1 do
//Self seria o form atual!
with Self do begin
//Verifica o tipo de componente e manda limpar
if (Components[n] is TEdit) then (Components[n] as TEdit).Clear;
if (Components[n] is TMemo) then (Components[n] as TMemo).Clear;
//E por ai vai...
end;
end;
Tirando aspas de uma String
Função usada para evitar erros em uma query quando alguns dados estão vindo de TEdits e TMemos.
function TiraAspas(Texto:String):String;
var
sTemp:String;
begin
sTemp := Texto;
while pos('“', sTemp) <> 0 do delete(sTemp, pos('“', sTemp), 1);
Result := sTemp;
end;
Redimensionamento de um array
Esta função redimensiona um array de String e adiciona um outro valor. O array acaba tendo um tamanho praticamente infinito.
type
TArSTR = array of string;
function AddInArray(CamposPar: TArSTR; valor:String):TArSTR;
var
temp:TArSTR;
N: Integer;
begin
temp := CamposPar;
setlength(temp, length(temp) + 1);
N := length(temp);
while N < (Length(temp)-1) do temp[N] := CamposPar[N];
temp[Length(temp)-1] := valor;
Result := temp;
end
Dicas de segurança
Renato Murilo Langona - renato@linuxsecurity.com.br
Undo utilizando bash
Ao utilizar o shell bash como seu interpretador de comandos, você pode usar Crtl+_ , Ctrl+X ou ainda Crtl+U para desfazer uma linha escrita em seu prompt de comandos durante erro ou desistência.
Desabilitando o IP Source Routing
O IP Source Routing permite estabelecer previamente o caminho que um pacote irá seguir (path) para chegar ao seu destino, fazendo também com que o destino desse pacote envie suas respostas (replies) utilizando o mesmo caminho. Desta forma, um cracker, sabendo do caminho desses pacotes, pode interceptá-los fazendo com que o destino acredite ser ele a fonte correta desses pacotes:
Você pode desabilitá-lo da seguinte forma:
1) Através do script:
for f in /proc/sys/net/ipv4/conf/*/accept_source_route do
echo 0 > $f
done
2) Com o comando:
sysctl -w net.ipv4.all.accept_source_route=0
3) Editando o arquivo /etc/sysctl.conf:
net.ipv4.conf.all.accept_source_route=0
Habilitando logging
Você pode fazer com que seu sistema Linux registre através de logs todos os pacotes forjados (spoofed), source routed ou redirect através de recursos do próprio kernel.
1) Através do script:
for f in /proc/sys/net/ipv4/conf/*/log_martians
do
echo 1 > $f
done
2) Com o comando:
sysctl -w net.ipv4.conf.all.log_martians=1
Dicas do Piter
Por Piter Punk - piterpk@terra.com.br
Instalando RPMs no Slackware
Para fazer isso existem duas formas. A primeira é utilizando o próprio comando rpm e a outra, usando scripts do próprio Slack.
a)Usando rpm:
rpm -ivh —nodeps —force pacote.rpm
b)Com os scripts do Slack:
rpm2tgz pacote.rpm
installpkg pacote.tgz
Tenha em mente que nenhum dos dois comandos irá verificar a base de dependências do rpm, não sendo “garantido” que o programa instalado funcione. Prefira sempre utilizar os pacotes .tgz para Slackware.
Inicializando no modo Gráfico
Na configuração original, o Slackware inicializa direto pelo modo texto. Para fazer inicializar pelo modo gráfico, é necessário editar o arquivo /etc/inittab. Procure uma linha semelhante a esta:
id:3:initdefault:
E, onde está um 3, coloque o número 4. É interessante notar que (ao contrário de várias outras distros) o runlevel para o modo gráfico é o 4 e não o 5.
O que está instalado?
Para saber quais pacotes estão instalados no seu sistema, basta digitar:
ls /var/log/packages
Neste diretório estão todos os pacotes instalados. Checando no interior de cada um deles, é possível saber quais arquivos estão incluídos no pacote. Podemos usar essa característica para localizar em que pacote está um determinado arquivo. É só utilizar alguns comandos e pipes:
grep “arquivo” /var/log/packages/* | cut -f 1 -d : | uniq
Veja o exemplo:
punk@rachael:~$ grep “bin/uniq” /var/log/packages/* | cut -f 1 -d : | uniq
/var/log/packages/txtutils
Agora nós sabemos que o arquivo “uniq” está localizado dentro do pacote txtutils. Vez ou outra, aparecem dois pacotes listados. Neste caso, utilize apenas o comando grep para saber em qual deles se encontra o arquivo que você quer.
Dica TCP_WRAPPERS
Ao utilizar os arquivos de controle de acesso do tcp_wrappers /etc/hosts.allow e /etc/hosts.deny (para serviços iniciados pelo tcpd), lembre-se de checar a sintaxe das linhas digitadas em ambos os arquivos através da ferramenta tcpdchk do próprio pacote tcp_wrappers. A ferramenta irá reportar, caso encontre problemas como pathnames não existentes, serviços que possuam regras, mas não são controlados pelo tcpd, hosts conflitantes, uso inapropriado de coringas, argumentos inválidos e muito mais, e, sempre que possível, sugerindo algo para corrigir o problema.
Uso da variável TMOUT
Muitos usuários que utilizam o console acabam esquecendo seu username logado enquanto tiram uma folga ou realizam outra tarefa qualquer. Para fazer com que esse usuário seja automaticamente desconectado após certo tempo, pode-se usar a variável local do BASH chamada TMOUT:
Basta atribuir um valor (em segundos) para essa variável globalmente em /etc/bashrc ou /etc/profile para que, após x segundos de inatividade, o usuário seja automaticamente desconectado de seu terminal:
Exemplo:
export TMOUT=3600
Restrição do uso
Para sistemas que utilizam PAM, desabilite o acesso via console de serviços como halt, shutdown, poweroff em /etc/security/console.apps/, tendo cuidado para não desabilitar o xserver, caso utilize o xdm para outros usuários além do root. O diretório /etc/security/console.apps deve conter um arquivo por aplicação ao qual se deseja manter acesso para usuários através do console.
Sendmail
Para obter um grande número de dados de seu MTA sendmail, incluindo versão, como foi compilado e identificações do sistema, utilize:
# /usr/lib/sendmail -d0.1 -bt < /dev/null