Автор Тема: CLI задачка-закачка, която е толкова проста, че никой не може да познае :)  (Прочетена 231 пъти)

rado84

  • Напреднали
  • *****
  • Публикации: 116
  • Window Manager: Cinnamon
    • Профил
Бях ви позабравил малко, но откакто се оказа, че въпросът "ЗАЩО", свързан с тази закачка затруднява всички ИИ, за които се сетих + маса жив човек (макар че съдейки по отговорите е трудно да ги наречеш така), реших да намина да питам малкото мислещи линукс юзъри у нас. Скрипта си го писах аз и това, което прави е да създава бекъп на всичките ми скриптове, които не са никак малко. Въпросът е обаче не е "какво" или "къде" (както отговориха някои - facepalm), а З-А-Щ-О скриптът има парола? И не, не е за сигурност за криене на данни. Причината е много по-прозаична, почти като cheat code в игра (безобидна за системата, но адски полезна за потребителя), но, както казах, все още никой не е успял да познае причината.  ;D
Нека чесането по главата започне сега!  ;D ;D

Пак пояснявам, че задачката е "ЗАЩО има парола", А НЕ "КЪДЕ Е ПАРОЛАТА"!  ;)

Код:
#!/usr/bin/env bash

aliasdir=/B/ALIASES
aliasbackup=/BACKUP/LINUX/ALIASES
archname="CLI-SCRIPTS-AND-ALIASES.7z"
options9="-mx9 -mmt20 -md=460m"
password="-p@@1234@@ -mhe"
scripts="/B/CLI/SCRIPTS"
hidden_files=(
    ~/.aliases-txt
    ~/.bashrc
    ~/.bash_profile
    ~/.inputrc
    ~/.XSession
    ~/.XCompose
)

7z a $aliasdir/$archname "${hidden_files[@]}" $scripts $password $options9 &&
cp -v $aliasdir/$archname $aliasbackup &&
cp -v $aliasdir/$archname /B/123
Активен

RESIST OS Cinnamon; Core i7-12700F; RTX 3070 Ti 8 GiB, 62.62 GiB DDR5-4800 (5200).

4096bits

  • Напреднали
  • *****
  • Публикации: 9549
    • Профил
Архива трябва да е с парола, защото ако на всички скриптове паролата е по същия начин написана в прав текст, определено архива трябва да е защитен.

Моя въпрос е, защо не питаш потерителя за парола за архива, вместо да я задаваш в прав текст в скрипта, видима за всички?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

remotexx

  • Напреднали
  • *****
  • Публикации: 5698
    • Профил
Защото някой може да съдържат неща от сорта
Код
GeSHi (Bash):
  1. export AWS_SECRET_ACCESS_KEY=...
  2. export DB_PASSWORD=...
  3.  

А дори и да не съдържат, за да не ги разархивираш ти или скрипт по погрешка затривайки свежите данни  със стари.. в смисъл автоматичен скрипт дето не е този който ги архивира и не знае паролата, но ..
Има и по добро решение, както един съфорумец разправя от бая време... Такива директории се слагат под управление на ГИТ така хем си имаш бекъп хем и контрол на версиите като се омаже нещо
« Последна редакция: Jun 20, 2026, 00:57 от remotexx »
Активен

rado84

  • Напреднали
  • *****
  • Публикации: 116
  • Window Manager: Cinnamon
    • Профил
Нищо не сте разбрали. Паролата е проста и видима за всички, защото няма значение кой ще я види. Тук паролата и криптирането имат съвсем друга цела извън сигурността, ама да видим дали ще се сетите.  ;D
Активен

RESIST OS Cinnamon; Core i7-12700F; RTX 3070 Ti 8 GiB, 62.62 GiB DDR5-4800 (5200).

4096bits

  • Напреднали
  • *****
  • Публикации: 9549
    • Профил
За друго не се сещам.
И без това нищо не разбирам от bash скриптове.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

remotexx

  • Напреднали
  • *****
  • Публикации: 5698
    • Профил
Ами има още едно нещо но то не се конторлира от опцията за паролата ами о т -mhe опцията - ке ви оставя да се сетите сами кое е то... но и то все-пак е свързано със сигурността  [_]3

между другото това и RAR го може..комай само ZIP го неможе  ;)
« Последна редакция: Jun 20, 2026, 21:40 от remotexx »
Активен

rado84

  • Напреднали
  • *****
  • Публикации: 116
  • Window Manager: Cinnamon
    • Профил
Ами има още едно нещо но то не се конторлира от опцията за паролата ами о т -mhe опцията - ке ви оставя да се сетите сами кое е то... но и то все-пак е свързано със сигурността  [_]3

между другото това и RAR го може..комай само ZIP го неможе  ;)

В този случай обаче няма нищо общо със сигурността, а просто пречи на линукс да види какво има в архива. По-голям жокер от това няма как да ви дам. Сигурен съм, че като напиша защо има парола и криптиране, ще се пляскате по челата как не сте се сетили за това.  ;D

А между другото, от к'ъв зор ще използваш RAR в линукс, когато 7z е светлинни години по-напред и при това е безплатен?
Активен

RESIST OS Cinnamon; Core i7-12700F; RTX 3070 Ti 8 GiB, 62.62 GiB DDR5-4800 (5200).

4096bits

  • Напреднали
  • *****
  • Публикации: 9549
    • Профил
В България не питаме за цената, защото почти не плащаме за софтуер.
Просто си го ползваме.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

remotexx

  • Напреднали
  • *****
  • Публикации: 5698
    • Профил
А аз пак се опитвам да ти кажа че това дето си го мислиш не идва от --password опцията а от  -mhe опцията която ти добавя header encryption, а хедъра ти е мястто където се пазят имената на файловете (пробвай само за спорта и махни само -mhe, а си остави паролата да видиш че и с парола имената пак се виждат, а само съдържанието е криптирано, ма то там и криптирано и некриптирано е все едно и също и без парола пак не мож позна какво има във файла /без да го разархивираш/)

..и моите два цента (а бе сега вече... 5 ст. на 2 цента ли ги приравнявате или на 2.5)
1. Ако това ти беше целта - задачата ти беше много неправилно фомрулирана
2. Защо ще искаш да скриеш имената на файловете ако не то пука за сигурност(та)

П.П. А при РАР опцията е -hpPASSWORD за разлика от обикновеното -pPASSWORD, а и като ще си го мериш, знай че РАР го има още сто години преди 7зип вкл. и с опцията за имената. Плюс още нещо (т'ва е по специалността на Гогата , който се изявява/ше и като дърт джамджия напоследък)  :P
RAR supports storing NTFS Alternate Data Streams (ADS) in normal RAR/RAR5 archives.
7‑Zip does not support storing ADS in 7z archives
« Последна редакция: Днес в 01:39 от remotexx »
Активен

rado84

  • Напреднали
  • *****
  • Публикации: 116
  • Window Manager: Cinnamon
    • Профил
А аз пак се опитвам да ти кажа че това дето си го мислиш не идва от --password опцията а от  -mhe опцията която ти добавя header encryption

Няма как да имаш криптиране на хедъра без парола.

Ама виждам, че в тези жеги явно ви мързи да мислите, така че ще приключим темата с отговора:
архивът има парола (съответно криптиране), за да не може линукс да види какво има в архива. Когато не може да сравни съдържанията на стар и нов архив, линукс се държи като уиндоус: overwrite, вместо merge. Да, можеш да си добавиш изтриване на стария архив, обаче защо да си усложняваш скрипта с глупости, когато можеш просто да принудиш поведение като в уиндоус?
Ако съдържанието на архива не се променя, няма да забележиш разлика. Обаче ако понякога или често променяш структурата на директориите и файловете, които архивираш, линукс ще слее стария архив с новия и резултатът ще е бъркотия, която после трябва да сортираш на ръка.

Само с парола без криптиране линукс пак се опитва да ги слее, но ти иска и паролата. А като не може да сравни съдържанията, не иска нищо и директно overwrite-ва. Именно затова паролата е толкова лесна - не за сигурност или криене на данни, а просто да попречиш на линукс да сравни съдържанията на стария и новия архив.
Активен

RESIST OS Cinnamon; Core i7-12700F; RTX 3070 Ti 8 GiB, 62.62 GiB DDR5-4800 (5200).