COMANDOS - USUARIOS Y GRUPOS
1. Mostreu els valors per defecte del sistema a l’hora de crear un usuari:
sudo cat /etc/default/useradd
sudo cat /etc/adduser.conf

2. Afegiu l’usuari prova1 amb els valors per defecte. S’ha creat el directori prova?
sudo adduser prova1
ls /home | grep prova1

3. Estableix el password de l’usuari prova1 com a prova1:
echo prova1:prova1 | sudo chpasswd
o
sudo passwd prova1

4. Entra com a prova1 i ubica't al seu home. Què passa? Surt de prova1:
su - prova1
pwd
exit

5. Afegiu l’usuari prova2 amb una descripció, que se li creï i assigni un directori home per defecte i el shell sh:
sudo useradd -m -d /home/prova2 -s /bin/sh -c Usuari de prova 2 prova2

6. Establir el password de l’usuari prova2. Intenta entrar. Surt de prova2:
echo prova2:prova2 | sudo chpasswd
su - prova2
exit

7. Canvia el shell a /bin/bash de l’usuari prova2:
sudo usermod -s /bin/bash prova2

8. Bloqueja el compte prova2, intenta validar-te com l’usuari prova2 i desbloqueja la compte prova2:
sudo usermod -L prova2
su - prova2
sudo usermod -U prova2

9. Crea el grup grprova1. Com queda reflectit al fitxer de configuració?:
sudo groupadd grprova1
cat /etc/group | grep grprova1

10. Canvia-li el nom al grup grprova1 per gr_prova1:
sudo groupmod -n gr_prova1 grprova1
cat /etc/group | grep gr_prova1

11. Crea els grups gr_prova2 i gr_prova3:
sudo groupadd gr_prova2
sudo groupadd gr_prova3

12. Crea l’usuari prova3 que pertany al grup gr_prova1 com a principal i també als grups gr_prova2 i gr_prova3:
sudo useradd -m -s /bin/bash -g gr_prova1 -G gr_prova2,gr_prova3 prova3
cat /etc/passwd | grep prova3
cat /etc/group | grep prova3
su - prova3
groups
exit

13. Què fa la comanda pwconv? I pwunconv?:
man pwconv
man pwunconv

14. Mira el fitxer /etc/shadow. Executa pwunconv, torna’l a mira, què ha passat? Què hi ha diferent a /etc/passwd? Executa pwconv, com queda ara el /etc/shadow? I el /etc/passwd?:
sudo cat /etc/shadow
sudo pwunconv
sudo cat /etc/shadow
sudo cat /etc/passwd
sudo pwconv
sudo cat /etc/shadow
sudo cat /etc/passwd

15. Executa com a usuari prova3 chage –l, què mostra?:
su - prova3
chage -l prova3
exit

16. Canvia la data d'expiració del compte prova3 al 01/01/2000. Intenta entrar com a prova3, què passa? Torna-ho a canviar per a que caduqui d'aqui en un any i li avisi amb una setmana per canviar-la:
sudo chage -E 2000-01-01 prova3
su - prova3
sudo chage -E $(date -d "+1 year" +%Y-%m-%d) -W 7 prova3

17. Entra com a prova3 i crea un fitxer fprova.txt al seu home. Qui és l'usuari i el grup propietari?:
su - prova3
touch fprova.txt
ls -l fprova.txt
exit

18. Què hauràs de fer per a que a partir d'ara creï fitxers amb el grup propietari gr_prova3? Crea el fprova2.txt amb grup propietari gr_prova3:
sudo usermod -g gr_prova3 prova3
su - prova3
touch fprova2.txt
ls -l fprova2.txt
exit

19. Com eliminaràs l'usuari prova2 i el seu directori home?:
sudo deluser --remove-home prova2

20. Com es pot fer perquè tots els usuaris que es creïn a partir d'ara tinguin assignat l'intèrpret de comandes /bin/bash?:
sudo sed -i 's/^DSHELL=.*/DSHELL=\/bin\/bash/' /etc/default/useradd
sudo sed -i 's/^SHELL=.*/SHELL=\/bin\/bash/' /etc/adduser.conf
(Cambiando la configuración del archivo, se puede hacer a mano)
COMANDOS - PERMISOS en LINUX

1. Crea els usuaris asix1, asix2, daw1 i daw2. Crea els grups asix_grp i daw_grp. Inclou els usuaris asix1 i asix2 a asix_grp, i daw1 i daw2 a daw_grp:
sudo useradd -m asix1
sudo useradd -m asix2
sudo useradd -m daw1
sudo useradd -m daw2
sudo groupadd asix_grp
sudo groupadd daw_grp
sudo usermod -aG asix_grp asix1
sudo usermod -aG asix_grp asix2
sudo usermod -aG daw_grp daw1
sudo usermod -aG daw_grp daw2

2. Com a root, crea un fitxer anomenat fitxer1.txt a /home/asix1/ i assigna-li els permisos 754:
sudo touch /home/asix1/fitxer1.txt
sudo chmod 754 /home/asix1/fitxer1.txt

3. Verifica els permisos amb ls -l:
ls -l /home/asix1/fitxer1.txt
Explicació dels permisos:
- Usuari (propietari): lectura, escriptura i execució (7)
- Grup: lectura i execució (5)
- Altres: només lectura (4)

4. Afegeix permisos d'execució per a tothom al fitxer fitxer1.txt fent servir la sintaxi simbòlica:
sudo chmod +x /home/asix1/fitxer1.txt

5. Elimina els permisos d'escriptura per al grup i comprova els canvis amb ls -l:
sudo chmod g-w /home/asix1/fitxer1.txt
ls -l /home/asix1/fitxer1.txt

6. Com a root, crea un directori /home/asix_grp/compartit/ i atorga-li permisos 777:
sudo mkdir -p /home/asix_grp/compartit/
sudo chmod 777 /home/asix_grp/compartit/

7. Activa el Sticky Bit i verifica que està actiu. Explica com afecta aquest bit:
sudo chmod +t /home/asix_grp/compartit/
ls -ld /home/asix_grp/compartit/
Explicació: El Sticky Bit evita que els usuaris eliminin fitxers d'altres dins el directori.

8. Crea un fitxer script_suid dins /home/asix_grp/ i dona-li permisos u+s. Què implica aquest permís?:
sudo touch /home/asix_grp/script_suid
sudo chmod u+s /home/asix_grp/script_suid
ls -l /home/asix_grp/script_suid
Explicació: El bit SUID permet que el fitxer s'executi amb els permisos del propietari en lloc de l'usuari que l'executa.

9. Crea un directori projecte/ dins /home/daw_grp/. Assigna'l al grup daw_grp i activa el bit SGID:
sudo mkdir -p /home/daw_grp/projecte/
sudo chown :daw_grp /home/daw_grp/projecte/
sudo chmod g+s /home/daw_grp/projecte/

10. Amb l'usuari daw1 i daw2 crea fitxers dins de /home/daw_grp/. Comprova que pertanyen al grup daw_grp:
su - daw1
touch /home/daw_grp/projecte/daw1_file.txt
exit
su - daw2
touch /home/daw_grp/projecte/daw2_file.txt
exit
ls -l /home/daw_grp/projecte/

11. Comprova el umask actual dels usuaris asix1 i daw1:
su - asix1
umask
exit
su - daw1
umask
exit

12. Canvia el umask a 027 temporalment i crea un nou fitxer:
umask 027
touch nou_fitxer.txt
ls -l nou_fitxer.txt

13. Explica la diferència en els permisos del fitxer abans i després del canvi de umask:
Explicació: Un umask de 027 impedeix permisos d'escriptura per al grup i impedeix tots els permisos per als altres.

14. Com a root, crea un fitxer doc.txt, propietat de asix1:
sudo touch /home/asix1/doc.txt
sudo chown asix1 /home/asix1/doc.txt

15. Canvia el propietari a asix2 i el grup a asix_grp. Comprova els canvis amb ls -l:
sudo chown asix2:asix_grp /home/asix1/doc.txt
ls -l /home/asix1/doc.txt

16. Com a asix1, canvia al grup asix_grp amb newgrp:
su - asix1
newgrp asix_grp

17. Crea un fitxer i comprova a quin grup pertany:
touch fitxer_test.txt
ls -l fitxer_test.txt
COMANDOS - PARTICIONES y DISCOS

01) Afegeix un disc de 80G a la teva màquina virtual
HECHO

02) Crea la taula de particions del disc
HECHO

03) Crea dues particions, una de 50G i una altre amb la resta.
HECHO

04) Mostra les dues particions
HECHO

05) Formata una partició en NTFS (etiqueta DiscNTFS) i l'altre en vfat (etiqueta Discvfat)
sudo mkfs.ntfs -L DiscNTFS /dev/sdX1
sudo mkfs.vfat -n Discvfat /dev/sdX2

06) Què fa la comanda blkid? i la comanda ls -l /dev/disk/by-uuid/
blkid # Mostra informació sobre els dispositius de bloc i les seves UUIDs
ls -l /dev/disk/by-uuid/ # Mostra els enllaços simbòlics de dispositius per UUID

07) Munta les dues particions. Com es desmunten? Com faràs per a que es muntin a l'arrencada?
sudo mount /dev/sdX1 /mnt/ntfs
sudo mount /dev/sdX2 /mnt/vfat
sudo umount /mnt/ntfs
sudo umount /mnt/vfat
Per muntar automàticament a l'arrencada, afegir al /etc/fstab:
echo "UUID=$(blkid -s UUID -o value /dev/sdX1) /mnt/ntfs ntfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=$(blkid -s UUID -o value /dev/sdX2) /mnt/vfat vfat defaults 0 0" | sudo tee -a /etc/fstab

EJ:
/dev/sdb1 /mnt/Disc50G ntfs-3g default 0 1

08) Amb les particions anteriors muntades, què mostra la comanda lsblk -f?
lsblk -f # Mostra el tipus de sistema de fitxers i els punts de muntatge

09) Mostra el disc a través de l'eina gràfica gparted. Desfès les particions i torna-les a fer amb aquesta eina
HECHO

10) De quants bits és el processador? Mostra la informació de la cpu amb la comanda lscpu, lshw i dmidecode i també a través de l'arxiu /proc/cpuinfo
lscpu
sudo lshw -class processor
sudo dmidecode -t processor
cat /proc/cpuinfo

11) Mostra la informació en format reduït de les comandes lshw i dmidecode
sudo lshw -short
sudo dmidecode -s processor-version

12) Mostra la informació dels dispositius PCI
lspci

13) Mostra la informació dels dispositius USB.
lsusb

14) Mostra el total del que ocupa el directori descàrregues, en format humà.
du -sh ~/Descàrregues

15) Mostra l'utilització de disc de / en format humà
df -h /

16) Mostra l'utilització de la memòria ram i la swap en format humà
free -h

17) Què mostra la comanda uptime?
uptime # Mostra el temps que el sistema ha estat en funcionament

18) Cerca i realitza proves amb més comandes de dispositius (per exemple de deteció d'errors)
sudo smartctl -a /dev/sdX # Comprova l'estat del disc dur
sudo dmesg | grep -i error # Mostra errors del sistema
sudo iostat -x # Mostra estadístiques d'entrada/sortida
COMANDOS - COPIAS de SEGURIDAD

1) Què és un bakcup complet?
Un backup complet és una còpia de seguretat de totes les dades seleccionades en un sol procés.

2) Quina diferència hi ha entre un backup diferencial i un incremental?
- Diferencial: Copia tots els fitxers modificats des del darrer backup complet.
- Incremental: Copia només els fitxers modificats des del darrer backup (sigui complet o incremental).

3) El fitxers agrupats amb la comanda "tar" conserven el seu path? Relatiu o absolut?
Depèn de com es creï l'arxiu: si es fa amb paths absoluts, es guarden així; si es fa des d'un directori amb paths relatius, es guarden relatius.

4) Crea un fitxer tar del contingut d'un directori mostrant el progrés de l'operació.
tar -cvf backup.tar --checkpoint=. --checkpoint-action=echo Directori/

5) Llista el contingut del fitxer tar creat anteriorment.
tar -tvf backup.tar

6) En un altre directori, extrau el contingut del fitxer tar creat anteriorment mostrant el progrés de l'operació.
tar -xvf backup.tar --checkpoint=. --checkpoint-action=echo -C NouDirectori/

7) En un altre directori, extrau només un fitxer dels que conté el fitxer tar.
tar -xvf backup.tar fitxer.txt -C NouDirectori/

8) Crea en /backup un fitxer sense comprimir del teu directori home indicant l'etiqueta "Directori home de el_teu_nom sense comprimir"
tar -cvf /backup/home_backup.tar ~

9) Crea en /backup un fitxer comprimit del teu directori home indicant l'etiqueta "Directori home de el_teu_nom comprimit". Quina diferència hi ha amb l'anterior?
tar -czvf /backup/home_backup.tar.gz ~
La diferència és que el segon està comprimit.

10) Comprova que s'ha realitzat correctament
ls -lh /backup/

11) Esborra un directori del teu home.
rm -r ~/Directori

13) Restaura el fitxer esborrat
tar -xvf /backup/home_backup.tar -C ~
COMANDOS - PROCESSOS y SERVICIOS

01) Llistar tots processos
ps aux

02) Mostra els processos d'un usuari (per exemple tu)
ps -u $(whoami)

03) Identifica el PID del procés de la terminal actual.
echo $$

04) Mostra tots els processos de totes les màquines de VirtualBox obertes, en full-format.
ps -ef | grep VirtualBox

05) Com es mostra l'arbre de processos amb els PIDs
pstree -p

06) Compara la sortida amb ps aux --forest.
ps aux --forest

07) Identifica quin procés és el pare de la teva shell.
echo $PPID

08) Dintre de top, canvia l’ordre de classificació (CPU, memòria, PID).
- Prem Shift + P per ordenar per ús de CPU.
- Prem Shift + M per ordenar per ús de memòria.
- Prem Shift + N per ordenar per PID.

09) Prova htop.
htop

10) Inicia un procés en primer pla (sleep 1000), i suspèn-lo.
sleep 1000
Premeu Ctrl + Z per suspendre

11) Reprèn el procés anterior.
fg

12) Mata el procés anterior.
kill %1

13) Executa nano i suspèn-lo.
nano
Premeu Ctrl + Z per suspendre

14) Llista els treballs amb jobs.
jobs

15) Passa el treball suspès al segon pla (bg %1)
bg %1

16) Torna’l al primer pla (fg %1).
fg %1

17) Acaba el procés.
exit

18) Obre moltes terminals bash. Finalitza-les totes amb el killall
killall bash

19) Executa nice -n 10 sleep 300 &. Mostra la prioritat.
nice -n 10 sleep 300 &
ps -o pid,ni,comm -p $!

20) Canvia la prioritat amb renice -5 -p PID. Verifica que la prioritat ha canviat.
renice -5 -p PID
ps -o pid,ni,comm -p PID

21) Executa nohup ping google.com > ping.log &. Tanca la terminal i obre una de nova. Verifica que el procés segueix en execució (ps aux | grep ping). Para el procés amb kill PID.
nohup ping google.com > ping.log &
exit
Obre una nova terminal
ps aux | grep ping
kill PID

22) Programa una tasca que s'executi cada 5 minuts de dilluns a divendres, de 9:00 a 15:00 i que guardi al fitxer usuaris_connectats.txt al teu home qui hi ha connectats al sistema. Comprova que surt al fitxer usuaris_connectats.txt. Comenta la tasca del cron.
crontab -e
Afegir la següent línia
*/5 9-15 * * 1-5 who > ~/usuaris_connectats.txt

23) Què fa la comanda: echo "touch ~/at_test.txt" | at now + 2 minutes.
Crea el fitxer at_test.txt dins el directori home després de 2 minuts.

24) Llista les tasques pendents amb atq.
atq

25) Espera dos minuts i comprova si at_test.txt s’ha creat.
ls ~/at_test.txt