# 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

Per convertir-se en l'usuari administrador (root) s'utilitza l'odre 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

Per tancar el sistema:
Per reiniciar-lo:
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
#### Determinar actual

Perquè es mostri el directori actual de treball (directori on s'està), s'utilitza l'odre pwd sense cap opció o argument:
L'ordre mostre el camí absolut del directori, és a dir, des de la rel.

#### Canviar de directori

Per canviar de directori:
Per exemple, per anar al directori /etc on estan els fitxers de configuració:
Per anar al directori personal es tecleja cd sense cap opció o argument:

#### Mostrar el contingut d'un directori

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:
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:
Si es vol veure el directori apt que penja del directori /etc:
Si es vol més informació, es pot utilitzar l'opció -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:
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

Per crear un subdirectori en el directori on s'està:
Per exemple, si es vol crear el directori proves:
Si el directori no el vol crear on està aquell moment, sinó que el vol crear com un subdirectori del directori /etc:
Si el vol crear al directori /root:
Pes esborrar els directoris creats:
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:
Per exemple, si es vol esborrar el directori doc que està en el directori /home/usuari i en el que hi han fitxers:
La ordre rm -r esborra el directori doc i tot el seu contingut. Si es vol esborrar sense que faci cap pregunta:

### Treballar amb fitxers

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
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

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
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
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:
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ó
fi
if [ condició ]
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:
* !/bin/bash
* Comentari. Que fa el pro
echo 'Hola. Benvingut usuari'
./holamon.sh 'cadena de texte'