Documente Academic
Documente Profesional
Documente Cultură
sudo usermod -d /home/countdracula dracula ( set path for dracula) + mkdir /home/countdracula
touch Makefile
touch exec
vim Makefile
light.o: sound.c
gcc -c sound.c
sound.o: sound.c
gcc -c sound.c
run: build
./exec
make clean --->sterge obiecte create de executabil ( doar sound.o rezulta din exec) si exec
clean:
rm sound.o exec
templates: boo.c
APLICATII
#!/bin/bash
#!/bin/bash
#!/bin/bash
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$’ | cut –d’ ‘ –f5) 2>
/home/student/error.txt)
do
let suma=suma+dim
done
echo $suma > /home/student/total_size.txt
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/tema2-
scripts 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 al
containerului titulescu (nu se puncteaza daca doar ati rezolvat temporar problema).
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 student@192.168.1.34
ssh student@192.168.1.34
(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