Pesquisar neste blog

quinta-feira, 16 de outubro de 2008

Group Mapping - Associando grupos linux ao windows

Ao instalar o samba usando o modo controlador de domínio com passdb smbpasswd conforme abaixo:

security = user
passdb backend = smbpasswd


Temos que basicamente criar nossos grupos primários compatíveis com os grupos do windows e para isso vou dar algumas dicas de como fazer isso com os principais, vamos lá então:

1 - Temos no windows alguns grupos e seus respectivos SIDs:

Domain admins - 512
Domain users - 513
Domain guests - 514
Domain computers - 515


existem outros, mas fica a critério vou trabalhar com os grupos acima.

O primeiro passo é criarmos grupos grupos unix com os mesmos SIDs dos informados pelo windows, para isso iremos executar os seguintes comandos abaixo:

# groupadd -g 512 domain_admins
# groupadd -g 513 domain_users
# groupadd -g 514 domain_guests
# groupadd -g 515 domain_computers


Após execurtar os comandos acima os grupos já estaram gravados no arquivo /etc/group,
para ter certesa que foram gravados ou queira visualizá-lo execute o seguinte comando:

# cat /etc/group

2 - Com os grupos padrões criados agora nosso segundo passo vai ser mapear esses grupos unix, ou seja, converter em grupos do domínio mantendo os mesmos SIDs através do uso da ferramente net groupmap.
Irei mostrar abaixo os comando para fazer isso:

Aqui segue os parâmetros do comando

[root@servidor scripts]# net groupmap addUsage: net groupmap add {rid=sid=} unixgroup= [type=] [ntgroup=] [comment=]

Vamos aos mapeamentos:

[root@servidor samba]# net groupmap add rid=512 unixgroup="domain_admins" ntgroup="domain_admins"
Successfully added group domain_admins to the mapping db as a domain group

[root@servidor samba]# net groupmap add rid=513 unixgroup="domain_users" ntgroup="domain_users"
Successfully added group domain_users to the mapping db as a domain group

[root@servidor samba]# net groupmap add rid=514 unixgroup="gomain_guests" ntgroup="domain_guests"
Successfully added group domain_guests to the mapping db as a domain group

[root@servidor samba]# net groupmap add rid=515 unixgroup="domain_computers" ntgroup="domain_computers"
Successfully added group domain_computers to the mapping db as a domain group

3 - Após feito feitos os mapeamentos dos grupos podemos executar uma série de comando que nos ajudam a veriricar a existência e gerenciamento dos mesmos, demostrarei abaixo alguns comando para isso:

PARA LISTAR TODOS OS GRUPOS MAPEADOS PARA O DOMÍNIO

root# net groupmap list
Domain Admins (S-1-5-21-391507597-2097566357-2340928898-512) -> -1
Domain Users (S-1-5-21-391507597-2097566357-2340928898-513) -> -1
Domain Guests (S-1-5-21-391507597-2097566357-2340928898-514) -> -1
Domain Computers (S-1-5-21-391507597-2097566357-2340928898-515) -> -1

PARA TERMOS UMA VISÃO MAIS DETALHADA DE UM DETERMINADO GRUPO

[root@servidor scripts]# net groupmap list verbose ntgoup="domain_admins"
Domain_Admins SID : S-1-5-21-3471986706-3557788503-1336542095-512
Unix gid : 512
Unix group: Domain_Admins
Group type: Domain Group
Comment : Domain Unix group

PARA DELETAR UM DETERMINADO GRUPO

root# net groupmap delete ntgroup="domain_admins"

Referências:

http://www.devshed.com/c/a/Administration/Authorizing-Users-in-Samba/
http://www.debianfordummies.org/wiki/index.php/Samba_PDC_Howto

quarta-feira, 15 de outubro de 2008

Starting and Stopping Oracle

Para que o Oracle inicie ou pare ao ligar ou desligar seu servidor iremos criar o script abaixo que resolverá nosso problema.

Para isso precisaremos editar o arquivo /etc/oratab e criar o respectivo script de inicialização.

Primeiro edite o arquivo /etc/oratab. O formato deste arquivo é:

SID:ORACLE_HOME:AUTO_START

Digite Y no campo AUTO_START da base de dados que você quer iniciar automaticamente, e um N para as outras que você não quer. Seu arquivo informa que vai iniciar as bases test1 and test2, e não inicia a test3:

test1:/u01/app/oracle/product/10.1.0/db_1:Y
test2:/u01/app/oracle/product/10.1.0/db_1:Y
test3:/u01/app/oracle/product/10.1.0/db_1:N

Agora nos precisamos criar o script de inicialização chamado /etc/init.d/oracle:

#!/bin/bash
# Run-level Startup script for the Oracle Instance and Listener
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance
ORA_HOME="/u01/app/oracle/product/10.1.0/Db\_1"
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
;;
reloadrestart)
$0 stop
$0 start
;;

*)
echo "Usage: $0 startstoprestartreload"
exit 1
esac
exit 0

Para que o script rode no boot, e você poça tratá-lo como serviço "service oracle startstop", faça o seguinte:


ln -s /etc/init.d/oracle /etc/rc.d/rc2.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc4.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc0.d/K01oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc6.d/K01oracle

Como eu adiciono o X em meu servidor

O caminho mais fácil para instalar o X ou uma GUI é usando o yum groupinstall feature.


Primeiro você pode sever todos os grupos disponíveis com o comanado:

# yum grouplist

Você pode instalar o X e o Gnome ou KDE assim:

# yum groupinstall "X Window System" "GNOME Desktop Environment"

ou

#yum groupinstall "X Window System" "KDE (K Desktop Environment)"

Você também pode querer adicionar outros grupos da lista como "Graphical Internet" or "Office/Productivity"

Instalando Oracle 10g no CentOS 5

Este artigo descreve a instalação do oracle 10g no centOS 5. Segundo a documentação do software o requisito mínimo de sistema é 1024Mb de memória RAM e 2048Mb de SWAP, SELINUX desativado e os seguintes grupos de pacotes instalados:


* GNOME Desktop Environment
* Editors
* Graphical Internet
* Text-based Internet
* Development Libraries
* Development Tools
* Legacy Software Development
* Server Configuration Tools
* Administration Tools
* Base
* Legacy Software Support
* System Tools
* X Window System

Download do Oracle

Oracle Database 10g Release 2 (10.2.0.1) Software
http://www.oracle.com/technology/software/products/database/oracle10g/index.html

Configurando o sistema para instalação

alterar o arquivo ''/etc/sysctl.conf'' com as configurações abaixo:

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

Execute o seguinte comando para alterar os parametros do kernel:

# /sbin/sysctl -p

Adicione as seguintes linhas no arquivo /etc/security/limits.conf :

* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

Desabilite o secure linux alterando o arquivo /etc/selinux/config:

SELINUX=disabled

Instalação de requisitos básicos para instalação do oracle

Obs: nesse exemplo o yum esta configurado com repositorios DAG e DRIES.

yum install compat-db compat-libgcc compat-libstdc++ gcc gcc-c++ glib-devel gnome-libs libaio libaio-devel openmotif21 make orbit-devel gtk+-devel imlib-devel gnome-libs-devel xorg-x11-deprecated-libs xorg-x11-deprecated-libs-devel libgcc libstdc++ binutils

Criar grupos e usuarios necessario

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
passwd oracle

Criar os diretorios do software

mkdir -p /home/oracle/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /home/oracle/

Editar o arquivo /etc/redhat-release substitua o conteúdo por:

redhat-4

Edite o arquivo /home/oracle/.bash_profile como usuario oracle

# su - oracle
#vi /home/oracle/.bash_profile

inserir esse conteudo no fim do arquivo .bash_profile

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/home/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

#LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi


Instalação do Oracle 10g

Logar no Linux em algum terminal grafico como root (Ex. VNC, NX, ou localmente KDE ou GNOME), abra um terminal de console

cd /home/oracle
tar -xvzf 10201_database_linux32.zip
chown oracle -R /oracle
Executar como root: xhost + localhost
su - oracle
cd /home/oracle/database
./runInstaller

Após a execução do comando acima, aai abrir uma tela grafica com o processo de instalação, vá procedendo a instalção conforme a sua necessidade.

Finalizando instalação

Editar o arquivo /etc/oratab para iniciar o banco no startup do oracle
trocar onde esta 'N' para 'Y' no banco que deseja iniciar no dbstart ex:
dbteste:/home/oracle/app/oracle/product/10.2.0/db_1:Y
Criar o Arquivo /etc/init.d/oracle para iniciar o oracle no boot
vi /etc/init.d/oracle

colocar o seguinte conteudo no arquivo:


#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#

# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/home/oracle/app/oracle/product/10.2.0/db_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart

;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac

Alterar horário de verão em servidores Linux 2008/2009

Caros colegas,
conforme anunciado pelo CAIS, Decreto define datas permanentes para início e término do Horário de Verão.

Links para o decreto:

DECRETO No 6.558 DE 8 DE SETEMBRO DE 2008 - Institui a hora de verão em parte doterritório nacional

https://www.planalto.gov.br/ccivil_03/_ato2007-2010/2008/decreto/d6558.htm

DECRETO No 6.558 DE 8 DE SETEMBRO DE 2008 - Institui a hora de verão em parte doterritório nacional (PDF)

http://www.mme.gov.br/download.do?attachmentId=16121&download

Irei apresentar abaixo como alterar para o horário de verão

Em equipamentos Cisco iremos atualizar com as seguintes linhas:

clock timezone GMT-3 -3
clock summer-time GMT-2 date Oct 19 2008 0:00 Feb 15 2009 0:00

Os logs de registros dos roteadores cisco parassaram a informar a hora com o GMT-2.

Servidores GNU/Linux

Para usuários GNU/Linux iremos seguir os procedimentos abaixo:

1 - Crie um arquivo com o nome "hora_verao2008.zic" por exemplo, dentro do diretório /usr/share/zoneinfo/Brazil. Este arquivo deverá conter as seguintes linhas:

Rule Brazil 2008 only - Oct 19 00:00 1 S
Rule Brazil 2009 only - Feb 15 00:00 0 -
Zone Brazil/East -3:00 Brazil BR%sT

As duas primeiras linhas de configuração informam quando inicia o horário de verão,
quando termina e qual é a ação tomada.
Lembre-se de que o início do horário de verão hora local é acrescida em uma hora.

A última linha diz qual será o arquivo modificado pelo comando "zic". No exemplo acima, será o arquivo "East" dentro do diretório Brazil. Esta linha também informa qual o timezone original da região, no caso de SãoPaulo (East) temos UTC-3.

2 - Uma vez feitos os devidos ajustes no arquivo "hora_verao2008.zic", execute o comando "zic" .

# zic hora_verao2008.zic

Neste caso o comando irá atualizar o arquivo East.

3 - Para verificar se as configurações foram feitas corretamente, execute o comando zdump conforme exemplo abaixo:

# zdump -v Brazil/Eastgrep 200[89]

4 - Para finalizar, se o arquivo /etc/localtime não for um link para o arquivo /usr/share/zoneinfo/Brazil/East, deve-se copiar o arquivo East para /etc/localtime

# cp East /etc/localtime