Instalaçã
Instalaçã
o e
o e
configuração de Servidor
configuração de Servidor
Samba PDC
Samba PDC
+ OpenLDAP + Debian Squeee
+ OpenLDAP + Debian Squeee
1.
1.
Domínio que vamos utilizar: douglas.wiki.br
Domínio que vamos utilizar: douglas.wiki.br
2.2.
Faixa de ip: 10.0.0.0/2
Faixa de ip: 10.0.0.0/2
3.3.
!p do "ervidor: 10.0.0.2#
!p do "ervidor: 10.0.0.2#
$repare o seu sistema %om o seguinte s%ript
$repare o seu sistema %om o seguinte s%ript
&ttp://www.douglas.wiki.br/doku.p&p'
&ttp://www.douglas.wiki.br/doku.p&p'
id(%on)ini%ialsqueeze
id(%on)ini%ialsqueeze
para que n*o )alte nen&um
para que n*o )alte nen&um
pa%ote ou %on)igura+*o.
pa%ote ou %on)igura+*o.
"empre quanto terminar a edi+*o de algum arquivo .ldi) no vim sempre pressione F, para ele
"empre quanto terminar a edi+*o de algum arquivo .ldi) no vim sempre pressione F, para ele
remover os espa+os nos )inais de lin&a que sempre da merda -
remover os espa+os nos )inais de lin&a que sempre da merda -
amos atualizar os repositrios e )azer um upgrade do sistema
amos atualizar os repositrios e )azer um upgrade do sistema
a p t i t u d e
a p t i t u d e update update &&&& a p t i t u d ea p t i t u d e dist-upgrade dist-upgrade -y-y
gora vamos a instala+*o e
gora vamos a instala+*o e
%on)igura+*o do pen3D$
%on)igura+*o do pen3D$
amos )azer a instala+*o dos pa%otes
amos )azer a instala+*o dos pa%otes
ne%ess4rios.
ne%ess4rios.
a p t i t u d e
a p t i t u d e update update &&&& a p t i t u d ea p t i t u d e dist-upgrade dist-upgrade -y-y &&&& a p t i t u d ea p t i t u d e i n s t a l li n s t a l l slapd ldap-utils slapd ldap-utils -y-y #
#A q uA q ui i v a mv a m oos s t e r t e r q uq ue i ne i nf of or m a r a sr m a r a se ne nh a p a r a o A dh a p a r a o A dm i nm i ni s ti s tr a d o r r a d o r d o nd o no so ss o s o L D AL D APP..
gora vamos %&e%ar se o
gora vamos %&e%ar se o
nosso servidor esta trabal&ando.
nosso servidor esta trabal&ando.
ldapsearch
ldapsearch -LLL-LLL -Y-Y EXTERNAL EXTERNAL -H-H ldapi: ldapi:////// -b-b cncn=config dn=config dn SASL
SASL//EXTERNAL authentication startedEXTERNAL authentication started SASL username:
SASL username: gidNumbergidNumber==00++uidNumberuidNumber==0,0,cncn=peercred,=peercred,cncn=eternal,=eternal,cncn=auth=auth SASL SS!:
SASL SS!: 00
dn:
dn: cncn=config=config dn:
dn: cncn=module=module{{00}},,cncn=config=config dn:
dn: cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{00}}core,core,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{11}}cosine,cosine,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{22}}nis,nis,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{33}}inetorgperson,inetorgperson,cncn=schema,=schema,cncn=config=config dn:
dn: olcBackendolcBackend=={{00}}hd",hd",cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{--11}}frontend,frontend,cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{00}}config,config,cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{11}}hd",hd",cncn=config=config
gora vamos inserir a sen&a do admin &db do 3D$ e tro%ar a sen&a do admin do %on)ig
gora vamos inserir a sen&a do admin &db do 3D$ e tro%ar a sen&a do admin do %on)ig
do 3D$5 mas primeiro temos que gerar um &as& da sen&a.
do 3D$5 mas primeiro temos que gerar um &as& da sen&a.
slappass#d
slappass#d -- senha senha
{
{SS$ASS$A}}!%oA&'cA()lNgRasc*gRsp).!%oA&'cA()lNgRasc*gRsp).//$/os$/os
6": 78 $D9 9; 9"$<" $=" $=" >3?!@ A;A?9; D 3!7 7 ;BC!
6": 78 $D9 9; 9"$<" $=" $=" >3?!@ A;A?9; D 3!7 7 ;BC!
.3D!F "978 @" 6?9; 9;; 7 !@$;?<8 D" ;BC!" 99@$3 D9 9;;
ldap0add: 1n2alid s&nta
ldap0add: 1n2alid s&nta !!2121"" additional info: o"3ect4lass: 2alue additional info: o"3ect4lass: 2alue ##1 1 invalinvalid peid per sr syyntaxntax
amos %onsultar a nossa base 3D$
amos %onsultar a nossa base 3D$
ldapsearch
ldapsearch -LLL-LLL -Y-Y EXTERNAL EXTERNAL -H-H ldapi: ldapi:////// -b-b cncn=config olcRoot5N olcRoot(/=config olcRoot5N olcRoot(/ SASL
SASL//EXTERNAL authentication startedEXTERNAL authentication started SASL username:
SASL username: gidNumbergidNumber==00++uidNumberuidNumber==0,0,cncn=peercred,=peercred,cncn=eternal,=eternal,cncn=auth=auth SASL SS!:
SASL SS!: 00
dn:
dn: cncn=config=config dn:
dn: cncn=module=module{{00}},,cncn=config=config dn:
dn: cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{00}}core,core,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{11}}cosine,cosine,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{22}}nis,nis,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{33}}inetorgperson,inetorgperson,cncn=schema,=schema,cncn=config=config dn:
dn: olcBackendolcBackend=={{00}}hd",hd",cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{--11}}frontend,frontend,cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{00}}config,config,cncn=config=config olcRoot5N:
olcRoot5N: cncn=admin,=admin,cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{11}}hd",hd",cncn=config=config olcRoot5N:
olcRoot5N: cncn=admin,=admin,dcdc=douglas,=douglas,dcdc=#i6i,=#i6i,dcdc="r="r olcRoot(/:
olcRoot(/: {{SS$ASS$A}}14T7'189hEsmf88;dNuu3<+2i>N?'p14T7'189hEsmf88;dNuu3<+2i>N?'p
6": 9m alguns %asos note que
6": 9m alguns %asos note que
n*o temos um ol%;oot$E depois de dn:
n*o temos um ol%;oot$E depois de dn:
ol%Database(0G%on)ig5%n(%o
ol%Database(0G%on)ig5%n(%o
n)ig5 que
n)ig5 que
H a
H a
sen&a da administra+*o da %on)igura+*o do
sen&a da administra+*o da %on)igura+*o do
3D$
3D$
5
5
%om isso vamos ter que inserir
%om isso vamos ter que inserir
uma5 %aso %ontr4rio podemos modi)i%ar ela.
uma5 %aso %ontr4rio podemos modi)i%ar ela.
gora vamos %riar o arquivo para ser importado %om a sen&a do
gora vamos %riar o arquivo para ser importado %om a sen&a do
nosso admin do %on)ig 3D$
nosso admin do %on)ig 3D$
5
5
%aso ela ainda n*o exista.
%aso ela ainda n*o exista.
vi
vi mm //rootroot//admin@mod@ldifadmin@mod@ldif dn:
dn: olcDatabaeolcDatabae=={{00}}config,config,cncn=config=config changet&pe: modif&
changet&pe: modif& replace: olcRoot(/ replace: olcRoot(/ olcRoot(/:
olcRoot(/: {{SS$ASS$A}}!%oA&'cA()lNgRasc*gRsp).!%oA&'cA()lNgRasc*gRsp).//$/os$/os
gora vamos importar a nova sen&a para o 3D$
gora vamos importar a nova sen&a para o 3D$
ldapmodif&
ldapmodif& -Y-Y EXTERNAL EXTERNAL -H-H ldapi: ldapi:////// -# -# //rootroot//admin@mod@ldifadmin@mod@ldif SASL
SASL//EXTERNAL authentication startedEXTERNAL authentication started SASL username:
SASL username: gidNumbergidNumber==00++uidNumberuidNumber==0,0,cncn=peercred,=peercred,cncn=eternal,=eternal,cncn=auth=auth SASL SS!:
SASL SS!: 00
modif&ing entr&
gora se pre%isarmos tro%ar a sen&a do admin da
gora se pre%isarmos tro%ar a sen&a do admin da
instala+*o do 3D$ temos que
instala+*o do 3D$ temos que
%riar o arquivo
%riar o arquivo
para e)etuar a modi)i%a+*o da sen&a e i
para e)etuar a modi)i%a+*o da sen&a e i
mportar ele aqui eu
mportar ele aqui eu
vou utilizar a mesma sen&a tanto
vou utilizar a mesma sen&a tanto
para o admin de %onsultas %omo para o
para o admin de %onsultas %omo para o
admin interno do 3D$
admin interno do 3D$
vi
vi mm //root@ldifroot@ldif dn:
dn: olcDatabaeolcDatabae=={{11}}hd",hd",cncn=config=config changet&pe: modif&
changet&pe: modif& replace: olcRoot(/ replace: olcRoot(/ olcRoot(/:
olcRoot(/: {{SS$ASS$A}}!%oA&'cA()lNgRasc*gRsp).!%oA&'cA()lNgRasc*gRsp).//$/os$/os
amos agora importar a nossa sen&a.
amos agora importar a nossa sen&a.
ldapmodif&
ldapmodif& -Y-Y EXTERNAL EXTERNAL -H-H ldapi: ldapi:////// -# -# //root@ldifroot@ldif SASL
SASL//EXTERNAL authentication startedEXTERNAL authentication started SASL username:
SASL username: gidNumbergidNumber==00++uidNumberuidNumber==0,0,cncn=peercred,=peercred,cncn=eternal,=eternal,cncn=auth=auth SASL SS!:
SASL SS!: 00
modif&ing entr&
modif&ing entr& $olcDatabae%$olcDatabae%{0}con#igcn%co{0}con#igcn%con#ig$n#ig$
gora vamos )azer uma %onsulta a respeito dos admins do
gora vamos )azer uma %onsulta a respeito dos admins do
nosso 3D$
nosso 3D$
ldapsearch
ldapsearch -LLL-LLL -Y-Y EXTERNAL EXTERNAL -H-H ldapi: ldapi:////// -b-b cncn=config olcRoot5N olcRoot(/=config olcRoot5N olcRoot(/ SASL
SASL//EXTERNAL authentication startedEXTERNAL authentication started SASL username:
SASL username: gidNumbergidNumber==00++uidNumberuidNumber==0,0,cncn=peercred,=peercred,cncn=eternal,=eternal,cncn=auth=auth SASL SS!:
SASL SS!: 00
dn:
dn: cncn=config=config dn:
dn: cncn=module=module{{00}},,cncn=config=config dn:
dn: cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{00}}core,core,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{11}}cosine,cosine,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{22}}nis,nis,cncn=schema,=schema,cncn=config=config dn:
dn: cncn=={{33}}inetorgperson,inetorgperson,cncn=schema,=schema,cncn=config=config dn:
dn: olcBackendolcBackend=={{00}}hd",hd",cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{--11}}frontend,frontend,cncn=config=config dn:
dn: olcDatabaeolcDatabae=={{00}}config,config,cncn=config=config olcRoot5N:
olcRoot5N: cncn=admin,=admin,cncn=config=config olcRoot(/:
olcRoot(/: {{SS$ASS$A}}!%oA&'cA()lNgRasc*gRsp).!%oA&'cA()lNgRasc*gRsp).//$/os$/os dn:
dn: olcDatabaeolcDatabae=={{11}}hd",hd",cncn=config=config olcRoot5N:
olcRoot5N: cncn=admin,=admin,dcdc=douglas,=douglas,dcdc=#i6i,=#i6i,dcdc="r="r olcRoot(/:
olcRoot(/: {{SS$ASS$A}}!%oA&'cA()lNgRasc*gRsp).!%oA&'cA()lNgRasc*gRsp).//$/os$/os
amos agor
amos agor
a %riar o nosso su)ixo para o nosso
a %riar o nosso su)ixo para o nosso
domínio e a %on)igura+*o de a%esso.
domínio e a %on)igura+*o de a%esso.
vi
vi mm //config@ldifconfig@ldif dn:
changet&pe: modif& replace: olcSuffi
olcSuffi: dc=douglas,dc=#i6i,dc="r
-replace: olcRoot5N
olcRoot5N: cn=admin,dc=douglas,dc=#i6i,dc="r
-replace: olcAccess
olcAccess: to attr=user(ass#ord "& dn=$cn%admindc%dougladc%'ikidc%br$ write "&
anon&mous auth "& self write "& ( none
olcAccess: to attr=shado#Last4hange "& self write "& ( r e a d olcAccess: to dn@"ase=$$ "& ( r e a d
olcAccess: to ( "& dn=$cn%admindc%dougladc%'ikidc%br$ write "& ( r e a d
gora vamos inserir essas %on)igura+Ies no nosso servidor 3D$.
ldapmodif& -Y EXTERNAL -H ldapi:/// -# /config@ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=eternal,cn=auth
SASL SS!: 0
modif&ing entr& $olcDatabae%{1})dbcn%con#ig$
amos %&e%ar agora a %on)igura+*o do nosso servidor 3D$.
ldapsearch -*LLL -b cn=config -D cn=admin,cn=config -+ olcDatabae={1}hd"
Enter L5A( (ass#ord: senha dn: olcDatabae={1}hd",cn=config o"3ect4lass: olc5ata"ase4onfig o"3ect4lass: olc$d"4onfig
olc5ata"ase: {1}hd"
olc5"5irector&: /2ar/li"/ldap olcLast'od: TR?E
olcRoot(/: {SS$A}NBp)8gl(p>/T!"8..7&ir;dC*+Rt
olc5"4hec6point: ,12 30 olc5"4onfig: {0}set0cachesiCe 0 20.1,2 0 olc5"4onfig: {1}set0l60ma0o"3ects 1,00 olc5"4onfig: {2}set0l60ma0loc6s 1,00 olc5"4onfig: {3}set0l60ma0loc6ers 1,00 olc5"1nde: o"3ect4lass eD
olcSuffi: dc=douglas,dc=#i6i,dc="r
olcRoot5N: cn=admin,dc=douglas,dc=#i6i,dc="r
olcAccess: {0}to attr=user(ass#ord "& dn=$cn%admindc%dougladc%'ikidc%br$ write "& anon&mous auth "& self write "& ( none
olcAccess: {1}to attr=shado#Last4hange "& self write "& ( r e a d olcAccess: {2}to dn@"ase=$$ "& ( r e a d
olcAccess: {3}to ( "& dn=$cn%admindc%dougladc%'ikidc%br$ write "& ( r e a d
gora vamos %riar o dominio do nosso 3D$
vi m /raiC@ldif
dn: dc=douglas,dc=#i6i,dc="r o"3ect4lass: top
o"3ectclass: organiCation o: 5ouglas
dc: douglas
description: L5A( Ser2er
gora vamos importar o nosso domínio para a base 3D$
ldapadd -* -c -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# /raiC@ldif Enter L5A( (ass#ord:
adding ne# entr& $dc%dougladc%'ikidc%br$
Aaso J4 ten&a sido %on)igurado pela instala+*o o domínio vamos obter a seguinte saída
ldapadd -* -c -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# /raiC@ldifEnter L5A( (ass#ord:
adding ne# entr& $dc%dougladc%'ikidc%br$
ldap0add: Alread& eists !"
gora vamos %riar os %ontKiner que v*o )i%ar armazenados os nossos usu4rios5
grupos e m4quinas
vi m /ous@ldif
dn: ou=?suarios,dc=douglas,dc=#i6i,dc="r ou: ?suarios
o"3ect4lass: organiCational?nit o"3ect4lass: top
dn: ou=*rupos,dc=douglas,dc=#i6i,dc="r ou: *rupos
o"3ect4lass: organiCational?nit o"3ect4lass: top
dn: ou='aDuinas,dc=douglas,dc=#i6i,dc="r ou: 'aDuinas
o"3ect4lass: organiCational?nit o"3ect4lass: top
gora temos que importar o nosso arquivo para o 3D$
ldapadd -* -c -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# /ous@ldif Enter L5A( (ass#ord:
adding ne# entr& $ou%uariodc%dougladc%'ikidc%br$
adding ne# entr& $ou%ruodc%dougladc%'ikidc%br$
adding ne# entr& $ou%4a5uinadc%dougladc%'ikidc%br$
9xemplo de erro de importa+*o da ous por %asa de espa+o no aquivo
ldapadd -* -c -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# /ous@ldif Enter L5A( (ass#ord:
ldapadd: attri"ute5escription $dn$: !possi"le missing ne#line after line 10, entr&
$ou%uariodc%dougladc%'ikidc%br$"
ldapadd: attri"ute5escription $dn$: !possi"le missing ne#line after line 11, entr&
$ou%uariodc%dougladc%'ikidc%br$"
ldap0add: T&pe or 2alue eists !20"
additional info: o"3ect4lass: 2alue #0 p r o vi d e d m o r e t h an o n c e
gora vamos %riar o admin do 3D$
amos gerar a sen&a
slappass#d - senha
{SS$A}g1e/5Ds/m7#1*!uNe*"#gF*G/t>a2<dF
gora que J4 temos a sen&a vamos %riar o arquivo para importar para o 3D$
vi m /admin@ldifdn: cn=admin, dc=douglas,dc=#i6i,dc="r o"3ect4lass: top
o"3ect4lass: simpleSecurit&B"3ect o"3ectclass: organiCationalRole cn: admin
description: L5A( administrator
user(ass#ord: {SS$A}g1e/5Ds/m7#1*!uNe*"#gF*G/t>a2<dF
gora vamos importar o arquivo do admin
ldapadd -* -c -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# /admin@ldif Enter L5A( (ass#ord:
adding ne# entr& $cn%admin dc%dougladc%'ikidc%br$
Aaso o nosso admin J4 ten&o sido %riado na instala+*o do ldap vamos ter o seguinte retorno no
%omando a%ima
ldapadd -* -c -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# /admin@ldif Enter L5A( (ass#ord:
adding ne# entr& $cn%admin dc%dougladc%'ikidc%br$
ldap0add: Alread& eists !"
6": %&o mel&or ex%luir os usu4rios lo%ais deixar somente o usu4rio root para o sistema lo%al5
%aso a%&e ne%ess4rio utilize a seguinte padroniza+*o somente nome do usu4rio para e)etuar login
no servidor lo%al e nome.sobrenome para logar na base do 3D$.
ou disponibilizar um s%ript para e)etuar a migra+*o dos usu4rios lo%ais para um arquivo ldi) que
pode ser importado para a base 3D$
vi m epldif@sh #!/in/ a s h
#A qui n e s t e s c r ipt e s t a m o s f a e n d o m i " ra $ o d o s u s u % ri o s q u e t e m ui d c o m & di "it o s
7889:=;dc%dougladc%'ikidc%br; LD98=;uuarioldi#<ldi#;
for line in H!g r e p $*=>1-?>0-?>0-?>0-?=$ /etc/p a s s w d @ s e d -e $/ /A/$" d o 9D1=H!e c h o line @ c u t -d: -f" NC4=H!e c h o line @ c u t -d: -#, @ c u t -d, -f" if > E $NC4$ ? t h e n NC4=9D1 e l s e
NC4=H!e c h o NC4 @ s e d -e $/A/ /$" fi 7N=H!e c h o NC4 @ a w k ;{rint 2};" if > E $7N$ ? t h e n 7N=NC4 fi 9FN=H!e c h o NC4 @ a w k ;{rint 1};" 9D2=H!e c h o line @ c u t -d: -f<" 9D=H!e c h o line @ c u t -d: -f%" GC77=H!g r e p 9D1 /etc/shado# @ c u t -d: -f8" 7HLL=H!e c h o line @ c u t -d: -f9" H4=H!e c h o line @ c u t -d: -f." :G9I=H!p a s s w d -7 9D1 @ a w k ;{rint .};" 8LC=H!g r e p 9D1 /etc/shado# @ c u t -d: -f;" if > E $8LC$ ? t h e n 8LC=$0$ fi +CIN=H!p a s s w d -7 9D1 @ a w k ;{rint };" 49N=H!p a s s w d -7 9D1 @ a w k ;{rint J};" 4C:=H!p a s s w d -7 9D1 @ a w k ;{rint ,};" LC7K=H!g r e p 9D1 /etc/shado# @ c u t -d: -f<" e c h o $dn= uid%9D1ou%uuario7889:$ LD98 e c h o $obMectla= inetrgGeron$ LD98 e c h o $obMectla= oi*Cccount$ LD98 e c h o $obMectla= )ado'Cccount$ LD98 e c h o $uid= 9D1$ LD98 e c h o $n= 7N$ LD98 e c h o $giOenName= 9FN$ LD98 e c h o $cn= NC4$ LD98 e c h o $dilayName= NC4$ LD98 e c h o $uidNumber= 9D2$ LD98 e c h o $gidNumber= 9D$ LD98 e c h o $uerGa'ord= {cryt}GC77$ LD98 e c h o $geco= NC4$ LD98 e c h o $login7)ell= 7HLL$ LD98 e c h o $)omeDirectory= H4$ LD98 e c h o $)ado'*ire= :G9I$ LD98 e c h o $)ado'8lag= 8LC$ LD98 e c h o $)ado'+arning= +CIN$ LD98 e c h o $)ado'4in= 49N$ LD98 e c h o $)ado'4a*= 4C:$ LD98 e c h o $)ado'Lat)ange= LC7K$ LD98 e c h o LD98 d o n e
b a s h epldif@sh
gora H s importar a base que )oi gerada para o 3D$
ldapadd -* -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# usuariosldif@ldif
Enter L5A( (ass#ord: senhaadmin
adding ne# entr& $uid%douglaou%uuariodc%dougladc%'ikidc%br$
qui no meu %aso s tin&a um usu4rio %om um uid %om dígitos ent*o )oi s o que a min&a base
importou.
gora vamos para o s%ript que )az a migra+*o de grupos lo%ais para um arquivo ldi)
vi m gruposldif@sh#!/in/ a s h
#A qui n e s t e s c ri pt e s t a m o s f a e n d o a m i " ra $ o d o s " r u p o s q u e t e m "i d c o m & di "it o s
7889:=;dc%dougladc%'ikidc%br; LD98=;gruoldi#<ldi#;
for line in H!g r e p $*=>1-?>0-?>0-?>0-?=$ /etc/group"
d o N=H!e c h o line @ c u t -d: -f" 9D=H!e c h o line @ c u t -d: -f<" e c h o $dn= cn%Nou%gruo7889:$ LD98 e c h o $obMectla= oi*rou$ LD98 e c h o $cn= N$ LD98 e c h o $gidNumber= 9D$ LD98 e c h o LD98 d o n e
gora vamos gerar o nosso ldi) %om os grupos
b a s h gruposldif@shgora vamos importar os grupos para o ldap
ldapadd -* -D cn=admin,dc=douglas,dc=#i6i,dc="r -+ -# gruposldif@ldif
Enter L5A( (ass#ord: senhaadmin
adding ne# entr& $cn%douglaou%gruodc%dougladc%'ikidc%br$
gora vamos a instala+*o e %on)igura+*o do 3dap %%ount @anager
a p t i t u d e i n s t a l l ldap-account-manager php-ldap php-gd php-fpdf li"3s-3Duer& li"3s-3Duer&-ui d e b c o n f php-mcr&pt ldap-account-manager-lamdaemon -y
amos %on)igurar ele agora o arquivo H /usr/s&are/ldapLa%%ountLmanager/%on)ig/lam.%on)
vi m /usr/share/ldap-account-manager/config/lam@conf>@@@?
admins: cn=admin,dc=douglas,dc=#i6i,dc="r
>@@@?
treesuffi: dc=douglas,dc=#i6i,dc="r
>@@@?
>@@@?
t&pes: suffi0user: ou=?suarios,dc=douglas,dc=#i6i,dc="r
>@@@?
t&pes: suffi0group: ou=*rupos,dc=douglas,dc=#i6i,dc="r
>@@@?
t&pes: suffi0host: ou='aDuinas,dc=douglas,dc=#i6i,dc="r
>@@@?
t&pes: suffi0sm"5omain: dc=douglas,dc=#i6i,dc="r
gora vamos a%essar a nosso %onsole web &ttp://10.0.0.2#/lam
gora in)orme a sen&a do admin do ldap
qui vamos %riar um grupo e um usu4rio para testes.
amos %riar o grupo
1. "ele%ione nessa tela prin%ipal na parte superior o item Mrupos
2. gora sele%ione novo grupo
N. !n)orme 7ome do grupo: tiLadmin
. 7umero M!D: n*o in)orme nada que vai ser gerado automati%amente
O. gora in)orme uma des%ri+*o: Mrupo de dmins
#. gora sele%ione salvar
,. gora sele%ione voltar a lista de grupos
P. Aomo pode ser notado o nosso grupo esta ali.
Q. $ara e)etuar alguma altera+*o nele basta sele%ionar o í%one %om um blo%o de notas e um
l4pis.
gora vamos %riar o usu4rio
1. "ele%ione Csu4rios
2. gora novo usu4rio.
N. !n)orme o que a%&ar ne%ess4rio aqui5 quanto mais in)orma+Ies mel&or.
. "ele%ione Cnix
O. !n)orme o nome de usuario dele ex: douglas.santos
#. 7ome %omun: Douglas Buintiliano dos "antos
,. 7Rmero uid: deixe vazio para ele gerar um automati%amente
P. "ele%ione de)inir sen&a
Q. Digite uma sen&a e %on)irme ela.
10."ele%ione ok
11."ele%ione "ombra que H quem %ontrola as sen&as
12."ele%ione di%ionar uma extens*o de Aonta "&adow
1N.9m aviso de sen&a sele%ione 10 SDias antes da sen&a expirar em que o usu4rio ser4
alertado sobre a expira+*o de sua sen&a. "e atribuir valor5 este deve ser maior que 0.
$ode ser vazio.
1.9m expira+*o de sen&a sele%ione 1 S7Rmero de dias que um usu4rio poder4 ini%iar uma
sess*o mesmo que sua sen&a ten&a expirado. L1(sempre. $ode ser vazio.
1O.9m idade mínima para sen&a sele%ione , S7Rmero de dias que um usu4rio ir4 esperar atH
que este esteJa &abilitado para tro%ar sua sen&a novamente. "e &abilitado5 deve ser um
valor maior que 0. $ode ser vazio.
1#.9m idade m4xima da sen&a in)orme 1O S7Rmero de dias que um usu4rio ir4 esperar atH
que este esteJa &abilitado para tro%ar sua sen&a novamente. "e &abilitado5 deve ser um
valor maior que 0. $ode ser vazio.
1,.gora sele%ione salvar
1P.$ronto temos o nosso usuario
1Q."ele%ione oltar T lista de usu4rios
gora vamos ver %omo %on)iguramos o %liente5 %omo o nosso servidor 3D$ vai ser
%liente 3D$ tambHm vamos %on)igurar ele.
a p t i t u d e i n s t a l l li"nss-ldap li"pam-ldap ldap-utils -y
!n)orme a respostas %omo abaixo
1.
ldap://12,.0.0.1/
2. d%(douglas5d%(wiki5d%(br
N. N
. %n(admin5d%(douglas5d%(wiki5d%(br
O. sen&aadmin
#. ok
,. Ues
P. no
Q. %n(admin5d%(douglas5d%(wiki5d%(br
10.sen&admin
gora vamos )azer um ba%kup do arquivo que %ontrola aonde vai ser %onsultado os usu4rios5
grupos e sen&as no sistema
c p -I#a /etc/nss#itch@conf{,@"6p}
amos editar ele agora /et%/nsswit%&.%on)
vi m /etc/nss#itch@confpass#d: compat ldap
group: compat ldap
shado#: compat ldap
hosts: files dns net#or6s: files protocols: d" files ser2ices: d" files ethers: d" files rpc: d" files netgroup: ldap
amos a%ertar o arquivo que %ontrola o %liente 3D$ /et%/ldap/ldap.%on)
vi m /etc/ldap/ldap@conf?R1 ldap://G@G@G@8./
)ASE dc=douglas,dc=#i6i,dc="r
amos e)etuar um ba%kup da pam
c p -I#a /etc/pam@d{,@"6p}
amos e)etuar alguns aJustes na pam primeiro no arquivo que %ontrola as sen&as deixe o arquivo
/et%/pam.d/%ommonLpassword %omo abaixo
vi m /etc/pam@d/common-pass#ord
pass#ord >ucce=2 de#ault=ignore? pam0uni@so o"scure sha8
pass#ord >ucce=1 uerPunkno'n=ignore de#ault=die? pam0ldap@so
tr&0first0pass
pass#ord reDuisite pam0den&@so
pass#ord reDuired pam0permit@so
gora vamos e)etuar o aJuste no arquivo que %ontrola as sessIes %aso o diretrio &ome n*o
exista o sistema vai %ria deixe o arquivo /et%/pam.d/%ommonLsession %omo abaixo
vi m /etc/pam@d/common-session
session >de#ault=1? pam0permit@so
session reDuisite pam0den&@so
session reDuired pam0permit@so
session reDuired pam0uni@so
session optional pam0ldap@so
session optional pam0m6homedir@so kel=/etc/s6el umak=G..
gora vamos e)etuar o aJuste do arquivo de autenti%a+*o do ss& H o arquivo /et%/pam.d/ss&d o
arquivo vai ter que )i%ar pare%ido %om o abaixo.
vi m /etc/pam@d/sshd
auth reDuired pam0en2@so # '1(
auth reDuired pam0en2@so enO#ile=/etc/default/locale
Qinclude common-auth
account reDuired pam0nologin@so
#a di ci o n ar a s lin ha s a a ix o p a r a li mit ar m o s o a c e s s o a o s s h d e s s a m a q u in a s o m e n t e a o s u s u a ri o s d o " ru p o ti)ad min
account sufficient pam0succeed0if@so user ingroup root
account reDuisite pam0succeed0if@so user ingroup ti-admin
Qinclude common-account
Qinclude common-session
session optional pam0motd@so # '1(
session optional pam0mail@so standard noen2 # '1(
session reDuired pam0limits@so
Qinclude common-pass#ord
amos tambHm limitar o a%esso ao %onsole do servidor limitando tambHm que somente o root e o
grupo tiLadmin ten&a a%esso vamos editar o arquivo /et%/pam.d/login o arquivo vai ter que )i%ar
pare%ido %om o abaixo.
vi m /etc/pam@d/login
auth optional pam0faildela&@so delay=3000000
auth >ucce=o6 ne'Paut)tokPre5d=o6 ignore=ignore uerPunkno'n="ad de#ault=die?
pam0securett&@so
auth reDuisite pam0nologin@so
#a di ci o n a r e s s a s * n o v a s lin h a s a a i x o
account sufficient pam0succeed0if@so user ingroup root
account reDuisite pam0succeed0if@so user ingroup ti-admin
session >ucce=o6 ignore=ignore modulePunkno'n=ignore de#ault="ad? pam0selinu@so close
session reDuired pam0en2@so readenO=1
session reDuired pam0en2@so readenO=1 enO#ile=/etc/default/locale
Qinclude common-auth
auth optional pam0group@so
session reDuired pam0limits@so
session optional pam0lastlog@so
session optional pam0motd@so
session optional pam0mail@so standard
Qinclude common-account
Qinclude common-session
Qinclude common-pass#ord
session >ucce=o6 ignore=ignore modulePunkno'n=ignore de#ault="ad? pam0selinu@so open
telinit
gora aps ini%iar o servidor novamente logue %om o usu4rio root e vamos tro%ar para o usu4rio
douglas.santos
s u - douglas@santos
4riando o diretJrio ;/)ome/dougla<anto;@
douglas@santosQdebian88:H
gora vamos %on)igurar um %liente Debian "queeze amos a instala+*o de alguns pa%otes
ne%ess4rios
a p t i t u d e i n s t a l l li"nss-ldap li"pam-ldap ldap-utils -y
!n)orme a respostas %omo abaixo
1.
ldap://10.0.0.2#/
2. d%(douglas5d%(wiki5d%(br
N. N
. %n(admin5d%(douglas5d%(wiki5d%(br
O. sen&aadmin
#. ok
,. Ues
P. no
Q. %n(admin5d%(douglas5d%(wiki5d%(br
10.sen&admin
gora vamos )azer um ba%kup do arquivo que %ontrola aonde vai ser %onsultado os usu4rios5
grupos e sen&as no sistema
c p -I#a /etc/nss#itch@conf{,@"6p}
amos editar ele agora /et%/nsswit%&.%on)
vi m /etc/nss#itch@confpass#d: compat ldap
group: compat ldap
shado#: compat ldap
hosts: files dns net#or6s: files protocols: d" files ser2ices: d" files ethers: d" files rpc: d" files netgroup: ldap
amos a%ertar o arquivo que %ontrola o %liente 3D$ /et%/ldap/ldap.%on)
vi m /etc/ldap/ldap@conf?R1 ldap://G@G@G@8./
)ASE dc=douglas,dc=#i6i,dc="r
amos e)etuar um ba%kup da pam
amos e)etuar alguns aJustes na pam primeiro no arquivo que %ontrola as sen&as deixe o arquivo
/et%/pam.d/%ommonLpassword %omo abaixo
vi m /etc/pam@d/common-pass#ord
pass#ord >ucce=2 de#ault=ignore? pam0uni@so o"scure sha8
pass#ord >ucce=1 uerPunkno'n=ignore de#ault=die? pam0ldap@so
tr&0first0pass
pass#ord reDuisite pam0den&@so
pass#ord reDuired pam0permit@so
gora e)etuar o aJuste no arquivo que %ontrola as sessIes %aso o diretrio &ome n*o exista o
sistema vai %ria deixe o arquivo /et%/pam.d/%ommonLsession %omo abaixo
vi m /etc/pam@d/common-session
session >de#ault=1? pam0permit@so
session reDuisite pam0den&@so
session reDuired pam0permit@so
session reDuired pam0uni@so
session optional pam0ldap@so
session optional pam0m6homedir@so kel=/etc/s6el umak=G..
gora vamos e)etuar o aJuste do arquivo de autenti%a+*o do ss& /et%/pam.d/ss&d o arquivo vai
ter que )i%ar pare%ido %om o abaixo
vi m /etc/pam@d/sshd
auth reDuired pam0en2@so # '1(
auth reDuired pam0en2@so enO#ile=/etc/default/locale
Qinclude common-auth
account reDuired pam0nologin@so
#a di ci o n a r a li nh a a a ix o p a r a li mit ar m o s o a c e s s o a o s s h d e s s a m a q u i na s o m e n t e a o s u s u a ri o s d o " r u p o ti) a d m i n
account sufficient pam0succeed0if@so user ingroup root
account reDuisite pam0succeed0if@so user ingroup ti-admin
Qinclude common-account
Qinclude common-session
session optional pam0motd@so # '1(
session optional pam0mail@so standard noen2 # '1(
session reDuired pam0limits@so
Qinclude common-pass#ord
amos tambHm limitar o a%esso ao %onsole do %liente para os grupos tiLadmin e douglasLusuarios
que tem que ser %riado e inserido os usu4rios n*o administrativos para poder logar na maquina5
siga os mesmos passos para %riar o grupo tiLadmin e o usu4rio5 para %riar o grupo douglasL
usuarios e vamos permitir o login do root.
vi m /etc/pam@d/login
auth optional pam0faildela&@so delay=3000000
auth >ucce=o6 ne'Paut)tokPre5d=o6 ignore=ignore uerPunkno'n="ad de#ault=die?
pam0securett&@so
auth reDuisite pam0nologin@so
#a di ci o n a r e s s a s li nh a s n o a r q u i v o
account sufficient pam0succeed0if@so user ingroup root
account sufficient pam0succeed0if@so user ingroup ti-admin
account reDuisite pam0succeed0if@so user ingroup douglas-usuarios
session >ucce=o6 ignore=ignore modulePunkno'n=ignore de#ault="ad? pam0selinu@so close
session reDuired pam0en2@so readenO=1 enO#ile=/etc/default/locale
Qinclude common-auth
auth optional pam0group@so
session reDuired pam0limits@so
session optional pam0lastlog@so
session optional pam0motd@so
session optional pam0mail@so standard
Qinclude common-account
Qinclude common-session
Qinclude common-pass#ord
session >ucce=o6 ignore=ignore modulePunkno'n=ignore de#ault="ad? pam0selinu@so open
gora vamos reini%iar o %liente e testar
telinit
gora logue novamente no %liente %om o usu4rio root e vamos mudar para o usu4rio
douglas.santos
s u - douglas@santos
4riando o diretJrio ;/)ome/dougla<anto;@
Aomo podemos notar est4 )un%ionando tudo ok
amos )azer um a%esso via ss& no %liente utilizando o usu4rio douglas.santos que temos somente
no 3D$
H s s h G@G@G@.< -l douglas@santos douglas@santosQG@G@G@.<; a'ord=
Linu* 02-debian 2<<32-,- R1 74G 4on Sun 13 0J=13=0 K 2011 i K)e rogram included 'it) t)e Debian N/Linu* ytem are #ree o#t'areT t)e e*act ditribution term #or eac) rogram are decribed in t)e
indiOidual #ile in /ur/)are/doc/(/coyrig)t<
Debian N/Linu* come 'it) CB7LKLY N +CIICNKY to t)e e*tent ermitted by alicable la'<
>1=2=3? dougla<antoQ02-debian >U? 'd /)ome/dougla<anto
>1=30=J? dougla<antoQ02-debian >U?
gora um exemplo de log de a%esso de um usu4rio logando lo%almente na maquina5 porHm este
usu4rio perten%e ao grupo douglasLusuarios
t a i l -# /2ar/log/auth@log
!e" 2 1J:30:3 debian login>11?: pam0uni!login:auth": authentication failureK
logname=LB*1N uid=0 euid=0 tty=/de2/tt& ruer= r)ot= uer=3ose@sil2a
!e" 2 1J:30:3 debian login>11?: pam0succeed0if!login:account": reDuirement $uer ingrou root$ not met "& user $Moe<ilOa$
!e" 2 1J:30:3 debian login>11?: pam0succeed0if!login:account": reDuirement $uer ingrou ti-admin$ not met "& user $Moe<ilOa$
ingrou dougla-uuario$ #as met "& user $Moe<ilOa$
!e" 2 1J:30:3 debian login>11?: pam0uni!login:session": session opened fo r user 3ose@sil2a "& LB*1N!uid=0"
gora vamos %on)igurar um %liente Aentos #
amos instalar os pa%otes ne%ess4rios
y u m i n s t a ll oenlda-clients nss-pam-ldapd -y
gora vamos aJustar os arquivos do sistema
amos a%ertar o arquivo que %ontrola o %liente 3D$ /et%/openldap/ldap.%on)
vi m /etc/oenlda/ldap@conf?R1 ldap://G@G@G@8./
)ASE dc=douglas,dc=#i6i,dc="r
gora vamos a%ertar o arquivo /et%/nsl%d.%on)
vi m /etc/nslcd@conf#+ n si r a n o fi n al d o a r q u i v o s s l n o
uri ldap://G@G@G@8./
"ase dc=douglas,dc=#i6i,dc="r
gora vamos a %on)igura+*o do /et%/pamVldap.%on)
vi m /etc/pam0ldap@conf#, o m e n t e a lin ha s 1 - d e i x e c o m o a a ix o #ho st 1*-.0.0.1
# a li nh a * 0 d e i x e c o m o a a i x o
"ase dc=douglas,dc=#i6i,dc="r
>@@@?
#A " o r a a c r e s c e n t e n o fi n al d o a r q u i v o
uri ldap://G@G@G@8./
ssl no
gora vamos %on)igurar o /et%/pam.d/sUstemLaut& o seu arquivo vai ter que )i%ar pare%ido %om o
abaixo.
vi m /etc/pam@d/s&stem-auth #PA)1.0
# h i s f il e i s a u t o ) " e n e r a t e d .
# 2 s e r c h a n " e s 3 ill e d e s t r o y e d t h e n e x t ti m e a u t h c o n fi " i s ru n.
auth reDuired pam0en2@so
auth sufficient pam0fprintd@so
auth sufficient pam0uni@so nullo6 tr&0first0pass
auth reDuisite pam0succeed0if@so uid = ,00 Duiet
#insira a linha a aix o
auth sufficient pam0ldap@so use0first0pass
auth reDuired pam0den&@so
account reDuired pam0uni@so
account sufficient pam0localuser@so
account sufficient pam0succeed0if@so uid V ,00 Duiet
#insira a linha a aix o
account reDuired pam0permit@so
pass#ord reDuisite pam0crac6li"@so tr&0first0pass retry=3 tye=
pass#ord sufficient pam0uni@so sha8 shado# nullo6 tr&0first0pass
use0authto6 #insira a linha a aix o
pass#ord sufficient pam0ldap@so use0authto6
pass#ord reDuired pam0den&@so
session optional pam06e&init@so re2o6e
session reDuired pam0limits@so
session >ucce=1 de#ault=ignore? pam0succeed0if@so ser2ice in crond Duiet
use0uid
session reDuired pam0uni@so
session optional pam0ldap@so
#insira a linha a aix o
session optional pam0m6homedir@so kel=/etc/s6el umak=G..
amos a%ertar o arquivo /et%/nsswit%&.%on)
vi m /etc/nss#itch@confpass#d:files ldap # lin e 4 4 5 d e i x e c o m o n o e x e m p l o shado#:files ldap # lin h a 4& 5 d e i x e c o m o n o e x e m p l o group:files ldap # lin h a 46 5 d e i x e c o m o n o e x e m p l o netgroup:ldap # lin h a 6- 5 d e i x e c o m o n o e x e m p l o
automount: files ldap #lin h a 71 5 d e i x e c o m o n o e x e m p l o
gora pre%isamos alterar o ultimo arquivo /et%/sUs%on)ig/aut&%on)ig
s e d -i $/7LDCG%no/7LDCG%ye/$ /etc/s&sconfig/authconfiggora vamos deixar o nsl%d na ini%ializa+*o
ch6config nslcd on
telinit
gora H s logar no sistema utilizando um usu4rio que esteJa %adastrado no 3D$
gora vamos %on)igurar o a%esso ao %liente via ss& vamos editar o arquivo /et%/pam.d/ss&d
vi m /etc/pam@d/sshd#PA)1.0
#a di ci o n e e s s a li nh a a a ix o
auth sufficient pam0ldap@so
auth reDuired pam0sepermit@so
auth include pass#ord-auth
account reDuired pam0nologin@so
#a di ci o n e e s s a lin h a a ai x o n o t e q u e s o m e n t e o s u s u a ri o s d o " r u p o ti)a d m i n v a o c o n s e " u ir te r a c e s s o vi a s s h
account sufficient pam0succeed0if@so user ingroup root
account reDuisite pam0succeed0if@so user ingroup ti-admin
account include pass#ord-auth
pass#ord include pass#ord-auth
# p a m 8 s e li n u x. s o c l o s e s h o u l d e t h e fir s t s e s s i o n r ul e
session reDuired pam0selinu@so close
session reDuired pam0loginuid@so
# p a m 8 s e li nu x. s o o p e n s h o u l d o n ly e f oll o 3 e d y s e s s i o n s t o e e x e c u t e d in th e u s e r c o n t e x t
session reDuired pam0selinu@so open en20params
session reDuired pam0m6homedir@so kel=/etc/s6el umak=GG8.
session optional pam06e&init@so force re2o6e
session include pass#ord-auth
amos tambHm limitar o a%esso ao %onsole do %liente para os grupos tiLadmin e douglasLusuarios
que tem que ser %riado e inserido os usu4rios n*o administrativos para poder logar na maquina5
siga os mesmos passos para %riar o grupo tiLadmin e o usu4rio5 para %riar o grupo douglasL
usuarios e vamos permitir o login do root.
vi m /etc/pam@d/login #PA)1.0
auth >uerPunkno'n=ignore ucce=o6 ignore=ignore de#ault="ad? pam0securett&@so
auth sufficient pam0ldap@so
auth include s&stem-auth
account reDuired pam0nologin@so
#a di ci o n e e s s a lin h a a ai x o n o t e q u e s o m e n t e o s u s u a ri o s d o " r u p o ti)a d m i n v a o c o n s e " u ir te r a c e s s o vi a s s h
account sufficient pam0succeed0if@so user ingroup root
account sufficient pam0succeed0if@so user ingroup ti-admin
account reDuisite pam0succeed0if@so user ingroup douglas-usuarios
account include s&stem-auth
pass#ord include s&stem-auth
# p a m 8 s e li n u x. s o c l o s e s h o u l d e t h e fir s t s e s s i o n r ul e
session reDuired pam0selinu@so close
session reDuired pam0loginuid@so
session optional pam0console@so
# p a m 8 s e li nu x. s o o p e n s h o u l d o n ly e f oll o 3 e d y s e s s i o n s t o e e x e c u t e d in th e u s e r c o n t e x t
session reDuired pam0selinu@so open
session reDuired pam0namespace@so
session reDuired pam0m6homedir@so kel=/etc/s6el umak=GG8.
session optional pam06e&init@so force re2o6e
session include s&stem-auth
-eion optional pam0c60connector@so
gora vamos )azer um teste de %onex*o via ss& %om um usu4rio do grupo tiLadmin
s s h G@G@G@<G -l douglas@santossantosQG@G@G@<G; a'ord=
Lat login= +ed Cug 10 1.=31=33 2011 #rom dougla<dougla<'iki<br
Integrando o Samba ao LDAP
gora vamos para a %on)igura+*o do "amba %omo $DA utilizando os usu4rios do 3D$
amos instalar os pa%otes ne%ess4rios
a p t i t u d e -y i n s t a l l sam"a sm"client sam"a-doc cifs-utils sm"fs
7as perguntas es%ol&a as padrIes pois vamos mudar tudo.
gora vamos %opiar o s%&ema do samba para o 3D$
c p /usr/share/doc/sam"a-doc/eamples/L5A(/sam"a@schema@gC /etc/ldap/schema/
amos des%ompa%tar ele
gora vamos %riar o arquivo %om as re)eren%ias de s%&emas para o samba
vi m /root/schema0con2ert@conf
include /etc/ldap/schema/core@schema
include /etc/ldap/schema/collecti2e@schema
include /etc/ldap/schema/cor"a@schema include /etc/ldap/schema/cosine@schema include /etc/ldap/schema/duaconf@schema include /etc/ldap/schema/d&ngroup@schema
include /etc/ldap/schema/inetorgperson@schema
include /etc/ldap/schema/3a2a@schema include /etc/ldap/schema/misc@schema include /etc/ldap/schema/nis@schema include /etc/ldap/schema/oenlda@schema include /etc/ldap/schema/ppolic&@schema include /etc/ldap/schema/sam"a@schema
gora vamos %riar o diretorio para a %onvers*o dos nossos s%&emas
c d /rootmkdir - @/tmp/ldif0output
gora vamos %onverter o s%&ema
slapcat -# schema0con2ert@conf -8 @/tmp/ldif0output -n0 -
$cn%{12}ambacn%c)emacn%con#ig$ @/tmp/cn=sam"a@ldif
gora vamos a%ertar o nosso s%&ema antes de importar ele
vi m @/tmp/cn=sam"a@ldif # a s linha s 1945 re m o va o :1*; <
dn: cn=sam"a,cn=schema,cn=config o"3ect4lass: olcSchema4onfig cn: sam"a # A " o r a r e m o v e a s li nh a s 1 =7 at > o fi nal d o a r q ui v o v $ o s e r lin h a s s e m e l h a n t e s a s a a i x o. structuralB"3ect4lass: olcSchema4onfig entr&??15: "dFa9aF8-<c"F-G8f-Fdf-G.G"%ed.fF creatorsName: cn=config createTimestamp: 8GGGF8;<> entr&4SN: 8GGGF8;<@;FG>#000000#000#000000 modifiersName: cn=config modif&Timestamp: 8GGGF8;<>
gora vamos importar o s%&ema para o ldap
ldapadd -Y EXTERNAL -H ldapi:/// -# @/tmp/cn=sam"a@ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=eternal,cn=auth
SASL SS!: 0
adding ne# entr& $cn%ambacn%c)emacn%con#ig$
vi m /root/sam"a0indees@ldif dn: olcDatabae={1}hd",cn=config changet&pe: modif& add: olc5"1nde olc5"1nde: uidNum"er eD olc5"1nde: gidNum"er eD olc5"1nde: loginShell eD olc5"1nde: uid eD,pres,su"
olc5"1nde: mem"er?id eD,pres,su" olc5"1nde: uniDue'em"er eD,pres olc5"1nde: sam"aS15 eD
olc5"1nde: sam"a(rimar&*roupS15 eD olc5"1nde: sam"a*roupT&pe eD
olc5"1nde: sam"aS15List eD olc5"1nde: sam"a5omainName eD olc5"1nde: default su"
gora vamos importar os nosso indexes
ldapmodif& -Y EXTERNAL -H ldapi:/// -# /root/sam"a0indees@ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=eternal,cn=auth
SASL SS!: 0
modif&ing entr& $olcDatabae%{1})dbcn%con#ig$
gora vamos reini%iar o nosso ldap
/etc/init@d/slapd restart
Stopping enLDCG: slapd@
Starting enLDCG: slapd@
gora vamos instalar o smbldapLtools que H a )erramenta de apoio para trabal&ar "amba W 3D$
a p t i t u d e -y i n s t a l l sm"ldap-toolsgora vamos )azer um ba%kup do arquivo de %on)igura+*o do samba
m v /etc/sam"a/sm"@conf /etc/sam"a/sm"@conf@"6pgora vamos %on)igurar o nosso samba
vi m /etc/sam"a/sm"@conf# ? l o a l p a r a m e t e r s
>glo"al?
#or6group = 5B?*LAS net"ios name = 5B?*LAS e n a b l e pri2ileges = y e s #interfa c e s @ 1*.17=.6.11
username map = /etc/sam"a/sm"users
ser2er string = Sam"a Ser2er A2
securit& = user
encr&pt pass#ords = es # m i n p a s s 3 d l e n " t h @ 4
uni pass#ord s y n c = y e s ldap p a s s w d s y n c = y e s
p a s s w d chat = $)anging (WnNe' a'ord($ Ann $(Ietye ne' a'ord($ Ann$ log leOel % 0
ylog % 0
log #ile % /Oar/log/amba/log<A ma* log iXe % 100000
time erOer % Ye
ocket otion % KGPNDLCY 7PIFB8%12 7P7NDB8%12 mangling met)od % )a)2
Do c)aret % G32 ni* c)aret % K8- logon crit % logon<bat logon driOe % =
logon )ome % WWALWA
logon at) % WWALWro#ileWA domain logon % Ye
domain mater % Ye o leOel % 100
re#erred mater % Ye 'in uort % ye
adb backend % ldaam=lda=//12.<0<0<1/
lda admin dn % cn%admindc%dougladc%'ikidc%br lda u##i* % dc%dougladc%'ikidc%br
lda grou u##i* % ou%ruo lda uer u##i* % ou%uario lda mac)ine u##i* % ou%4a5uina Rlda idma u##i* % ou%9dma
add uer crit % /ur/bin/mblda-ueradd -m $Au$ Rlda delete dn % Ye
delete uer crit % /ur/bin/mblda-uerdel $Au$
add mac)ine crit % /ur/bin/mblda-ueradd -t 0 -' $Au$ add grou crit % /ur/bin/mblda-grouadd - $Ag$
delete grou crit % /ur/bin/mblda-groudel $Ag$
add uer to grou crit % /ur/bin/mblda-groumod -m $Au$ $Ag$ delete uer #rom grou crit % /ur/bin/mblda-groumod -* $ Au$ $Ag$ et rimary grou crit % /ur/bin/mblda-uermod -g ;Ag; ;Au;
admin uer % domainadm lda l % no
R rinter con#iguration
Rrinter admin % Q$(rint Bperators$ load rinter % Ye
create mak % 0J0 directory mak % 0.,0 R#orce create mode % 0J0 R#orce directory mode % 0.,0 nt acl uort % ye
rinting % cu
rintca name % cu deadtime % 10
guet account % nobody ma to guet % Bad er
dont decend % /roc/deO/etc/lib/lot#ound/initrd )o' add rinter 'iXard % ye
T to maintain caital letter in )ortcut in any o# t)e ro#ile #older= reerOe cae % ye
)ort reerOe cae % ye cae enitiOe % no
>)ome?
at) % /)ome/diretorio/A comment % Diretorio )ome bro'eable % no
'ritable % ye Oalid uer % A create mode % 0.00 directory mode % 0.00
ree*ec % /bin/ba) /etc/amba/Oalida<) A A ree*ec cloe % ye
>netlogon?
at) % /)ome/netlogon/ bro'eable % No
read only % ye >ro#ile? at) % /)ome/ro#ile read only % no create mak % 000 directory mak % 0.00 bro'eable % No guet ok % Ye ro#ile acl % ye cc olicy % diable
R ne*t line i a great 'ay to ecure t)e ro#ile R#orce uer % A
R ne*t line allo' adminitrator to acce all ro#ile ROalid uer % A $5omain Admins$
>rinter?
comment % Net'ork Grinter
Rrinter admin % Q$(rint Bperators$ guet ok % ye
rintable % ye
at) % /)ome/ool/ bro'eable % No
read only % Ye rintable % Ye
rint command % /ur/bin/lr -GA -r A l5 command % /ur/bin/l5 -GA
lrm command % /ur/bin/lrm -GA AM
R rint command % /ur/bin/lr -AQA4 -GA -r A R l5 command % /ur/bin/l5 -AQA4 -GA
R lrm command % /ur/bin/lrm -AQA4 -GA AM R laue command % /ur/bin/lc -AQA4 )old A AM R lreume command % /ur/bin/lc -AQA4 releae A AM R 5ueueaue command % /ur/bin/lc -AQA4 to A R 5ueuereume command % /ur/bin/lc -AQA4 tart A >rint?
at) % /)ome/rinter guet ok % No
bro'eable % Ye read only % Ye
Oalid uer % Q$(rint Bperators$ 'rite lit % Q$(rint Bperators$ create mak % 0J directory mak % 0.., >ublic? at) % /rO/ublica guet ok % ye bro'eable % Ye 'ritable % ye >K9? at) % /rO/Grograma comment % Grograma K9 bro'able % ye 'ritable % ye create mak % 0J directory mak % 0.., locking % no
Oalid uer % Qti-admin
Ariando o arquivo de mapeamento de usu4rios "amba/Eindows
vi m /etc/sam"a/sm"users#A B C 2+ E D F A P F F E D F 2 G 2 A B + E G # H or m a t o 5 2 n i x8 +D @ I i n d o 3 s 8 + D # F J F P L E 5 # ro ot @ A d ministrator # d o u " l a s @ K D o u " l a s G a n t o s K root = Administrator root = Administrador
mkdir - /home/{netlogon,profiles,diretorios}
c h m o d -I ... /home/netlogon
c h m o d -I 1... /home/{profiles,diretorios}
amos %riar o diretrio de programas para a ?! e vamos %riar a pasta pRbli%a.
mkdir /sr2/{(rogramas,pu"lica}c h m o d -I ... /sr2/(rogramas c h m o d -I 1... /sr2/pu"lica
gora vamos %olo%ar no %ompartil&amento programas o registro para importar no Ein, para ele
poder )azer parte do domínio samba.
vi m /sr2/(rogramas/#in9@reg
/indo#s Registr& Editor Mersion ,<00
K /in90Sam"a<5omain'em"er >$E0LB4AL0'A4$1NES&stem4urrent4ontrolSetSer2icesLan'an/or6station(a rameters? $DN7NameIeolutionIe5uired$=d#ord:GGGGGGGG $Domainomatibility4ode$=d#ord:GGGGGGG K Speedup settings >$E0LB4AL0'A4$1NESB!T/ARE(olicies'icrosoft/indo#sS&stem ? $7lo'LinkDetectnabled$=d#ord:GGGGGGGG $DeleteIoamingac)e$=d#ord:GGGGGGG $+ait8orNet'ork$=d#ord:GGGGGGGG $omatibleIG7ecurity$=d#ord:GGGGGGG K 4an dri2e &ou nuts
>$E0LB4AL0'A4$1NESB!T/ARE'icrosoft/indo#s4urrentMersion(oliciesS&s
tem?
$nableLC$=d#ord:GGGGGGGG
Aaso ten&a maquinas Eindows , na rede e pre%isar %olo%ar no domínio samba pre%isa importar
este registro primeiro.
gora vamos %riar o arquivo que valida se existe o diretrio &ome do usu4rio e %ria %aso n*o
exista.
vi m /etc/sam"a/2alida@sh #!/in/ a s h D9IKI9=$/)ome/diretorio/{1}$ if > E -d :D+BFEB+E; ?K t h e n mkdir - :D+BFEB+E; c h o w n -I :1;::*; :D+BFEB+E; c h m o d -I .,0 :D+BFEB+E; fi
gora vamos dar permiss*o para o nosso s%ript
c h m o d .,, /etc/sam"a/2alida@shgora vamos %riar o s%ript de logon
vi m /home/netlogon/logon@"atQe c h o off
echo@
e c h o AM1SB: No feche esta 3anelaEEE
echo@
NET ?SE (: /5ELETE
NET ?SE (: G@G@G@8.pu"lic /(ERS1STENT:ES
NET T1'E G@G@G@8. /SET /ES
echo@
gora vamos instalar um utilit4rio para )azer a %onvers*o do )ormato Cnix para D"
a p t i t u d e i n s t a l l tofrodos -ygora vamos %onverter o arquivo de registro e o arquivo de logon
todos /home/netlogon/logon@"attodos /sr2/(rogramas/#in9@reg
amos instalar o servidor de 7?$ para que os %lientes possam sin%ronizar o &or4rio %om o
servidor $DA
a p t i t u d e i n s t a l l ntp ntpdate -y
gora vamos a%ertar o /et%/ntp.%on)
vi m /etc/ntp@conf
>@@@?
ser2er 3@debian@pool@ntp@org i"urst #+ n s e r i r a s e " u i n t e li n h a
ser2er pdc@douglas@#i6i@"r i"urst
>@@@?
amos %riar um arquivo ne%ess4rio para o 7?$
t o u c h /2ar/li"/ntp/ntp@driftgora vamos reini%iar o servi+o e ver %omo que ele est4.
/etc/init@d/ntp restart Stopping NT( ser2er: ntpd@ Starting NT( ser2er: ntpd@
amos ver %omo ele esta trabal&ando
ntpD - 8.@G@G@
remote refid st t #hen poll reach dela& offset 3itter
==============================================================================
(sr2%@sp"rasil@c 8GG@.G@.@;< 2 u 1 J 1 10<J <., <
sr29@sp"rasil@c 8GG@.G@.@;< 2 u 1 J 1 10<J3J 101<J 1<2.1
roma@coe@ufr3@" %.@.%@%F@ 2 u 1. J 1 2<.31 10.<312 1<.
d@st@ntp@"r @BN)R@ 1 u 1. J 1 0<1, 121<30 <01
amos sin%ronizar o nosso relgio %om o ntp da usp
ntpdate -u ntp@usp@"r2 !e" 1,:2J:GG ntpdate>311?: ad3ust t i m e ser2er %<@G.@8@ offset 0<12,J
sec
gora vamos a%ertar o arquivo /et%/se%uritU/limits.%on) para n*o )i%ar mostrando erro no samba
vi m /etc/securit&/limits@conf# c ol o c a r n o fi n al d o a r q u i v o
root hard nofile 1310.2
root soft nofile ,,3
mioutente hard nofile 32.
mioutente soft nofile 13J
gora vamos reini%iar o samba
/etc/init@d/sam"a restart
Stopping Sam"a daemons: nm"d sm"d@ Starting Sam"a daemons: nm"d sm"d@
gora vamos armazenar o admin do 3D$ no samba
sm"pass#d -+Setting stored pass#ord for $cn%admindc%dougladc%'ikidc%br$ in secrets@td"
Ne# S') pass#ord: #s e n h a a d m in d o L D A P
Ret&pe ne# S') pass#ord: #s e n h a a d m in d o L D A P
gora vamos desempa%otar o arquivo que vamos )azer a %on)igura+*o )inal do samba W 3D$
gzip -d /usr/share/doc/sm"ldap-tools/configure@pl@gCgora vamos exe%utar o arquivo que vai %onter a base para popular o 3D$ %om os dados do
"amba
perl /usr/share/doc/sm"ldap-tools/configure@pl
R is no longer supported at /usr/share/doc/sm"ldap-tools/configure@pl line 31J@
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-sm"ldap-tools script configuration
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= )efore starting, chec6
@ if &our sam"a controller is up and running@
@ if the domain S15 is defined !&ou can get it #ith the ;net getlocalid;"
@ &ou can lea2e the configuration using the 4rtl-c 6e& com"ination @ empt& 2alue can "e s e t #ith the $<$ character
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-Loo6ing for configuration files@@@
Sam"a 4onfiguration !ile (ath >/etc/sam"a/sm"@conf?
The default director& in w h i c h the sm"ldap configuration files are stored is sho#n@
1f &ou need to change this, enter the full director& path, t h e n press enter to continue@
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Let; tart con#iguring t)e mblda-tool crit <<<
< 'orkgrou name= name o# t)e domain 7amba act a a GD 'orkgrou name >DLC7? RNKI
< netbio name= netbio name o# t)e amba controler netbio name >DLC7? RNKI
< logon driOe= local at) to ')ic) t)e )ome directory 'ill be connected !#or NK +orktation"< *= ;$:;
logon driOe >H=? RNKI
< logon )ome= )ome directory location !#or +in,/ or NK +orktation"< !ue A a uername" *=;5B?*LASA?;
logon )ome !re t)e $<$ c)aracter i# you don;t #ant home5irector&" >ALA?? @ #aqui v a i u m .
@ logon path: director& #here roaming profiles are stored@ E:;WWDLC7Wro#ileW
A;
logon path !press the $<$ character if &ou don;t 'ant roaming ro#ile" >WWDLC7Wro#ileWA? < Ra5ui Oai um <
< )ome directory re#i* !ue A a uername" >/)ome/A? RNKI < de#ault uer; home5irector& mode >.00? # F F B
@ default user netlogon script !use A? a s username" >logon@"at? # F F B default pass#ord 2alidation t i m e !t i m e in da&s" >J,? # F F B
@ ldap suffi >dc=douglas,dc=#i6i,dc="r? # F F B @ ldap group suffi >ou=*rupos? # F F B
@ ldap user suffi >ou=?suarios? # F F B @ ldap machine suffi >ou='aDuinas? # F F B @ 1dmap suffi >ou=1dmap? # F F B
@ sam"a?ni1d(ooldn: o"3ect #here &ou #ant to store the net uidNum"er and gidNum"er a2aila"le for ne# u s e r s and g r o u p s
sam"a?ni1d(ooldn o"3ect !relati2e to :suffix;" >ambaDomainName=5B?*LAS?
# F F B
@ ldap master ser2er: 1( adress or 5NS name of the master !#rita"le" ldap ser2er
ldap master ser2er >8.@G@G@? # F F B @ ldap master port >3? # F F B
@ ldap master bind dn >cn=admin,dc=douglas,dc=#i6i,dc="r? # F F B @ ldap master bind pass#ord >? #s e n h a d o a d m in d o L D A P
@ ldap sla2e ser2er: 1( adress or 5NS name of the sla2e ldap ser2er: can also "e the master one
ldap sla2e ser2er >8.@G@G@? # F F B @ ldap sla2e port >3? # F F B
@ ldap sla2e bind dn >cn=admin,dc=douglas,dc=#i6i,dc="r? # F F B @ ldap sla2e bind pass#ord >? #s e n h a d o a d m in d o L D A P
@ ldap tls support !1/0" >0? # F F B
@ S15 for domain 5B?*LAS: S15 of the domain !can "e o"tained #ith ;net getlocalid
DLC7;"
S15 for domain 5B?*LAS >S-1-,-21-13JJ221.-120JJ30J-3J02000? # F F B @ uni pass#ord encr&ption: encr&ption used for uni pass#ords
uni pass#ord encr&ption !4R(T, '5, S'5, SS$A, S$A" >SS$A? '5 #D6 @ default user gidNum"er >,13? # F F B
@ default login shell >/"in/b a s h? # F F B
@ default s6eleton director& >/etc/s6el? # F F B
@ default domain name to append to mail adress >? # F F B
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
?se of uninitialiCed 2alue R in concatenation !@" or string at
/usr/share/doc/sm"ldap-tools/configure@pl line 31J, VST51N line 33@ "ac6up old configuration files:
/etc/sm"ldap-tools/sm"ldap@conf-/etc/sm"ldap-tools/sm"ldap@conf@old
/etc/sm"ldap-tools/sm"ldap0"ind@conf-/etc/sm"ldap-tools/sm"ldap0"ind@conf@old #riting ne# configuration file:
/etc/sm"ldap-tools/sm"ldap@conf done@
/etc/sm"ldap-tools/sm"ldap0"ind@conf done@
gora vamos popular o nosso 3D$ %om os dados do "amba
sm"ldap-populate(opulating L5A( director& for domain 5B?*LAS
!S-1-,-21-13JJ221.-120JJ30J-3J02000" !using builtin director& structure"
entr& dc=douglas,dc=#i6i,dc="r alread& eist@
entr& ou=?suarios,dc=douglas,dc=#i6i,dc="r alread& eist@ entr& ou=*rupos,dc=douglas,dc=#i6i,dc="r alread& eist@ entr& ou='aDuinas,dc=douglas,dc=#i6i,dc="r alread& eist@ adding ne# entr&: ou=1dmap,dc=douglas,dc=#i6i,dc="r
adding ne# entr&: uid=root,ou=?suarios,dc=douglas,dc=#i6i,dc="r adding ne# entr&: uid=no"od&,ou=?suarios,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=5omain Admins,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=5omain ?sers,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=5omain *uests,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=5omain 4omputers,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=Administrators,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=Account Bperators,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=(rint Bperators,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=)ac6up Bperators,ou=*rupos,dc=douglas,dc=#i6i,dc="r adding ne# entr&: cn=Replicators,ou=*rupos,dc=douglas,dc=#i6i,dc="r
entr& ambaDomainName=5B?*LAS,dc=douglas,dc=#i6i,dc="r alread& eist@ ?pdating it@@@
(lease pro2ide a pass#ord for the domain root: 4hanging ?N1X and sam"a pass#ords for root Ne# pass#ord: # s e n h a p a r a o r o o t d o L D A P
Ret&pe ne# pass#ord: #s e n h a p a r a o r o o t d o L D A P
gora vamos %riar o domain admin para o samba e 3D$5 vamos %riar o grupo e depois o usu4rio
sm"ldap-groupadd -a domainadm
sm"ldap-useradd -am -g domainadm domainadm
gora vamos setar a sen&a para o nosso domainadm
sm"ldap-pass#d domainadm4hanging ?N1X and sam"a pass#ords for domainadm Ne# pass#ord: # s e n h a
Ret&pe ne# pass#ord: # s e n h a
amos ver se o ldap J4 esta re%on&e%endo o nosso domainadm
s u - domainadmdomainadmQdc=Up wd
/home/domainadm
gora vamos adi%ionar o root ao grupos de administradores do domínio
sm"ldap-usermod --grou $Domain Cdmin$,$Domain er$ root
gora vamos setar uma sen&a para ele
sm"ldap-pass#d root4hanging ?N1X and sam"a pass#ords for root Ne# pass#ord:
Ret&pe ne# pass#ord:
Aomo pode ser notado tudo ok
gora vamos reini%iar o servi+o do samba e do 3D$
/etc/init@d/slapd restart && /etc/init@d/sam"a restart
Stopping enLDCG: slapd@
Starting enLDCG: slapd@
Stopping Sam"a daemons: nm"d sm"d@ Starting Sam"a daemons: nm"d sm"d@
gora vamos %riar um novo usu4rio para testar o samba
1.Arie um novo usu4rio em &ttp://10.0.0.2#/lam
2. Arie um usu4rio %omo no exemplo anterior porHm antes de gravar
N. 7a guia C7! in)orme o grupo prim4rio %omo tiLadmin
. gora vamos a%essar a guia samba N e sele%ione adi%ionar uma extens*o sambaN.
O. qui vamos in)ormar o nome para identi)i%a+*o pois o nome para login )oi de)inido na guia
Cnix
6.
gora in)orme em %amin&o padr*o do usu4rio XX10.0.0.2#XnomeVusuario
7.9m %amin&o do per)il in)orme XX10.0.0.2#Xpro)ilesXnomeVusuario
8.
gora em s%ript de login in)orme logon.bat
9.
$or Rltimo es%ol&a usu4rio espe%ial dmins do Domínio
10.7*o esque+a de de)inir a sen&a para o usu4rio.
gora vamos listar os %ompartil&amentos %om o novo usu4rio
sm"client -L //8.@G@G@ - douglas/maria@madalena
Enter douglas/maria@madalena; a'ord=
Domain%>DLC7? 7%>ni*? 7erOer%>7amba 3<,<? 7)arename Kye omment
--- ----
---9G 9G 9G 7erOice !7amba 7erOer 3<,<" K9 Dik Grograma K9
rint Dik
maria<madalena Dik Diretorio )ome Domain%>DLC7? 7%>ni*? 7erOer%>7amba 3<,<?
7erOer omment ---
---DLC7 7amba 7erOer 3<,< +orkgrou 4ater
---qui em LC H o nome do usu4rio utilizei dominio/nomeVusuario
gora vamos logar no %ompartil&amento publi%o para testar
sm"client //8.@G@G@/pu"lic - douglas/maria@madalena
Enter douglas/maria@madalena; a'ord=
Domain%>DLC7? 7%>ni*? 7erOer%>7amba 3<,<? mb= W mkdir noOo
mb= W l
< D 0 +ed 8eb 2 1,=,J=01 2012 << D 0 K)u 8eb 23 1=1,=J 2012 <:11-uni* DH 0 +ed 8eb 2 1J=0=, 2012 lot#ound D 0 K)u 8eb 23 1,=,.=21 2012 <9-uni* DH 0 +ed 8eb 2 1J=0=, 2012 noOo D 0 +ed 8eb 2 1,=,J=01 2012
J.100 block o# iXe 12< J332 block aOailable mb= W 5uit
$ronto %onseguimos %riar o nosso diretrio novo sem problemas.
gora vamos testar o %ompartil&amento que somente o grupo tiLadmin deve ter a%esso
sm"client //8.@G@G@/T1 - douglas/maria@madalenaEnter maria@madalena; a'ord=
Domain%>DLC7? 7%>ni*? 7erOer%>7amba 3<,<? mb= W l
< D 0 +ed 8eb 2 1,=3=,J 2012 << D 0 +ed 8eb 2 1,=10=3 2012 'in.<reg 3,3 +ed 8eb 2 1,=3=,J 2012
J12. block o# iXe 12< 20J3 block aOailable mb= W mkdir 4aria
mb= W l
< D 0 +ed 8eb 2 1=02=3. 2012 << D 0 +ed 8eb 2 1,=10=3 2012 'in.<reg 3,3 +ed 8eb 2 1,=3=,J 2012 4aria D 0 +ed 8eb 2 1=02=3. 2012
J12. block o# iXe 12< 20J3 block aOailable mb= W 5uit