программирование сценариев bash

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
bellic
Писатель
Сообщения: 379
Зарегистрирован: 02 сен 2022, 14:41
Откуда: Ростов-на-Дону
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение bellic » 02 сен 2022, 22:28

У меня вышел пока вот такой скрипт, набранный из отдельных команд выполняемых в терминале...

Код: Выделить всё

#! /bin/sh

OUTPUT="$(ls -l /dev | awk '/sd/ { print $10 }' | grep 1$)"
sudo mount /dev/"${OUTPUT}" /mnt
sudo cp /mnt/Pantum/sources.list /etc/apt
sudo apt update
sudo cp -r /mnt/Pantum /home/user/Загрузки/
sudo chmod -R 777 /home/user/Загрузки/Pantum
sudo apt install libcupsimage2
sh install.sh
sudo apt install sane sane-utils
#
# К сожалению тут надо бы прерваться и через Окна установить библиотеку
#     libjpeg8_8b-1_amd64.deb
# потому как она в окнах просит поставить крыжик и нажать кн.Ок
# или как то всеж можно???
#
sudo ln -fs /usr/lib/x86_64-linux-gnu/libqpdf.so.21.4.0 /opt/pantum/lib/libqpdf.so.21
sudo umount /dev/"${OUTPUT}"
sudo rm -r /home/user/Загрузки/Pantum
Смущает конечно много повторяющихся "SUDO" и то что нужно прервать скрипт для установки библиотеки из Окон...
А если скрипту дать все права, можно тогда убрать все "SUDO"?
Последний раз редактировалось bellic 03 сен 2022, 12:55, всего редактировалось 3 раза.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение Olej » 03 сен 2022, 00:39

bellic писал(а):
02 сен 2022, 22:28
А если скрипту дать все права, можно тогда убрать все "SUDO"?
Ну, если ввы это делаете для себя - вы можете всегда выполнять это в терминале с логином от имени root.
Или даже, если делаете для кого-то, то записать это условие в инструкции по использованию.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение Olej » 03 сен 2022, 00:44

bellic писал(а):
02 сен 2022, 22:28
А если скрипту дать все права, можно тогда убрать все "SUDO"?
Вы можете попробовать установить скрипту SUID флаг: SUID / SGID: что это такое и как их использовать
Но имейте в виду, что это так же опасно, как и выполнять под root ... а то даже и хуже. :lol:

Аватара пользователя
bellic
Писатель
Сообщения: 379
Зарегистрирован: 02 сен 2022, 14:41
Откуда: Ростов-на-Дону
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение bellic » 03 сен 2022, 08:40

Olej писал(а):
03 сен 2022, 00:39
Ну, если ввы это делаете для себя - вы можете всегда выполнять это в терминале с логином от имени root.
Или даже, если делаете для кого-то, то записать это условие в инструкции по использованию.
Да, пишу скрипт для себя, ибо нужно будет все это проделывать минимум на 25, максимум на 41 ноутбуках (ставить драйвера принтера и сканера).
В новую модульную школу произвели поставку 41 совершенно пустых ноутбука от AQUARIUS-са, а позже поставщик уточнил и прислал лицензию на Astra Linux SE 1.7. Пришлось ручками ставить... Хорошо, утилита CloneZilla попалась!))) - ранее сохраненний образ диска разворачивается на чистом ноутбуке гораздо быстрее, чем установка с USB-флешки-дистриба!..))
Честно говоря, я этого самого ROOT-та в глаза еще не видал!))) - При установке система попросила задать имя пользователя, который будет создан, и ему будут предоставлены админские права. Вот так в ноутах появился USER... :-D

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение Olej » 03 сен 2022, 12:42

bellic писал(а):
03 сен 2022, 08:40
Честно говоря, я этого самого ROOT-та в глаза еще не видал!))) - При установке система попросила задать имя пользователя, который будет создан, и ему будут предоставлены админские права. Вот так в ноутах появился USER...
Если вы администратор и имеете право на sudo (а без этого вообще в системе делать нечего!), то вы можете войти в регистрационную запись root вот так:

Код: Выделить всё

olej@R420:~$ sudo -i
[sudo] пароль для olej:       
root@R420:~# whoami
root
root@R420:~# 
root - это суперпользователь, которому в Linux дозволено всё (в Astra Linux SE есть ограничения).
Обычно (в UBUNTU, Astra, ...) пряой login по имени root закрыт (я считаю это глупостью).
После того как вы зашли в учётную запись root, вы можете открыть прямую регистрацию под именем root, присвоив ему пароль командой (уже в этой учётной записи находясь):

Код: Выделить всё

# passwd
...
После этого можете заходить в рег. запись root командой:

Код: Выделить всё

$ su -
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение Olej » 03 сен 2022, 13:05

bellic писал(а):
03 сен 2022, 08:40
В новую модульную школу произвели поставку 41 совершенно пустых ноутбука от AQUARIUS-са
Очень интересно!
А какие из моделей AQUARIUS они вам пприслали: Ноутбуки?
bellic писал(а):
03 сен 2022, 08:40
а позже поставщик уточнил и прислал лицензию на Astra Linux SE 1.7. Пришлось ручками ставить...
А это ... очень даже странно :-o
Astra Linux SE - это Special Edition, особо защищённое исполнение, для применения в сферах ... уровня гостайны (секретно, ДСП).
Но всякая повышенная защищённость - это очень намного уменьшенная комфортность, излишняя усложнённость использования!
Нужно ли для школы устраивать такие сложности??? :oops:
Вы уверены что это Astra Linux SE а не Astra Linux CE (Common Edition, Orel).
Но это не место обсуждать здесь в теме о bash программировании...
У нас здесь уже есть отдельные темы по Astar Linux: Обсуждение дистрибутивов Linux

Аватара пользователя
bellic
Писатель
Сообщения: 379
Зарегистрирован: 02 сен 2022, 14:41
Откуда: Ростов-на-Дону
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение bellic » 03 сен 2022, 14:42

Olej писал(а):А какие из моделей AQUARIUS они вам пприслали: Ноутбуки?
AQUARIUS CMP NS685U R11
Какого ИСПОЛНЕНИЯ по сату - не знаю!
Olej писал(а):Вы уверены что это Astra Linux SE а не Astra Linux CE (Common Edition, Orel).
Но это не место обсуждать здесь в теме о bash программировании...
Мой ответ скриншотом:
lic.jpg
lic.jpg (21.84 КБ) 701 просмотр
Да, я позже хотел запоститься в указаной теме, но Вы сами задали этот вопрос.. ;-)
Olej писал(а):А это ... очень даже странно :-o
Astra Linux SE - это Special Edition, особо защищённое исполнение, для применения в сферах ... уровня гостайны (секретно, ДСП).
Но всякая повышенная защищённость - это очень намного уменьшенная комфортность, излишняя усложнённость использования!
Нужно ли для школы устраивать такие сложности??? :oops:
Думаю для школы и поставщика было главным, что система сертифицирована, чтоб можно было юзать в Уч.Заведении.
Иначе можно былоб скачать бесплатную версию той же Astra Linux CE.. :-)

Ну со скриптом более-менее понятно! - Буду убирать SUDO, давать полные права скрипту и пробовать...)
Но хотелось бы вернуться к установке из Окошек библиотеки libjpeg8_8b-1_amd64.deb
...
Еще раз проверил - библиотеку конечно можно установить уз под Окон просто щелкнув по ней, но нам же это интересно в составе скрипта сделать!? Ставится она без вопросов... Это я с каким то другим местом видать напутал! :-?
...
В общем - библиотеку видать ставим командой:

Код: Выделить всё

sudo dpkg -i /home/user/Загрузки/Pantum/libjpeg8_8b-1_amd64.deb
(ручками проверил - работает! ;-) )
Olej писал(а):
03 сен 2022, 12:42
Обычно (в UBUNTU, Astra, ...) пряой login по имени root закрыт (я считаю это глупостью).
А я то думал - как же так, как буду жить без ROOTa?)))
Теперь понятно, спасибо за консультацию по РУТУ...

Может мне при установке нужно было создать учетку, например ADNIN, а потом в системе завести еще и USERa - для учителей???
Не помню, но вроде система на дала зарегить ADMINa... :roll:
Не думаю, что училки(или их отпрыски 1-4х классов) будут знать про команду SUDO, тогда можно оставить все в таком же виде!?
Вложения
lic2.jpg
lic2.jpg (13.97 КБ) 696 просмотров

Аватара пользователя
bellic
Писатель
Сообщения: 379
Зарегистрирован: 02 сен 2022, 14:41
Откуда: Ростов-на-Дону
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение bellic » 03 сен 2022, 15:30

Как предварительный итог выкладываю предварительный вариант своего скрипта:

Код: Выделить всё

#! /bin/sh

OUTPUT="$(ls -l /dev | awk '/sd/ { print $10 }' | grep 1$)"
mount /dev/"${OUTPUT}" /mnt
cp /mnt/Pantum/sources.list /etc/apt
apt update
cp -r /mnt/Pantum /home/user/Загрузки/
chmod -R 777 /home/user/Загрузки/Pantum
apt install libcupsimage2
install.sh
apt install sane sane-utils
dpkg -i /home/user/Загрузки/Pantum/libjpeg8_8b-1_amd64.deb
ln -fs /usr/lib/x86_64-linux-gnu/libqpdf.so.21.4.0 /opt/pantum/lib/libqpdf.so.21
umount /dev/"${OUTPUT}"
rm -r /home/user/Загрузки/Pantum
И вроде вспомнил где мне попадались "крыжики" и подтверждения... - похоже при исполнении скрипта установки драйверов Pantum-а:

Код: Выделить всё

install.sh
Вот такой скриншот напомнил об этом:
IMG_20220830_170041.jpg
IMG_20220830_170041.jpg (54.17 КБ) 695 просмотров
Не знаю - насколько критичны выведенные в консоль предупреждения, принтер прекрасно печатал, правда только после замены библиотеки, но выскакивало окно, где как видно - нужно "Согласиться с лицензионным соглашением", поставить "крыжик" и нажать кнопку "Установить".
Надеюсь мой скрипт не нужно специально останавливать, до этих подтверждений?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение Olej » 03 сен 2022, 15:34

bellic писал(а):
03 сен 2022, 14:42
Но хотелось бы вернуться к установке из Окошек библиотеки libjpeg8_8b-1_amd64.deb
Разнородные вопросы - в разные темы :!:

Это не потому что прихоть, а потому чтобы позже это можно было найти во множестве разговоров.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: программирование сценариев bash

Непрочитанное сообщение Olej » 03 сен 2022, 15:40

bellic писал(а):
03 сен 2022, 14:42
Может мне при установке нужно было создать учетку, например ADNIN, а потом в системе завести еще и USERa - для учителей???
Не помню, но вроде система на дала зарегить ADMINa... :roll:
Не думаю, что училки(или их отпрыски 1-4х классов) будут знать про команду SUDO, тогда можно оставить все в таком же виде!?
Вы можете позже создавать сколько угодно новых пользователей...
Но! Важно: если вы создаёте обычного пользователя, то ему будет недоступно sudo (до тех пор пока администратор не пропишет его в файле /etc/sudoers). Поэтому о административных действиях со стороны обычного пользователя можно не опасаться.

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей