Administració de sistemes GNU/Linux

Shell de comandaments

Programa interpret que actua com una interficie entre l'usuari i el S.O.

Sistema de fitxers de Linux/UNIX

File System: Estructura en arbre per ordenar els directoris i fitxers de dispositius estructurats en blocs.

File System Manager: gestor del sistema de fitxers.

I-node: Conté les característiques dels arxius i directoris Permisos Dates Ruta llògica etc Però no el nom.

Journaling: Garanteix la integritat de les dades en cas d'una caiguda del sistema


/bin/ arxius binaris

/boot/ configuració d'arrencada

/etc/ arxius de configuració del sistema i de serveis

/root/ directori de root

/home/ directori dels usuaris

/var/cache/ dades creades per aplicacions per reduir-ne el temps d'accés

/var/lock/ fitxers d bloqueig per indicar que un dispositiu està sent utilitzat

/var/log/ logs

/var/mail/ correus interns del propi S.O. amb avisos tipus administratius

/var/www/ servidor web

/usr/x11R6/

/usr/x11/ conté dades del servidor gràfic X

/usr/include fitxers capçalera, per a programes compilats en C

/usr/lib llibreries dels diferents programes. Cada programa crea el seu propi subdirectori.

/usr/bin arxius binaris

/usr/sbin per SuperUser

/usr/share Informació dl sistema

/usr/local/ Instal·lació de programes

/proc/ processos utilitzats pel kernel (guarda una referència del processos)

/dev/ “devices” arxius per enllaçar amb dispositius hardware

/mnt/ per muntar manualment un sistema de fitxers

Particións d'un servidor /boot/

/

swap

/home/

/opt/

/var/

Ordres bàsiques

modifica

Per convertir-se en l'usuari administrador (root) s'utilitza l'odre su:

  $ su

El sistema demana la contrasenya del usuari root. Després de teclejar la contrasenya, el indicador de la terminal canvia de "$" a "#" per indicar que ara l'usuari és l'administrador.

Tancar i reiniciar el sistema

modifica

Per tancar el sistema:

  # shutdown -h now

Per reiniciar-lo:

  # shutdown -r now

També es pot reinciar premen les combinació de tecles Ctrl+Alt+Del. L'ordre shutdown només la pot executar el usuari administrador (root).

Treballar amb directoris

modifica

Determinar actual

modifica

Perquè es mostri el directori actual de treball (directori on s'està), s'utilitza l'odre pwd sense cap opció o argument:

   $ pwd
   /home/usuari

L'ordre mostre el camí absolut del directori, és a dir, des de la rel.

Canviar de directori

modifica

Per canviar de directori:

  # cd <nom de directori>

Per exemple, per anar al directori /etc on estan els fitxers de configuració:

  # cd /etc

Per anar al directori personal es tecleja cd sense cap opció o argument:

  # cd

Mostrar el contingut d'un directori

modifica

Per mostrar el contingut d'un directori s'utilitza la ordre dir o ls. Sense cap argument, mostra el directori on s'està en aquell moment:

  # dir
  Baixades Desktop Documents Videos Mail tmp

Aquí es llisten els sub-directoris i fitxers que hi han en el directori. Si es vol llistar un altre directori, s'utilitza l'ordre dir seguida del nom del directori. Per exemple, si es vol veure el contingut del directori etc que està a la rel:

  # dir /etc

Si es vol veure el directori apt que penja del directori /etc:

  # dir /etc/apt
  apt.conf.d  preferences  sources.list trusted.gpg listbugs
  listbugs

Si es vol més informació, es pot utilitzar l'opció -l:

  # dir -l

Ara mostra els subdirectoris i els fitxers, però amb molta més informació. Si en el directori hi han molts subdirectoris i fitxers, el llistat ocupa més d'una pantalla. Es pot veure el contingut pantalla a pantalla amb l'ordre:

  # dir -l | more

Amb la tecla espai s'avança a la pantalla següent. Si es prem la tecla q, surt del llistat i torna al indicador de la terminal.

Crear i esborrar directoris

modifica

Per crear un subdirectori en el directori on s'està:

   # mkdir <nom directori>

Per exemple, si es vol crear el directori proves:

   # mkdir proves

Si el directori no el vol crear on està aquell moment, sinó que el vol crear com un subdirectori del directori /etc:

   # mkdir /etc/proves

Si el vol crear al directori /root:

   # mkdir /root/proves

Pes esborrar els directoris creats:

   # rmdir proves
   # rmdir /etc/proves
   # rmdir /root/proves

Si en el directori que es vol esborrar hi han fitxers o subdirectoris, la ordra rmdir no pot esborrar-lo. S'ha d'utilitzar l'odre rm -r:

   # rm -r <nom directori>

Per exemple, si es vol esborrar el directori doc que està en el directori /home/usuari i en el que hi han fitxers:

   # rm -r /home/usuari/doc

La ordre rm -r esborra el directori doc i tot el seu contingut. Si es vol esborrar sense que faci cap pregunta:

   # rm -rf /home/usuari/doc

Treballar amb fitxers

modifica

grep recerca de cadenes(texte)/patrons(expressions regulars) dins d'arxius


gzip/bzip2 compresos tar compactar fitxers


cp ruta(s)-origen ruta-desti copia arxius

·cp -R		recursive
·cp -a		copia recursiva mantenint totes les propietats

mv ruta-origen ruta-desti ·moure arxius ·renombrar arxius

ls ll o -l format llarg: permisos, usuari propietari, grup propietari, tamany en bytes, data i hora, nom -lk tamany en kbytes -s format llarg + nº de blocs ocupats -a arxius/directoris ocults -d directoris -t ordenat per temps de modificiació -u ordenat per últim accés -s ordenat per mida -i llistat dels i-nodes dels FS

file /ruta Codificació/format d'un arxiu

stat /ruta Informació de l'i-node de arxiu/directori

head Capçalera de l'arxiu tail Mostra els últims byts modificats

dmesg Misatges del nucli (lleigeix un log del sistema) dmesg | tail últims canvis del kernel

less /ruta Paginador mes potent more Paginador ls -l | less

split Dividir arxius en trossos

-l nre. de línies

cut Retalla per camps/seccions

-f nº de columna -d camp separador/delimitador

wc Word Count Compta línies, espais i caràcters

uniq Filtre que elimina repeticions sort Ordena alfabèticament


tr Remplaça caracters paste Solapa el contingut d'arxius -d camp separador/delimitador

Obtenir ajuda

man comandament comandament --help info comandament

grep -i majuscules o minuscules -n núm. de línia dins l'arxiu on es troba el resultat -c comptar les línies -o únicament treu el resultat -e expressions regulars -oe combinació utilitzada abitualment -f busca una llista de cadenes separades per linies grep -e [Abc]\{1,3\} env | grep`-oe “NA[A-Z]\{1,3\}


Matar un programa Contr.+C Posar en segon pla Contr.+Z Finalitzar entrada Contr.+D Redireccións

Canalitza el resultat obtingut d'executar un comandament a: -Fitxers -Altres comandaments -Dispositius de sortida

echo cadena-de-texte > ruta (reescriu l'arxiu) echo cadena-de-texte >> ruta (afegeix al final de l'arxiu)

PIPES - Canonades

ls -l | greb mp3

cat ·mostrar contingut d'arxius ·editor de text ·concatenador

cat > ruta (editar arxiu nou) cat >> ruta (afegir a un arxiu) cat fitxer1 fitxer2 fitxer3 > fitxer-resultat (concatenar)

variables:

env mostra les variables de entorn/sistema

·visualitzar el valor:

echo $Variable

·declaració de variable:

Variable=Valor


uname -a informació del S.O. I arquitectura

-p

date +opcions data i hora data=`date '+%d-%m-%y'`

'cadena de text' “cadena de text amb variables” `execució d'un programa`

Usuaris locals i remots

modifica

whoami nom usuari logejat who -a usuari logejats a la maquina localment i remotament finger informació d'usuaris connectats al sistema. (local o remot)


whatis descripció de programes makewhatis base de dades

whereis localitza binaris, codi font, man de un programa dins de les rutes de la variable PATH

locate Busca arxiu updatedb

id informació d'usuari ·id d'usuari ·nom d'usuari ·GID nº identificador de grup ·Grups als quals pertany l'usuari

which busca binari

Variable de sessió

echo $?

0= correcte 1=ha donat errors

comparar arxius

cmp nom1 nom2 Compare

-l diferències en mida i línia per línia -s status de finalització

- 0= arxius idèntics 1= un arxiu està dins de l'altre >1= error o diferents

diff nom1 nom2 Difference

línea per línea

0= arxius idèntics 1= arxius amb alguna diferència 2= Errors

find /ruta -opcions recerca d'arxius

-uid nº de identificador d'usuari propietari -user usuari propietari -perm permisos -name Patró de recerca (nom d'arxiu/directori) -atime data últim accés -ctime data creació -mtime data modificació -size mida -type -f fitxer -d directori -exec executar un altre comandament -ok Semblant a -exec

# find / -uid 1050 -ok chown -v 1200 {}\; canvia la propietat dels arxius d'un usuari per un altre

Caràcter d'escapament: \ el següent caràcter s'ha de interpretar com a text pla, no s'ha de expandir, etc. {} nom d'arxiu a buscar

rpm -opcions Packeg Manager -a all -ql

rpm -qa | grep ftp

iptables Tallafocs Firewall

-L Llista regles -F Esborra totes les regles

nmap IPD Escaner de ports TCP/IP

nc netcat obrir ports TCP/UDP

Escolar al port 2000 nc -v -l -p 2000 > mbr.img

Còpia del MBR (imatge), des de l'ordinador origen al destí dd if=/dev/sda bs=512 count=1 | nc -q 2 172.29.1.10 2000

Còpia de la Taula de particions en format “sf” del sfdisk sfdisk -d /dev/sda | nc -q 2 172.29.1.10 2000 Gestió de sistema de fitxers

Gestió de permisos

Definició dels permisos de fitxers i directoris

Màscara

rwx rwx rwx propietari grup altres

3 tipus de permisos: r read w write x execute

chown propietari:grup ruta Change owner canvia propietari i grup

chown propietari ruta

chgroup grup ruta Change group

chmod mascara-de-permisos ruta/es change mode


111 110 100 (octal) rwx rwx rwx

7	 6	 4

Màscara (S.O.): Filtre que el S.O té definit i que utilitza per assignar permisos d'accés, tant als arxius com als directoris de nova creació.

Directori Arxiu

  755			644

umask mascara per defecte llògica inversa/lógica negativa 0027 --> 750 000 010 111 rwx r-x ---

Permisos Avançats:

  • Bit SUID 1 1 1
  • Bit SGID SUID SGID Sticky-bit
  • Sticky-bit

chmod 7755 /ruta

-rwsrwsrwt

Bit SUID

S'aplica a arxius executables. Fa que la aplicacio pugui ser executada per qualsevol usuari amb permisos del propietari.

Exemple: passwd find /ruta -perm +6000 -exec ls -l {} \;

Bit SGID

Utilitza un mecanisme d'herencia del directori pare cap als fills Orientat a compartir un directori per diferents usuaris d un mateix grup a una xarxa LAN.

Activa permisos de grup sobre un directori El grup del directori ha de ser el grup dels usuaris que han d'accedir. Els permisos dels fitxers vindran determinats per la màscara de l'usuari propietari de cada arxiu. També es pot emprar per restringir l'acces a un directori en una LAN. Els arxius/directoris que es copiin dins del directori pare preservaran el seu grup original.

Sticky-bit

Aplicable a fitxers i directoris Únicament el propietari pot esborrar o renombrar.


Devices


Canal 0 Canal 1 Disc dur IDE --> Master hda Master hdc

Slave hdb Slave hdd

Particions: hda1 hda2

fd:

       Disquetera

sda: SCSI Dispositius de blocs USB/Firewire Disc durs SATA


Eines avançades de gestió dels sistema de fitxers


mkfs Make File System a dispositius


No fer operacions sobre un FS muntat No desmuntar un FS mentres s'estar utilitzant

fdisk -l Mostra la taula de particions

·crear/eliminar particions

cfdisk amb sistema semigràfic

sfdisk -d Mostra la taula de particions en format orinal -n Verifica la taula de particions però no hi escriu -n : No escrigues realment al disc -R [o --re-read]: Fa que el nucli rellegeixi la taula de particions -N# : Només canvia la partició amb el número # -i [o --increment]: Nombre de cilindres, etc. des de 1 en comptes de 0 sfdisk -d /dev/hda > taula_particions.sf Copia taula particions sfdisk /dev/hda < taula_particions.sf Volca la taula particions

sfdisk /dev/hdb << EOF Instruccións de com s'ha de modificar la taula de ,3,L particions ,60,L EOF

End of File

gparted amb sistema grafic

mkfs tipus-de-FS ruta-al-dispositiu-partició -t ntfs /dev/sda2

fsck File system Checking

tune2fs Converteix un sistema ext2 en ext3 afegint Journaling

mount -t FS /dev/”device” /ruda-desti muntar un sistema de fitxers

mount -t vfat /dev/sdc1 /media/disk


umount /ruta device desmontar

format donar format a dispositius fdformat donar format a disquets


swapping

Tècnica de gestió de memoria (principal / RAM) del S.O.

El S.O. agafa pàgines de la memòria principal i fa un volcat (dum) a un dispositiu de memòria secundàri (disc dur).

mkswap Make FS swap a una partició ja existent

swapon Activar/desactivar la partició swap swapoff


dd crear còpies/rèpliques byte a byte (a baix nivell, raw)

Fer còpies a baix nivell (raw) de la informació guardada en dispositus de blocs Cremar una copia a un CD Esborrat físic de la informació d'un FS (en una partició o disc).


if Imput file Dispositiu origen of Ouput file Dispositiu destí bs Block size Tamany de bloc c Count Quantitat de blocs a copiar

dd if=/dev/sda of=/tmp/mbr.img bs=512 count=1

du disk usage -h human readable format -s summarize --max-depth=1

df Mostrar informació de blocs dels sistemes de fitxers que estiguin muntats. Mostra el % de espai lliure.

-h human readable format -l local -i informació dels i-nodes

lsof Mostra els arxius que estan sent utilitzats pel S.O. i per l'usuari -Fi Llistat d'i-nodes d'un FS


MBR Master Boot Record

Sector d'inici mestre (sector 0)

Capacitat: 512 bytes Contingut: Gestor d'arrancada Taula de particions


fstab

/etc/fstab

s'indica com utilitzar cada dispositiu i quina configuració utilitzar.

Quant sutilitza aquest arxiu Boot Quant el sistema reconeix un nou dispositiu de blocs connectat.


Les opcións es poden veure a man mount user: tots els usuaris poden muntar la partició, no fa falta ser root.


Comandaments d'accés a la Info de hardware

fdisk -l dmesg | tail

lsusb Hub USB lspci hwinfo hdparm


Partició

Des d'un punt de vista llògic es una part del dispositiu de blocs. Des d'un punt de vista físic es l'espai que hi ha entre una pista i una altra.

Càlcul de capacitats


1 Byte 8 bits 1 KByte 1024 B 1 MByte 1024 KB 1 GByte 1024 MB 1 TByte 1024 GB 1 PByte 1024 TB


Swapping / Memoria Virtual

Ampliar l'espai de memòria principal que podem adreçar. Augmenta el nº d'adreces de memòria.

Inconvenients: Cau el rendiment global del sistema degut al temps d'accés de R/W del disc en comparació amb la memòria principal Desgast físic dels discs durs


Gestor d'arrancada GRUB GRand Unified Bootloader

Es un programa que ajuda a administrar la part inicial del procés d'arrancada d'un sistema

Nomenclatura Independentment de la tecnologia sempre utilitza aquesta nomenclatura (SATA, SCASI, etc)

(hd0,0) (disc,particio) (hd1,1) (fd0) floppy

Configurar el GRUB Manualment durant el procés de boot (no permanent)

/boot/grub/device.map Cridar al programa grub root kernel initrd setup (guardar canvis al MBR) Arrancar un altre S.O. Muntar partició on es troba el GRUB Editar arxiu de configuració /boot/grub/menu.lst default x S.O. que s'inicia por defecte timeout x Temps d'espera en segons hiddenmenu Ocultar el menú password x Protegir amb contrasenya


Gestió de processos


Fitxer: recipient que conté i agrupa unes dades, amb un format, segons el tipus de fitxer, sota un nom lògic.

Procés: Instància d'un programa en execució.

Tipus de processos: S.O. Usuari Aplicacions Programes fets pel propi usuari

Estructura en arbre: PID PPID

Proces d'encesa d'un ordinador:

BIOS POST Power On Self Test (Auto diagnóstic al encendre) Gestor d'arrencada, Bootstrap (GRUB) kernel Manejo de memoria, planificador de tareas, entradas y salidas, comunicación interprocesos, y demás sistemas de control. Init establece el ambiente del usuario: Verifica y monta los sistemas de archivos, inicia servicios de usuario necesarios y cambia a un ambiente basado en usuario cuando el proceso de inicio termina.


ps Processos a memoria que estan sent executat

aux tots els processos l format llarg

pstree Arbre de processos -p PID

top Processos executats a memoria en temps real

PPID PID Identificador de proces USER Usuari que l'executa %CPU Consum de CPU %MEM Consum de memoria RAM Time Temps en execusió Comand Nom del procés en execusió

gnome-system-monitor Monitor del sistemas

kill -nº PID Enviar senyals als processos

-l Mostra senyals posibles -1 Reinicia -2 Mata el procés Control + C -9 Mort absoluta, forces al kernel a enviar el procés i els seus recursos a dev/null (drop) -11 El kernel mata automàticament quant un proces intenta accedir a una secció restringida de memoria -15 Et podries tancar?


xkill kill gràfic pgrep Printa PID del proces indicat pkill Program kill slay Mata els processos d'un usuari killproc Mata un process i tots els seus fills (nom programa)

startproc Posa en marxa un executable si no troba cap process associat en marxa startproc /usr/sbin/sshd

free Informe d'estat de memòries principal, cache, swap.


Estat dels processos

En execusió En execusió per la CPU Preparat Preparat per la execució En espera En espera de informació Parat Parat Zombie Ha finalitzat el procés, però encara continua a memòria.


nice estableix la prioritat d'execució d'un proccés renice modifica la prioritat d'execució d'un procces

netstat

fg foreground passar a primer plà bg background passar a segón plà jobs Llista processos que estan en segon pla

Es pot fer servir per a mantenir en marxa un scrip que controli el S.O.


Compactació / Compressió

compactador: tar compresor: gzip, bgzip2, etc

tar opcions desti orginens compactador i compresor c compactar x descompactar v verbose f especificar fitxer z gzip (comprimir) .tar.gz j bzip2 (comprimir) .tar.bz2 t llista arxius

nom_arxiu-`date '+%d-%m-%y'`.tar nom_arxiu-$(date '+%d-%m-%y').tar

gzip opcions desti compresor

-d descomprimir

bzip2 opcions origen origen destí compresor

-d descomprimir

bunzip2 origen destí descomprimir


Tar balls

Descomprimir i descompactar /usr/local/nom (per tots els usuaris) /home/user/ (només per aquest usuari) Configuració ./configure opcions (configuració de compilació i instal·lació) Compilació make (arxiu:Makefile) Instal·lació make install (

rpm -ivh --test paquet.rpm -q query consulta a all llista tots els paquets instal·lats nompaquet l list llista els arxius d'un paquet f /arxiu a quin paquet pertany un arxiu --last últims paquets instal·lats -U Update actualització del paquet -e Erase eliminar tots els arxius d'un paquet

-i install -i info -v verbose -h hash -initdb inicialitzar la base de dades de paquets instal·lats -rebuilddb refer la base de dades de baquets instal·lats

--import http://www.fedora.us/FEDORA-GPG-KEY

rpmbuild creador de paquet RPM


Repositori: Base de dades de paquets disponible i actualitzada a un servidor.

yum opcions nom-paquet -install instalar paquet -update actualitzar paquet -remove eliminar paquet -check-update Actualitza la llista de paquets -serch Cerca el paquet al repositori -y Si a tot -provides nom-fitxer Saber a quin paquet està contingut un arxiu -list Llista els paquets del repositori -upgrade actualitza tots els paquets (~ dist-upgrade de aptitude) /etc/yum.conf gpgcheck=1 (fa que comprovi les claus GPG)



Distrubució Instal·lador Tipus de paquet Fedora Red-HaT rpm/YUM rpm Suse YAST rpm Debian Ubuntu Apt-get aptitude synaptic deb Mandriva urpmi rpm Gentoo emerge



tee Redirecciona les dades per la sortida estandar i per un fitxer

Programació Bash

Executar un programa

./script.sh

bash opcions script.sh -x debbugger


Variables de sessió

$0 $2 ... $9 Parametres $# Número de paràmetres $? Retorn 0=bé 1=error $*

IF sintaxi: if then else

Es pot fer de 2 maneres:

If test condició

 then
 else

fi

if [ condició ]

  then
  ...

Comparadors: -ne no equal


expr Permet evaluar expressions: Aritmètiques Alfanumèriques (cadenes)

Metode 1: $numA=10 $sumB=25 nomV=`expr $numA + $sumB`

Metode 2: 1 expr $cad:$cad 2 Utilitzant length i expr expr lenth $cad

for Num in rura/*

-d Verifica que es un directori -f Verifica que es un fitxer

if [ -d $ruta ]

if [ -f $Nom_Fitxer ]


case $caracter in A)... ;; B)... ;; C)... ;; D)... ;; *) echo Missatge d'avís exit 1;; esac



Exercicis:

  1. !/bin/bash
  2. Comentari. Que fa el pro

echo 'Hola. Benvingut usuari'

./holamon.sh 'cadena de texte'