0614 - Comandes Linux
Com que els servidors els utilitzarem sota un entorn Linux farem esment de les comandes més utilitzades i que cal dominar completament per treballar amb l'entorn Linux ja que ens facilitarà el treball.
serveis
En aquest mòdul hem d'instal·lar alguns serveis: servidor web, servidor de transferència de fitxers ftp, etc.
En Linux els serveis es poden gestionar amb diferents comandes però dins els contingutrs podem utilitzar la comanda service del System V o la comanda ' systemctl` del systemd. La sintaxis d'aquesta comanda és
-
service <servei> start | stop | status | restart | reloadmentre que el nom del servei pot ser apache2, proftpd, etc. -
systemctl start | stop | status | restart | reload <servei>mentre que el nom del servei pot ser apache2, proftpd, etc.
En un servdor ubuntu utilitzem systemctl, en un contenidor Docker service
Així doncs, com a tall d'exemple, per a gestionar el servidor web apache utilitzarem:
-
systemctl start apache2: per iniciar el servidor web apache -
systemctl stop apache2: per aturar el servidor web apache -
systemctl restart apache2: per aturar i iniciar el servidor web apache amb una sola comanda -
systemctl reload apache2: per recarregar el fitxer de configuració sense aturar el servidor
Segons el servei pot ser que algunes opcions no estiguin dispoibles o que n'hi hagi més.
La comanda service --status-all ens mostra l'estat de tots els serveis instal·lats.
Visualitzem el contnigut d'un (o varis) fitxers
cat - more - head - tail - less
Mostar el contingut d'un fitxer - cat - more - head - tail - less
Per a mostrat en contingut d'un fitxer utilitzarem les comandes segons la necessitat. Ho veurem en exemples i serà més fàcil d'entendre.
Mostrem tot el contingut de cop
La comanda cat ens mostra el contingut del fitxer tot de cop sense cap aturada.
cat /etc/apache2/apache2.conf
Si el que volem és que s'aturi cada vegada que ompli la pàgina utilitzarem la comanda more
more /etc/apache2/apache2.conf
espaiper a veure la següent pàginab(backward) per a veure la pàgina anteriorf(forward) per a veure la pàgina següentintro(return) per a veure la línia següent. Anem avançant línia a línia.q(quit) per a sortir
La comanda less és semblant a more però permet fer cerques de la mateixa manera que es fan amb l'editor vi (/nN?). Com que no està inclosa dins el contingutr ubuntu no l'expliquem.
La comanda head permet veure les primeres línies d'un fitxer. Per defecte mostra les primeres 10 línies. Amb el paràmetre -n podem indicar-li quantes línies (numero positiu) o quantes del final no volem veure (numero negatiu). Vegem-ho.
head /etc/apache2/apache2.conf
head -n 5 /etc/apache2/apache2.conf
head -n -5 /etc/apache2/apache2.conf
La comanda tail permet veure les darreres línies d'un fitxer. Per defecte mostra les darreres 10 línies. Amb el paràmetre -n podem indicar-li quantes línies (numero positiu) o a partir de quina línia contant des del principi volem veure (signe més +). Vegem-ho.
tail /etc/apache2/apache2.conf
tail -n 5 /etc/apache2/apache2.conf
tail -n +5 /etc/apache2/apache2.conf
-f. Un exemple típic serà mirar els missatges de log que arribin al fitxer d'errors de l'apache
tail -n 0 -f /var/log/apache2/error.log
Exemples
more file: Mostra el contingut del fitxerfilepàgina a pàginaless file: Igual que l'anterior però amb més opcions (no disponible en els contenidors)ls -l | more: Mostra pàgina a pàgina la sortida dels -lhead file: Mostra les primeres 10 línies del fitxerfiletail file: Mostra les darreres 10 línies del fitxerfiletail -n 30 file: Mostra les darreres 30 línies del fitxerfilehead -n 4 file | tail -n 2: Mostra les línies 3 i 4 del fitxerfilecat file | head -n 4 | tail -n 2: Mostra les línies 3 i 4 del fitxerfile(igual que l'anterior)
Gestió de fitxers: moure, copiar i eliminar
ls: lllista els titxers del directori actualls /dir: lllista els titxers del directori/dirls -l: idem en format llargls -a: lllista tots els titxers incloent els ocultsmkdir dir: Crea el directoridirrmdir dir: Borra) el directoridir(ha d'estar buit)rm file: borra el fitxerfilerm -f file: força l'eliminació del fitxer file encara que estigui protegitrm -r dir: Borra de forma recursiva el directoridircp file dir: Copia el fitxer file al directoridircp -r dir1 dir2: Copia de forma recursiva el directoridir1adir2mv file dir: Mou el fitxerfileal directoridirmv dir1 dir2: Mou el directoridir1al directoridir2ln -fs file-real file-virtual: Crea un enllaç simbòlic entrefile-realifile-virtual
Movem-nos pels directoris
cd
Anar a un directori determinat - cd
Per moure'ns per diferents directoris hem d'utilitzar la comanda cd (Change Directory). Sempre ñes millor anar d'un lloc a l'altre amb una sola comanda cdja que aqmb cd - tornem al directori on estavem anteriorment.
La ruta que indica el directori on volem anar pot ser absoluta
cd /etc/apache2/sites-available
cd /var/log/apache2
cd -
cd /etc/apache2
cd sites-avalilable
cd ../mods-enabled
cd ..
Per acabar d'escriure el nom del directori/fitxer és útil utilitzar la tecla tabulador una o dues vegades. Prova-ho.
Cerques
find (cerca de fitxers)
La comanda findserveix per a cercar fitxers segons algunes de les seves característiques: tamany, propietari, tipus de fitxer, nom de fitxer, etc.
Vegem-ne algun exemple:
find /dir -name file: Busca el fitxerfiledins del directoridiri els seus subdirectoris.find /dir -name "*file*": Busca fitxers dins el directori i subdirectoris dedirque en el seu nom de fitxer continguin la paraulafile.
grep (cerca en l'interior de fitxers)
Busquem paraules dins un fitxer o dins molts fitxers - grep
Sovint voldrem saber on tenim confiurat un apràmetre determinat. El més fàcil és demanar-li al sistema que ens busqi la paraula dins el fitxer o conjunt de fitxers. Per això utilitzem la comanda grep.
Anem a veure en quins fitxers tenim la directiva DirectoryIndex. El més fàcil serà fer una cerca així...
grep -ir directoryIndex /etc/apache2
/etc/apache2 i a tots els fitxers dels subdirectoris, de forma recursiva (r)-.
També podriem haver-nos situat al directori i buscar a partir d'ell
cd /etc/apache2
grep -ir directoryIndex *
Tuberies (Pipe) i redireccionamient
ls -l > file: Escriu la sortida de la comandals -len el fitxerfilels -l >> file: Afegeix la sortida de la comandals -lal fitxerfilels -l 2> file: Escriu la sortida d'errors de la comandals -len el fitxerfileprog < file: El programaprogllegeix/rep com entrada de dades el contingut defilels | sort: Ordenem la sortida delsls | grep alfa | sort: Ordena els fitxers d'una sortida delsdels fitxers que contenen la paraula alfa
Gestió d'usuaris
useradd
Creació d'usuaris - useradd
Per a crear un usuari utilitzarem la comanda useradd de la següent forma:
useradd -m -s /bin/bash usuari
passwd usuari
useradd -m -s /bin/bash usuari001 && echo usuari001:password001 | chpasswd usuari001
Si després volem iniciar sessió amb aquest usuari podem utilitzar la comanda
su - usuari001
password
Per a posar password a un usuari podem fer-ho de diferents formes.
passwd
passwd usuari001
chpasswd
echo usuari001:usuari001 | chpasswd
echo separats per dos punts :.
Control de procesos
top: Programa interactiu per a veure els processos del sistemaps: Llista els processos associados a l'usuarips aux: Llista tots els processos del sistemaps -ef: Llista tots els processos del sistemakill -9 123: Mata el procés amb ID 123
Permisos sobre fitxers
| owner u |
group g |
others o |
|
|---|---|---|---|
| d | rwx | rwx | rwx |
Tipus de fitxer:-: fitxer d: directori l: link |
r - lectura w - escriptura x - execució |
A'executar ls -l obtenim a la primera columna el format que es mostra a la taula anterior.
Correspon als permisos de lectura, escriptura i execució sobre un fitxer o directori, pel propietari, el grup o la resta d'usuaris.
Per a canviar els permisos utilitzem la comanda chmod:
chmod u+rw file: Afegeix permis de lectura i escriptura al propietari pel fitxerfilechmod g-rx file: Treu els permisos de lectura i execució al grupo pel fitxerfilechmod a+rwx file: Afegeix a tots els usuaris (ugo) permisos de lectura, escriptura i execucióchown usuari file: Posa como a propietari del fitxerfilea l'usuariusuarichgrp grup file: Posa como grup del fitxerfileel grupgrupchown usuari:grup file: Posa como a propietari del fitxerfilea l'usuariusuarii como grup del fitxerfileel grupgrupchown usuari.grup file: Posa como a propietari del fitxerfilea l'usuariusuarii como grup del fitxerfileel grupgrupchown usuari. file: Posa como a propietari del fitxerfilea l'usuariusuarii como grup del fitxerfileel grup de l'usuariusuari
SUID, GUID i Bit d'sticky
A Linux, tot és un fitxer i tot té propietaris. El propietari especial, conegut com root, també té permisos especials per executar qualsevol cosa. Tots els altres tenen privilegis limitats i un accés molt limitat als fitxers i carpetes. Per augmentar els nostres privilegis, cal utilitzar la comanda sudo. Tanmateix, no és una bona idea donar la contrasenya e root a persones aleatòries cada vegada que necessiten fer alguna cosa que requereixi privilegis més alts. Aleshores, què pots fer? Bé, podem utilitzar el que es coneix com SUID, GUID i bit d'sticky.
SUID
SUID o Set Owner User ID és un indicador de bits de permís que s'aplica als executables. SUID permet a un usuari alternatiu executar un executable amb els mateixos permisos que el propietari del fitxer en lloc dels permisos de l'usuari alternatiu. Un exemple clar és la comanda passwd.
Aquest bit es veu en la part de permisos de l'usuari propietari quan encomptes d'una x veiem una s. Si la s és minúscula significa que la xtambé està activa mentre que si la S és majúscula significarà que la x no està activa.
Podem activar el bit SUID amb la comanda:
chmod u+s fitxer
GUID
GUID és similar a SUID. Al SUID, l'executable en qüestió s'executa amb els privilegis del propietari del fitxer. Al GUID, si és un executable, s'executa amb els permisos del grup. Si es tracta d'un directori, es generaran tots els fitxers i directoris nous creats per pertànyer al grup. Aquest darrer as és el que solem utilitzar més sovint nosltres.
Igual que el SUID aquest bit es veu en la part de permisos del grup propietari quan encomptes d'una x veiem una s. Si la s és minúscula significa que la xtambé està activa mentre que si la S és majúscula significarà que la x no està activa.
Podem activar el bit GSUID amb la comanda:
chmod g+s directori
Bit d'Sticky
El bit d'Sticky s'aplica als directoris. Quan s'estableix el bit d'Sticky en un directori determinat, qualsevol usuari que tingui accés al directori i al seu contingut només pot esborrar els seus propis fitxers i no pot tocar ni eliminar fitxers que pertanyen a algú altre. El bit d'Sticky s'utilitza normalment quan s'utilitza una carpeta compartida. Ningú pot suprimir el fitxer d'una altra persona dins de la carpeta compartida encara que el permís sigui 777 (rwxrwxrwx). Un exemple clar és el diretori /tmp.
Igual que el SUID aquest bit es veu en la part de permisos de la resta d'usuaris quan encomptes d'una x veiem una t. Si la t és minúscula significa que la xtambé està activa mentre que si la T és majúscula significarà que la x no està activa.
Podem activar el bit GSUID amb la comanda:
chmod o+t directori
Varis
df -h: Mostra l'espai ocupat en les diferents particionsdu -sh dir: Mostra el tamany dels diferents subdirectoris dedir-
alias new= 'comanda -opt': Crea un alias anomenat new -
man -k tema: Mostra totes les pàgines de manual que contenen la paraula tema dmesg: Mostra els misstges generats a l'iniciar el sistema/var/log/: Conté els fitxers amb la informació del sistema