Creați următoarea structură de directoare și de fișiere, denumite exact ca mai jos (în /home/training
):
/
(slash) sunt nume de directoare. Numele care nu se încheie cu /
(slash) sunt nume de fișiere obișnuite.
seriale/
(director). Acesta va conține fișierele:suits
grey's anatomy
dr. who
downton abbey
house md
carti/
(director). Acesta va conține următoarele directoare:rusia/
dostoievski
tolstoi
marea britanie/
shakespeare
charles dickens
joanne k rowling/
john ronald reuel tolkien
franta/
balzac
jean de la fontaine
seriale
și carti
.
harry
, meredith
, wilson
, gandalf
, vladimir
. Toți utilizatorii vor avea parola training
.rusia
astfel încât utilizatorul vladimir
are drepturi depline și restul utilizatorilor (inclusiv grupul ce deține fișierul) nu au niciun drept. harry
are drepturi depline asupra directorului joanne k rowling
și gandalf
are doar drepturi de citire (și de navigare în interiorul directorului, adică drept de execuție). Ceilalți nu au nici un drept asupra directorului.
Scrieți un script care pentru un anumit nume de utilizator (exemplificați pe training
) afișează următoarele informații:
SIGINT
procesului care consumă cea mai multă memorie.
/etc/passwd
pentru primele 2 subpuncte. Apoi înlănțuiți rezultatul prelucrării, folosind un anumit operator Bash cu o comandă ps
. Pentru primele 2 bullet-uri puteți folosi și separat comenzile id
, respectiv finger
.
Deși htop
este tool-ul cel mai potrivit pentru ultimele 2 bullet-uri, nu îl putem folosi decât în mod interactiv. Așa că avem nevoie de ps
și să filtrăm output-ul comenzii, să folosim opțiunea --sort
pentru sortare după coloanei de MEM load pentru a determina PID-ul procesului care consumă cele mai multe resurse.
apache2
, apoi porniți daemon-ul aferent serviciului web apache2
. După ce serviciul e pornit, determinați pe ce port ascultă conexiuni serviciul web apache2
. rosedu.org
.
apt-cache search <pattern>
Orice daemon/serviciu se pornește folosind fie comanda service
:
service <nume_serviciu> start service <nume_serviciu> restart service <nume_serviciu> stop
sau folosind scriptul său aferent din /etc/init.d
:
/etc/init.d/<nume_serviciu> {start|stop|restart}
Aveți nevoie de drepturi privilegiate pentru a rula comanda.
Pentru a afișa informații despre serviciile locale (inclusiv porturile pe care acestea ascultă conexiuni). Folosiți opțiunile pentru afișarea PID-ului și a numelui procesului și pentru afișarea doar serviciilor care ascultă (listen) conexiuni în rețea.
Pentru a scana porturile deschise de un server la distanță folosiți comanda nmap
cu opțiunile aferente.
/mnt/dummy
zero100M.dat
. Creați un sistem de fișiere ext3
peste fișierul zero100M.dat
folosind comanda mkfs.ext3
. ext3
în /mnt/dummy
zero100M.dat
) folosiți opțiunea -o loop
la comanda mount
.
syslog
este instalat/var/log/all_logs
. Verificați acest lucru.
/etc/rsyslog.conf
e nevoie de o intrare. Apoi serviciul/daemonul syslog trebuie repornit. Pentru a verifica faptul că mesajele se salvează în /var/log/all_logs
puteți genera mesaje folosing comanda logger
.
/var/log/all_logs
să fie rotit zilnic, folosind până la maxim 20 de fișiere, care ulterior să fie comprimate. <note Indicație> Configurația se face în /etc/logrotate.conf
, man logrotate
pentru exemple </note>
Realizați configurațiile necesare astfel încât de fiecare dată când deschide terminalul, utilizatorul training să fie întâmpinat de mesajul:Hello, training! Here are some statistics: data, our IP is $IP_ADDR, sysuptime, disk load
. Adresa IP va fi cea a interfeței eth0
.
În loc de data
veți afișa data și ora sub forma: 12-01-2015,21:17:59
.
În loc de sysuptime
veți afișa informații despre când a avut loc ultimul boot (de cât timp este sistemul up), load average și câți useri sunt în prezent (si care) logați în sistem. Variabila $IP_ADDR
va fi reținută în variabilă de mediu accesibilă oricărui proces și oricărui terminal!
În loc de diskload
veți afișa informații despre primele 3 partiții care sunt cele mai încărcate, plus tipul sistemului de fișiere, ca spațiu ocupat.
/etc/bash.bashrc
training@uso:~$ cat /etc/bash.bashrc (...) export IP_ADDR=$(ifconfig eth0 | grep inet | tr -s ' ' | head -n 1 | awk -F '[ :]+' ' { print $4 }') date +%d-%m-%Y,%H:%M:%S echo $(uptime) echo $(who) df -hT | tr -s ' ' | sort -t ' ' -k 3n -r | tail -n +2 | head -n 3 (...)
swarm.cs.pub.ro
, elf.cs.pub.ro
, ocw.cs.pub.ro
Descărcați spreasheet-ul de aici în format CSV. Folosiți ,
ca separator. Pe baza CSV-ului realizați un script care:
prenume.nume
și îi adaugă în grup conform facultății la care sunt studențitraining
pentru toți utilizatorii.adduser
în script