/tbolimpiada_finals_DevOps_2023

πŸ† Π—Π°Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ½Π°Π»Π° Π½ΠΎΠΌΠΈΠ½Π°Ρ†ΠΈΠΈ VK направлСния DevOps

Primary LanguageC++

img.png

Π—Π°Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ½Π°Π»Π° номинация DevOps 2023

Π€Π°Π±ΡƒΠ»Π°

Π’ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‡Π΅Ρ‚ Π΄ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ свою линию. На Π΅Π³ΠΎ машинС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ вносимых Π² Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ дСйствия ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π² систСму Π±Ρ‹Π» внСсСн ряд ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ компилируСтся Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НайдитС ΠΈΡ… ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС Ρ‚Π°ΠΉΠ½ΠΎΠ΅ становится явным.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ смотря Π½Π° внСсСнныС измСнСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ остался ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ.

Π—Π°Π΄Π°Ρ‡Π°

Найти Π³Π΄Π΅ упрямый Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вносит смуту ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ измСнСния внСсСнныС Π² исходный ΠΊΠΎΠ΄. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡƒΠΊΠ°Π·Π°Π² Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ c.out Π‘ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ тСкстовый Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ - сцСнарий: Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΡŒ рассуТдСний, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти Π² систСму, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π» скомпилированы Π²Π΅Ρ€Π½ΠΎ.

РСшСниС

  1. Поиск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²:
Work
| - DevSecOps
    |- .vs
    |- app.cpp
    |- LICENSE
    |- Math.cpp
    |- Math.h
  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия компилятора.
>> ubuntu $ which g++
/usr/local/bin/g++
  1. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ
>>> g++ -o c.out Math.cpp
  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ собранной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
>>> ubuntu $ ls
LICENSE  Math.cpp  Math.h  app.cpp  c.out
>>> ubuntu $ ./c.out
Usage: program_name num1 operator(+,-,*,/) num2
>>> ubuntu $ ./c.out 1+3
Usage: program_name num1 operator(+,-,*,/) num2
>>> ubuntu $ ./c.out 1 + 5
6
>>> ubuntu $ ./c.out 1 - 5
6
>>> ubuntu $ ./c.out 1 * 5
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stod
Aborted (core dumped)
>>> ubuntu $ ./c.out 10 / 5
2
>>> ubuntu $ ./c.out 10 * 5
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stod
Aborted (core dumped)
ubuntu $ 

Ошибка связана с символом * ΠΊΠΈΠ΄Π°Π΅Ρ‚ std::invalid_argument, соотвСтствСнно Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ.

  1. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π²Π΅Ρ€ΡΠΈΡŽ Π»ΠΈΠ±Ρ‹

https://stackoverflow.com/questions/10354636/how-do-you-find-what-version-of-libstdc-library-is-installed-on-your-linux-mac

ubuntu $ /sbin/ldconfig -p | grep stdc++
        libstdc++.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libstdc++.so.6
  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС зависимости
>>> ubuntu $ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Building dependency tree       
Reading state information... Done
116 packages can be upgraded. Run 'apt list --upgradable' to see them.
>>> ubuntu $ sudo apt install g++
Reading package lists... Done
Building dependency tree       
Reading state information... Done
g++ is already the newest version (4:9.3.0-1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 116 not upgraded.
  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² файловойсистСмС Π·Π° послСдниС 7 Π΄Π½Π΅ΠΉ
>>> ubuntu $ find ./filesystem  -type f -mtime -7 ! -mtime -3
>>> ubuntu $ find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
2023-02-23 12:41:05.0602464550 /etc/systemd/resolved.conf
2023-02-23 12:41:04.9362731000 /etc/systemd/timesyncd.conf
2023-02-23 12:41:02.0929175580 /etc/killercoda/host
2023-02-23 12:40:28.5877413600 /etc/sysctl.conf
2023-02-23 12:39:40.3435959270 /etc/ld.so.cache
2023-02-23 12:39:40.2395773910 /etc/mailcap
2023-02-23 12:38:32.6695510490 /etc/apt/trusted.gpg
2023-02-23 12:38:32.2814044700 /etc/crictl.yaml
2023-02-23 12:38:32.2734014480 /etc/containerd/config.toml
2023-02-23 12:38:32.2493923820 /etc/sysctl.d/99-kubernetes-cri.conf
2023-02-23 12:38:32.2213818030 /etc/modules-load.d/containerd.conf
2023-02-23 12:38:30.7448281770 /etc/docker/daemon.json
2023-02-23 12:38:21.2414414620 /etc/network/fan
2023-02-23 12:38:21.0653820580 /etc/passwd
2023-02-23 12:38:21.0293699070 /etc/shadow
2023-02-23 12:38:21.0000000000 /etc/shadow-
2023-02-23 12:38:20.0810547960 /etc/docker/key.json
2023-02-23 12:38:20.0000000000 /etc/passwd-
2023-02-23 12:38:17.0800919630 /etc/gshadow
2023-02-23 12:38:17.0640869350 /etc/group
2023-02-23 12:37:15.3143788690 /etc/netplan/kc-config.yaml
2023-02-23 12:37:14.9660471260 /etc/hosts
2023-02-23 12:37:14.9660471260 /etc/hostname
2023-02-23 12:37:13.2444668530 /etc/apt/apt.conf.d/10cloudinit-disable
2023-02-23 12:37:10.1154747680 /etc/default/motd-news
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/tokenizer.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/sysvshm.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/sysvsem.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/sysvmsg.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/sockets.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/shmop.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/readline.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/posix.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/phar.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/pdo.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/opcache.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/json.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/iconv.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/gettext.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/ftp.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/fileinfo.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/ffi.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/exif.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/ctype.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/mods-available/calendar.ini
2023-01-10 15:37:44.0000000000 /etc/php/7.4/cli/php.ini
2022-12-02 14:05:28.0000000000 /etc/libnl-3/pktloc
<Π±ΠΎΠ»Π΅Π΅ старый Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠΏΡƒΡ‰Π΅Π½>
  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ
ubuntu $ git config --list --show-origin
file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=true
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        remote.origin.url=https://github.com/Sehktel/DevSecOps.git
file:.git/config        remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
file:.git/config        branch.main.remote=origin
file:.git/config        branch.main.merge=refs/heads/main
ubuntu $

Π’Ρ‹Π²ΠΎΠ΄

ВСроятно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΊΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΠ» измСнСния libstdc++.so.6 ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ root'ΠΌ