Documente Academic
Documente Profesional
Documente Cultură
CURSOAVANZADODELINUX
NDICE
1 2 3 4 5 6 Terminalymodogrfico............................................................................... Gestordearranque........................................................................................ Creacindeusuarios..................................................................................... Configuracindelared................................................................................. Editararchivosdetexto................................................................................. 5.1 6.1 6.2 7 8 9 10 11 12 13 14 15 EditorVim............................................................................. Instalacindesderepositorios............................................... Descargaycompilacin........................................................ Instalarprogramas......................................................................................... 3 7 8 8 11 11 13 14 14 15 17 18 19 21 21 22 23 25 27 28 30 30 31 31 33 34 34
Permisosypropietarios................................................................................. Comandosdelamquina.............................................................................. Copiararchivos............................................................................................. Escritorioremoto.Vnc.................................................................................. ConectarseaunamquinadeLinuxdesdeWindows................................... Servidordepaginasweb............................................................................... Scripts........................................................................................................... Demonios...................................................................................................... FirewalleIptables......................................................................................... 15.1 Firewallparanuestramquina............................................... 15.2 Firewallparaunaredlocalconsalidaainternet................... 15.3 OtroejemplodeFirewall....................................................... 15.4 Logueoenredsincontrasea................................................
16
17
Anexo:Comandosdeinters..........................................................................
CURSOAVANZADODELINUX
CURSOAVANZADOLINUX AULASUNUCM
EstecursoestaorientadoapersonasqueyahayantenidoalgncontactoconLinux,peroque deseenalcanzarunmayorconocimientosobresufuncionamiento.Setratadeuncursodeunnivel bsico,peroenprofundidad,dondetrataremoslaadministracindeusuariosydearchivos,ascomo algunoscomandosqueserndegraninters.
Terminalymodogrfico
Shell El shell es el interprete de comandos. En DOS normalmente el shell es el command.com, en UNIX existen muchos shell usados habitualmente. Desde la sptima edicindeUNIXelshellporexcelenciaeselsh.FueescritoporStevenBourne,yesporeso queselosuelellamarBourneShell.EstdisponibleentodaslasversionesdeUNIXyeslo suficientementebsicocomoparaquefuncioneentodaslasplataforms. csh Unshellunpocomejorconrespectoalsheselcsh,quefueescritopor BillJoy,ydebesunombre,allenguajedeprogramacinC.Alhacerscriptsenesteshell puedeutilizarseunasintaxissimilaraladeC. ksh Otroshell,quecomoventajamanejaunhistorialdecomandos,eselksh (korn shell). Est basado en sh, con algunos agregados muy bsicos para hacerlo ms amigable. bash Uno de los shell ms avanzados, muy popular en la comunidad GNU/Linux.ElnombresignificaBourneAgainShell.TienelicenciaGNUysesueleincluir como shell predeterminadoenlasdistribuciones.Ofrecelasmismscapacidadesque csh, pero incluye funciones avanzadas, tanto para el usuario como para el programador. En particular,podremosaccederaunhistorialdeloscomandosejecutados, queseconserva inclusoalpasardeunasesinaotra,utilizandoloscursores.
CURSOAVANZADODELINUX
Hay muchas otras versiones de shell adems de estas. Pero el estilo generaldetodosesmuysimilar.
TERMINAL bash sh tcsh csh PROMPT usuario@sunny01:~$ $ sunny01:~$ %
Elpromptnosayudaasaberenquetipodeterminalestamos. Terminalbash: ~ pwd ls cd cd.. Tabulador clear cp w Indicaqueestamosenelhomedenuestrousuario Podemosverenquedirectorionosencontramos listalosarchivosenundirectorio. paraentrarenunacarpeta. parasalirdeundirectorio. Noscompletauncomando. Limpialaterminal. Copiaarchivosaunnuevoemplazamiento. Sirveparaverqueusuariosestanconectados.
Estilrecordarcomandoscomo:
Hayquetenerprecaucin,porqueLinuxdistingueentremaysculasyminsculas,asqueno serlomismoelusuariodenombreUsuarioqueeldenombreusuario. Otroscomandosquizmenosutilizadosperotambintilesson: mv Muysimilara cp,elcomando mv eselqueseutilizaparamover archivosdeunlugaraotro,oparacambiarleelnombreaunarchivo.Siejecutamos,mvviejonuevo, elarchivoviejohabrpasadoallamarsenuevo. Porotrolado,siejecutamosmvarchivo1archivo2directorio,losarchivosarchivo1yarchivo2se moverndentrodedirectorio. du Elcomandodu,DiskUsage,nosmuestraelespacioqueocupantodos losdirectoriosapartirdeldirectorioactual.Elnmerodelaprimeracolumnaeselespacioocupado poreldirectorioyestexpresadoenkb. dus nosmuestranicamenteeltotal. dua muestraloqueocupanlosarchivos,ademsdelosdirectorios. duh haceellistado,indicandolaunidad(humanreadable). duarchivonosdicecuntoocupaelarchivo. 4
CURSOAVANZADODELINUX
find El comando find permite encontrar archivos, utilizando diversas tcnicas.Enprincipio,siselepasacomoparmetronicamenteunadeterminadaruta,porejemplo find/home/user,elcomandobuscartodoslosarchivosydirectoriosqueseencuentrenapartirde esaruta.Utilizandoalgunosotrosparmetrosesposiblebuscarlosarchivospordiversoscriterios. find.name"hola.txt" encuentratodoslosarchivosllamadoshola.txtqueseencuentrena partirdeldirectorioactual.Lascomillasnosonobligatorias,perosonrecomendablessisequieren usaropcionesmscomplejas(porejemplo,utilizandometacaracteresdeshell,queseexplicanenla seccin4.1). findsize50kbuscalosarchivosqueocupan50kilobytesapartirdirectorioactual. findsize20c,buscarlosarchivosqueocupen20bytes. findsize5b,buscarlosarchivosqueocupen5bloquesde512bytescadauno. find /home/user empty busca todos los archivos que se encuentran vacos a partir del directorio/home/user.
CURSOAVANZADODELINUX od ElcomandoodOctalDump,nospermiteverbyteabyteel contenidodeunarchivo.Laprimeracolumnaesladireccindecadalneaquevemos.Utilizando lasdistintasopciones,podemosvisualizarloenvariosformatos: odarchivonosmuestraelcontenidodelarchivoexpresadoennmerosoctales,generalmente tomadosdeadosbytes. odbarchivonosmuestraelcontenido,ennmerosoctales,byteabyte. odcarchivonosmuestraloscaracteresqueformanelarchivo,unoporuno. odcbarchivonosmuestraloscaracteres,ydebajodecadacarcterelnmerooctaldelbyte. odharchivonosmuestraelcontenido,ennmeroshexadecimales,tomadosdeadosbytes.
less Elcomandolesspermitepaginarlasalidadeotroscomandos,obien, elcontenidodealgnarchivo. lessarchivo veremoslaprimerapginadelarchivo.Siestearchivoeslosuficientemente largo,podremosmovernoshaciaabajoyhaciaarribautilizando PageUp, PageDown,Home, End, Enter, los cursores, la barra espaciadora, etc. Tambin podemos realizar bsquedas dentro del archivo, para ello utilizamos la barra invertida \, seguida del patrn que queremos buscar. Por ejemplo,sitecleamos\consola,nosmostrarlaprimeraocurrenciadelpatrnconsola.Paraverla siguienteocurrencia,utilizamosn,yparaverlaocurrenciaanteriorN.Parasalir,utilizamosq. dpkg Sirveparaobtenerdetalles deprogramas queleindiquemos,como puedesersuubicacin,sutamao,laversinquetenemosinstalada....veamosejemplosdeuso: dpkg Sbin/programa Nosdirdondeestainstaladoprograma dpkglfirefox dpkgsfirefox librerasusa Nosdicelaversindelprogramafirefoxquetenemosinstalada Nosmuestramuchosdetalles,comocuantoocupaelprogramaoque
CURSOAVANZADODELINUX
Gestordearranque:
CURSOAVANZADODELINUX
Creacindeusuarios.
Podemoscrearusuariostantodeformagrficacomodesdeunaterminal.Estetrabajoslolo podrrealizarelrootounusuariosudable(yaseverqueesestoenelapartado6).Veamoslosdos modos: Formagrfica: EnelmenSistemaelegiremoslaopcinAdministracinydentrodeellaUsuariosygrupos.Aqu nosaparecernciertasopcionesacercadelanuevacuantacreada,comoporejemploqueterminal queremosqueutilicepordefecto. Modotexto: Utilizaremoselcomandoadduser. NOTA:existeotrocomandouseraddperoquenocreaelhomedelusuario Una vez tecleado adduserusuario nos pedirlacontraseadeste,asicomootrosdatos que podemosrellenarono,anuestraeleccin. Sepuedeigualmenteeliminarunusuarioconelcomandouserdelusuario,aunqueposteriormente habrqueborrarsuhome:rmr/home/usuario.
Configuracindelared
Para establecer la configuracin de nuestra redpodemos hacerlotanto en modo grfico comodesdenuestraterminal. Modogrfico: EnelmenSistemaelegirAdministracinydentrodeeste,Herramientasdered.
CURSOAVANZADODELINUX
CURSOAVANZADODELINUX Siqueremossabercualessonlasdnspodemosverloenelarchivocd/etc/resolv.conf
Podemos ver tambin las tarjetas de red con las que contamos, a travs del comando ipconfig.Aparecereth0eth1...tantascomotarjetastengamos,includaslasinalmbricas.Conlos comandosifconfigeth0down/uppodremosdesactivaryactivarlatarjetaquedeseemos. Comandoping: Estecomandoenvapaquetesaotramquinayesperaaqueselosdevuelva.Podemosverassihay algnfalloenlareddeunamquina.Parautilizarlopodemosutilizardiferentessintaxis: pingsunny01.fis.ucm.es ping147.96.67.155 pingwww.assaf.org (nombredelamquina) (IPdelamquina) (Conunadireccinweb)
10
Comandotraceroute Nosdicepordondepasanlospaquetesparallegardeunamquinaaotra.
Editararchivosdetexto
Seutilizanhabitualmentetreseditoresdetexto:gedit,emacsyvim(antesconocidocomovi). Unavezeneldirectorioenelqueseencuentreelarchivoaeditar,simplementetendremosque teclearelnombredeleditorautilizarseguidodelnombredelarchivo,porejemplo: cd/etc vimhosts Eso nos abrir una pantalla con el archivo, sobre la cual podremos ir realizando los cambios necesarios. 5.1 Editorvim: Vi(vim)esuneditordetextoparaconsola.EseleditordetextotradicionaldeUNIX,yen muchossistemseselnicodisponible,demaneraqueesimportantesaberusarlo,aunquesolosea bsicamente. Paracomenzaraeditarunarchivodeberemosescribir:vimarchivo,obienejecutarvi,yluego abrirelarchivoconelcomandoadecuado. Envimexistendosmodosdetrabajo:unmododeedicinyunmododecomandos.Aliniciarel programa,estamosenelmododecomandos.Paraingresaralmododeedicindebemosapretari,o bien,Insert.Paravolveralmododecomandos,utilizamoslateclaESC. Cuandoestemosenelmododeedicin,todoloqueingresemossertextodelarchivo.Cuando estemosenelmodocomandos,no.Avecesloqueescribamosnomostrarningunasalidainmediata enlapantalla.
11
CURSOAVANZADODELINUX Comandosbsicos :earchivo abreelarchivo. :q :q! :w :wq saledelprograma,solosiyasegrabaronloscambios. saledelprogramasingrabarloscambios. grabaelarchivo. grabaelarchivoyluegosaledelprograma. findelnea. iniciodelnea. anteriorpalabra. prximapalabra. derecha. izquierda. abajo. arriba. findearchivo.
:warchivo grabaelarchivoconesenombre(eq.GuardarComo)
TeclasdeMovimientos $ 0 b w l h k G j
Alamayoradeestoscomandosselespuedeagregarunnumeroalprincipio.Elefectodeeste nmerosereldemultiplicarelefectodelcomandoporelnmeroingresado.Porejemplo,10jse mueve10lneashaciaabajo. EnelcasodeG,elnmeroqueseleagregueantespuedeserelnmerodelneaalcualdeseamos ir.Sideseamosiralaprimeralneadelarchivo,debemosescribir1G. ManejodeTexto Comoencualquiereditordetexto,podemoscortar,copiarypegar. dd dw d$ p u yy x cortalalnea. cortalaproximapalabra. cortahastaelfinaldelalnea. pegaloquesehayacortadoocopiado (undo)deshacelaultimaaccin. copialalnea. cortaelcarcter.
Muchosdeestoscomandostambinaceptanunnmeroquelospreceda,detalmaneraquese puedenseleccionarvarioscaracteres,palabrasolneasaunmismotiempo. 12
Instalarprogramas
Sloelsuperusuariorootpuedeinstalartodotipodeprogramas.Unusuarionormalsolo podrinstalarprogramasensuhome. Sedenominausuariosudableaaquelquepuedehacerlomismoqueelrootperoatravsdel comandosudo. NOTA: Ubuntunotraepordefectounusuarioroot,sinoqueelprimerusuarioquesecreaserun usuarioconderechosdesudo. Privilegios: Losprivilegiosdelosusuariosseencuentranreflejadosenenarchivo/etc/sudoers. Podemosmodificarestearchivoconuneditordelosvistosanteriormente,porejemplo: sudovim/etc/sudoers Estearchivotieneunalneacomolasiguiente: #userprivilegespecification root ALL=(ALL)ALL usuarioALL=(ALL)ALL
13
Unrepositorioofreceprogramasyactualizaciones.Sepuedendescargarprogramasdesdeun repositoriotantoenmodogrficocomodesdelaterminal: Modogrfico: Instalar enelmenAplicaciones,elijamosAadiryquitar Actualizar en el men Sistema, elegir Administracin, luego Orgenes del softwareyporultimoGestordeactualizaciones. Modoterminal : Instalar: aptget aptitude realizaunainstalacinbsica realizaunaactualizacinmscompleta. Instalaprograma Desinstalaprograma
aptgetinstallprograma aptgetremoveprograma
Paraquesolounusuariopuedautilizarunprogramalodescargaremosensuhome,mientras quesideseamosquetodoslosusuariospuedanutilizarlologuardaremoseneldirectorio/opt. Losprogramaspropiosdeladistribucinqueestnenlosrepositoriosseguardarandentrodel directorio/usr. Al descargarnos un programa podemos encontrar archivos comprimidos en diferentes formatos: gzip .tar .gzip.tar Comopodemosverenlaimagensiguienteestosarchivossuelenaparecerencolorrojo.
14
CURSOAVANZADODELINUX
Paradescomprimirunarchivodesdelaterminalutilizaremoselcomando tarxvzfnombredelarchivo.tar.gz Tambin podemos encontrar archivos sources, que vienen escritos en lenguaje C y hay que traducirlosalenguajeLinux.Paraellousamoslacompilacin: ./configure make makeinstall tieneencuentalascaractersticasdenuestramquina compila(enocasionestambininstala) Instala
Permisosypropietarios
15
CURSOAVANZADODELINUX Fijmonosenlacarpetadenombre blimps3.8 quetienepermisosdrwxrxrx. Vayamoscarcterporcarcterviendosusignificado: siesdirectorionosapareced siesarchivonosaparece(comoporejemploencurso_mantenedores.pdf) siesunenlace(linkoicono,accesodirecto)aparecel Segundoconjuntodecaracteres Ultimoconjuntodecaracteres grupo(i.e.otros) r:lectura w:escritura x:ejecucin(salencomoazulados) Sideseamoscambiarlospermisosdeunarchivoutilizaremoselcomandochmod,conlasiguiente estructura: chmodXYZnombrearchivo dondeXserunnumeroqueespecifiquelospermisosqueledaremosalpropietario,Yespecificara lospermisosqueledamosalgrupoyZespecificaralospermisosqueledamosalrestodeusuarios sobreelarchivo.Esosnmerospuedenser: 0 1 3 4 5 6 7 noledoypermisos permisosdeejecucin(x) permisosdeejecucinyescritura(PERONOLEER!)(rx) permisodelectura(r) permisosdelecturayejecucin(rx) permisodelecturayescritura(rw) permisodelectura,ejecucinyescritura(rwx) rxr:nosindicalospermisosdelgrupo rx:lospermisosdelosquenosonusuarioprincipalo Primerconjuntodetrescaracteres rwx:indicacualessonlospermisosdelpropietario
Ahoraveamosquesignificancadaunadelasletras:
16
CURSOAVANZADODELINUX El segundo carcter indica si queremos dar ms permisos (en ese caso pondremos+)osiqueremosquitarpermisos(pondremos,comoenelejemplo,un) Elultimocarcterindicaaquepremisosnosreferimos,x:ejecucin,w:escritura,r:lectura. Cambiarpropietario: Elcomandoautilizarserchownconlasiguientesintaxis: chownnuevopropietarionombrearchivo Porejemplosiescribimosenlaterminal chownpepeArchivo estaremosdiciendoqueelnuevopropietariodelarchivodenombreArchivo,serpepe. Podemoscambiaralavezgrupoypropietario,siguiendolasintaxissiguiente: chownnuevopropietario:nuevogruponombrearchivo Tambin podemos cambiar solamente el grupo propietario del archivo con el comando chgrpylasiguientesintaxis: chgrpnuevogruponombrearchivo
Comandosdelamquina
17
CURSOAVANZADODELINUX Con el comando locate programa podemos encontrar donde esta ubicado el programaquequeremosejecutar.
SiqueremosejecutarporejemploelprogramaOpenOfficepodemoshacerlodedosmodos: tecleandoenlaconsoladirectamenteooffice tecleandoenconsolalaubicacindelejecutable/usr/bin/ooffice. Cadausuarioensuhomepuedeeditarelarchivo.bashrcparaquealgnprogramapuedaser ejecutadosimplementetecleandosunombreenlugardetenerquetecleartodalaruta.Hayquetener encuentaqueelarchivobashrcesunarchivoocultoyqueparaabrirloyeditarlotendremosque ponerenlaterminal: vim.bashrc (hemosaadido.paraqueabraelarchivooculto) Veamosunejemplo: Aadamosennuestrobashrclasiguientelnea: exportGADDIR=/opt/grads/data Deestaformaseejecutaraelprogramamscmodamente,ynohasidonecesariomsqueeditar unasolavezelbashrc NOTA:Paraqueseaefectivoelcambiotendremosquecerrarlaterminalyabrirunanueva.Si queremosqueelcambioafecteatodoslosusuarios,lalnealatendremosqueaadiralarchivo bash.bashrcquesesitaeneldirectorioetc.
Copiararchivos
Comoyavimosalcomienzodelcurso,existeuncomandoquenossirveparacopiararchivos deunaubicacinaotra.Esecomandoeselcp. Lasintaxisautilizarconestecomandoeslasiguiente: cpdirectorio1directorio2 Deestaformael directorio1 sehabrcopiadoenunanuevaubicacindadapor directorio2.Por ejemplo: cp/etc/vim/vimrc/home/npebm/.vimrc 18
CURSOAVANZADODELINUX Aselarchivovimrcquesesituabadentrode/etc/vimlohabremoscopiadoalhomedel usuarionpebmconelnombre.vimrc Siloquequeremoscopiaresunacarpetacompletaynosolounarchivoutilizaremoselcomando cpr Comandoscp: Este comandoes anlogoal cp peroseutilizaparacopiararchivosdesdeunordenador remoto,esdecir,siporejemplohemosinstaladounprogramaexternoalaslibrerasenunodelos ordenadoresdelaulayqueremostrasladarloalresto.Lasintaxisparautilizarestecomandoesla siguiente: scparchivoorigenusuarioremoto@mquinaremota:destino Porejemplo,siennuestrohometenemoselarchivoStarOffice.odtyqueremostrasladrselo aotrousuariodenombreusuarioquesesitaenlamquinasunny02,haramos: scp/home/npebm/StarOffice.odtusuario@sunny02.fis.ucm.es:/home/usuario Deestemodohabremostrasladadoelarchivoqueelusuario npebm teniaensuhome,al homedelusuariodenombreusuario,queestabaenlamquinasunny02 Aligualqueconelcomandocp,siloquequeremoscopiardeformaremotasoncarpetasen lugardearchivosutilizaremoselcomandoscpr.Hayquetenercuidadoalutilizarestecomando porquesiponemosporejemplo: scpr/home/npebm/StarOffice.odtusuario@sunny02.fis.ucm.es:/home/usuario/ secrearaunacarpetavacaentreelusuarioyelarchivo
10
Escritorioremoto.Vnc(VisualNetworkComputing)
Enelcasodetenervariosordenadoresconectadosenredennuestracasauoficinapuede resultarmuyinteresantepodercontrolaryaccederaalgunosdeellos sintenerqueestarsentados fsicamentedelante. Estoesposiblegraciasalescritorioremoto.Elordenadoralquequeremosaccederhacede servidor. El ordenador desde el que accedemos es el cliente de escritorio remoto. Tanto para establecerelservidorcomoelclientedeescritorioremotonecesitamos configurarelsistemapara permitiryrealizarconexiones. Vayamosporpartes.Primeroelservidor,stepuedetenerinstaladocualquiersistemaoperativoque permitaaceptarconexionesremotas. En Ubuntu es tan fcil como permitir que los usuarios remotos vean mi escritorio desde Sistema>>Preferencias>>EscritorioRemoto Unavezquetenemoselservidorconfiguradopasamosaverelclientedeescritorioremotoque necesitaremosenelequipodesdeelquequeremosconectarnos. Si tenemos instalado Ubuntu u otra ditribucin de GNU/Linux podemos emplear el cliente de TerminalServer,queencontraremosenelmenAplicaciones>>Internet>>ClientedeTerminal Server 19
CURSOAVANZADODELINUX Configuramos la pantalla que nos aparecer con los datos adecuados para nuestroservidordeescritorioremotoyhacemosclicenConectar.Sitodohaidobienapareceruna ventanaconelescritoriodelotroordenador,porlaquepodremosmovernosyinteractuarcomosi estuvisemossentadosdelante. ElprogramaquemsseutilizaparaestatareasedenominaVNC,siglasde VirtualNetwork Computing,yloquehaceespermitiraunordenadorremotousarsupropiapantalla,tecladoyratn comosifueranlospropios.Vamosaverdetenidamente,pasoapaso,elprocesodepuestaenmarcha deesteprograma. Alinstalarelprograma,cuandonosofrezcaseleccionarloscomponentesainstalar,debemos diferenciarentresilohacemosenelclienteoenelservidor,enelcasodelservidor,instalamoslas dosopciones,puesvaahacertantolasvecesdeservidorcomoclientedesmismoodeotramqui na.Paraelordenadorcliente,encambio,tanslonecesitamosinstalarlaopcinVNCViewer,pues vamosausarloparavisualizarelescritoriodeotroordenador. Unavezqueyatenemosinstaladaslasdosversiones,elservidoryelvisorde datos,procedemosaprepararelservicio.Enelordenadorquehacelasvecesdeservidor,debemos arrancarelprogramaRunVNCServer.Nadamsarrancar,senospresentarunaventanaenla queharemosunaconfiguracinrpidadelaspropiedadesdelservidor.Losparmetrosyopciones quevienenpordefectosuelenserperfectamentevlidas,ytansloestsobligadoaintroducirla contraseadeaccesoalservidor,puessinellanotedejararrancar.Unavezintroducida,yapuedes pincharenOK,conloquesecerrarlaventana,yteapareceruniconoenlazonainferiorderecha delapantalla. Ahoradebespasaralordenadorqueharlasfuncionesdecliente.Aqudebesarrancarel programaRunVNCViewer.Laventanaquesetepresentaenprimerlugartesolicitaelnombrede lamquinadondetequieresconectar.Estadenominacinlapuedesentregartantocomonombrede red,comodirectamentecomodireccinTCP/IP.Acontinuacintepreguntarlacontraseaydebe rsindicarlaqueantesescribiste. Ahorasetepresentarunanuevaventanaquetendrensuinteriorelcontenidodelescrito riodelordenadorremoto,quepodrsmanejardesdetuordenador,contupropiotecladoyratn.De hecho,todaslasaccionesquerealicesenremoto,semostrarntantoenlaventanalocalcomoenla pantallaremota. Vncesunprogramadesoftwarelibrebasadoenunaestructuraclienteservidorelcualnos permitetomarelcontroldeunordenadorservidorremotamenteatravsdeunordenadorcliente.Lo podemosencontrardentrodelmenAplicaciones,seleccionandoInternetyposteriormenteVisorde escritorios remoto. Slo podemos ver mquinas en modo servidor que tengan instaladas las siguientesaplicaciones: vncjava x11vnc x11vncstorepasswd x11vncviewonly eselclientedeterminalserver Siqueremosponerunacontrasea Parapoderutilizarelratndesdefuera Laaplicacinx11vncsirveparaponerlamquinaenmodoservidor.
20
CURSOAVANZADODELINUX
11
ConectarseaunamquinaconLinuxdesdeWindows.
Si deseamos desde nuestro ordenador en casa con Windows, conectarnos remotamente a otra mquinaquetengaLinux,podemosutilizarlassiguientesaplicaciones: putty.exe nonecesitainstalacin.Nosproporcionaunaterminaldelamquinaalaque noshayamosconectado
funcionacomoelprotocolossh permiteverlosescritoriostantodenuestroequipocomodelequipoalquenos
Existelaaplicacin xming queusasimultneamentelosprotocolos sshxyxdmcp,yque permiteusarlosprogramasdeWindowsdesdeLinux Ademstenemosanuestradisposicin: cygwin wine paquetequefuncionaenWindowsysirveparacorreraplicacionesdeLinux paqueteparaLinuxquepermitecorrerprogramasdeWindows.
12
ServidordepginasWeb
Un servidor Web no es ms que un programa que ejecuta de forma continua en un ordenador (tambin se utiliza el trmino para referirse al ordenador que lo ejecuta), mantenindose a la espera de peticiones por parte de un cliente (un navegador de Internet) y que contesta a estas peticiones de forma adecuada, sirviendo una pgina Web que ser mostrada en el navegador o mostrando el mensaje correspondiente si se detect algn error.
21
CURSOAVANZADODELINUX Instalar un servidor Web en nuestro PC nos permitir, entre otras cosas, poder montar nuestra propia pgina Web sin necesidad de contratar hosting, probar nuestros desarrollos en local, acceder a los ficheros de nuestro ordenador desde un PC remoto (aunque para esto existen otras alternativas, como utilizar un servidor FTP) o utilizar alguno de los programas basados en Web. Uno de los servidores Web ms populares del mercado, y el ms utilizado actualmente, es Apache, de cdigo abierto y gratuito, disponible para Windows y GNU/Linux, entre otros.
13
Scripts
Todoslosscriptsdebenempezarconunconjuntodecaracteresconocidocomoshabangy quees: #!/bin/bash Alahoradeescribirunscriptpodemoscrearvariablesqueposteriormentepodremosllamar dentrodelmismoscript.Porejemplo: ConA=7 estaramosdefiniendolavariableAconelvalor7 Con$A estaramosllamandoalavariableAcuyovaloryahabasidodefinido. Obviamente podemos hacer que A fuera un vector o cualquier otro conjunto de caracteres u operacionesmscomplejo,perostoseveenotrocurso,dedicadosimplementealacreacinde scripts. Elcomandoreadescapazdeleerloqueelusuariointroduceporelteclado: readn nosdevuelveelnmerodecaracteres readp nosdevuelveunafrase readd sirveparadelimitar Podemostambindetectarerroresennuestroscriptsiloiniciamosconlasiguientesintaxis: #!/bin/bashx|v Alhaberaadidoxsenosmostraraninstruccionesantesdeejecutarelscriptyalaadirvnos pondrlasvariablesquehemosdefinido,seguidasdesuvalor. Loscomandosmsutilizadosenlacreacindescriptsson: if equivaleaunsi.Lasintaxisesifcondicin.Esnecesariocerrarloconunfi else elif equivaleaunelse+if.Noesnecesariocerrarlo case se utiliza cuando queremos reflejar varios casos de operacin en nuestro script.Esnecesariocerrarloconunesac. while equivale a un mientras que,y sirve para indicarle al script,por ejemplo, cuandodebedejardeejecutarse,ocuandocambiareltipodeejecucin do;done
22
CURSOAVANZADODELINUX
14
Demonios
Los daemons (odemonios)nosonmsqueunprocesoqueseejecutaensegundoplano. Estos demonios ejecutan diferentes funciones y proporcionan ciertos servicios, pero sin la interaccindelusuario;sonprocesosdelosqueno"notamos"suejecucin. Los demonios pueden ser iniciados al arrancar el sistema, al entrar en un nivel de ejecucin determinado, o simplemente cuando nosotros los iniciemos. Veremos de qu modo podemos controlarnosotrosmismoslosdemoniosycmopodemoshacerqueseinicienautomticamente. Controldedemonios Losprogramasqueejecutamoscomodemoniospuedenestarubicadosencualquierpartedel disco,perotienenunpuntoencomn:todosutilizanunscriptparaseriniciados/parados,yestos scriptsseencuentraneneldirectorio:/etc/init.d/
Lasintaxishabitualparainiciar/parardemonioses: /etc/init.d/<nombre_demonio>start /etc/init.d/<nombre_demonio>stop /etc/inittab 0 3 5 6 halt multisistema entornogrfico reboot etc/rc0 etc/rc3 etc/rc5 etc/rc6 (para iniciar (paradetenerlo) el demonio)
Serconvenienteconocerlosrunlevels:
23
CURSOAVANZADODELINUX Scriptspropios Apartedelosdemoniosdelsistemaylosdemoniosdedeterminadasaplicaciones,nosotros tambin podemos crear nuestros scripts para iniciar/parar/reiniciar los programas que nosotros queramos poner como demonios. nicamente hemos de crear un script que siga la siguiente sintaxis:
#!/bin/sh case "$1" in start) # cdigo para iniciar el demonio/programa ;; stop) # cdigo para parar el demonio/programa ;; restart) # cdigo para reiniciar el demonio/programa ;; esac
Estonosdicequecuandoejecutemos elscriptylepasemoselparmetro start,nosiniciarel demonio, cuandolepasemos elparmetro stop lodetendr,ycuandolepasemos elparmetro restart loreiniciar.Normalmenteslo root tienepermisosparainiciar/pararlosservicios,pero tododependedelospermisosqueselehayanpuestoalscript. Podemoscrearunusuarioquetengaprivilegiosparalacreacindescriptsydemodoqueno lesearequeridalacontrasea.Paraellotendremosqueaadirunalneaenelarchivosudorescomo yavimosquesehaciaenelapartado6deestecurso,cuandohablamosdeprivilegiosparainstalar programas.Recordemoselaspectodeesearchivo:
24
CURSOAVANZADODELINUX Tenemosdosopciones: Aadirunanuevalneaen #Userprivilegespecification script ALL=NOPASSWD:/etc/init.d/script Aadirunalneaen #Cmndaliasspecification IPW:/etc/init.d/script1,/etc/init.d/script2 scriptALL:NONPASSWD:PW
15
FirewalleIPtables
Los firewalls se pueden usar en cualquier red. Es habitual tenerlos como proteccin de internetenlasempresas,aunqueahtambinsuelentenerunadoblefuncin:controlarlosaccesos externoshaciadentroytambinlosinternoshaciaelexterior;estoltimosehaceconelfirewallo frecuentementeconunproxy(quetambinutilizanreglas,aunquedemsaltonivel). Seaeltipodefirewallquesea,generalmentenotendrmasqueunconjuntodereglasenlas queseexaminaelorigenydestinodelospaquetesdelprotocolotcp/ip.Encuantoaprotocoloses probablequeseancapacesdefiltrarmuchostiposdeellos,nosololostcp,tambinlosudp,los icmp,losgreyotrosprotocolosvinculadosavpns.Estepodraser(enpseudolenguaje)unel conjuntodereglasdeunfirewallcomoeldelgrfico: PoliticapordefectoACEPTAR.
25
CURSOAVANZADODELINUX TodoloquevengadelaredlocalalfirewallACEPTAR Todoloquevengadelaipdemicasaalpuertotcp22ACEPTAR Todoloquevengadelaipdecasadeljefealpuertotcp1723ACEPTAR Todoloquevengadehora.rediris.esalpuertoudo123ACEPTAR TodoloquevengadelaredlocalyvayaalexteriorENMASCARAR Todoloquevengadelexterioralpuertotcp1al1024DENEGAR Todoloquevengadelexterioralpuertotcp3389DENEGAR Todoloquevengadelexterioralpuertoudp1al1024DENEGAR Endefinitivaloquesehacees: HabilitaelaccesoapuertosdeadministracinadeterminadasIPsprivilegiadas Enmascaraeltrficodelaredlocalhaciaelexterior(NAT,unapeticindeunpcdelaLANsale alexteriorconlaip pblica),parapodersalirainternet Deniegaelaccesodesdeelexteriorapuertosdeadministracinyatodoloqueesteentre1y 1024. IPtables es un sistema de firewall vinculado al kernel de Linux que se ha extendido enormementeapartirdelkernel2.4deestesistemaoperativo.Aligualqueelanteriorsistema ipchains,unfirewalldeiptablesnoescomounservidorqueloiniciamosodetenemosoquese pueda caer por un error de programacin(esto es una pequea mentira, ha tenido alguna vulnerabilidad que permite DoS, pero nunca tendr tanto peligro como las aplicaciones que escuchanendeterminadopuertoTCP):iptablesestaintegradoconelkernel,espartedelsistema operativo.Unfirewalldeiptablesnoessinounsimplescriptdeshellenelquesevanejecutandolas reglasdefirewall. Comoseveenelsiguientegrfico,bsicamentesemirasielpaqueteestadestinadoalapropia mquinaosivaaotra.Paralospaquetes(odatagramas,segnelprotocolo)quevanalapropia mquinaseaplicanlasreglasINPUTyOUTPUT,yparafiltrarpaquetesquevanaotrasredeso maquinasseaplicansimplementereglasFORWARD.INPUT,OUTPUTyFORWARDsonlostres tiposdereglasdefiltrado.PeroantesdeaplicaresasreglasesposibleaplicarreglasdeNAT:stas seusanparahacerredireccionesdepuertosocambiosenlasIPsdeorigenydestino.
26
CURSOAVANZADODELINUX
15.1 Firewallparanuestramquina VamosaveracontinuacinunejemplodecomocrearconIptablesunfirewallparanuestra maquina.Lounicoquetendriamosquehacerseriaunscriptdeshellenelquesevayanaplicando reglas.LosscriptsdeIPtablespuedenteneresteaspecto: #!/bin/sh ##SCRIPTdeIPTABLESejemplodelmanualdeiptables ##Ejemplodescriptparaprotegerlapropiamquina echonAplicandoReglasdeFirewall... ##FLUSHdereglas iptablesF iptablesX iptablesZ iptablestnatF ##Establecemospoliticapordefecto iptablesPINPUTACCEPT iptablesPOUTPUTACCEPT iptablesPFORWARDACCEPT iptablestnatPPREROUTINGACCEPT iptablestnatPPOSTROUTINGACCEPT ##Empezamosafiltrar #Ellocalhostsedeja(porejemploconexioneslocalesamysql) /sbin/iptablesAINPUTilojACCEPT #AnuestraIPledejamostodo iptablesAINPUTs195.65.34.234jACCEPT #AuncolegaledejamosentraralmysqlparaquemantengalaBBDD iptablesAINPUTs231.45.134.23ptcpdport3306jACCEPT
27
CURSOAVANZADODELINUX #AundiseadorledejamosusarelFTP iptablesAINPUTs80.37.45.194ptcpdport20:21jACCEPT #Elpuerto80dewwwdebeestarabierto,esunservidorweb. iptablesAINPUTptcpdport80jACCEPT #Yelresto,locerramos iptablesAINPUTptcpdport20:21jDROP iptablesAINPUTptcpdport3306jDROP iptablesAINPUTptcpdport22jDROP iptablesAINPUTptcpdport10000jDROP echo"OK.Verifiquequeloqueseaplicacon:iptablesLn" #Findelscript Elscriptessimple,conunaspocasreglasconlasquecerramospuertosalpblicoalosque notienenporqueteneracceso,salvoel80.PerosinosdamoscuentanosefiltraelUDPnielICMP. Esmuyprobablequeelsistematengaalgnpuertoudpabierto,yademspeligrosocomoelSNMP. Paraevitarproblemas,alfinaldelscriptpodemosaadirlaordendecerrarelrangodepuertosdel1 al1024,quesonlosreservadostantoparatcpcomoudp. ... ...
#Elpuerto80dewwwdebeestarabierto,esunservidorweb. iptablesAINPUTptcpdport80jACCEPT #Cerramosrangodelospuertosprivilegiados.Cuidadoconestetipode #barreras,anteshayqueabriralosquesitienenacceso. iptablesAINPUTptcpdport1:1024 iptablesAINPUTpudpdport1:1024 #Cerramosotrospuertosqueestanabiertos iptablesAINPUTptcpdport3306jDROP iptablesAINPUTptcpdport10000jDROP iptablesAINPUTpudpdport10000jDROP echo"OK.Verifiquequeloqueseaplicacon:iptablesLn" #Findelscript
28
Qu es lo que hace falta? Obviamente, una regla que haga NAT hacia fuera (enmascaramientoeniptables),conloqueseharadosvecesNATenelfirewallyenelrouter.Entre elrouteryelfirewalllonormalesquehayaunaredprivada(192.168.1.1y192.168.1.2porejemplo), aunquedependiendodelasnecesidadespuedequelosdostenganIPpblica.Elroutersesupone quehaceunNATcompletohaciadentro(quizsalvopuerto23),oseaquedesdeelexteriornose llegaalroutersinoquedeformatransparentese"choca"contraelfirewall.Lonormalenestetipo defirewallsesponerlapolticapordefectodeFORWARDendenegar(DROP). Veamoscomoseraestefirewall:
!/bin/sh ##SCRIPTdeIPTABLESejemplodelmanualdeiptables ##Ejemplodescriptparafirewallentreredlocaleinternet echonAplicandoReglasdeFirewall... ##FLUSHdereglas iptablesF iptablesX iptablesZ iptablestnatF ##Establecemospoliticapordefecto iptablesPINPUTACCEPT iptablesPOUTPUTACCEPT iptablesPFORWARDACCEPT iptablestnatPPREROUTINGACCEPT iptablestnatPPOSTROUTINGACCEPT ##Empezamosafiltrar ##Nota:eth0eselinterfazconectadoalrouteryeth1alaLAN #Ellocalhostsedeja(porejemploconexioneslocalesamysql) /sbin/iptablesAINPUTilojACCEPT #Alfirewalltenemosaccesodesdelaredlocal iptablesAINPUTs192.168.10.0/24ieth1jACCEPT #Ahorahacemosenmascaramientodelaredlocal #yactivamoselBITDEFORWARDING(imprescindible!!!!!)
29
CURSOAVANZADODELINUX
iptablestnatAPOSTROUTINGs192.168.10.0/24oeth0jMASQUERADE #Conestopermitimoshacerforwarddepaquetesenelfirewall,osea #queotrasmquinaspuedansaliratravesdelfirewall. echo1>/proc/sys/net/ipv4/ip_forward ##Yahoracerramoslosaccesosindeseadosdelexterior: #Nota:0.0.0.0/0significa:cualquierred #Cerramoselrangodepuertobienconocido iptablesAINPUTs0.0.0.0/0ptcpdport1:1024jDROP iptablesAINPUTs0.0.0.0/0pudpdport1:1024jDROP #Cerramosunpuertodegestin:webmin iptablesAINPUTs0.0.0.0/0ptcpdport10000jDROP echo"OK.Verifiquequeloqueseaplicacon:iptablesLn"
15.3 UnejemplomsdeFirewall Otraformadecrearunfirewallesmediantelosarchivos/etc/host.denyy/etc/host.allow Enelprimeroespecificaremoslospuertosylasmquinasquenodejaremosacceso,enelsegundoa lasquesselodejaremos. Ejemplohost.deny ALL:ALLEsteeselmodopnico,cerramostodaslasconexionesentrantes SSH:ALLCerraremostodaslasconexionesentrantesporelpuertossh. ALL:ipCerraremoslaentradaalaipespecificadaatodaslasconexiones. Sicombinamoslasordenesdehost.allowconhost.denypodemoscrearunfirewallamedida. 15.4 Logueoenredsincontrasea Muchasvecesdebemosejecutarrdenesremotas,mediantescriptsodemoniosyparaello necesitamosunaformadeloguearnosporsshsintenerquedarelpassword. Porcuestionesdeseguridad,paraestascosascrearemosunusuario,puedehacersecomorootpero esmsinseguro. Esnecesarioeliminarcualquierfingerprintquepuedallegaratenerregistradolamquina clientequeapuntealamquinaservidorutilizandorootuotrousuariodistintoalquevaagenerarel tnelautomticamente.Paraesto,enelclienteejecutamos:
/root/.ssh #vim known_hosts
buscamoslaentradaqueapuntaalservidorylaeliminamos.Obieneliminamostodoel archivo.
30
16
CopiasdeSeguridad
Esmuyimportanteguardarunacopiadenuestrosarchivosperidicamenteparaevitar prdidasdeinformacin. Vamosavervariasformasdehacerlo:porunaparteharemosbackupsdeficherosydirectorios,esto nospermitirpoderrestaurararchivosodirectoriosdemaneraindividualyporotraharemosuna copianospermitirrecuperarnuestrosistemaencasodeurgencia. Enamboscasos,eldirectoriodedestinopuedeserlocaloremoto. 16.1 Backups de direcorios y ficheros
Setratadehacerunbackupdetodoslosarchivosdenuestrousuario.Adems, mantendremosunhistricodebackups,haremosunacopiadiaria(lunes,martes,mircoles,etc.), cadalunesmachacaremoslacopiadellunesanterioryascontodoslosdas. Elprocedimientoessencillo,elegiremoslosdirectoriosyficherosdelosquequeremoshacerel backup,yloscopiaremos. cp -rp /home /media/sdb/backup/domingo Estotalmentefuncional,perolaverdadesquenoeseficiente,elproblemaestenquecada lunesnosharunacopiacompletadetodoslosarchivosquetenemoseneldirectorio,cuandoloque seriadeseableesqueslocopiaralosmodificadosoloscreadosdesdelltimobackup.
31
CURSOAVANZADODELINUX Nohayproblema,tenemosotrainstruccinquenosofreceestafuncin. rsync -altgvbp /home/banyut /media/sdb5/backup/domingo Puedeserinteresantehacerloenformatocomprimido,paraellogeneraremosun.tar He creado la carpeta /backups en el raz que es donde se guardar el script y los archivos tar.gz a transmitir. El script lo llamo backup.sh y debe tener permisos de ejecucin ( chmod 744 ). A continuacin se detalla el cdigo de backup.sht :
#!/bin/bash ########################################################### # Script de backup automatico # ########################################################### # ---------------- Asignacion de variables ----------------# Esta variable es igual al nombre del dia actual # (se utilizara mas adelante para darle nombre al archivo) DIA=`date +%A` #Directorios a backupear DIRECTORIOS= "/usr/local/bin /usr/local/sbin /etc" #------------------- Realizacion del backup --------------cd /backup logger "** Realizando Backup correspondiente al dia $DIA **" if [ -f $DIA.tar.gz ];then rm $DIA.tar.gz fi tar -czf $DIA.tar.gz $DIRECTORIOS &> /dev/null logger "** Realizando transferencia **" scp $DIA.tar.gz ipdestino logger "** Transferencia del backup finalizada **"
La variable $DIA graba el nombre en ingls del da actual. Con esto se logra que cada backup dure una semana ya que el script pisa un archivo con el mismo nombre (en realidad lo borra primero y regenera despus). La variable $DIRECTORIOS contiene la ruta de los directorios a backupear separadas por un espacio. Las variables $DEST y $PUERTO indican parmetros para realizar la transferencia. Por ltimo se genera una tarea en CRON para ejecutar el script una vez por da:
# backup automatico 30 20 * * * root /bin/sh /backup/backup.sh
32
CURSOAVANZADODELINUX 16.2- Backup de recuperacin En este tipo de backups, lo que buscamos es realizar una copia tal cual de nuestro disco. Utilizaremos el comando dd El comando dd (duplicate disk) es un comando bastante til para transferir datos desde un dispositivo/archivo hacia un dispositivo/archivo/etc. La sintaxis bsica del comando es la siguiente: dd if=origen of=destino donde if significa "input file", es decir, lo que quers copiar y of significa "output file", o sea, el archivo destino (donde se van a copiar los datos); origen y destino pueden ser dispositivos (lectora de CD, diskettera, etc.), archivos, etc. Copiando Diskettes: Primero insertamos el diskette origen y escribimos lo siguiente en una consola: dd if=/dev/fd0 of=~/diskette.img despus insertamos el diskette destino (en blanco) y escribimos lo siguiente: dd if=~/diskette.img of=/dev/fd0 nos queda eliminar la "imagen" que creamos y listo... rm -f ~/diskette.img NOTA: El ~ significa "tu directorio home", es similar a escribir $HOME Manejo de errores durante la copia: Es posible que durante la copia o duplicacin de un diskette se encuentren errores en la superficie del mismo. Para evitar que este error nos impida copiar los datos "buenos" del disco podemos hacer lo siguiente: dd conv=noerror if=/dev/fd0 of=~/imagen_disco_con_errores.img NOTA: la opcin noerror hace que se contine con la copia aunque se produzcan errores de lectura Haciendo imgenes ISO de un CD: La forma mas fcil y efectiva de crear nuestras "imagenes" de CD es la siguiente: dd if=/dev/cdrom of=micd.iso El comando dd tambin sirve para copiar particiones o discos completos unos sobre otros. Bsicamente podemos decir que mediante dd podemos "clonar" particiones o nuestro disco rgido completo. Para hacer esto hac lo siguiente: dd if=/hdxa of=/hdyb dd if=/hdx of=/hdy (copia una particin en otra) (copia de un disco duro en otro)
donde: x: disco rgido origen,y: disco rgido destino, a: particin origen, b: particin destino. NOTA: Es necesario que sepas como se definen los discos y particiones en Linux. 33
CURSOAVANZADODELINUX 16.3- Recomendaciones * Tener mucho cuidado con lo que haces porque los datos de la particin o disco destino sern destruidos por completo. * Tener en cuenta tambin que la particin o disco destino debe ser igual en tamao (o en todo caso mayor) que la particin o disco origen. * Es conveniente hacer una copia de seguridad de los datos importantes y tener a mano un disco de arranque de linux por si acaso. Por ltimo: Tener presente que el tamao de la imagen resultante va ser exactamente el mismo que el del dispositivo original. Es decir: dd te guarda tambin el espacio no utilizado. Se puede redirigir la salida con una tubera (pipe) y comprimirlo con gzip, bzip, pero an as vas a necesitar bastante espacio libre para poder guardar las imgenes que generes.
17-
A continuacin mostramos una tabla con los comandos mas utilizados en Linux,con una breve descripcin de su uso:
COMANDO apropospalabra whichcomando timecomando timecat niceinfo renice19p$$ DESCRIPCIN Vercomandosrelacionadosconpalabra Verlarutacompletadecomando Medircuantotardacomando Iniciarcronmetro.Ctrldparadetenerlo. Lanzarcomandoinfoconprioridadbaja Darleprioridadbajaalshell(guin).Usarparatareas nointeractivas dirnavegacin cd cd (cddir&&comando) pushd. Volveraldirectorioanterior Iraldirectoriopersonal(home) Iradir,ejecutarcomandoyvolveraldirectorioinicial Guardareldirectorioactualenlapilaparaluego,poder hacerpopdyvolveralmismo bsquedasdearchivo aliasl='lslcolor=auto' lslrt ls/usr/bin|prT9W$COLUMNS findname'*.[ch]'|xargsgrepE'expre' findtypefprint0|xargsr0grepF'ejemplo' Listadodedirectoriorpido Listararchivosporfecha.Vertambinnewest Imprimir9columnasenanchodelaterminal Buscar'expre'enestedirectorioysubdirectorios. Buscar'ejemplo'entodoslosarchivosregulareseneste directorioysubdirectorios
findmaxdepth1typef|xargsgrepF'ejemplo'
34
CURSOAVANZADODELINUX
Buscar'ejemplo'entodoslosarchivos regularesdeestedirectorio findmaxdepth1typed|whilereaddir;doecho $dir;echocmd2;done findtypef!perm444 findtyped!perm111 locater'file[^/]*\.txt' lookreferencia grepcolorreferencia/usr/share/dict/palabras Procesarcadaelementoconmuchoscomandos(conun buclewhile) Hallararchivossinpermisogeneraldelectura(utilpara sedesweb) Hallardirectoriossinpermisogeneraldeacceso(util parasedesweb) Buscarnombresenindiceencache.Estereesiguala glob*file*.txt Bsquedarpida(ordenada)deprefijoendiccionario Resaltarocurrenciasdeexpresinregularen diccionario archivos gpgcfile gpgfile.gpg tarcdir/|bzip2>dir.tar.bz2 bzip2dcdir.tar.bz2|tarx tarcdir/|gzip|gpgc|sshuser@remoto'dd of=dir.tar.gz.gpg' finddir/name'*.txt'|tarcfilesfrom=|bzip2> dir_txt.tar.bz2 finddir/name'*.txt'|xargscpatarget directory=dir_txt/parents (tarc/dire/de/copiame)|(cd/este/dir/&&tarx p) Encriptararchivo Desencriptararchivo Creararchivocompactodedir/ Extraerarchivocompacto(usargzipenvezdebzip2 paraarchivostar.gz) Crearcompactadoencriptadodedir/enequiporemoto Crearcompactadodesubconjuntodedir/y subdirectorios Copiarsubconjuntodedir/ysubdirectorios Copiar(conpermisos)directoriocopiame/adirectorio/ este/dir/
(cd/dire/de/copiame&&tarc.)|(cd/este/dir/&& Copiar(conpermisos)contenidodeldirectorio copiame/adirectorio/este/dir/ tarxp) (tarc/dire/de/copiame)|sshCuser@remoto'cd /este/dir/&&tarxp' ddbs=1Mif=/dev/hda|gzip|sshuser@remoto'dd of=hda.gz' rsyncPrsync://rsync.servidor.com/ruta/a/archivo archivo rsyncbwlimit=1000desdearchivoalarchivo rsyncazesshdelete~/public_html/remoto.com:'~/ public_html' rsyncauzesshremote:/dir/.&&rsyncauzessh. remote:/dir/ Copiar(conpermisos)directoriocopiame/adirectorio remoto/este/dir/ Respaldodediscoduroenequiporemoto
35
CURSOAVANZADODELINUX
wget(herramientadedescargasmultiuso) (cdcmdline&&wgetndpHEKk http://www.pixelbeat.org/cmdline.html) wgetchttp://www.ejemplo.com/largo.archivo wgetrndnpl1A'*.jpg'http://www.ejemplo.com/ wgetftp://remoto/archivo[19].iso/ wgetqOhttp://www.pixelbeat.org/timeline.html| grep'ahref'|headP echo'wgeturl'|at01:00 wgetlimitrate=20kurl wgetnvspiderforcehtmlibookmarks.html wgetmirrorhttp://www.ejemplo.com/ Guardarendirectorioactualunaversinnavegablede unapginaweb Retomardescargadeunarchivoparcialmente descargado Descargarunaseriedearchivoseneldirectorioactual FTPpermiteglobalizacionesdirectas Procesandodirectamentelasalida Descargarlaurla1AMaldirectorioenqueest Hacerdescargasdebajaprioridad(enestecaso,no excederlos20KB/s) Revisandolosenlacesdeunapgina Actualizareficientementeunacopialocaldeunapgina web(tilsiusamoscron) redes ethtoolinterface iplinkshow iplinksetdeveth0namewan ipaddradd1.2.3.4/24brd+deveth0 iplinksetdevinterfaceup iprouteadddefaultvia1.2.3.254 Listarestadodeinterfase Listarinterfases Renombrareth0awan Agregaripymscara(255.255.255.0) Subir(obajar)lainterfase Establecer1.2.3.254comovalorporomisinparala puertadeenlace.
tcqdiscadddevloroothandle1:0netemdelay20msec Agregarle20msdeesperaaldispositivoderetorno (parahacerpruebas) tcqdiscdeldevloroot hostpixelbeat.org hostnamei netstattupl netstattup smbtree nmblookupA1.2.3.4 smbclientLwindows_box mounttsmbfsofmask=666,guest //windows_box/share/mnt/share Quitarlaesperaagregadaantes. Obtenerladireccinipparaeldominiooalrevs Obtenerladirecciniplocal(equivalealanfitrin `hostname`) Listarlosserviciosdeinternetdeunsistema Listarlasconexionesactivasde/haciaunsistema Hallarequiposwindows.Vertambinfindsmb Hallarelnombre(netbios)dewindowsasociadoconla direccinip Listararchivoscompartidosenequiposwindowso servidorsamba Montarundirectoriocompartido
windows(notasambaeselpaquetequepermitetodosestoscomandosderedesdewindows)
36
CURSOAVANZADODELINUX
calendario cal3 cal91752 datedfri datedate='25Dec'+%A datedate'19700101UTC1234567890seconds' TZ=':America/Los_Angeles'date echo"mails'tomareltren'P@draigBrady.com< /dev/null"|at17:45 echo"DISPLAY=$DISPLAYxmessagecooker"|at "NOW+30minutes" printf"%'d\n"1234 BLOCK_SIZE=\'1lsl echo"Yovivoen`localeterritory`" LANG=en_IE.utf8localeint_prefix locale|cutd=f1|xargslocalekc|less hdparmi/dev/hda hdparmtT/dev/hda badblockss/dev/hda mount|columnt cat/proc/partitions grepMemTotal/proc/meminfo grep"modelname"/proc/cpuinfo lspcitv lsusbtv Mostrarcalendario Mostrarcalendarioparamesyaodeterminado Quedacaeesteviernes.Vertambinday EnquedacaelaNavidad,esteao? Convertirtotaldesegundosdesdelapocaaunafecha QuehoraesenlaCostaOestedeEEUU(usartzselect parahallarTZ) Recordatorioporemail Recordatorioemergente locales Imprimirnumeroagrupadopormilesdeacuerdoasu locale pedirquelsagrupepormilesdeacuerdoasulocale Extraerinformacindelabasededatosdellocale Buscarinformacindelocaleparadeterminadopas. Listarcamposenbasededatosdellocale informacindelsistema Verinformesobreparticinhda Hacerunapruebadevelocidaddelecturaenparticin hda Hallarbloquesilegiblesenparticinhda Verparticionesmontadasenelsistema(yalinearla salida) Vertodaslasparticionesregistradasenelsistema VereltotaldeRAMqueregistraelsistema VerinformedeCPU(s) VerinformedePCI VerinformedeUSB
37
CURSOAVANZADODELINUX
38