Download Tutoriales GNU/Linux: hacking para principiantes

Document related concepts
no text concepts found
Transcript
TutorialesGNU/Linux:hackingparaprincipiantes
Tabladecontenido
1. TutorialesGNU/Linux
i. Licencia
ii. Garantía
iii. Agradecimientos
iv. Sobreelautor
v. Convencionesdeestelibro
2. Prefacio
3. Usandolalíneadecomandos
i. TutorialaprendiendoausarlalíneadecomandosenGNU/Linux
ii. TutorialeditarficherosydirectoriosconlalíneadecomandosenGNU/Linux
iii. TutorialusarfindparabuscararchivosodirectoriosenGNU/Linux
iv. TutorialcomprimirarchivosydirectoriosenGNU/Linux
v. TutorialcrearenlacesaficherosydirectoriosenGNU/Linux
vi. TutorialusargrepparabuscartextodentrodearchivosenGNU/Linux
vii. Tutorialpararmomentáneamenteunprocesooaplicación
viii. TutorialcerrandooreiniciandoGNU/Linux
ix. TutorialcomodescargarprogramasoarchivosdeinternetconWgetenGNU/Linux
4. InstalaraplicacionesenGNU/Linux
i. TutorialcomoinstalarprogramasenGNU/Linux
ii. TutorialcomoinstalarprogramasdesdeelcódigofuenteenGNU/Linux
iii. TutorialinstalaryconfigurarGitenGNU/Linux
iv. TutorialinstalarLXCenGNU/Linux
v. TutorialinstalarVagrantparausarambientesvirtualesenGNU/Linux
vi. TutorialinstalarservidorLAMPenGNU/Linux
vii. TutorialinstalarAtomemGNU/Linux
viii. TutorialinstalarBracketsenGNU/Linuxparadesarrolloweb
5. UsaraplicacionesenGNU/Linux
i. TutorialbásicoVim
ii. Tutorialconvertirpáginaswebapdf
iii. Tutorialinstalaryusaryoutube-dlparabajarmusica
iv. TutorialcrearimágenesQRdepáginaswebenGNU/Linuxconqrencode
v. TutorialusarPngquantenLinux
vi. CompresordeimágenesTrimage
vii. TutorialextraerpáginasdearchivospdfconPDFTKenLinux
viii. TutorialuniendoarchivospdfconPDFTKenLinux
ix. TutorialabrirmúltiplesconsolasenunasolaventanaconTmuxenGNU/Linux
x. TutorialcompartirsesionesSSHconTmuxenGNU/Linux
xi. TutorialabrirmúltiplesconsolasenunasolaventanaconByobuenGNU/Linux
6. AdministrarGNU/Linux
i. TutorialquéesrootycomousarloenGNU/Linux
ii. TutorialcomofuncionaelprocesodeinicioenGNU/Linux
iii. TutorialcomofuncionanlosnivelesdeejecuciónenGNU/Linux
iv. TutorialgestionarprocesosenunsistemaoperativoGNU/Linux
v. TutorialverprogramasinstaladosenGNU/Linux
vi. TutorialconfigurandounsistemaRAIDenGNU/Linux
vii. TutorialcrearoeliminarparticionesenGNU/Linuxconfdisk
viii. TutorialcrearoeliminarunaparticiónswapenGNU/Linux
ix. TutorialformatearparticionesenGNU/Linux
x. TutorialmontarydesmontarunpendriveusbenGNU/Linux
2
TutorialesGNU/Linux:hackingparaprincipiantes
xi. TutorialMontarparticionesNTFSenGNU/LinuxUbuntu
xii. TutorialmontarparticionesNFSenunaredGNU/Linux
xiii. TutorialconfigurarlaredenGNU/Linux
xiv. TutorialConfigurarImpresoraenunaredGNU/Linux
xv. TutorialconfigurarusuariosenGNU/Linux
xvi. TutorialconfigurargruposdeusuariosenGNU/Linux
xvii. TutorialgestionarpermisosyatributosdearchivosenGNU/Linux
xviii. TutorialgestionaratributosextendidosdearchivosenGNU/Linux
7. ResolverproblemasenGNU/Linux
i. TutorialbuscandoinformacióndelsistemaoperativoenGNU/Linux
ii. TutorialaprendiendoausarunprogramadechatparapedirayudaenLinux
iii. TutorialbuscarayudaconlalíneadecomandosenLinux
iv. TutorialeliminarkernelsantiguosenUbuntuoDebian
v. Tutorialresolver"GPGerror"usandoapt-getupdateenGNU/Linux
vi. TutorialresolverproblemadeconfiguracióndelidiomaenGNU/Linux
vii. TutorialcerrarprogramasbloqueadosenGNU/Linux
viii. TutorialintroducciónaloslogsdelsistemaGNU/Linux
ix. TutorialusarloslogsdelsistemaGNU/Linuxparadescubrirerrores
x. TutorialresolverproblemasconsistemasdearchivosenGNU/Linux
xi. Tutorialrecuperararchivoseinformacióndediscosduros,CD-ROMsyDVDsdañados
8. SeguridadenGNU/Linux
i. Tutorialrealizarcopiasderespaldo(backup)dearchivosenGNU/Linux
ii. Tutorialhacercopiasderespaldo(backup)dediscosrígidosenGNU/Linux
iii. Tutorialconfiguraruncontafuegos(firewall)enGNU/Linux
iv. Tutorialexaminarsinuestroordenadorestásiendoinvadidoatravésdeunrootkit
v. Tutorialdescubrirrootkits,backdoors,sniffersymalwareconRKHunterenGNU/Linux
vi. TutorialmonitorearreddeInternetconntopenGNU/Linux
vii. TutorialescaneodepuertosconnmapenGNU/Linux
viii. TutorialusartcpdumpparaanalizarpaquetesderedenGNU/Linux
9. ProgramarenGNU/Linux
i. Comocrearunscriptenlalíneadecomando(shellscript)
ii. Tutorialbásicocrontab
iii. ComandosdeiniciodelsistemaoperativoGNU/Linux
iv. VariablesdelsistemaGNU/Linux
v. TutorialAwkcomocomandoycomolenguajedeprogramación
10. Bibliografía
11. AnexoA:Recursos
3
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialesGNU/Linux.
Hackingparaprincipiantes
TutorialesGNU/Linux
4
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialesGNU/Linux
Hackingparaprincipiantes
MarceloHoracioFortino
Primeraedición
Barcelona,España
Setiembre2014
ISBN:978-84-606-7548-8
TutorialesGNU/Linux.HackingparaprincipiantesporMarceloHoracioFortino.
EstaobraestásujetaalalicenciaReconocimiento-CompartirIgual4.0InternacionaldeCreativeCommons.Paraveruna
copiadeestalicencia,visitehttp://creativecommons.org/licenses/by-sa/4.0/.
Puedehallarpermisosmásalládelosconcedidosconestalicenciaenhttps://fortinux.com
Todaslasmarcassonpropiedaddesusrespectivosdueños.Linux®esunamarcaregistradadeLinusTorvalds.Ubuntu®
esunamarcaregistradadeCanonicalLimited.Google®esunamarcaregistradadeGoogleInc.
Imagendelaportadabasadaen"Manworkingatcomputers"dedear_theophilus:
https://openclipart.org/detail/193012/Man%20working%20at%20computers
[email protected]
Licencia
5
TutorialesGNU/Linux:hackingparaprincipiantes
Garantía
Estelibrosedistribuyeconlaesperanzadequeseaútil,peroSINNINGUNAGARANTÍA,inclusosinlagarantía
MERCANTILimplícitaosingarantizarlaCONVENIENCIAPARAUNPROPÓSITOPARTICULAR.Elautornoasume
ningunaresponsabilidadsiellectorhaceunmalusodelmismo.
Garantía
6
TutorialesGNU/Linux:hackingparaprincipiantes
Agradecimientos
AAdriana.
Atod@slosquemeenseñaron,principalmentemisamigosymifamilia.
AtodalacomunidaddeSoftwareLibre.
Agradecimientos
7
TutorialesGNU/Linux:hackingparaprincipiantes
Sobreelautor
MarceloHoracioFortinoesunprofesionaldelastecnologíasdelainformaciónconmásde17añosdeexperienciaenla
industriayserviciosasociados.Trabajócomodiseñadoryprogramadorweb,administradordesistemas,formadorylíder
deproyectos.ActualmenteesconsultordeTI.
HacontribuídoenvariosproyectosdeSoftwareLibrecomoPHPCalendar,UbuntuManual,OpenOffice.OrgyThe
DocumentFoundation.
DictóconferenciasytutorialesenvariosCongresosyeventosdeTIenArgentina,Brasil,EspañayUruguay.
En1999,escribióellibro"Internet:Unaaproximaciónasusaplicacionesyusos"editadoenformatoelectrónico.
EscribeademásartículosperiodísticosparapublicacionesgráficasySitiosweb,yeseditordehttp://www.fortinux.com.
Esmiembroactivodelassiguientesasociacionesprofesionales:ICASA,FreeSoftwareFoundation,Hispalinux,yfue
presidenteyfundadordeLibrePlanetBarcelonaydeProfesionalesAsociadosdelaWeb(PAW).
E-mail:[email protected]
Twitter:@fortinux
Google+https://google.com/+marcelofortino
Linkedinhttp://es.linkedin.com/in/marcelofortino
Blog:http://www.fortinux.com
Githubhttps://github.com/fortinux
Slideshare.nethttp://www.slideshare.net/fortinux
PlanetaLinuxhttp://planetalinux.org/es/
Sibuscaunformador,conferencistaoconsultorTICconconocimientosdesoftwarelibreydefuenteabiertalopuede
contactarporemail,twitterolinkedin.
Sobreelautor
8
TutorialesGNU/Linux:hackingparaprincipiantes
Convencionesdeestelibro
Cuandoleasestelibro,verásquealgunaspalabrasestánrepresentadasconfuentesytiposdeletradiferentes.Por
ejemplo:
comando
LoscomandosenGNU/Linuxserepresentandeestamanera.Esteestiloindicaquepuedesescribirlapalabraofraseen
lalíneadecomandosypulsarlateclaintroparainvocarelcomando.
Ctrl+Shift+F3
Estaesunacombinacióndeteclasquetienesqueapretarsimultáneamente.Lasteclassiempreserepresentanencursiva.
-.-
Parapoderrealizarlostutorialessimpredeberástenerunterminalamano.Paraabrirloen:
Debian/Ubuntu:ApretarlasteclasCONTROL+ALT+T.
UbuntuUnity:ApretarlateclaSUPER(sueletenereliconodeWindows®diseñado)yelnúmero2.
Gnome:IralMenúAplicaciones/Accesorios/Terminal.
Xfce:IralMenúAplicaciones/Accesorios/Terminal.
Kde:ClicenKickOff/Aplicaciones/Sistema/Terminal.
Convencionesdeestelibro
9
TutorialesGNU/Linux:hackingparaprincipiantes
Prefacio
Bienvenid@saTutorialesGNU/Linux,hackingparaprincipiantes;unacoleccióndetutorialesqueresuelvendudasy
problemastécnicosbásicosrelacionadosconelsoftwareyelhardwareenunsistemaoperativoGNU/Linux.Unlibroideal
parausarcomoreferenciaalahoradeadministrartusistemaoperativoGNU/Linux.
Lamayoríadelasdefinicionesde'hacking'enel'jargonfile'delhackerEricS.Raaymond¹estánbasadasprincipalmente
"enlaaficiónalotécnicoyenelplacerderesolverproblemassobrepasandoloslímites".
Laideadeestelibroescapturaresaesenciamediantesimplesyprácticostutorialesparaquepuedascomenzarahackear
tuordenadorutilizandolalíneadecomandos.
Aquíencontrarásinstruccionesparalaadministracióndeusuarios,sistemasdearchivos,copiasdebackup,configuración
dehardware,instalacióndesoftware,monitorizaciónderedes,resolucióndeproblemas,seguridad,herramientasyuna
introducciónalaprogramacióndescripts.
LostutorialesestánbasadosenlasdistribucionesGNU/LinuxDebian7yUbuntu14.04porlocualparaotrasversionesy/o
sistemasoperativospuedesernecesariorealizaralgunoscambios.
¹Cómoconvertirseenhackerhttp://www.catb.org/~esr/faqs/hacker-howto.html
Prefacio
10
TutorialesGNU/Linux:hackingparaprincipiantes
Usandolalíneadecomandos
Lainterfazdeusuario,comunmentellamadalíneadecomandos(commandlineinterfase-CLIeninglés)esunmétodo
quenospermitedarinstruccionesalosprogramasutilizandoórdenesdetexto.
Conellapodemoscrearusuários,editarficheros,automatizartareasmediantearchivosbatchyadministrarnuestro
sistemaoperativoGNU/Linux.
TutorialaprendiendoausarlalíneadecomandosenGNU/Linux
TutorialeditarficherosydirectoriosconlalíneadecomandosenGNU/Linux
TutorialusarfindparabuscarficherosodirectoriosenGNU/Linux
TutorialcomprimirficherosydirectoriosenGNU/Linux
TutorialcrearenlacesaficherosydirectoriosenGNU/Linux
TutorialusargrepparabuscartextodentrodeficherosenGNU/Linux
Tutorialpararmomentáneamenteunprocesooaplicación
TutorialcerrandooreiniciandoGNU/Linux
TutorialcomodescargarprogramasoficherosdeinternetconWgeten
GNU/Linux
Palabrasclaves:interfazdeusuario,líneadecomandos,CLI,commandline,shell,terminal,editarficheros,comandofind,
comprimirficheros,gzip,tar,enlaces,links,Wget,descargarprogramas,GNU,Linux.
Enelprincipio...fuelalíneadecomandos.NealStephenson
Usandolalíneadecomandos
11
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialaprendiendoausarlalíneadecomandosen
GNU/Linux
Enestetutorialaprenderemosdesde0autilizarlalíneadecomandoenGNU/Linux
Palabrasclaves:líneadecomandos,commandline,shell,bash,date,pwd,cd,ls,less,cat.
Abrimosunterminalyescribimosnuestroprimercomando:
date
Parasaberenquedirectorioestamos:
pwd
Paracambiardedirectorioutilizamoselcomandocd.Porejemploescribiendoelnombredeldirectorio:
cd/usr
Paracambiaraldirectoriosuperiorleagregamosunespacioydospuntosseguidos:
cd..
Paracambiaraldirectorioprincipal(home):
cd
Paraverunlistadodelcontenidodeldirectorioactivo:
ls
LoscomandosenLinuxsuelenteneropciones(quepodemosagrupar,porej.-ld)yargumentos.Enestecaso,paraver
losdetallesdeldirectorio/usrutilizamoslasopciones-l(descripciónlarga)yd(directorio):
ls-ld/usr
Encambiosiqueremosverelcontenido:
ls-l/usr
Paraverloquehaydentrodeunarchivopodemosusarelcomandoless:
TutorialaprendiendoausarlalíneadecomandosenGNU/Linux
12
TutorialesGNU/Linux:hackingparaprincipiantes
lessarchivo.txt
Salimosapretandolaletraqdelteclado.
Otambiénelcomandocat:
catarchivo.txt
Uncompletolistadodecomandolopodeisencontraren:http://cb.vu/unixtoolbox.xhtml(idiomainglés)
TutorialaprendiendoausarlalíneadecomandosenGNU/Linux
13
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialeditarficherosydirectoriosconlalíneade
comandosenGNU/Linux
EnestetutorialvamosautilizarlalíneadecomandoenGNU/Linuxparatrabajarconficherosydirectorios,aprendiendoa
copiar,mover,borraryeditarlosmismos.
Palabrasclaves:líneadecomandos,commandline,mkdir,cp,mv,rm,cat.
Comandos:
mkdir–Creadirectorios
cp–Copiaarchivosydirectorios.
mv–Mueve/renombraarchivosydirectorios.
rm–Borraarchivosydirectorios.
Comenzamos:
Creamosundirectorioquellamaremos“pruebas”:
mkdirpruebas
Ahoranosmovemosaldirectoriocreado:
cdpruebas
Creamosunarchivollamadoarchivo-de-pruebas.txt(salimosconctrl+D):
cat>archivo-de-pruebas.txt
Creamosotrodirectoriollamadopruebas2:
mkdirpruebas2
Copiamoselcparchivo-de-pruebas.txtaldirectoriopruebas2:
cparchivo-de-pruebas.txtpruebas2
Cambiamosaldirectoriopruebas2ycomprobamossielarchivohasidocopiadocorrectamente:
cdpruebas2
ls
Volvemosaldirectorio“pruebas”yallícopiamoseldirectorio“pruebas2″como“pruebas3″(-rsirveparacopiarloquehay
dentrodeesedirectorio):
TutorialeditarficherosydirectoriosconlalíneadecomandosenGNU/Linux
14
TutorialesGNU/Linux:hackingparaprincipiantes
cd..
cp-rpruebas2pruebas3
Usamosmvparacambiarelnombrealarchivo-de-pruebas.txt:
mvarchivo-de-pruebas.txtarchivo-de-pruebas2.txt
Usamosmvparamoverelarchivo-de-pruebas2.txtaldirectoriopruebas2:
mvarchivo-de-pruebas2.txtpruebas2
Vamosaldirectorio“pruebas2″yusamoselcomandormparaborrar“archivo-de-pruebas2″(-isolicitaunaconfirmación
antesdehacerlo,conyaceptamos):
cdpruebas2
rm-iarchivo-de-pruebas2.txt
rm:borrararchivocomumvacio“archivo-de-pruebas2.txt”?
Siqueremosborrarundirectorioencambio,tenemosqueusarlaopción-r(confirmarsiemprecony):
rm-irpruebas3
rm-ir../pruebas3rm:entraraldirectorio“../pruebas3”?
rm:borrararchivocomumvacio“../pruebas3/archivo-de-pruebas.txt”?
rm:borrardirectorio“../pruebas3”?
Nota:laopción-inoesobligatoriaperoavecesesconvenienteutilizarla,especialmenteconelcomandorm
Nota2:LoscomandosenLinuxsuelenteneropciones(quepodemosagrupar:-lt)yargumentos.Comoejemplo,paraver
losdetallesdeldirectorio/pruebasutilizamoslasopciones-l(descripciónlarga)yt(time:ordenadoporúltimos
modificados):
ls-lt/pruebas
TutorialeditarficherosydirectoriosconlalíneadecomandosenGNU/Linux
15
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialusarfindparabuscararchivosodirectoriosen
GNU/Linux
EnestetutorialveremoscómopodemosbuscararchivosodirectoriosconelcomandofindenGNU/Linux
Palabrasclaves:líneadecomandos,commandline,find,buscararchivos,gnu,linux.
Parabuscareneldirectorioroot(/)archivos(-type)conmásde9megas(-size):
find/-typef-size+9M
Parabuscartodoslosarchivosconextensión.txt(-iname)abiertos(-atime)enlosúltimosdosdías:
find/-iname'*.txt'-atime-2
Parabuscartodoslosarchivosmodificadosocreados(-mtime)enlosúltimosdosdías:
find/-typef-mtime-2
Parabuscararchivosconpermisos(-perm)deescritura,lecturayejecución:
find/-typef-perm0777
Parabuscarunarchivodenombretexto.txteneldirectorioactivoyunnivelmásabajo(subdirectorio):
find-maxdepth2-nametexto.txt
Másejemplosen:http://blog.desdelinux.net/con-el-terminal-ejemplos-con-el-comando-find/
TutorialusarfindparabuscararchivosodirectoriosenGNU/Linux
16
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcomprimirarchivosydirectoriosenGNU/Linux
EnestetutorialveremoscomopodemoscomprimirarchivosydirectoriosenGNU/Linuxdesdelalíneadecomandos.
Palabrasclaves:líneadecomandos,commandline,comprimir,gzip,bzip2,xz,tar.
Paracomprimirunarchivoodirectoriousaremoselcomandotarjuntoconunaherramientadecompresióntipogzip(la
másantigua),bzip2(probablementelamásusada)yxz(lamásnuevaygeneralmentecommejorratiodecompresión).
Comenzamoscomprimiendocongzip:Paraellovamosaldirectoriodondeestánlosarchivosquequeremoscomprimircon
gzipyescribimos:
tarczfarchivo-comprimido.tar.gznombre-del-archivo1nombre-del-archivo2
Siqueremoscomprimirconbzip2:
tarcjfarchivo-comprimido.tar.bz2nombre-del-archivo1nombre-del-archivo2
Ysiqueremoscomprimirconxz:
tarcJfarchivo-comprimido.tar.xznombre-del-archivo1nombre-del-archivo2
Siqueremoscomprimirtodoundirectorio:
tarczfarchivo-comprimido.tar.gznombre-del-directorio
Paralistarelcontenidodeunarchivotar:
tartvfarchivo-comprimido.tar.gz
Paradescomprimirunarchivotar:
tar-xvfarchivo-comprimido.tar.gz
Siqueremosdescomprimirelarchivotarenotrodirectorio:
tar-xvfarchivo-comprimido.tar.gz-C/nombre-del-directorio/
Paracomprimirunarchivogzcongzip:
gzip-9nombre-del-archivo1
Paradescomprimirunarchivogzcongzip:
TutorialcomprimirarchivosydirectoriosenGNU/Linux
17
TutorialesGNU/Linux:hackingparaprincipiantes
gzip-darchivo-comprimido.gz
Unapáginadeayuda:http://linuxzone.es/metodos-de-compresion-y-descompresion-en-linux/
TutorialcomprimirarchivosydirectoriosenGNU/Linux
18
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialcrearenlacesaficherosydirectoriosen
GNU/Linux
EnestetutorialaprenderemosautilizarlalíneadecomandoenGNU/Linuxparacrearenlacessimbólicosaficherosy
directorios.
Palabrasclaves:líneadecomandos,commandline,ln,enlaces,links.
Elcomandoln-screaenlacessimbólicosaficherosydirectorios.
Comenzamoscreandoundirectorioquellamaremos“pruebas”:
mkdirpruebas
Ahoranosmovemosaldirectoriocreado:
cdpruebas
Creamosunarchivollamadoarchivo-de-pruebas.txt(salimosconctrl+D):
cat>archivo-de-pruebas.txt
Creamosotrodirectoriollamadopruebas2:
mkdirpruebas2
Creamosunenlacealdirectoriopruebas2:
ln-spruebas2pruebas2enlace
Locomprobamosviendoenlaúltimalíneaelenlaceanuestrodirectorio:
ls-l
total4
-rw-rw-r--1usuariousuario0Nov612:08archivo-de-pruebas.txt
drwxrwxr-x2usuariousuario4096Nov611:09pruebas2
lrwxrwxrwx1usuariousuario8Nov612:17pruebas2enlace->pruebas2
TutorialcrearenlacesaficherosydirectoriosenGNU/Linux
19
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialusargrepparabuscartextodentrodearchivos
enGNU/Linux
Grepesuncomandomuyútilquepermitebuscartexto(unaovariaspalabras)dentrodeunoomásarchivos.
Palabrasclaves:líneadecomandos,commandline,grep,buscartexto,gnu,linux.
Porejemplo,buscamoslapalabra"texto"dentrodetodoslosarchivosdetexto(.txt)quetengamoseneldirectorio"home":
grep"texto"/home/*.txt
Siqueremosbuscarenesedirectorioyenlosqueestándentrodeél:
grep-r"texto"/home/*.txt
Buscarenesedirectorio,enlosqueestándentrodeélyencualquiertipodearchivo:
grep-r"texto"/home/
Buscarlapalabra"texto"dentrodeunarchivoignorandodistinciónentremayúsculasyminúsculas:
grep-i"texto"nombre-del-archivo
Buscarcomentariosdentrodeunarchivo:
grep^#nombre-del-archivo
MásejemplosenlaWikipedia:https://es.wikipedia.org/wiki/Grep
DocumentaciónoficialGNU:http://www.gnu.org/software/grep/manual/grep.html(idiomainglés).
TutorialusargrepparabuscartextodentrodearchivosenGNU/Linux
20
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialpararmomentáneamenteunprocesoo
aplicación
EnestetutorialveremoscomopararenGNU/Linuxlaejecucióndeumprocesoycomoretornaralmismo
Palabrasclaves:líneadecomandos,commandline,jobs,fg,PID,bg,gnu,linux.
Parapararunprocesobastapresionarlasteclasctrl+z.Mientraseseprogramaestáparadoenlamemorianosotros
podemosusarotroscomandosoprogramas.Parapoderejecutarlonuevamenteusaremoselcomandojobsparasaberel
númeroPIDdelmismo:
jobs
Elcomandojobsmuestralosprocesosqueestánparadosorodandoensegundoplano.fgencambioseráelcomando
utilizadoparatraerloalprimerplanonuevamente,juntoconelnúmerodePID:
fg[número]
SifgesusadosinelnúmeroPIDtraeráelúltimoprogramainterrumpido.
bgporotraparte,lepermiteaunprogramaqueestárodandoenprimerplanooparadopasararodarensegundoplano.
Primerointerrumpimossuejecuciónconctrl+z,yluegousamoselcomandobgparainiciarlaejecuciónensegundo
plano.
bg[número]
Tutorialpararmomentáneamenteunprocesooaplicación
21
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcerrandooreiniciandoGNU/Linux
EnestetutorialveremoscómopodemoscerraroreiniciarelsistemaoperativoGNU/Linuxdesdelalíneadecomandos
Palabrasclaves:líneadecomandos,commandline,cerrar,reiniciar,gnu,linux,shutdown.
ParareiniciarGNU/Linuxabrimosunterminalyescribimos:
sudoshutdown-rnow
Nospedirálacontraseñayluegoiniciaráelprocesoparareiniciar.
Paracarrarelsistemaoperativoencambioes-h(halteninglés):
sudoshutdown-hnow
Siqueremoscerrarloaunahoraespecífica,porejemploalas10am:
sudoshutdown-h10:00
Siporalgúnmotivoelsistemasehabloqueado,podemoscerrarlodesdeeltecladomanteniendoapretadalateclaalt,y
apretandolassiguentesteclasenestasecuencia:PrintScreen+r+e+i+s+u+b
Másinformaciónen:http://es.wikipedia.org/wiki/REInicia_SUBnormal
TutorialcerrandooreiniciandoGNU/Linux
22
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialcomodescargarprogramasoarchivosde
internetconWgetenGNU/Linux
WgetesunaherramientadelíneadecomandosmuyútilalahoradedescargarprogramasoarchivosdeInternet.Vamos
avercómofuncionaconejemplos.
Palabrasclaves:Wget,descargarprogramas,líneadecomandos.
Paradescargarlaimagen.isodeUbuntu14.04abrimosunterminalyescribimos:
wgethttp://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Encambiosiqueremosguardarlaimagen.isoconotronombre:
wget-Oubuntu_amd64.isohttp://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Parareiniciarunadescargainterrumpida:
wget-cubuntu_amd64.isohttp://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Parapasarasegundoplanoladescargayseguirtrabajandoenesaterminal:
wget-bubuntu_amd64.isohttp://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Másinformaciónen:http://manpages.ubuntu.com/manpages/trusty/man1/wget.1.html(idiomainglés).
TutorialcomodescargarprogramasoarchivosdeinternetconWgetenGNU/Linux
23
TutorialesGNU/Linux:hackingparaprincipiantes
InstalandoaplicacionesenGNU/Linux
InstalaraplicacionesenGNU/Linuxsueleserbiensimple.Enestecapítuloveremosunaintroducciónalainstalaciónde
programas;yluegocomoinstalarherramientasdeprogramaciónyadministracióndesistemas.
TutorialcomoinstalarprogramasenGNU/Linux
TutorialcomoinstalarprogramasdesdeelcódigofuenteenGNU/Linux
TutorialinstalaryconfigurarGitenGNU/Linux
TutorialinstalarLXCenGNU/Linux
TutorialinstalarVagrantparausarambientesvirtualesenGNU/Linux
TutorialinstalarservidorLAMPenGNU/Linux
TutorialinstalarAtomemGNU/Linux
TutorialinstalarBracketsenGNU/Linuxparadesarrolloweb
Palabrasclaves:apt-get,ppa,.deb,repositorio,códigofuente,instalar.tar.gz,desinstalar,uninstall,make,install,git,cvs,
lxc,lxc-containers,vagrant,ambientesvirtuales,tasksel,meta-paquetes,LAMP,servidor,atom,build-essential,git,curl,
node,nodejs,Brackets,editordetextos,HTML,CSS,javascript,desarrolloweb.
InstalaraplicacionesenGNU/Linux
24
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcomoinstalarprogramasenGNU/Linux
EnestetutorialveremoscomopodemosinstalarprogramasenGNU/Linux
Palabrasclaves:instalar,desinstalar,install,uninstall,apt-get,ppa,.deb,repositorio,sources.list.
Lamayoríadelasveces,losprogramasquequeremosinstalarseencuentranenlosrepositoriosdeladistribución
GNU/Linuxqueestamosusando.Esimportante,siempreantesdeinstalarlos,actualizarlalistadeprogramasdelos
repositoriosabriendounterminalyescribiendo:
sudoapt-getupdate
Paraactualizarlosprogramasinstalados:
sudoapt-getupgrade
Parainstalarunprogramaescribimos:
sudoapt-getinstallnombre_del_programa
Paraejecutarlounavezinstalado,escribimosenlalíneadecomando:
nombre_del_programa
SielprogramanoestáenlosrepositoriosyesunPPA(personalpackagearchive),primerotenemosqueagregarlafuente
delarchivoanuestralistadeprogramas:
sudo-add-apt-repositoryppa:programador/nombre_del_programa_ppa
Luegoactualizamoslalistayloinstalamos:
sudoapt-getupdate
sudoapt-getinstallnombre_del_programa_ppa
Paraeditarlalistadeprogramasdirectamente:
sudovim/etc/apt/sources.list
Paradesinstalarunprograma:
sudoapt-getremovenombre_del_programa
TutorialcomoinstalarprogramasenGNU/Linux
25
TutorialesGNU/Linux:hackingparaprincipiantes
Pararepararunprograma:
sudodpkg-reconfigurenombre_del_programa
Parabuscarsiunprogramaestáenlalistadeprogramas:
apt-cachesearchnombre_del_programa
ParainstalarunprogramadeDebian(laextensióndelarchivoes.deb):
sudodpkg-inombre_del_programa.deb
Paraeliminarlo:
sudodpkg-rnombre_del_programa.deb
Másinformaciónen:http://www.ubuntu-guia.com/2014/04/software-y-actualizaciones-en-ubuntu.html#
TutorialcomoinstalarprogramasenGNU/Linux
26
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialcomoinstalarprogramasdesdeelcódigofuente
enGNU/Linux
Sibienlamayoríadelasvecesquequeremosinstalarunprogramaloencontramosenlosrepositoriosdeladistribución
GNU/Linuxqueestamosusando,sepuededarelcasodetenerqueinstalarloconelcódigofuentedelmismo.Eneste
tutorialveremoscómoinstalarycompilarprogramasenGNU/Linux
Palabrasclaves:códigofuente,instalar.tar.gz,make,install.
PrimerovamosainstalarlasherramientasdedesarrollodeGNU/Linuxabriendounterminalyescribiendo:
sudoapt-getinstallbuild-essentiallinux-headers-$(uname-r)
LuegodescargamosdeInternetelarchivoquequeremosinstalaryloextraemosescribiendo:
tarxvfarchivo_fuente.tar.gz
Ahoravamosaldirectorioquesehacreadoconlosarchivosdelprograma:
cd/directorio_archivo_fuente
Configuramoselprograma:
./configure
Loconstruimos:
make
Finalmenteloinstalamos:
sudomakeinstall
Importante:Sitenemosunerrorconlospermisosdearchivo,lopodemossolucionarcon:
sudochmod+xconfigure
Másinformaciónen:http://ubuntuguide.org/wiki/Ubuntu_Trusty_Packages_and_Repositories(idiomainglés)
TutorialcomoinstalarprogramasdesdeelcódigofuenteenGNU/Linux
27
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialinstalaryconfigurarGitenGNU/Linux
EnestetutorialveremoscómoinstalaryconfigurarGit,unsistemadecontroldeversionesdistribuido(CVS),creadopor
LinusTorvaldsparaeldesarrollodelkernelLinux.
Palabrasclaves:Git,CVS.
Primeroabrimosunterminalyactualizamoslalistadepaquetes:
sudoapt-getupdate
sudoapt-getupgrade
AhorainstalamosGit:
sudoapt-getinstallgit
Configuramosnuestronombredeusuario:
gitconfig--globaluser.name"usuario"
Configuramosnuestradireccióndee-mail:
gitconfig--globaluser.email"[email protected]"
CreamosunallaveSSH:
ssh-keygen-trsa-C"[email protected]"
CopiamoslaclaveSSHennuestracuentaenGithttps://github.com/settings/ssh:
cat~/.ssh/id_rsa.pub
Controlamossiestacorrecta:
[email protected]
RecibiremosunmensajediciendoqueautenticamosnuestracuentaperoqueGitnoproveeaccesoshell.
UnsencillotutorialparasabercomousarGitloencontrareisen:https://github.com/fortinux/ejemplos-git
Másinformaciónen:https://help.ubuntu.com/lts/serverguide/git.html(idiomainglés)
TutorialinstalaryconfigurarGitenGNU/Linux
28
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialinstalarLXCenGNU/Linux
ElobjetivodeLXC(LinuxContainers)escrearunambientelomáspróximoposibleaunainstalaciónestándarde
GNU/Linuxperosinprecisarunkernelseparado.
Palabrasclaves:lxc,lxc-containers.
Primeroinstalamoslxc:
sudoapt-getinstalllxc
Confirmamossielkernelsoportalxc-containers:
lxc-checkconfig
Creamoselprimercontainer:
sudolxc-create-ncontainer-test-tubuntu
Elusuáriopredeterminadoes"ubuntu"conlaclave"ubuntu"yparaserrootdentrodelcontainerusamossudo.
Elcontainerestáalojadoen/var/lib/lxc/ysusistemaraizestáen/var/lib/lxc//rootfs.
ParaverunalistadeLXCcontainersennuestrosistema:
sudolxc-ls--fancy
Parainiciaruncontainer:
lxc-start-ntest-container-d
Paraloguearseenelcontainer:
lxc-console-ntest-container
Unavezdentro,siqueremossalirdelcontainerescribimos:
sudopoweroff
Parapararelcontainerdesdefueradelmismo:
lxc-stop-ntest-container
TutorialinstalarLXCenGNU/Linux
29
TutorialesGNU/Linux:hackingparaprincipiantes
SiqueremosentrarporSSHalcontainerprimeroaveriguamossuIP:
sudolcx-info-ntest-container
yluegoentramoscon:
sshubuntu@<númerodelaIP>
Paraeliminarelcontainer:
lxc-destroy-ntest-container
Paraqueelcontainerseinicieautomáticamentepodemoshacerunenlacesimbólico:
ln-s/var/lib/lxc/test-container/config/etc/lxc/auto/test-container.conf
Másinformaciónen:https://linuxcontainers.org/(idiomainglés)
TutorialinstalarLXCenGNU/Linux
30
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialinstalarVagrantparausarambientesvirtualesen
GNU/Linux
EnestetutorialveremoscomoinstalaryusarVagrant,unprogramaquenospermiteconfiguraryusarambientesvirtuales.
Palabrasclaves:ambientevirtual,Vagrant,Virtualbox,máquinavirtual,virtualmachine.
ParapoderusarVagrantprimeramentetendremosqueinstalarVirtualboxoVMware.Enestecasoinstalaremoselprimero:
sudoapt-getupdate
sudoapt-getinstallvirtualboxdkms
AhorainstalamosVagrant:
sudoapt-get-yinstallvagrant
DescargamoslossistemasoperativosUbuntu12.04:
vagrantboxaddprecise32http://files.vagrantup.com/precise32.box
YUbuntu14.04:
vagrantboxaddubuntu/trusty64https://vagrantcloud.com/ubuntu/boxes/trusty64
LuegoqueVagrantestáinstaladoyyatenemosennuestroordenadorlascajas(boxes),vamosacrearnuestraprimera
máquinavirtualUbuntu14.04.Primerocreamosundirectorioparaellaynosmovemosallí:
mkdirvagrant-ubuntu
cdvagrant-ubuntu
Creamoselarchivodeconfiguracióndevagrant:
vagrantinit
Editamoslalíneaconfig.vm.box="base"porconfig.vm.box="ubuntu/trusty64"deesearchivo,denominadoVagrantfile
paraqueVagrantbusqueelboxdeUbuntu14.04quedescargamosanteriormente:
sudovimVagrantfile
Ahorainiciamoslamáquinavirtual:
vagrantup
TutorialinstalarVagrantparausarambientesvirtualesenGNU/Linux
31
TutorialesGNU/Linux:hackingparaprincipiantes
Ynosconectamosaellaporssh:
vagrantssh
Parasalir:
exit
Paraapagarla:
vagranthalt
Paraeliminarlamáquinavirtual:
vagrantdestroy
Másinformaciónen:https://www.vagrantup.com/(idiomainglés).UnlistadodeVagrantbooxes:
https://vagrantcloud.com/boxes/search
TutorialinstalarVagrantparausarambientesvirtualesenGNU/Linux
32
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialinstalarservidorLAMPenGNU/Linux
EnestetutorialveremoscomopodemosusarTaskselparainstalarApacheserver,MySQLePHPenGNU/LinuxUbuntuo
Debian
Palabrasclaves:tasksel,meta-paquetes,LAMP,servidor,server.
Taskselesunaherramientaqueinstalavariasaplicacionesjuntas,similaralosmeta-paquetes.
Abrimosunterminalyescribimos:
sudoapt-getinstalltasksel
Ejecutamostasksel:
sudotasksel
EnlaventanaseleccionamosLAMPserverutilizandolabarraespaciadorayaceptamos.Cuandocomienzeainstalar
MySQLpediráunaclave,inventamosunaylaintroducimos.
Unavezfinalizadalainstalación,abrimoselnavegadoryescribimoshttp://127.0.0.1óhttp://localhost.Apareceráel
mensaje"itworks"delservidorApache.
TutorialinstalarservidorLAMPenGNU/Linux
33
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialinstalarAtomemGNU/Linux
EnestetutorialveremoscómoinstalarAtomenGNU/Linux.
Palabrasclaves:atom,editordetexto,build-essential,git,curl,node,nodejs.
Atomeseleditordetexto"hackeable"deGitHub,totalmentebasadoentecnologíasweb.
Parapoderinstalarlocomenzamosconlasdependenciasbásicas:
sudoapt-getupdate
sudoapt-getupgrade
sudoapt-getinstallbuild-essentialgitlibgnome-keyring-devfakeroot
Tambiéninstalaremosnode.jsyaqueAtomdependedeesteentornodeprogramaciónenjavascript:
curl-sLhttps://deb.nodesource.com/setup|sudobashsudoapt-getinstall-ynodejs
ParasaberlaversióndeNode.js:
node-v
Node.jsinstalaránpmautomáticamente,paraconfigurarlo:
npmconfigsetpython/usr/bin/python2-g
ParainstalarAtomabrimosunterminalyclonamoselcódigodeGit:
gitclonehttps://github.com/atom/atom
CambiamosaldirectoriodeAtom:
cdatom
gitfetch-p
gitcheckout$(gitdescribe--tags`gitrev-list--tags--max-count=1`)
ConstruimosAtom:
script/build
AhorayapodemosejecutarAtom.Otraopciónescrearunarchivoejecutable.deb,lohacemosconelsiguientecomando:
script/gruntmkdeb
TutorialinstalarAtomemGNU/Linux
34
TutorialesGNU/Linux:hackingparaprincipiantes
Másinformaciónen:
http://nodejs.org/(idiomainglés)
https://atom.io/(idiomainglés)
TutorialinstalarAtomemGNU/Linux
35
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialinstalarBracketsenGNU/Linuxparadesarrollo
web
EnestetutorialveremoscómoinstalaryconfigurarBrackets,uneditordetextosdefuenteabierta(opensource)
desarrolladoporAdobeorientadoalaprogramaciónweb.ConélsepuedeeditarHTML,CSSyjavascript,entreotros
lenguajesutilizadosenlaweb.
Palabrasclaves:Brackets,editordetextos,HTML,CSS,javascript,desarrolloweb.
ParainstalarloprimerolodescargamosdelrepositoriodeAdobeenGit:
wgethttps://github.com/adobe/brackets/releases/download/release-0.44/Brackets.Release.0.44.64-bit.deb
Loinstalamoscon:
sudodpkg-iBrackets.Release.0.44.64-bit.deb
Parapoderabrirlo,enlaterminalescribimos:
brackets
Másinformaciónenhttps://github.com/adobe/brackets(idiomainglés)yenhttp://brackets.io/(idiomainglés)
TutorialinstalarBracketsenGNU/Linuxparadesarrolloweb
36
TutorialesGNU/Linux:hackingparaprincipiantes
UsandoaplicacionesenGNU/Linux
TutorialbásicoVim
Tutorialconvertirpáginaswebapdf
Tutorialinstalaryusaryoutube-dlparabajarmusica
TutorialcrearimágenesQRdepáginaswebenGNU/Linuxconqrencode
TutorialusarPngquantenGNU/Linux
CompresordeimágenesTrimage
TutorialextraerpáginasdearchivospdfconPDFTKenGNU/Linux
TutorialuniendoarchivospdfconPDFTKenGNU/Linux
TutorialabrirmúltiplesconsolasenunasolaventanaconTmuxenGNU/Linux
TutorialcompartirsesionesSSHconTmuxenGNU/Linux
TutorialabrirmúltiplesconsolasenunasolaventanaconByobuenGNU/Linux
Palabrasclaves:editarachivos,vim,cutycapt,convertirhtmlaimagen,htmlapdf,youtube-dl,bajarmúsica,convertirvideo
aaudio,videoamp3,imagenQR,qrencode,pngquant,trimage,comprimirimágenes,pdftk,editarpdf,tmux,múltiples
consolas,terminalmultiplexer,compartirsesiones,sshcontmux,byobu.
UsaraplicacionesenGNU/Linux
37
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialbásicoVim
EnestetutorialveremoscomopodemosusarelfamosoeditorVimenGNU/Linuxparaeditarunarchivo
Nota:Esteesuntutorialmuybásico.Enlasreferenciasencontrareisinteresantesenlacesparaprofundizarvuestros
conocimientos
Palabrasclaves:Vim,editararchivo,líneadecomandos,commandline.
Abrimosunterminalyescribimos:
vimmi_primer_archivo.txt
Seospresentaráunapantallatotalmenteenblanco.Parapoderescribirapretamoslateclai(inserteninglés)yescribimos
"EsteesmiprimerarchivoenVim"
Conlateclaintropasamosalasegundalíneayescribimos
"Estaeslasegundalínea"
Vimtiene2modosdetrabajo:Inserción(teclai)quesirveparaediciónyNormal(teclaescape)quesirveparanavegarpor
eltexto.
Entoncesparasalirapretamoslateclaescapeyparamovernosdentrodeldocumentousamoslasteclas:
k
hl
j
Estonospermitesubir,iralaizquierda,iraladerechaybajarrespectivamentedentrodeldocumento.
Finalmenteparasalirguardandoloscambiosescribimos:
:wq!
wesdeescribir(writeeninglés)qessalir(quiteninglés)yconesaordenledijimosaVimdeguardarloscambiosysalir.
Parasalirsinguardarloscambios:
:q!
Ahorasisabeisinglésossugieroquehagaisunexcelentetutorialinteractivoqueencontrareisen:
http://www.openvim.com/tutorial.html/(idiomainglés)
TutorialbásicoVim
38
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialconvertirpáginaswebapdf
CutyCaptesunautilidaddelíneadecomandoquecapturaunapáginawebylaconvierteaunaimagenodocumentocon
formatodearchivoSVG,PDF,PS,PNG,JPEG,TIFF,GIF,óBMP.
Palabrasclaves:cutycapt,convertirhtmlaimagen,htmlapdf.
EnGNU/LinuxUbuntulainstalamoscon:
sudoapt-getinstallcutycapt
Parausarla,desdeelterminalescribimos:
cutycapt--url=http://wwww.fortinux.com--out=nombre-archivo.png
Estonoscrearáelarchivonombre-archivo.pngconlaimagendetodalapáginaweb.
CutyCapt:http://cutycapt.sourceforge.net/(idiomainglés)
OtrasopcionesqueencontrareisenInternet:http://snapito.com(idiomainglés)http://convertwebpage.com/(idiomainglés)
Tutorialconvertirpáginaswebapdf
39
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialinstalaryusaryoutube-dlparabajarmusica
youtube-dlesunapequeñaaplicacióndelíneadecomandoquesirveparabajarvideosdeYouTube.comydealgunos
otrossitios.
Palabrasclaves:youtube-dl,convertirvideoaaudio,videoamp3.
Primeroinstalamosdependenciasparaconvertirvideoamp3:
sudoapt-getinstall-ylibav-tools
sudoapt-getinstallffmpeg
Instalamosyoutube-dl:
sudocurlhttps://yt-dl.org/downloads/2014.10.15/youtube-dl-o/usr/local/bin/youtube-dl
Damospermisosalnuevodirectorio:
sudochmoda+x/usr/local/bin/youtube-dl
Descargamosnuestraprimerarchivomp3:
youtube-dl-t--extract-audio--audio-formatmp3http://www.youtube.com/watch?v=8ptfyhBjXj8
Másinformaciónen:http://rg3.github.io/youtube-dl/(idiomainglés)
Tutorialinstalaryusaryoutube-dlparabajarmusica
40
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcrearimágenesQRdepáginasweben
GNU/Linuxconqrencode
QrencodeesunautilidadquepermitegenerarimagenesQRdeunapáginaweb
Palabrasclaves:qrencode,crearimagenQR.
Primeramentevamosainstalarlautilidadylosejemplosdeayuda:
aptitudeinstallqrencode
apt-getinstalllibdecodeqr-examples
ParacrearunaimagenQRescribimoslosiguiente:
qrencode-s6"http://www.fortinux.com/"-ofortinux-qr.png
endonde:-o=nombreimagen.png-s=tamañodelaimagen""=enlaceotextoconmensajequedeseemosescribir
Paraconocerotrosparámetrosausarpodemosconsultarlaayuda:
manqrencode
ParaleercódigoQRprimeronosubicamoseneldirectoriodondeseencuentraelarchivo,luegoabrimoslaconsolay
escribimoslasiguientelineadecodigo:
libdecodeqr-simpletestfortinux-qr.png
Másinformaciónen:http://manpages.ubuntu.com/manpages/trusty/man1/qrencode.1.html(idiomainglés)
TutorialcrearimágenesQRdepáginaswebenGNU/Linuxconqrencode
41
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialusarPngquantenLinux
Enestetutorialaprenderemosausarpngquantparareducireltamañodeimágenes.pngenLinux.Especialmenteútilpara
diseñadores/programadoresqueprecisanoptimizarimágenesparaunsitiowebojuegodePlayStation.
Palabrasclaves:pngquant,reducirtamañoimagen,diseñoweb,webdesign,sitioweb.
Loprimeroserádescargarelutilitariodesdehttp://www.pngquant.org/releases.html.Abrimosunterminal,vamosal
directoriodondeestáelarchivoyescribimosnuestroprimercomando:
sudodpkg-ipngquant_version_del_archivo.deb
Estecomandocrearáundirectorio“pornel-pngquant-version_del_archivo”.Vamosdentrodelmismoyescribimospara
instalarelutilitario:
sudomakeinstall
Unavezinstalado,parausarlohayqueiraldirectoriodondeestálaimagenyescribir:
pngquantnombre_de_la_imagen.png
Sidentrodeldirectoriohayvariasimágenespodemosutilizar:
pngquant*.png
Pngquantcrearálosarchivosoptimizadosconlaterminacióndelnombredeellos“-fs8.png”,dejandolosoriginales
intactos.
Paravermásopciones,podeisvisitar:http://www.pngquant.org(idiomainglés)ólapáginaweb:
http://www.github.com/pornel/pngquant(idiomainglés)
TutorialusarPngquantenLinux
42
TutorialesGNU/Linux:hackingparaprincipiantes
CompresordeimágenesTrimage
UnaherramientamultiplataformaparaoptimizararchivosPNGyJPG.
Inspiradaen“imageoptim”:http://imageoptim.pornel.net/,Trimageesunaherramientamultiplataformaqueoptimiza
archivosPNGyJPGutilizandoparaellolosutilitarios“Optipng”:http://optipng.sourceforge.net,“Advpng”:
http://advancemame.sourceforge.net/comp-readme.htmly“Jpegoptim”:
http://www.kokkonen.net/tjko/projects.html#jpegoptim,dependiendodeltipodearchivo(PNGoJPG).
Sepuedeutilizardesdelalíneadecomandosoconunasimpleinterfazgráficacreadaporelautor.
Palabrasclaves:trimage,compresordeimagen,diseñoweb.
ParainstalarlaenUbuntubastaabrirunterminalyejecutar:
sudoapt-getinstalltrimage
Lapáginadelautor:http://trimage.org/(idiomainglés)
CompresordeimágenesTrimage
43
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialextraerpáginasdearchivospdfconPDFTKen
Linux
PDFTK(PDFToolkit)esunaaplicaciónmuysimplequepermitemanipulararchivosconextensiónpdf.Paravertodaslas
posibilidadesdelprogramaospasoelsitioweboficial:http://www.pdflabs.com
Palabrasclaves:pdftk,editarpdf.
AbrimosunterminalyparainstalarPDFTKescribimosnuestroprimercomando:
sudoapt-getinstallpdftk
Unavezinstalado,vamosaldirectoriodondetenemoslosarchivospdfyescribimos:
pdftkA=nombre-de-archivo.pdfcatA52-57outputsalida.pdf
Con‘catA52-57′indicamosquequeremosextraerdesdelapágina52alapágina57inclusive,parasercolocadasenun
nuevoarchivollamadosalida.pdf.
Siporejemploqueremosextraerpáginasde2archivos:
pdftkA=archivo1.pdfB=archivo2.pdfcatA52-57B1outputsalida.pdf
Con‘catA52-57B1′indicamosquequeremosextraerdesdelapágina52alapágina57inclusivedelarchivo1.pdf,yla
página1delarchivo2.pdf,queseráncolocadasenelnuevoarchivosalida.pdf.
TutorialextraerpáginasdearchivospdfconPDFTKenLinux
44
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialuniendoarchivospdfconPDFTKenLinux
EnestetutorialveremoscomounirvariosarchivospdfenunosolousandoPDFTK(PDFToolkit).
Paravertodaslasposibilidadesdelprogramaospasoelsitioweboficial:http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
Palabrasclaves:pdftk,editarpdf.
AbrimosunterminalyparainstalarPDFTK,escribimosnuestroprimercomando:
sudoapt-getinstallpdftk
Unavezinstalado,vamosaldirectoriodondetenemoslosarchivospdfyescribimos:
pdftk1.pdf2.pdf3.pdfoutputsalida.pdf
Aquíindicamoscuálesarchivosseránunidosenunosolo(tambiénpodemosusarelcomandopdftk*.pdfoutput
salida.pdf).
TutorialuniendoarchivospdfconPDFTKenLinux
45
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialabrirmúltiplesconsolasenunasolaventanacon
TmuxenGNU/Linux
Enestetutorialveremoscomousarunmultiplexadordeconsolasparatrabajarconvariasaplicacionessimultáneamente
enunasolaconsolaGNU/Linux
Palabrasclaves:tmux,multiplexadordeconsolas,terminalmultiplexer.
TmuxTerminalMultiplexeresunprogramaquepermitetrabajarconvariosprogramasenunasolaventana,ocambiarlosa
otraventanasinpararlos.
ParainstalarTmux:
sudoapt-getinstalltmux
CuandoTmuxiniciacreaunanuevasesiónconunasolaventanaylamuestraenlapantalla.Laparteinferiordelamisma
sirveparainformaciónyparaingresarórdenes.
Abrimosunterminalyescribimos:
tmux
Enlaventanaquesenosabreyapodemoscomenzarausarelprogramausandolateclactrl+byluegolateclade
combinación.Paraabrirunaventana:
ctrl+bc
Parairalaventanaanterior:
ctrl+bp
Parairalasiguienteventana:
ctrl+bn
Listarlasventanasparapoderseleccionarunadeellas:
ctrl+bw
Renombraventana:
ctrl+b,
Paradividirlaventanaendospaneles:
TutorialabrirmúltiplesconsolasenunasolaventanaconTmuxenGNU/Linux
46
TutorialesGNU/Linux:hackingparaprincipiantes
ctrl+b%
Parairalsiguientepanel:
ctrl+b{
Parairalpanelanterior:
ctrl+b}
Paracerrarelpanel:
ctrl+bx
Paracerrarlaventana:
ctrl+b&
Paracrearunanuevasesiónllamadanueva-sesion:
tmuxnew-snueva-sesion
Másinformaciónen:http://manpages.ubuntu.com/manpages/trusty/man1/tmux.1.html(idiomainglés)
TutorialabrirmúltiplesconsolasenunasolaventanaconTmuxenGNU/Linux
47
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcompartirsesionesSSHconTmuxenGNU/Linux
Enestetutorialveremoscomo,porejemplo,sepuedencompartirsesionesSSHenunservidorGNU/Linux
Palabrasclaves:tmux,multiplexadordeconsolas,ssh,compartirsesión,GNU/Linux.
Supongamosparaelejemploquetenemosunordenadorllamado'uno'conusuario'uno',otrollamado'dos'conusuario
'dos',yelservidoralquenosqueremosconectarporSSHconIP10.0.0.11.
Desdeelordenador'uno',abrimosunterminalyiniciamosTmux:
tmux
AhoranosconectamosalservidorporSSH:
[email protected]
Nospediralaseña,laescribimosyyaestamosconectadosalservidor.Enlaterminaldelservidorcreamosunasesión
paracompartirllamada'compartiendo':
tmuxnew-session-scompartiendo
Enelordenador'dos'seguimoslospasosanterioresparaconectarnosalservidor,ycuandoyaestamoslogueadosenla
terminaldelservidorverificamoslassesionesdeTmuxabiertascon:
tmuxlist-sessions
nosaparecerálasesión'compartiendo'creadaporelusuario'uno'.paraconectarnosaellaescribimos:
tmuxattach-tcompartiendo
Ahoratendremosalosdosusuarioscompartiendolamismasesión.
Finalmenteparasalirdelasesiónusamoslacombinacióndeteclas:
ctrl+bd
TutorialcompartirsesionesSSHconTmuxenGNU/Linux
48
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialabrirmúltiplesconsolasenunasolaventanacon
ByobuenGNU/Linux
Enestetutorialveremoscomousarunmultiplexadordeconsolasparatrabajarconvariasaplicacionessimultáneamente
enunasolaconsolaGNU/Linux
Palabrasclaves:byobu,multiplexadordeconsolas,terminalmultiplexer.
ByobuTerminalMultiplexeresunprogramaquepermitetrabajarconvariosprogramasenunasolaventana,ocambiarlos
aotraventanasindetenerlos.
ParainstalarByobu:
sudoapt-getinstallbyobu
CuandoByobuiniciacreaunanuevasesiónconunasolaventanaylamuestraenlapantalla.Laparteinferiordelamisma
sirveparainformaciónyparaingresarórdenes.
Abrimosunterminalyescribimos:
byobu
Enlaventanaquesenosabreyapodemoscomenzarausarelprogramaabriendoporejemplolaayudausandolatecla
*shift+F1:
shift+F1
ParaabrirunanuevaventanaapretamoslateclaF2:
F2
Paracambiarentrelasventanasabiertastenemoscuatroopciones:
F3F4alt+FlechaIzquierdaalt+FlechaDerecha
Paradividirlaventanaendospaneleshorizontales:
shift+F2
Paradividirenpanelesverticales:
ctrl+F2
Paracambiarentresesiones:
TutorialabrirmúltiplesconsolasenunasolaventanaconByobuenGNU/Linux
49
TutorialesGNU/Linux:hackingparaprincipiantes
alt+FlechaArribaalt+FlechaAbajo
Paracambiarentrepaneles:
shift+F3shift+F4
shift+FlechaIzquierdashift+FlechaDerecha
shift+FlechaArribashift+FlechaAbajo
Paramoverelpanel:
Ctrl+F3Ctrl+F4
Paramoverlaventana:
Ctrl+Shift+F3Ctrl+Shift+F4
Paraaumentarodisminuireltamañodelospaneles:
shift+alt+FlechaIzquierda
shift+alt+FlechaDerecha
shift+alt+FlechaArriba
shift+alt+FlechaAbajo
Paraconfigurarlabarradeestadoenlaparteinferiordelaventana:
F9
Paracerrarelpanel:
ctrl+F6
Másinformaciónen:http://byobu.co/(idiomainglés)
TutorialabrirmúltiplesconsolasenunasolaventanaconByobuenGNU/Linux
50
TutorialesGNU/Linux:hackingparaprincipiantes
AdministrarGNU/Linux
TutorialquéesrootycomousarloenGNU/Linux
TutorialcomofuncionaelprocesodeinicioenGNU/Linux
TutorialcomofuncionanlosnivelesdeejecuciónenGNU/Linux
TutorialgestionarprocesosenunsistemaoperativoGNU/Linux
TutorialverprogramasinstaladosenGNU/Linux
TutorialconfigurandounsistemaRAIDenGNU/Linux
TutorialcrearoeliminarparticionesenGNU/Linuxconfdisk
TutorialcrearoeliminarunaparticiónswapenGNU/Linux
TutorialformatearparticionesenGNU/Linux
TutorialmontarydesmontarunpendriveusbenGNU/Linux
TutorialMontarparticionesNTFSenGNU/LinuxUbuntu
TutorialmontarparticionesNFSenunaredGNU/Linux
TutorialconfigurarlaredenGNU/Linux
TutorialConfigurarImpresoraenunaredGNU/Linux
TutorialconfigurarusuariosenGNU/Linux
TutorialconfigurargruposdeusuariosenGNU/Linux
TutorialgestionarpermisosyatributosdearchivosenGNU/Linux
TutorialgestionaratributosextendidosdearchivosenGNU/Linux
Palabrasclaves:root,sudo,su,administrador,sudoers,gksudo,BIOS,MBR,EFI,UEFI,sistemadeinicio,bootloader,
nivelesdeejecución,runlevels,init,proceso,tarea,thread,ps,fg,bg,RAID,discoduro,mdadm,programas,editar
particiones,swap,montarparticiones,mount,NTFS,NFS,compartirdirectorioenred,servidor,cliente,ifconfig,configurar
usuario,usermod,userdel,groupadd,groupdel,cambiarpermisos,atributosdearchivo,chmod,chown,chattr,lsattr,attr,
extendedfileattributes.
AdministrarGNU/Linux
51
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialquéesrootycomousarloenGNU/Linux
EnestetutorialveremosparaquésirvelacuentaderootenGNU/Linuxycómousarla
Palabrasclaves:root,sudo,su,administrador,sudoers,gksudo.
ElusuariorootdeunsistemaoperacionalGNU/Linuxeseladministradordelmismo.Éltienelospermisosnecesariospara
realizarcualquiertipodetarea.
Losusuarioscomunesencambio,notienenpermisosparainstalarprogramasoescribirenlosdirectoriosdesistema.Por
lotanto,pararealizarcualquieracciónquenecesitepermisosderoot,debenusarsudoósu.
Siqueremosconvertirnosenadministradoresdelsistema(root)escribimos:
su
Nospidelaclavederoot,laescribimosyyasomosroot.
Siqueremoscambiardeusuario:
sunombre_de_usuario
Yescribimoslaclavedelusuario.
Paradejardeserroot:
exit
sudoencambio,sirveparaejecutaruncomandocomorootsindejardeserunusuariocomún.Lousamosporejemplo
parainstalarelprogramaGimp:
sudoapt-getinstallgimp
Nospidelaclavederoot,laescribimosyyatenemospermisoparainstalarelprograma.
Importante:Sielusuariodeunprogramanoestádentrodelgruposudoersnovaapoderusarsudo.Paraagregarloal
grupo:
sudoaddusernombre_de_usuariosudo
Paracambiarlaclavederootescribimos:
sudopasswdroot
EnUbuntu,tenemostambiénunambientegráficoespecialcompermisosderoot:
TutorialquéesrootycomousarloenGNU/Linux
52
TutorialesGNU/Linux:hackingparaprincipiantes
gksudonautilus
Nospedirálaclavederootynosabriráunaventanaeneldirectoriodeladministradorroot.Desdeallípodremosnavegar
porlosdirectoriosdelsistemacomoadministradores.
Másinformaciónen:http://www.howtogeek.com/111479/htg-explains-whats-the-difference-between-sudo-su/(idioma
inglés)
TutorialquéesrootycomousarloenGNU/Linux
53
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialcomofuncionaelprocesodeinicioen
GNU/Linux
EnestetutorialveremoscomofuncionaelprocessodeiniciodeunsistemaoperativoGNU/Linux
Palabrasclaves:BIOS,MBR,EFI,UEFI,sistemadeinicio,bootloader,kernel,grub,isolinux,RAM,initrd,initramfs,
sbin/init,xwindow.
ElprocesodearranquedeunordenadorempiezaenlaBIOSqueiniciaelhardwareatravésdeunfirmwareinstaladoen
unchipEEPROM.
EstechiphaceuntestllamadoPOSTaloscomponentesdelordenadorycargaenlamemoriaprincipalelsistemadeinicio
(bootloader).Éste,queestáalojadoenelMBRoenlaparticiónEFI,escontroladoporelsistemaoperativo.
GrubeisolinuxsonlossistemasdeiniciodeGNU/Linuxmásconocidosysedividenendospartes:laprimeraexaminala
MBRparabuscarlaparticióndeinicioycargaelsistemadearranque(porejemploGrub)enlamemoriaRAM.
Enlasegundaparte,grubcargaelkernelyunsistemadearchivosinicial(initrdoinitramfs)enlaRAM.Unavezqueel
kernelhaconfiguradoelhardwareymontadoelsistemadearchivos,iniciaelprocesoinitlocalizadoen/sbin/initqueesel
encargadodeiniciarlosdemásprocesosnecesarios(cambiaamodomultiusuario,iniciagetty)parafinalmentedejarel
sistemaoperativolistoparausar.
EnsistemasEFI/UEFIencambio,elfirmwareUEFIleesusistemadeiniciopropioparadeterminarqueprogramaUEFIva
ainiciar.
http://www.ibm.com/developerworks/library/l-linuxboot/index.html(idiomainglés)
TutorialcomofuncionaelprocesodeinicioenGNU/Linux
54
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialcomofuncionanlosnivelesdeejecuciónen
GNU/Linux
EnestetutorialveremoscomofuncionanlosnivelesdeejecuciónenunsistemaoperativoGNU/Linux
Palabrasclaves:LSB,nivelesdeejecución,runlevels,init.
Aclaración:elLSB(LinuxStandardBase)establecequelossistemasoperativosGNU/Linuxfuncionancon7nivelesde
ejecuciónperoéstosvaríanentrelasdistintasdistribuciones.Enestecaso,nosbasaremosenDebianGNU/Linux.
Elprocesoiniteselencargadodeiniciarlosnivelesdeejecución(runlevels)delsistemaoperativo.
Porejemplo,elnível0eseldeapagadodelordenador,elnível1esenmodomonousuario(root),delnivel2al5son
multiusuarioconredysistemagráfico,yporúltimoelnivel6esparareiniciarelsistemaoperativo.
Parasaberenquenivelestamostenemosdosopcionescomorootyusuariorespectivamente:
runlevel
who-r
Paracambiardenivel,porejemplo,ponerelsistemaenmodomanutenciónsinred:
init1
Siqueremosreiniciarelsistema:
init6
Másinformaciónen:http://wiki.linuxquestions.org/wiki/Run_Levels(idiomainglés)
TutorialcomofuncionanlosnivelesdeejecuciónenGNU/Linux
55
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialgestionarprocesosenunsistemaoperativo
GNU/Linux
EnestetutorialveremoscomogestionarprocesosenunsistemaoperativoGNU/Linux
Palabrasclaves:proceso,tarea,thread,ps,fg,bg.
Unprocesoessimplementeunainstanciadeunaomástareas(threads)relacionadasqueseejecutanenelordenador.
Tenemosprocesosinteractivostipobashofirefoxquedebenseriniciadosporelusuario,procesosenlote(batch)tipo
updatedbquesonautomáticos,demonios(daemons)quefuncionansininterrupcióntipohttpdoxinetd,oprocesosdel
kernel.
Losprocesostienenprioridadquevade-20comolamásaltahasta19,lamásbaja,yunidentificadorllamadoPID.
Parasaberqueprocesosseestánejecutandoahoraenformadetallada:
ps-ef
Conocerlosprocesosdeunusuario:
ps-unombre_usuario
Paraverdetodoslosusuarios:
ps-aux
Paraverlosprocesosentiemporeal:
htop
Paraponerunprocesoensegundoplano(bg),porejemplohtop:
htop&
Parapasareseprocesoaprimerplano:
fghtop
TutorialgestionarprocesosenunsistemaoperativoGNU/Linux
56
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialverprogramasinstaladosenGNU/Linux
EnestetutorialaprenderemosaverquéprogramasysusversionestenemosinstaladosennuestroGNU/Linux
Palabrasclaves:programas,dpkg,grep.
Parasaberqueprogramasestáninstaladosescribimosenunterminal:
dpkg--get-selections
Silalistaesmuylarga,podemosbuscarsoloelprogramaquenecesitamos:
dpkg--get-selections|greppython
Yparasaberdondeestásituado:
dpkg-Lphyton-apt
TutorialverprogramasinstaladosenGNU/Linux
57
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialconfigurandounsistemaRAIDenGNU/Linux
EnestetutorialveremoscomopodemosconfigurarunsistemaRAIDenGNU/Linux
Palabrasclaves:RAID,discoduro,mdadm.
UnsistemaRAIDesun"conjuntoredundantedediscosindependientes"(elsignificadodelatraduccióndelinglésRAID)
quepermitealmacenardatosdeformadistribuidaenvariosdiscoscomosifueranunosolo.
ParapodercrearunsistemaRAIDtenemosqueteneralmenosdosdiscosduros,siendoconvenientequeéstostenganla
mismacapacidad.
Paraconfigurardosdiscosduros(sdb1,sdc1)comoRAID0enGNU/Linuxvamosausarlaherramientamdadm.Para
instalarla:
sudoapt-getupdate
sudoapt-getinstallmdadm
AhoraparaconfigurarelRAID:
mdadm--create--verbose/dev/md0--level=0--raid-devices=2/dev/sdb1/dev/sdc1
Ahoralovamosainiciar:
mdadm--assemble/dev/md0/dev/sdb1/dev/sdc1
OtraopciónparainiciarelRAID:
mdadm--assemble--scan
ParaañadirundiscoaunRAIDactivo:
mdadm/dev/md0--add/dev/sdd1
Paraeliminareldisco/dev/sdb1delRAID/dev/md0:
mdadm/dev/md0--fail/dev/sdb1--remove/dev/sdb1
SialgunavezqueremossabercomoestáconfiguradoelRAID:
mdadm-E/dev/md0
Sialgunavezqueremoseditarlo,podemosusarelarchivodeconfiguración:
TutorialconfigurandounsistemaRAIDenGNU/Linux
58
TutorialesGNU/Linux:hackingparaprincipiantes
/etc/mdadm/mdadm.conf
Másinformaciónenhttp://es.wikipedia.org/wiki/RAIDyenhttp://elpuig.xeill.net/Members/vcarceler/articulos/mdadm-unanueva-herramienta-para-la-gestion-de-raid-mediante-software-en-linux
TutorialconfigurandounsistemaRAIDenGNU/Linux
59
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcrearoeliminarparticionesenGNU/Linuxcon
fdisk
*Unaparticiónesunaseccióndeundiscorígidoqueestratadacomosifueraotrodiscoindependiente.
Estopuedeserútilporejemploparadedicarunespacioúnicoparanuestrosarchivosimportantesoparacolocarlos
archivosmultimedia.
EnestetutorialveremoscomocrearoeliminarparticionesenGNU/Linux.*
Palabrasclaves:partición,discorígido,harddrive,GNU/Linux,sistemaoprativo,fdisk.
Parasabercómoestáconfiguradonuestrodiscorígido:
df-Th
Paraporejemploparticionarelsegundodiscorígido:
sudofdisk/dev/sdb
Nosapareceráelcursoryalistopardarunaordem.escribimosmparalaayuda:
m
Lasotrasopcionesimportantesson:
*n*creaunapartición
*d*borraunapartición
*l*muestralostiposdeparticiones
*t*modificaeltipodepartición
*p*muestralatabladeparticiones
*w*escribeloscambiosysale
*q*salesinguardarloscambios
Porejemporparacrearunaparticiónescribimosn,luegop(primaria)oe(extendida)yfinalmentewparaescribirlos
cambios.
Nota:OtraherramientamásnuevaeslasuiteGPTfdiskquepermitecrearhasta128particionesyeliminalarestricciónde
discosmayoresde2TiBdelMBT.
Másinformaciónen:http://manpages.ubuntu.com/manpages/trusty/es/man8/fdisk.8.html(idiomainglés)
http://www.ibm.com/developerworks/linux/library/l-gpt/index.html(idiomainglés)
TutorialcrearoeliminarparticionesenGNU/Linuxconfdisk
60
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialcrearoeliminarunaparticiónswapen
GNU/Linux
Unaparticiónswapesunaparticiónqueactúacomomemoriadeintercambio,yseusacomosifueramemoriaRAM
cuandoéstanoessuficiente.EnestetutorialveremoscomocrearlaenGNU/Linux.
Palabrasclaves:particióndeintercambio,swap,discorígido,harddrive,GNU/Linux,sistemaoperativo.
Elarchivoquetienelaconfiguracióndenuestrosdiscosrígidosyparticioneses/etc/fstab.Parasabersitenemosuna
particiónswapennuestrosistemaoperativo:
cat/proc/swaps
Porejemploparacrearunaparticiónswapde512megasprimerocreamosunarchivoconesetamaño:
sudoddif=/dev/zeroof=/mnt/512MiB.swapbs=1024count=524288
Damospermisosdeleeryescribirsolamentearoot:
sudochmod600/mnt/512MiB.swap
Formatamoselarchivocomoswap:
sudomkswap/mnt/512MiB.swap
Agregamoslaparticiónalsistemaoperativo:
sudoswapon/mnt/512MiB.swap
Podemosverqueyaestádisponibleconcat/proc/swapsocat/proc/meminfo.
Finalmenteparahacerloscambiospermanentes:
sudovim/etc/fstab
Alfinaldelarchivoagregamosestalíneaysalvamosloscambios:
/mnt/512MiB.swapnoneswapsw00
Reiniciandoelsistemaoperativoveremosqueyacontamosconlanuevamemoriaswap.
Paraeliminaresaparticiónswapabrimoselarchivofstab:
TutorialcrearoeliminarunaparticiónswapenGNU/Linux
61
TutorialesGNU/Linux:hackingparaprincipiantes
sudovim/etc/fstab
Borramoslalínea/mnt/512MiB.swapnoneswapsw00ysalvamosloscambios.Porúltimoremovemoslaparticiónswap
delsistemaoperativoyeliminamoselarchivo:
sudoswapoff/mnt/512MiB.swap&&sudorm/mnt/512MiB.swap
Másinformaciónen:https://help.ubuntu.com/community/SwapFaq(idiomainglés)
TutorialcrearoeliminarunaparticiónswapenGNU/Linux
62
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialformatearparticionesenGNU/Linux
EnestetutorialveremoscómopodemosformatearparticionesydiscosrígidosenGNU/Linux
Palabrasclaves:mkfs,formatearparticiones,discorígido,GNU/Linux.
ComenzamosaveriguandoquésistemasdearchivossoportanuestoSO:
ls/sbin/mk*
Ydóndeestálaparticiónquequeremosformatar:
df-Th
Paraformatearporejemplolaparticiónsdbconsistemadearchivosext4yetiquetapruebasescribimos:
mkfs.ext4-Lpruebas/dev/sdb
Másinformaciónen:http://manpages.ubuntu.com/manpages/trusty/en/man8/mkfs.8.html(idiomainglés)
TutorialformatearparticionesenGNU/Linux
63
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialmontarydesmontarunpendriveusben
GNU/Linux
Enestetutorialveremoscomomontarydesmontarcualquierdispositivoexterno(pendriveusb,cámarafotográfica,etc.)
enGNU/Linuxdesdelalíneadecomandos
Palabrasclaves:pendriveusb,montardispositivoexterno,mount,umount.
Primeroverificamosdondeestámontadoeldispositivoexterno:
sudofdisk-l
Nosapareceráunalíneadetextosimilaraesta:
/dev/sdb1*6339167991958368+cW95FAT32(LBA)
Aclaración:saldráprimeroeldiscodurodelordenadorcomohda(siesIDE)osda(siesSCSI),luegosituviéramosotro
discoduro,éstesaldríacomosdbyenesecaso,nuestrousbseríasdc.
Paramontareldispositivo:
sudomount-tvfat/dev/sdb1/mnt/
Enestecasomontamoseldispositivosdb1eneldirectorio/mnt.Paraversiestácorrecto:
df-l
Finalmenteparadesmontarlo:
sudoumount/dev/sdb1
TutorialmontarydesmontarunpendriveusbenGNU/Linux
64
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialMontarparticionesNTFSenGNU/LinuxUbuntu
NTFSesunsistemadearchivosampliamenteutilizadoporlossistemasoperativosdeMicrosoft(TM)tipoXP,Vista,etc.En
estetutorialveremoscomomontarparticionesNTFSenGNU/Linux.
Palabrasclaves:montarpartición,ntfs,fdisk,fstab.
Abrimoslaterminalyescribimosestaordenparasabercomoestánmontadaslaparticionesennuestrodiscoduro:
sudofdisk-l
Creamosundirectoriodenombredatoseneldirectorio/mediadondealojarlapartición:
sudomkdir/media/datos
Denombrealdirectoriolehepuestodatosperolepodeisponerloqueseosocurra.Ahoraeditamoselarchivofstab
sudogedit/etc/fstab
alfinaldelarchivoescribimoslosiguiente:
/dev/sda5/media/datosntfs-3gquiet,defaults,rw00
guardamosloscambiosyalreiniciarnosaparecerálaparticiónennuestroescritorio.
TutorialMontarparticionesNTFSenGNU/LinuxUbuntu
65
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialmontarparticionesNFSenunaredGNU/Linux
NFS(networkfilesystem)esunsistemadearchivosdistribuidosquepermiteaccederennuestroordenadoraarchivos
queestánlocalizadosenundiscooparticiónenlaredlocal.EnestetutorialveremoscómoconfigurarloenGNU/Linux.
Palabrasclaves:NFS,montar,compartirdirectorioenred,servidor,cliente.
InstalamoselservidorNFSenunordenadordenuestrared:
sudoapt-getinstallnfs-kernel-server
Porejemplo,paramontarenlaredeldirectoriohomedelservidor,abrimoselarchivo/etc/exportsyescribimos:
/homeip-ordenador-cliente(rw,sync,no_root_squash,no_subtree_check)
Dondeip-del-servidoreselnúmerodelaIPdelservidor.Eldirectoriotendrápermisosdelecturayescritura(rw).
Exportamoseldirectoriocompartidocon:
sudoexportfs-a
AhorareinicimoselservidorNFS:
sudoservicenfs-kernel-serverstart
Enelordenadorclienteinstalamosnfs-common:
sudoapt-getinstallrpcbindnfs-common
Añadimosunalíneaalarchivo/etc/hosts.deny:
rpcbind:ALL
Yotraalarchivo/etc/hosts.allow:
rpcbind:ip-del-servidor
Creamosundirectoriollamadodirectorio-redparamontarenéleldirectoriohomedelservidor:
mkdirdirectorio-red
Montamoseldirectoriocon:
TutorialmontarparticionesNFSenunaredGNU/Linux
66
TutorialesGNU/Linux:hackingparaprincipiantes
sudomountip-del-servidor:/home/home/usuario/directorio-red
Vemossiestámontado:
mount-tnfs
Paraqueeldirectorio-redsemonteautomáticamentealiniciarelsistemaoperativo,abrimoselarchivo/etc/fstaby
escribimosalfinallasiguientelínea:
192.168.1.8:/home/home/usuario/directorio-rednfsauto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=180000
Parasaberquesignificaestalíneapodemosleerlaayuda:
mannfs
Sialgunavezqueremosdesmontarestedirectoriodered:
sudoumount/home/usuario/directorio-red
yluegoeliminamoslalíneaañadidapreviamentealarchivo/etc/fstab
Másinformaciónen:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-14-04
(idiomainglés)
TutorialmontarparticionesNFSenunaredGNU/Linux
67
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialconfigurarlaredenGNU/Linux
SitenemosproblemasconlaconexiónaInternet,podemosconfigurarlareddesdelalíneadecomandos,algoqueesmuy
sencillodehacersiguiendoestospasos:
NOTA:EnesteejemplopondrécomodirecciónIPdelRouter192.168.1.1,direccióndelordenador192.168.1.2ylos
servidoresDNS8.8.8.8y8.8.4.4quesonlosdeGoogle®.AdaptarlosavuestraconexónaInternet.
Abrimosunterminalyescribimos:
sudogedit/etc/NetworkManager/nm-system-settings.conf
Ospedirálacontraseñaderoot,laponeisyseosabreelarchivonm-system-settings.conf.Enéltenemosquemodificarla
opciónmanageddetrueafalse.Guardamosloscambiosycerrramoselarchivo.
Enlamismaterminalescribimos:
sudogedit/etc/network/interfaces
seosabreelarchivointerfaces,dondetendremosqueescribirlosiguiente:
autoeth0
ifaceeth0inetstatic
address192.168.1.2
netmask255.255.255.0
network192.168.1.0
broadcast192.168.1.255
gateway192.168.1.1
Guardamosloscambiosycerramoselarchivo.Ahoraenlaterminalescribimos:
sudogedit/etc/resolv.conf
Seosabreelarchivoresolv.confdondepondreislasdireccionesDNSdeGoogle:
nameserver8.8.8.8
nameserver8.8.4.4
Finalmenteparaaplicartodosloscambiosreseteamoslaredescribiendoelsiguientecomandoenlaterminal:
sudo/etc/init.d/networkingrestart
TutorialconfigurarlaredenGNU/Linux
68
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialConfigurarImpresoraenunaredGNU/Linux
EnestetutorialveremoscomoconfigurarunaimpresoraparaserusadaenunareddeordenadoresGNU/Linux
Primeroinstalamossambaycups:
sudoapt-getinstallcupsyssamba-common
Vamosalarchivosmb.confyloeditamos:
sudogedit/etc/samba/smb.conf
Enladirectiva"printing"buscamoslaopciónolaagregamossegúnseaelcaso:
printing=cups
Unavezhechoestovamosaconfigurarcups,primeromodificandoestosdosarchivos:
sudogedit/etc/cups/mime.types
dondedescomentamosoagregamossegúnseaelcasolalínea:
application/octet-stream
luegovamosalarchivo:
sudogedit/etc/cups/mime.convs
yagregamosodescomentamoslalínea:
application/octet-streamapplication/vnd.cups-raw0-
Reiniciamoslos2serviciosparaquetomenefectoloscambiosyabrimosnuestronavegadorenestadirección:
http://localhost:631/
En"Tareasdeadministración"nospedirálaclavederoot,luegovamosalaopciónañadirimpresoraycompletamoslos
datosteniendoencuentaqueelnombredebersersolounapalabra,novarias.
EnconexiónseleccionamosWindowsPrinterviaSamba.Siaúnnoapareceestaopciónseleccionamosippyhacemosclic
ensiguiente,enlaurldeconexióncolocamos:
TutorialConfigurarImpresoraenunaredGNU/Linux
69
TutorialesGNU/Linux:hackingparaprincipiantes
smb://server/nombre.de.la.impresora
(estoencasoqueseacompartidaportodosynosenecesiteidentificaciónparausarla)
casocontrariocolocamos:
smb://username:password@workgroup/server/nombre.de.la.impresora
Enserverseescribeladirecciónip,luegoclicensiguienteyporúltimoquedaráconfigurarelcontroladordelaimpresora.
TutorialConfigurarImpresoraenunaredGNU/Linux
70
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialconfigurarusuariosenGNU/Linux
Enestetutorialveremoscomocrear,editary/oeliminarusuariosenGNU/Linux
Palabrasclaves;usuarioGNU/Linux,adduser,usermod,id,userdel.
Paracrearunnuevousuariousaremosnuestracuentadeadministradordelsistema(root)conelsiguientecomando:
sudoaddusernombre_usuario
Allínospediráprimerolacontraseñaderootyluegodecrearelusuario"nombre_usuario"yelgrupo"nombre_usuario",
nospedirálacontraseñadelnuevousuario.
Finalmentepodemosingresarlosdatosdelnuevousuario(nombrecompleto,teléfono,etc.)o,apretandolateclaintro,
simplementeconfirmarlacreación.
Alcrearlacuentadeunusuario,elsistemaoperativotambiéncrearáeldirectorio/home/nombre_usuario/,3archivos
ocultosqueconfiguransusvariablesdeambiente:.bash_logout-.bash_profile-.bashrc,ycomodijimosanteriormenteun
grupoconelnombredelusuario.
Paraverlainformacióndelascuentasdeusuariodenuestrosistemaoperativo:
cat/etc/passwd
Paraverlascuentasdelosusuariosquenosondelsistema,podemosusar:
grep/home//etc/passwd
Otambiénpodemosmostrarunasimplelistadeusuariossininformacionesadicionales:
grep/home//etc/passwd|cut-d:-f1
Siqueremosquelacuentaexpireel31-12-2015:
usermod--expiredate31-12-2015nombre_usuario
Paraverificaraquegruposdeusuariosperteneceunusuario:
idnombre_usuario
Paraagregarelusuarioalgrupodeusuariosusers:
sudousermod--append--groupsusersnombre_usuario
TutorialconfigurarusuariosenGNU/Linux
71
TutorialesGNU/Linux:hackingparaprincipiantes
Paracambiarlaubicacióndeldirectoriohomealdirectoriotmpdenombre_usuario:
usermod--home/tmpnombre_usuario
Parabloquear(-L)/desbloquear(-U)lacuentadelusuario:
usermod-Lnombre_usuario
usermod-Unombre_usuario
Paraeliminarelusuario:
sudouserdel-rnombre_usuario
TutorialconfigurarusuariosenGNU/Linux
72
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialconfigurargruposdeusuariosenGNU/Linux
Enestetutorialveremoscomocreary/oeliminargruposdeusuariosenGNU/Linux
Palabrasclaves:grupodeusuarios,groupadd,groupdel.
Crearungrupodeusuariossirveparaqueesosusuariospuedantenerparámetrosdeseguridadydeaccesoespecíficos.
Unejemplotípico:enunaempresatendríamoslosgrupos"marketing","administración","ventas"ect.cadaunoconacceso
ypermisospersonalizados.
Paraverlainformacióndelosgruposdeusuariodenuestrosistemaoperativo:
cat/etc/group|more
Paracrearungrupoescribimos:
sudogroupaddnombre_grupo
Paraverificaraquegruposperteneceunusuario:
idnombre_usuario
Paraañadirnombre_usuarioalgruponombre_grupo:
sudoaddusernombre_usuarionombre_grupo
Paraeliminarunusuariodelgrupo:
sudodelusernombre_usuarionombre_grupo
Paraeliminarungrupo:
sudogroupdelnombre_grupo
TutorialconfigurargruposdeusuariosenGNU/Linux
73
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialgestionarpermisosyatributosdearchivosen
GNU/Linux
Enestetutorialveremoscomopodemoscambiarpermisosdelectura,escritura,ejecuciónydepropietarioalosarchivos
enGNU/Linux.
Palabrasclaves:permisosdearchivos,propietariodearchivo,chmod,chown,atributosespecialesarchivo,chattr,lsattr.
Paraverlospermisosdeldirectorioenelcualestamosposicionados:
ls-l
Locualnosdaráporejemploestasinformaciones:
-rw-rw-r--1usuariousuario15912Fev1820:48archivo_de_texto.txt
Loprimeroqueleemossonlospermisos-significaqueesunarchivonormal,r(read)quesepuedeleer,w(write)escribir
porelpropietariodelarchivo.
Elsegundoterceto(rw-)sonlospermisosdelgrupodeusuariosyeltercero(r--)paraelrestodeusuarios.Elnúmeroque
lesigueeslacantidaddeenlaces
Laterceracolumnasonelnombredelusuarioydelgrupodeusuarios,lacuartacolumnaeseltamañodelarchivo,luego
vienelafechadelaúltimamodificaciónyporúltimoelnombredelarchivo.
drwxr-xr-x2usuariousuario4096Fev282014Documentos
Enestalíneavemosunaletrad(directory)alinicio,significaqueesundirectorio.Otrasopcionespuedenserl(links)
enlaceyp(pipe).Laletraxsignificapermisoparaejecutarunprograma.
Porejemploparacambiarlospermisosalarchivoarchivo_de_texto.txtescribimos:
chmod664archivo_de_texto.txt
ParacambiarlospermisosaldirectorioDocumentos:
chmod755Documentos
Paraentendermejorelporquédelosnúmeros:
755
usuariogrupootros
r+w+xr+xr+x
4+2+14+0+14+0+1
Encuantoalosusuarios,paracambiaralpropietariodeunarchivo:
TutorialgestionarpermisosyatributosdearchivosenGNU/Linux
74
TutorialesGNU/Linux:hackingparaprincipiantes
chownusuario2archivo_de_texto.txt
Aquielpropietariodelarchivopasaaserusuario2.Paracambiartambiénelgruposería:
chownusuario2:usuario2archivo_de_texto.txt
Porúltimo,losarchivostienenatributosespecialesqueprohibenporejemplo,queéstosseanmovidos,borrados,
modificadosorenombrados.Siescribimos:
chattr+iarchivo_de_texto.txt
Elarchivoquedaráinmutable.
Siqueremosenunfuturoborrarloomodificarlos:
lsattrarchivo_de_texto.txt
Másinformaciónenhttps://wiki.archlinux.org/index.php/File_permissions_and_attributes(idiomainglés)
TutorialgestionarpermisosyatributosdearchivosenGNU/Linux
75
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialgestionaratributosextendidosdearchivosen
GNU/Linux
EnestetutorialveremoscomopodemoseditarlosatributosextendidosdeunarchivoenGNU/Linux.
Palabrasclaves:atributosdearchivo,extendedfileattributes,attr,setfattr,getfattr.
Paraverlosatributosextendidosdelosarchivostenemosquetenerinstaladoattr:
sudoapt-getinstallattr
Porejemplo,vamosaagregaruncomentarioalarchivo_de_texto.txt:
setfattr-nuser.comment-v"esteesuncomentario"archivo-de-texto.txt
Parasabersiarchivo_de_texto.txttieneatributos:
getfattrarchivo_de_texto.txt
Paraveresosatributos:
getfattr-nuser.commentarchivo_de_texto.txt
Másinformaciónenhttp://www.linux-mag.com/id/8741/(idiomainglés)
TutorialgestionaratributosextendidosdearchivosenGNU/Linux
76
TutorialesGNU/Linux:hackingparaprincipiantes
ResolverproblemasenGNU/Linux
TutorialbuscandoinformacióndelsistemaoperativoenGNU/Linux
TutorialaprendiendoausarunprogramadechatparapedirayudaenLinux
TutorialbuscarayudaconlalíneadecomandosenLinux
TutorialeliminarkernelsantiguosenUbuntuoDebian
Tutorialresolver"GPGerror"usandoapt-getupdateenGNU/Linux
TutorialresolverproblemadeconfiguracióndelidiomaenGNU/Linux
TutorialcerrarprogramasbloqueadosenGNU/Linux
TutorialintroducciónaloslogsdelsistemaGNU/Linux
TutorialusarloslogsdelsistemaGNU/Linuxparadescubrirerrores
TutorialresolverproblemasconsistemasdearchivosenGNU/Linux
Tutorialrecuperararchivoseinformacióndediscosduros,CD-ROMsyDVDs
dañados
Palabrasclaves:df,free,lshw,lsmod,ifconfig,iwconfig,ps,top,chat,irc,xchat,help,type,man,whatis,info,eliminar
kernelantiguo,purge,GPGerror,locale,configuracióndeidioma,kill,log,dmesg,tail,rsyslog,udev,resolverproblema,
sistemadearchivos,filesystem,e2fsck,dosfsck,ntfs-3g,testdisk,GNUddrescue,foremost.
ResolverproblemasenGNU/Linux
77
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialbuscandoinformacióndelsistemaoperativoen
GNU/Linux
Enestetutorialaprenderemosabuscarinformaciónsobrenuestrosistemaoperativo(RAM,discoduro,procesador,
procesos,red,etc.)usandolalíneadecomandoenGNU/Linux
Palabrasclaves:líneadecomandos,commandline,shell,bash,df,free,lshw,lsmod,ifconfig,iwconfig,ps,top.
ParasaberelnombredelordenadoryelkernelLinuxusado:
uname-a
Elsistemaoperativo:
cat/etc/os-release
Parasabercuantoespaciotenemoseneldiscoduro:
df-h
ParasabercuantamemoriaRAMlibre:
free
Paraobtenerunalistadelhardwaredelordenador:
sudolshw
Listartodoslosmódulosquehacargadoelkernel:
lsmod
Paraverlosdatosdered(IP,gateway,broadcast,etc.):
ifconfig
Paraverlosdatosdelaredinalámbrica:
iwconfig
Paraverlosprocesosactivos:
TutorialbuscandoinformacióndelsistemaoperativoenGNU/Linux
78
TutorialesGNU/Linux:hackingparaprincipiantes
ps
Paraverlosprocesosentiemporeal:
top
Parasalirapretamoslateclaq
TutorialbuscandoinformacióndelsistemaoperativoenGNU/Linux
79
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialaprendiendoausarunprogramadechatpara
pedirayudaenLinux
MuchosmiembrosdelacomunidadLinuxgeneralmentesuelenestarenunsaladechatparaestarencontactoconsus
colegasycuandopueden,ayudaralosnovatosaresolveralgúnproblema.Enestetutorialaprenderemosloscomandos
básicosdechat.ComousamosLinux,sugierolaaplicaciónXChataunquepodeistambiénchateardesdeelnavegador
utilizandolosservidoresdeFreenode,porejemplo:http://webchat.freenode.net/?channels=ubuntu-es.
Palabrasclaves:irc,chat,xchat,nick,join,query,irc.freenode.net.
ÓrdenestípicasdeIRC
/nicknuevo_nombreCambiamosnuestronick.
/join#ubuntu-esEntramosenuncanal.
/serverirc.freenode.netNosconectamosaunared.
/queryusuarioEntablamosunaconversaciónprivadaconunusuario.
/part#canalSalimosdelcanal.
/quit“mensajedesalida”Nosdesconectamosdeunaredenviandomensajedesalida.
/msgnickservregister<password><e-mail>.Registrarunnombredeusuario.
/msgnickservidentify<password>.Identificamoselnickregistrado.
/msgNickServghost<nick><password>.Conseguimosnuestronick,aunqueesteusadoporotrapersona.
/msgNickServINFO<nick>.ComprobamoscuantotiempollevamosconectadosalIRC.
/msgNickServSETPASSWORD<mynewpassword>.CambiarlacontraseñadelNickregistrado.
/asauthnickpass.Identificanuestronombredeusuario.
Comenzamos:
AbrimosunterminalylanzamosXChat:xchat
Xchatnospreguntaráaquéservidornosqueremosconectar(porejemploUbuntuoDebian),yluegonospediráun
nickname(nombredeusuario).Podemoselegircualquiernombreperosiyaestásiendousadodeberemoselegirotro.Si
teconectashabitualmentealared,deberíasregistrartunombredeusuarioenunservidor,paraquelosdemásusuarios
puedanidentificarteynadiepuedausurpartupersonalidad(lasinstruccioneseninglés:
http://freenode.net/faq.shtml#nicksetup).
Lasórdenesmáscomunesson:
/nicknuevo_nombreCambiamosnuestronick.
/join#ubuntu-esEntramosenuncanal.
/serverirc.freenode.netNosconectamosaunared.
/queryusuarioEntablamosunaconversaciónprivadaconunusuario.
/part#canalSalimosdelcanal.
/quit“mensajedesalida”Nosdesconectamosdeunaredenviandomensajedesalida.
Basadoenhttp://www.wikipedia.org(idiomainglés)
TutorialaprendiendoausarunprogramadechatparapedirayudaenLinux
80
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialbuscarayudaconlalíneadecomandosenLinux
EsestetutorialaprenderemoscómobuscarayudayobtenerinformaciónutilizandolalíneadecomandoenLinux
Comandos:
type–Nosdicequecomandosevaaejecutar
help–Exibeinformaciónsobreuncomandobuiltin(quepertenecealbash)
man–Muestralapáginadelmanualdelcomando
whatis–Exibeunabrevedescripcióndelcomando
info–MuestralainformacióndelcomandoconlaayudadelproyectoGNU
Comenzamos:
Abrimosunterminalyescribimostype,nuestroprimercomando,quenosdicedóndeestaubicadodate:
typedate
datees/bin/date
Ahoraprobamoslaayudadeuncomandodelbash:
helphelp
Algunosejecutablespermitenlaopción--helpparamostrarargumentosyopcionesdelosmismos,porejemplo:
date--help
Todocomandotienesu/spágina/sdelmanualdeayudaconargumentos,opcionesy,aveces,ejemplos.La/sinvocamos
conmanyelnombredelcomando(parasalirtecleamosq):
mandf
Encuantoawhatis,nosdaunabrevedescripcióndeparaquésirveuncomando:
whatiswhoami
ParaverlainformacióndelproyectoGNUutilizamoselcomandoinfo:
infouname
Tip:Ladocumentacióndelosprogramassueleestaren/usr/share/docylapodemosverusandoelcomandolessparalos
archivosdetexto,zlessparalosarchivoscomprimidosgzipyunnavegadorwebparalosarchivos.htlm
TutorialbuscarayudaconlalíneadecomandosenLinux
81
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialeliminarkernelsantiguosenUbuntuoDebian
Amedidaquevamosactualizandonuestrosistemaoperativovanquedandoinstaladaslasversionesantiguasdelkernel
Linux.Aquíveremoscomoeliminarlas
Palabrasclaves:eliminarkernelantiguo,uname,purge.
Parasabercuálesnuestrokernelactualescribimos:
uname-r
Siqueremosverunalistadetodosloskernelsinstalados:
dpkg--list|greplinux-image
Paraeliminarunodeloskernelsescribimosmodificando"x"conelnúmerodeversióndelmismo:
sudoapt-getpurgelinux-image-x.x.x.x-generic
Actualizamoselgestordeiniciodelsistemagrub2:
sudoupdate-grub2
Finalmentereiniciamoselsistema:
sudoshutdown-rnow
TutorialeliminarkernelsantiguosenUbuntuoDebian
82
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialresolver"GPGerror"usandoapt-getupdateen
GNU/Linux
Enestetutorialveremoscomopodemossolucionarelerrordeclavepública(publickey)indisponibleenGNU/Linux
cuandoqueremosactualizarelsistemaoperativoconsudoapt-getupdate
Palabrasclaves:GPGerror,publickeynotavailable,actualizarsistemaoperativo,apt-getupdate,dpkg.
Puedesucederquealintentaractualizarelsistemaoperativoconsudoapt-getupdatenosaparezcaesteerror:
Readingpackagelists...DoneW:GPGerror:http://extras.ubuntu.compreciseRelease:Thefollowingsignaturescouldn't
beverifiedbecausethepublickeyisnotavailable:NO_PUBKEY16126D3A3E5C1192
Lasoluciónesingresarestoscomandos,unoalavez:
sudodpkg--configure-a
sudorm/var/lib/apt/lists/*-vf
sudoapt-getupdate
sudoapt-getclean
sudoapt-getupdate
sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keys16126D3A3E5C1192
Nota:Laclavepúblicapuedevariar,porloquetendreisquealterarlaenesecaso,colocandovuestraclave.
Másinformaciónenhttp://askubuntu.com/questions/127326/how-to-fix-missing-gpg-keys(idiomainglés)
Tutorialresolver"GPGerror"usandoapt-getupdateenGNU/Linux
83
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialresolverproblemadeconfiguracióndelidioma
enGNU/Linux
EnestetutorialveremoscomoresolverelproblemadeconfiguracióndelidiomaincorrectoenGNU/Linux
Palabrasclaves:locale,configuracióndeidioma.
Sinosapareceelsiguienteerroraliniciarelsistemaoperativoocuandoqueremosinstalaralgúnprograma:
locale:CannotsetLC_ALLtodefaultlocale:Nosuchfileordirectory
Abrimosunterminalyescribimos:
locale
Lainformaciónqueaparecenosmostrarácómoestáconfiguradoelidioma.Ahoravamosagenerarlo:
sudolocale-genes_ES.UTF-8
Yreconfigurarlo:
sudodpkg-reconfigurelocales
Porúltimoreiniciamoselsistemaoperativo:
sudoshutdown-rnow
ForosdeGNU/Linuxenespañol:http://www.linuxespanol.com/index.php
TutorialresolverproblemadeconfiguracióndelidiomaenGNU/Linux
84
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialcerrarprogramasbloqueadosenGNU/Linux
EnestetutorialveremoscomopodemoscerrarprogramasqueestánbloqueadosenLinuxusandolautilidadkill
Palabrasclaves:kill,cerrarprogramasbloqueados,GNU/Linux.
Elmétodomásfácilparacerrarunprogramaesabrirunterminalyescribir:
xkill
ElpunterodelratónsetransformaráenunaXysimplementeclicandoenlaventanadelprogramabloqueadolocerrará.
Otraformaesutilizandolautilidadkilldesdelalíneadecomandos.Paraelloprimerotenemosqueaveriguarel
identificadordelprograma(PID)abriendounterminalyescribiendo:
ps-e
Enlalistaqueaparece,porejemplo,elprogramaFirefoxtieneelPID3192.Paracerrarloescribimos:
kill-93192
Siqueremosencambiobuscarunprogramaespecífico,porejemploescribimos:
ps-Cfirefox
ComoconcualquierutilidadLinux,usandomankillvereislaayudadelamisma(teclaqparasalir)
mankill
TutorialcerrarprogramasbloqueadosenGNU/Linux
85
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialintroducciónaloslogsdelsistemaGNU/Linux
Enestetutorialveremosquesonlosarchivoslogycómopodemosusarlos
Palabrasclaves:log,rsyslog,dmesg,tail.
LosarchivoslogregistranlasactividadesdelosprogramasyserviciosensistemasGNU/Linux.Ellossonherramientas
fundamentalesalahoradeadministrary/oanalizarloqueocurreenelsistemaoperativo.
Loslogsseencuentrandentrodeldirectorio/var/logysonrecogidosporeldemoniorsyslog.Parareiniciarloescribimos:
sudoservicersyslogrestart
Paraleerunarchivologsesueleutilizartail:
taildmesg
Tailsolamentemuestralasúltimas10líneasdelarchivo,siqueremosporejemplover18:
tail-n18dmesg
Paramonitorarentiemporealunserviciooprogramausamos:
tail-fdmesg
Porúltimo,paraeditarlaconfiguraciónbásicadeloslogseditamos:
vim/etc/rsyslog.conf
TutorialintroducciónaloslogsdelsistemaGNU/Linux
86
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialusarloslogsdelsistemaGNU/Linuxpara
descubrirerrores
Enestetutorialveremoscuálessonlosarchivoslogquenospermitendescubrir,diagnosticaryresolverproblemasen
GNU/Linux.
Palabrasclaves:log,tail,dmesg,udev.
Elarchivo/var/log/udevcontienelainformacióndelosdispositivosdetectadosporelkernelLinux:
tail-n90/var/log/udev
Dmesgmuestralosmensajesdelsistema:
tail-n90/var/log/dmesg
Paradiagnosticaryresolverproblemasdevideo(servidorgráficoX):
tail-n90/var/log/Xorg.0.log
Otrosarchivoslogcomunesson:
/var/log/auth.log:logdeautenticación
/var/log/kern.log:logdelkernel
/var/log/cron.log:logdecrond
/var/log/boot.log:logdeiniciodelsistema
/var/log/wtmp:logdelogins
AlgunasaplicacionescomoelservidorApache(httpd)creansupropiodirectoriodentrode/var/log/paraguardassus
archivoslog.
TutorialusarloslogsdelsistemaGNU/Linuxparadescubrirerrores
87
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialresolverproblemasconsistemasdearchivosen
GNU/Linux
EnestetutorialveremoscomopodemosresolverproblemasconlossistemasdearchivosdañadosenGNU/Linux
Palabrasclaves:sistemadearchivos,filesystem,resolverproblemas,e2fsck,dosfsck,ntfs-3g.
Pararesolverproblemasenlossistemasdearchivoext2,ext3yext4tenemoslaherramientae2fsck.Parausarlaprimero
desmontamoslaparticiónoeldiscorígidoconproblemas(sdb1comoejemplo):
sudoumountsdb1
Paraverificaryresolverproblemasmostrandounabarradeprogresoenunsistemadearchivosext4:
fsck.ext4-p-f-C0/dev/sdb1
Paraencontrarsectoresdañadosyhacerlosinutilizablesporelsistemaoperativo:
fsck.ext4-f-c-C0/dev/sdb1
Paraverificaryrepararsistemasdearchivosfat12,fat16yfat32(windows),ademásdeinutilizarlossectoresdañados:
fsck.vfat-l-v-a-t/dev/sdb1
Paraverificaryrepararsistemasdearchivosntfs(windows):
ntfsfix/dev/sda1
Másinformaciónen:https://help.ubuntu.com/community/FilesystemTroubleshooting(idiomainglés)
TutorialresolverproblemasconsistemasdearchivosenGNU/Linux
88
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialrecuperararchivoseinformacióndediscos
duros,CD-ROMsyDVDsdañados
Enestetutorialveremoscomopodemosrecuperarinformacióndediscosduros,CD-ROMsyDVDsconproblemas
Palabrasclaves:discoduro,CD-ROM,DVD,testdisk,GNUddrescue,foremost.
Primeroinstalamoslosprogramasnecesariosparalatarea:testdisk,GNUddrescueyforemost.
sudoapt-getinstalltestdiskgddrescueforemost
Parabuscarennuestroordenadordiscosduros,particionesoCD-ROMsdañadosusamostestdisk:
sudotestdisk
ParapararecuperarunCD-ROMconGNUddrescueescribimos:
ddrescue-b2048/media/cdromnombre_imagen.isoarchivo.log
Losiguienteserámontarlaimagenobtenida:
sudomount-oloop/media/nombre_imagen.iso/mnt/
Encambio,porejemplo,pararecuperarlaparticiónhda1deldiscoduroescribimos:
ddrescue--no-split/dev/hda1nombre_imagenarchivo.log
Porotrolado,pararecuperararchivossueltosusamosforemost:
sudoforemost-tjpg-i/dev/hda1-o/media
Enestecasorecuperamosarchivosjpgdelaparticiónhda1,guardándoloseneldirectorio/media
Másinformaciónsobrerecuperacióndeinformación:https://help.ubuntu.com/community/DataRecovery(idiomainglés)
GNUddrescue:http://www.forensicswiki.org/wiki/Ddrescue(idiomainglés)
Tutorialrecuperararchivoseinformacióndediscosduros,CD-ROMsyDVDsdañados
89
TutorialesGNU/Linux:hackingparaprincipiantes
SeguridadenGNU/Linux
Tutorialrealizarcopiasderespaldo(backup)dearchivosenGNU/Linux
Tutorialhacercopiasderespaldo(backup)dediscosrígidosenGNU/Linux
Tutorialconfiguraruncontafuegos(firewall)enGNU/Linux
Tutorialexaminarsinuestroordenadorestásiendoinvadidoatravésdeun
rootkit
Tutorialdescubrirrootkits,backdoors,sniffersymalwareconRKHunteren
GNU/Linux
TutorialmonitorearreddeInternetconntopenGNU/Linux
TutorialescaneodepuertosconNmapenGNU/Linux
TutorialusartcpdumpparaanalizarpaquetesderedenGNU/Linux
Palabrasclaves:copiasderespaldo,rsync,GRsync,seguridad,GNU,Linux,copiasdeseguridad,backup,cortafuegos,
firewall,chkrootkit,rootkit,backdoor,sniffer,malware,RKHunter,ntop,monitorearred,nmap,tcpdump,capturarpaquetes
red.
SeguridadenGNU/Linux
90
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialrealizarcopiasderespaldo(backup)dearchivos
enGNU/Linux
Enestetutorialveremoscómopodemoshacercopiasderespaldo(backup)dearchivosusandorsyncenGNU/Linux
Palabrasclaves:copiasderespaldo,copiasdeseguridad,backup,rsync,GRsync.
RsyncesunaherramientaquesirveparasincronizararchivosydirectoriosenGNU/Linux,porloqueesmuyútilalahora
dehacercopiasderespaldo.Paracopiarunarchivoporejemploescribimos:
rsync-vnombre_del_archivonombre_del_archivo_de_backup
Lapróximavezqueejecutemosesamismaorden,copiaráelarchivosolamentesifuemodificado.
Siqueremoshacerunacopiaderespaldodeundirectorio:
rsync-avnombre_del_directorio/nombre_del_directorio_de_backup
Siporejemploborramosunarchivodeldirectorio,rsyncnoloborraráeneldirectoriodebackupamenosqueusemosla
opción--delete:
rsync-av--deletenombre_del_directorio/nombre_del_directorio_de_backup
Siqueremoshacerunacopiaenunordenadorremotousandossh:
rsync-av--deletenombre_del_directorio/usuario@IP_del_ordenador_remoto:/nombre_del_directorio_de_backup/
Oalcontrario:
rsync-av--deleteusuario@IP_del_ordenador_remoto:/nombre_del_directorio_de_backup/nombre_del_directorio/
Porúltimo,GRsyncesunadelasinterfacesgráficasdersyncenGNU/Linux.Lainstalamoscon:
sudoapt-getinstallgrsync
Másinformaciónenhttp://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/
Tutorialrealizarcopiasderespaldo(backup)dearchivosenGNU/Linux
91
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialhacercopiasderespaldo(backup)dediscos
rígidosenGNU/Linux
Enestetutorialveremoscomopodemoshacercopiasderespaldo(backupeninglés)deunapartición,undiscorígidoy/o
denuestrosistemaoperativoGNU/Linuxcompleto
Palabrasclaves:backup,copiasderespaldo,copiasdeseguridad,mount,sync,dd.
Abrimosunterminalyverificamoscomoestáorganizadonuestrodiscorígido:
mount
Montamoseldiscorígidoquevamosausarparagrabarlacopiasdb:
mount/media/sdb
Sivamosahacerunacopiaderespaldodeundiscorígidooparticiónqueestánmontados,ejecutamossyncpara
descargarlosdatosdelamemoriaRAMaldiscorígido:
sync
Ahorayapodemoshacerlacopiaderespaldo,porejemplodeldiscorígidosdaaldiscorígidoexternomontadocomosdb:
ddif=/dev/sda|bzip2-c>/media/sdb/disco-rigido.bz2
Enunfuturo,pararestauraresamismacopia:
bzip2-c-d/media/sdb/disco-rigido.bz2|ddof=/dev/sda
Másinformaciónen:http://doc.ubuntu-es.org/Clonar_discos_duros
Tutorialhacercopiasderespaldo(backup)dediscosrígidosenGNU/Linux
92
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialconfiguraruncontafuegos(firewall)en
GNU/Linux
EsestetutorialaprenderemoscómoconfigurarIPTABLES,elcomandoutilizadoporNETFILTER,cortafuegos
predeterminadodeGNU/Linux
Parasabersilotenemosinstalado,abrimosunterminalyescribimos:
whereisiptables
EstecomandonosdirásiIPTABLESestáinstaladoyeldirectoriodondereside.Paravercómoestáconfigurado
escribimos:
sudoiptables-L
Sitenemosalgunareglayqueremosborrarlaparacomenzardesde0:
sudoiptables-F
AhoraconfiguramosIPTABLESescribiendoreglasquepermitentráficohaciaafueradenuestrared(usarInternet,correo
electrónico,etc.)ybloqueaneltráficodesdeafuera(invasióndehackers,programasespías,etc.).
Reglaparaaceptarlasconexionesentrantes:
sudoiptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
Reglaparapermitirloopback(lo0)ybloqueartráficoa127/8:
sudoiptables-AINPUT-ilo-jACCEPT
sudoiptables-AINPUT!-ilo-d127.0.0.0/8-jREJECT
Reglaparapermitirhacerping:
sudoiptables-AINPUT-picmp-micmp--icmp-type8-jACCEPT
Reglaparapermitirtráfico(Internetporejemplo)salirdenuestrared:
sudoiptables-AOUTPUT-jACCEPT
Reglapararechazarotrotipodeconexionesentrantes:
sudoiptables-AINPUT-jREJECT
sudoiptables-AFORWARD-jREJECT
Tutorialconfiguraruncontafuegos(firewall)enGNU/Linux
93
TutorialesGNU/Linux:hackingparaprincipiantes
Ahoratenemosquesalvarestasnuevasreglas,casocontrariocuandoapagamoselordenadoréstasseborran.Para
salvarlasinstalamoselprogramaiptables-persistent:
sudoapt-getupdate
sudoapt-getinstalliptables-persistent
Elprogramanospreguntarásiqueremossalvarlasreglasconfiguradasanteriormente.Aceptamosyfinalizamosla
instalación.
Másinformaciónen:AyudaUbuntu(idiomainglés)yen:Netfilter.org(idiomainglés)
Tutorialconfiguraruncontafuegos(firewall)enGNU/Linux
94
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialexaminarsinuestroordenadorestásiendo
invadidoatravésdeunrootkit
Unrootkitesunprogramaoconjuntodeprogramasusadosporunintrusoparaaccederaunordenadorsinservisto.En
estetutorialveremoscómoinstalarChkrootkit,unaherramientaquebuscapistasdeunrootkit.
Palabrsclaves:CHkrootkit,rootkit.
Abrimosunterminalyescribimos:
sudoapt-getinstallchkrootkit
Parausarloescribimos:
sudochkrootkit
Estaordenrealizarátodoslostests.
Otrasconfiguraciones:paraqueseejecutediariamenteabrimoselarchivo:
/etc/chkrootkit.conf
Yreemplazamos:
RUN_DAILY="false"
por
RUN_DAILY="true"
Tutorialexaminarsinuestroordenadorestásiendoinvadidoatravésdeunrootkit
95
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialdescubrirrootkits,backdoors,sniffersymalware
conRKHunterenGNU/Linux
RootkitHunterescaneanuestrosistemaoperativoenbuscaderootkits,backdoors,sniffersymalware.
Palabrasclaves:Rkhuntes,rootkit,backdoor,sniffer,malware,log.
Abrimosunterminalyescribimos:
sudoapt-getinstallRkhunter
Parausarloescribimos:
sudochkrootkit--check
Estaordenrealizarátodoslostestsycrearáunarchivorkhunter.logconlosresultadosen/var/log/.
Paraactualizarelprogramaescribimos:
rkhunter--update
Paraverotrasopcionesdelmismo:
sudorkhunter--help
Tutorialdescubrirrootkits,backdoors,sniffersymalwareconRKHunterenGNU/Linux
96
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialmonitorearreddeInternetconntopen
GNU/Linux
NTOPesunaherramientademonitoreoygeneracióndereportesdeusoderedentiemporealparaGNU/Linux.Eneste
tutorialveremoscomoinstalarlayusarla.
Palabrasclaves:Ntop,monitoreored,ntopng.
Parainstalarla:
sudoapt-getinstallntop
Seabriráunaventanapidiéndonoslaolasinterfacesderedamonitorar(sinolassabemospodemosusarifconfigperoen
generalsoneth0siesporcableowlan0siesredinalámbrica)yunusuario/contraseña.Unavezcompletadalainstalación
lainiciamos:
ntop
Ahorapodemosiralainterfazwebdelaherramientaabriendounnavegadorenelpuerto3000:
http://IP_servidor:3000
Porotrolado,tenemostambiénNTOPNG,queeslasiguientegeneracióndeNTOPconunainterfazwebmásamigable.
Másinformaciónenhttp://www.ntop.org/(idiomainglés)
TutorialmonitorearreddeInternetconntopenGNU/Linux
97
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialescaneodepuertosconnmapenGNU/Linux
NMAPesunaherramientadeescaneodepuertosygeneracióndereportesdeusoderedentiemporealparaGNU/Linux.
Enestetutorialveremoscomoinstalarlayusarla
Palabrasclaves:Nmap,puertosabiertos.
Parainstalarlaabrimosunterminalyescribimos:
sudoapt-getinstallnmap
PorejemploparaescanearnuestroservidorconIP192.168.0.10escribimos:
nmap192.168.0.10
Nosmostraráunalistadelospuertosabiertos.ValelapenaleerlaayudadeNMAP:
nmap-h
Allíporejemploencontraremosqueparasaberelsistemaoperativodelordenadorescaneadoescribimos:
nmap-O192.168.0.10
Parasaberquetipodeservidortenemosenelpuerto80:
sudonmap192.168.0.10-p80-sV
Paraescaneartodalared:
sudonmap192.168.0.0/24
Másinformaciónen:http://www.insecure.org/nmap(idiomainglés)
TutorialescaneodepuertosconnmapenGNU/Linux
98
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialusartcpdumpparaanalizarpaquetesdereden
GNU/Linux
Tcpdumpesunapoderosaherramientadelíneadecomandosutilizadaparacapturar,mediantelabibliotecalibpcap,el
tráficodeunaredLAN,WAN,etc.enGNU/Linux.
Palabrasclaves:red,internet,LAN,WAN,paquete,network,packet,tcpdump,commandline,líneadecomandos,GNU,
Linux.
Parainstalartcpdump:
sudoapt-getinstalltcpdump
Paraverqueinterfacesderedtenemosinstaladas:
sudotcpdump-D
Paracomenzaracapturarpaquetesenlaredinalámbrica:
sudotcpdump-nS-iwlan0
Parausartcpdumpenmodoverboseentodaslasinterfacesdered:
sudotcpdump-v-iany
ParaevitarquetcpdumpbusquelosnombresdedominiodelasIPcapturadas(aceleralacaptura):
sudotcpdump-n-v
Porúltimo,paraenviarlacapturadepaquetesaunarchivo:
sudotcpdump-wnombre-archivo.txt-s0
Yparaleerlo:
sudotcpdump-rarchivo.txt
Másinformaciónen:http://www.tcpdump.org/(idiomainglés)yuntutorial:http://www.alexonlinux.com/tcpdump-fordummies(idiomainglés)
TutorialusartcpdumpparaanalizarpaquetesderedenGNU/Linux
99
TutorialesGNU/Linux:hackingparaprincipiantes
ProgramarenGNU/Linux
Comocrearunscriptenlalíneadecomando(shellscript)
Tutorialbásicocrontab
TutorialComandosdeiniciodelsistemaoperativo
VariablesdelsistemaGNU/Linux
TutorialAwkcomocomandoycomolenguajedeprogramación
Palabrasclaves:shellscript,bash,programar,programartarea,crontab,modificarconfiguraciónusuario,rc.local,profile,
variablesdelsistemaoperativo,variablesusuario,set,PATH,awk.
ProgramarenGNU/Linux
100
TutorialesGNU/Linux:hackingparaprincipiantes
Comocrearunscriptenlalíneadecomando(shell
script)
Unshellscriptesunarchivoquecontieneunaseriedecomandos.Unaopciónsumamenteútilalahoradeautomatizar
tareasenGNU/Linux.Enesteejemplocrearemosunscriptquemuestreunaseriedenúmeros.
Palabrasclaves:shellscript,bash,programar.
Abrimosunterminalycreamoselarchivocontar_hasta_5.sh:
cat>contar_hasta_5.sh
Escribimoslosiguienteenélysalimosconctrl+D:
#!/bin/bash
#contar_hasta_5.sh:muestraunaseriedenúmeros
count=1
while[$count-le5];do
echo$count
count=$((count+1))
done
echo"Contarhasta5."
Ahoraprocederemosadarlepermisosdeejecuciónalarchivo:
chmod755contar_hasta_5.sh
Controlamosquetodoestécorrecto:
ls-lcontar_hasta_5.sh
`-rwxr-xr-x1usuariousuario147Out2016:53contar_hasta_5.sh`
Finalmenteloejecutamos:
./contar_hasta_5.sh
Resultado:
1
2
3
4
Comocrearunscriptenlalíneadecomando(shellscript)
101
TutorialesGNU/Linux:hackingparaprincipiantes
5
Contarhasta5.
Comocrearunscriptenlalíneadecomando(shellscript)
102
TutorialesGNU/Linux:hackingparaprincipiantes
Tutorialbásicocrontab
EnestetutorialveremoscomopodemoscrearyagendarunatareaenGNU/Linuxusandolautilidadcrontab
Palabrasclaves:crontab,programartarea,script.
Nota:sinosabeisutilizarvimosaconsejohacereltutorialdeesteeditorprimero.
Abrimosunterminalyescribimos:
crontab-e
Enesearchivocrontabtenemosqueescribirunaordendelasiguientemanera:
minutos(0-59)horas(0-23)dias(1-31)meses(1-12)dias_de_la_semana(0-6)orden_a_ejecutar
Podeisusarunasterisco(*)comounvalor.Porejemplo,usarunasteriscoparalasemanaharáqueelcomandoseejecute
cadasemana.
Ejemplo:Paraejecutarelcomando/usr/bin/ejemplo1alas10:30a.m.cadadiaescribimos:
2910***/usr/bin/ejemplo
Siquereisespecificarmultipleshorários,tendreisquesepararporcomaslosvalores.Enesteejemploelcomandose
ejecutarácada15minutos:
0,14,29,44****/usr/bin/ejemplo1
Unúltimoejemploseparandounrangodevaloresconunguión,vamosaejecutaramediodiatodoslosdíaspero
solamenteenlosprimerosseismesesdelaño:
012*1-6*/usr/bin/ejemplo1
ejemplo1esunscriptpreviamentecreadoconlastareasquequeremosautomatizar,porejemplounacopiadeseguridad,
unaactualizacióndelsistemaoperativo,etc.
Paralosarchivoscrontabquenecesitandepermisosdeadministradordebemosusar:
sudocrontab-e
Másinformaciónen:http://crontab.org/(idiomainglés)
Tutorialbásicocrontab
103
TutorialesGNU/Linux:hackingparaprincipiantes
ComandosdeiniciodelsistemaoperativoGNU/Linux
EnestetutorialveremosunaintroducciónaloscomandosejecutadoseneliniciodelsistemaoperativoGNU/Linux.
Palabrasclaves:modificarconfiguraciónusuario,rc.local,profile.
Cuandoelsistemaoperativoseinicia,tenemosarchivosqueejecutanlasórdenesbásicasdelsistema.Nosotrospodemos
veromodificaresosarchivosparaadaptarlosanuestrosgustos.rc.localeselarchivoqueseejecutajustoluegodelinicio
delsistema:
cat/etc/init.d/rc.local
profileseejecutaluegodeliniciodesesióndeusuário:
cat/etc/profile
Lasconfiguracionesparticularesdecadausuárioestánenelarchivo.profileeneldirectoriodelusuário,porej.:
cat.profile
#~/.profile:executedbythecommandinterpreterforloginshells.
#Thisfileisnotreadbybash(1),if~/.bash_profileor~/.bash_login
#exists.
#see/usr/share/doc/bash/examples/startup-filesforexamples.
#thefilesarelocatedinthebash-docpackage.
#thedefaultumaskissetin/etc/profile;forsettingtheumask
#forsshlogins,installandconfigurethelibpam-umaskpackage.
#umask022
#ifrunningbash
if[-n"$BASH_VERSION"];then
#include.bashrcifitexists
if[-f"$HOME/.bashrc"];then
."$HOME/.bashrc"
fi
fi
#setPATHsoitincludesuser'sprivatebinifitexists
if[-d"$HOME/bin"];then
PATH="$HOME/bin:$PATH"
fi
ComandosdeiniciodelsistemaoperativoGNU/Linux
104
TutorialesGNU/Linux:hackingparaprincipiantes
VariablesdelsistemaGNU/Linux
Enestetutorialveremosunaintroducciónalasvariablesdeambiente.
Lasvariablesdeambientesoninformacionesquedefinenparámetrosnecesariosparaelfuncionamentodelsistema
operativoydesusprogramas,porejemplo,eltipodeshellqueusaelusuário,sudirectorioprincipaloidioma.
Palabrasclaves:variablesdelsistemaoperativo,variablesusuario,set,PATH,profile.
Paraverlasvariablesescribimos:
set
UnavariableimportanteesPATH,éstainformaquedirectoriostienenarchivosejecutables.Paraverlosdirectoriosque
estáncomoPATH:
echo$PATH
Unejemplo,siyoestoyeneldirectoriopruebasyquieroejecutarunarchivo,tendríaquecolocarlotemporalmenteenla
variablePATH:
PATH=$PATH:/pruebas
Oeditaresavariablepermanentementedentrodelarchivo/etc/profile.
VariablesdelsistemaGNU/Linux
105
TutorialesGNU/Linux:hackingparaprincipiantes
TutorialAwkcomocomandoycomolenguajede
programación
EstetutorialesunabreveintroducciónalusodeawkcomocomandoycomolenguajedeprogramaciónenGNU/Linux
Palabrasclaves:awk,script.
Awknoessolounprogramautilitariosinotambiénunlenguajedeprogramación,loquelohaceútilalahoradecrear
scriptstambién.Fuediseñadoparaextraerdatosporloqueaquíveremosalgunosejemplos.
Veamoselprimero.Abrimosunterminalyescribimos:
dpkg-l|awk'{print$2}'>instalados.txt
Enestecasoawkcrearáunarchivollamadoinstalados.txtconunlistadodelasegundacolumnadelcomandodpkg-lque
muestraelnombredelosprogramasinstaladosennuestroordenador.
Siqueremosimprimirtodaslascolumnas:
dpkg-l|awk'{print$0}'>instalados.txt
Otroejemplo,enestecasoprogramandoelclásico"HolaMundo":
awk"BEGIN{print\"HolaMundo\"}"
Paraimprimirnuevenúmerosaleatorios:
awk'BEGIN{for(i=1;i<=9;i++)
printint(101*rand())}'
Contarlafrecuenciasdelaspalabrasdelarchivoinstalados.txt:
awk'BEGIN{FS="[^a-zA-Z]+"}\
{for(i=1;i<=NF;i++)words[tolower($i)]++}\
END{for(iinwords)printi,words[i]}'instalados.txt
Másejemplosen:http://www.linux-es.org/node/31
Elmanualcompleto:http://www.gnu.org/software/gawk/manual/gawk.html(idiomainglés)
TutorialAwkcomocomandoycomolenguajedeprogramación
106
TutorialesGNU/Linux:hackingparaprincipiantes
Bibliografía
Loslibroselectrónicoslospodeisdescargardemibloghttps://www.fortinux.com
PERPIÑAN,A.(2007).BásicamenteGNU/LINUXSegundaedición.SantoDomingo(Rep.Dominicana):ImpresosGamma.
SHOTTS,W.E.Jr.(2009).TheLinuxCommandLine.http://linuxcommand.org.Consultado:27/03/2013.
WILDING,M.,BEHMAN,D.(2005).Self-ServiceLinux®MasteringtheArtofProblemDetermination.USA:PrenticeHallBrucePerens’OpenSourceSeries.
KIRCH,O.(1999).GuíadeAdministracióndeRedesconLinux,(TraducciónProyectoLuCAShttp://es.tldp.org/).
Bibliografía
107
TutorialesGNU/Linux:hackingparaprincipiantes
AnexoA:Recursos
Linuxformscrach(LFS):Unproyectoqueproveeinstruccionespasoapasoparacrearnuestrapropiaversión
personalizadadeGNU/Linux.http://www.linuxfromscratch.org/index.html
Explainshell.com:Nosmuestralaayudadecadacomandoquenosotrosescribimos.Sumamenteútilparaentenderlo
queestamoshaciendo.http://explainshell.com/
Openvim.comUntutorialinteractivodeVim.Recomendable.http://www.openvim.com/
AnexoA:Recursos
108