Uso.docx

  • Uploaded by: Petree Baa
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Uso.docx as PDF for free.

More details

  • Words: 1,651
  • Pages: 9
 UTILIZATORI, GRUPURI, PAROLE sudo useradd dracula ( face cont) sudo pswd dracula (parola cont) sudo groupadd monsters (face grup) sudo adduser dracula monsters (adauga cont existent la grup) usermod -m -d /newhome/username username ( seteaza home ul) sudo usermod -d /home/countdracula dracula ( set path for dracula) + mkdir /home/countdracula adaug folder cu toate drepturile la utilizator: sudo chown username: foldername sudo chgrp groupname ./foldername ( adaugare la grup fisier) sudo chmod g+rw ./foldername (adaugare drept read-write) chmod u,g,a + ( - ) rwx ls –l ( vezi drepturile, dimensiune fisier etc)  CREARE EXECUTABIL , MAKEFILE touch Makefile touch exec sudo chmod a+x exec vim Makefile { build: light.o sound.o gcc light.o sound.o -o exec light.o: sound.c gcc -c sound.c sound.o: sound.c gcc -c sound.c } make build ---> corect

make run ---> recompilare si ii da run programului run: build ./exec make clean --->sterge obiecte create de executabil ( doar sound.o rezulta din exec) si exec clean: rm sound.o exec make templates ---> creeaza intermediarele boo.s si boo.o din boo.c templates: boo.c gcc -c -save-temps boo.c  APLICATII 1.a) Scrieţi un script în /home/student/tema2-scripts numit task1a.sh în care generaţi un fişier numit filesys.bin de 1000 MB (1M = 1024K) care să conţină doar octeţi de 0 în folderul /mnt (hint: dd) #!/bin/bash sudo dd if=/dev/zero of=/mnt/filesys.bin count=1000 bs=1M b) Scrieţi un script în /home/student/tema2-scripts numit task1b.sh în care să modificați fișierul filesys.binastfel încât acesta să conțină un sistem de fișiere de tip ext2 (hint: mkfs) #!/bin/bash sudo mkfs.ext2

/mnt/filesys.bin

c) Scrieţi un script în /home/student/tema2-scripts numit task1c.sh în care să creaţi un mountpoint în /mnt/mymnt şi să montaţi filesystem-ul obţinut anterior /mnt/filesys.bin acolo de tip loop #!/bin/bash sudo mkdir /mnt/mymnt sudo mount /mnt/filesys.bin /mnt/mymnt

d) Scrieţi un script în /home/student/tema2-scripts numit task1d.sh în care creaţi două foldere în noul sistem de fişiere montat în /mnt/mymnt - randoms, passwords



În folderul randoms generaţi un fişier de 10000 Bytes cu date random. Asigurati-va ca tipul lui e binar. Numele lui trebuie sa fie random.bin



În folderul passwords generaţi 100 de fişiere care să conţină parole cu date random având numele: only_numbers_and_lettersNUM.txt - va conţine o parolă de 30 de caracatere random formată doar din litere mari şi/sau mici şi cifre. Nici un alt caracter acceptabil, NUM din nume e o valoare din intervalul (1..100). Hint: Bash loops #!/bin/bash sudo mkdir /mnt/mymnt/randoms sudo mkdir /mnt/mymnt/passwords sudo dd if=/dev/urandom of=/mnt/mymnt/randoms/random.bin count=1 bs=10000 for NUM in {1 ..100} { sudo touch /mnt/mymnt/passwords/only_numbers_and_letters$NUM.txt sudo

head

/dev/urandom

|

tr

–dc

A-Za-z0-9

|

head

–c

30

>

/mnt/mymnt/passwords/only_numbers_and_letters$NUM.txt } e) Realizaţi configuraţiile necesare în sistemul vostru astfel încât la fiecare reboot să găsim montat filesys.bin în /mnt/mymnt cu permisiuni de citire şi scriere pentru orice utilizator al sistemului. Hint fstab. vim /etc/fstab /mnt/filesys.bin

/mnt/mymnt

ext2

rw

0

0

sudo mount –a 2. Realizaţi un shell script numit task2.sh plasat în /home/student/tema2-scripts. Acesta va monitoriza următoarele valori din sistem şi le va plasa într-un fişier /home/student/system_monitor.csv în modul append. Fiecare linie din csv va avea forma: name_of_computer,timestamp,percent_cpu_usage_inSystemAtThisTime,bytes_of_mem_ usage_inSystemAtThisTime,num_bytes_transmitted,num_bytes_received Octeţii (bytes) received/transmitted se referă la octeţii de date primiţi şi transmişi pe interfaţa de reţea: enp0s3 Memoria consumată se referă la memoria RAM consumată la acel moment de timp. Se doreşte valoarea în KB (kilobytes, kilo-octeţi), nu MB, GB etc… CPU usage: este procentul de CPU folosit de întregul sistem la acel moment pe o medie de 15 minute. Valoarea va fi un număr real (de tip float, de forma 0.19 - observaţi că separarea părţii întregi de cea fracţionară se face prin PUNCT (.) şi nu prin virgulă!) Se vor monitoriza 10 iteraţii în fişierul csv cerut. Asta înseamnă că fişierul csv va conţine doar 10 linii de forma descrisă mai sus, separate prin virgulă (,) Hints:

 Pentru timestamp: man date, căutaţi după seconds since 1970-01-01 00:00:00 UTC  Pentru

octeţii

transmişi/primiţi

pe

interfaţa

de

reţea: /proc/net/dev sau ls

/sys/class/net/enp0s3/statistics  Pentru memoria consumată: free  Pentru CPU usage: uptime  Pentru numărul de iteraţii: Bash loops  shell expansion #!/bin/bash for i in {1..10} do echo “$(hostname)” >> /home/student/system_monitor.csv done  3. Realizaţi un script în /home/student/tema2-scripts numit task3.sh în care afişaţi dimensiunea totală în octeţi (bytes) a tuturor fişierelor cu extensia .conf din folderul /etc (în mod recursiv) într-un fişier /home/student/total_size.txt iar erorile le raportează în /home/student/error.txt. Câteva aspecte importante despre script: 

Nu se va rula ca root. Se va rula ca student. Aşadar fişierele asupra cărora student nu va putea citi vor da erori ce vor fi raportate



Nu-l complicaţi prea mult, ideal se poate face dintr-o singură comandă (oneliner) sau un shell script cu maxim 3 linii.

Hints:  Când descoperiţi fişierele *.conf - lista lor - s-ar putea să fie nevoie să afişaţi totul pe o singură linie. Puteţi obţine acest lucru folosind sed  stat, paste, bc, find #!/bin/bash for

dim

in

$((ls

–Rl

/etc

|

grep

‘\.conf$’

/home/student/error.txt) do let suma=suma+dim done echo $suma > /home/student/total_size.txt

|

cut

–d’



–f5)

2>

 4.

Creați

un

script

în

directorul /home/student/tema2-

scripts numit real_users.sh care să afișeze toți utilizatorii reali din sistem, sortați lexicografic, câte unul pe linie. Prin utilizator real înţelegem un utilizator care are un shell valid de login. Hint: /etc/shells #!/bin/bash for user in $(cat /etc/passwd | sort) do if grep –Fxq “$(echo $user | cut –d: -f7 )” /etc/shells then echo $user | cut –d: -f1 done 5. Să se creeze un script în directorul /home/student/tema2scripts numit powsnsums.sh care primește argumente în linia de comandă, să se decidă care dintre ele sunt numere intregi in baza 10 și să se afișeze: 1. Numărul de argumente primite în lina de comandă. 2. Numerele ce reprezintă o putere de a lui 2, câte unul pe linie, în ordinea primită. (A nu se considera 1 putere a lui 2) 3. Suma numerelor. #!/bin/bash echo “Numarul de argumente este $#.” for arg in “$@”; do p=0 nr=$arg while (( nr > 0 )); do if (( (nr & 1) == 1 )); then p=$(( p +1 )) fi if (( p > 1 )); then break fi nr=$(( nr >> 1 )) done if ( (( p == 1 )) && (( $arg != 1 )) ); then printf ‘%d\n’ “$arg” fi done

for arg in $@ do nr=$arg if [ -n “$nr” ] && [ “$arg” –eq “$nr” ] 2>/dev/null then sum=$((sum+arg)) fi done echo “Suma nr este $sum.” 6. Configurati carol si ferdinand sa poata comunica (da ping) unul cu celalalt. Ele au deja adrese puse pe interfetele eth0, insa nu pot comunica. Checkerul va verifica daca acestea pot vorbi cu masina virtuala (192.168.1.1). Configurați în mod static temporar, pe interfetele eth0 ale containerelor urmatoarele adrese:  192.168.1.14/24 pe carol  192.168.1.27/24 pe ferdinand  192.168.1.34/24 pe cantacuzino  192.168.1.41/24 pe titulescu Faceţi configuraţiile anterioare sa fie permanente (dupa un restart al containerului, configuraţiile încă să existe). Vedem ce adresa ip avem pe fiecare container cu ip a s Adaugam adresele ip dorite cu ip addr add 192.168.1.14/24 dev eth0 pt prima de exemplu Stergem adresele ip nedorite cu ip addr del 192.168.1.13/45 dev eth0 de exemplu Pentru a face configuratiile permanente: ( de ex. pt carol) vim /etc/rc.local ip addr flush dev eth0 ip addr add 192.168.1.14/24 dev eth0 (aceste 2 comenzi intre comentarii si exit 0 ) chmod a+x /etc/rc.local .//etc/rc.local sudo docker restart carol pe host 7. Nu ne putem conecta cu SSH pe titulescu de pe celelalte containere sau de pe masina virtuala.

Rezolvati

problema.

Faceti

ca

problema

sa

nu

revina

la

un

restart

containerului titulescu (nu se puncteaza daca doar ati rezolvat temporar problema).

al

service ssh start

systemctl start ssh

systemctl enable ssh

8. Pe containerul cantacuzino pare să nu fie conexiune la internet (ping google.com va eşua). Investigaţi care este sursa problemei şi realizaţi configuraţia necesară. Puteţi folosi orice adresă publică o găsiţi pe Internet, nu există restricţii, important e să rezolvaţi problema. vim /etc/network/interfaces dupa source-directory interfaces.d (cu un rand liber intre ele): auto eth0 iface eth0 inet static address 192.168.1.34 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 se sterg cele 2 comenzi din /etc/rc.local si pastreaz doar exit 0 dupa comentarii 9. La task-ul anterior probabil că aţi realizat o configuraţie temporară. Plănuim ca după un restart al containerului cantacuzino problema să nu mai revină, e nevoie să realizaţi o configuraţie permanentă, care să fie disponibilă şi după reboot. vim /etc/systemd/resolved.conf DNS=8.8.8.8 FallbackDNS=8.8.8.8 sudo docker restart cantacuzino pe host 10. Configuraţi SSH astfel incat userul student de pe containerul titulescu sa se poata conecta la userul student de pe containerul cantacuzino fara sa i se ceara parola. (student@titulescu → student@cantacuzino) Configuraţi un server de SAMBA (smb) pe cantacuzino. Creaţi un folder /mnt/trianon pe care

sa

il

distribuiţi

prin samba şi

în

el

creaţi

fişierele: franta, marea_britanie, sua, italia, japonia, regatul_sarbocroat, cehoslov acia, ungaria. Share-ul se va numi trianon. Montati pe containerul titulescu filesystemul share-uit prin samba in directorul /mnt/smb. De pe titulescu: ssh-keygen ssh-copy-id [email protected] ssh [email protected] (analog de pe cantacuzino cu adresa ip a lui titulescu) Instalare samba

sudo apt-get update sudo apt-get install samba smbclient cifs-utils sudo smbpasswd –a student ( punem parola student userului student) vim /etc/samba/smb.conf dam la sfarsitul fisierului si scriem urmatoarele exact asa dupa 2-3 randuri de ultimul rand de text: [trianon] ( nume share) (urmeaza tab uri mereu) path = /mnt/trianon read only = no valid users = student browsable = yes public = yes writable = yes service smbd start cream fisierul de share uit /mnt/trianon cu fisierele aferente in el montam fisierul /mnt/trianon pe titulescu in /mnt/smb cream /mnt/smb cu mkdir vim /etc/fstab //192.168.1.34/trianon /mnt/smb

cifs

username=student,password=student,iocharset=utf8,file_mode=0777,dir_ mode=0777 0

0

mount –a 11. Realizaţi configuraţia de montare a share-ului trianon de pe cantacuzino de la task ul

anterior în mod permanent pe containerul titulescu (dupa restart-ul containerului să găsim în /mnt/smb gata montat tratatul de la Trianon). sudo mount –t cifs –o user=student //192.168.1.34/trianon /mnt/trianon

More Documents from "Petree Baa"

Uso.docx
December 2019 0
Implementarea Stivei.docx
October 2019 1