usb_flash_tool - простая утилита для работы с флешкой (поддерживает block-списки, "защищающие" локальные и "прочие" серьезные диски от форматирования)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
sunjob
Сообщения: 326
Контактная информация:

usb_flash_tool - простая утилита для работы с флешкой

Сообщение sunjob »

сначало тема называлась так
sudo GUI скрипт
в процессе ... была пеереименована в
usb_flash_tool - простая утилита для работы с флешкой

подробности после UPDATE

добрый день

bash GUI-only скрипт (без использования консоли)
1. zenity для диалога
2. "sudo" для "операций"
3. лог в кат. пользователя

если использовать "sudo без пароля", то все ОК (т.е. для "локального" использования)
в противном случае необходимо вводить пароль (в консоли)

ВОПРОС: как правильно разрулить ситуацию, для "обычного" пользователя с "обычным sudo"?

можно использовать desktop-ориентированные "sudo-GUI" утилиты, но есть неудобства
- их целый зоопарк, на каждый desktop свой свиток
- при наличие "sudo без пароля" добавляется ненужный диалог

хотелось-бы ввести пароль один раз, и далее больше не "дергать".
возможно, в более поздних версиях "свистелок" это уже есть, но в "старом" kdesu этого нет, и требует каждый раз заново ввода пароля

нужно общее, универсальное решение для основных дистрибьютивов (в случае разумных решений/доработок)

тестировалось на

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

slackware 12.2/14.*
tde3-14/kde4
tag: bash,zenity,sudo

спасибо
...

### UPDATE ###

usb_flash_tool - простая утилита для работы с флешкой


простая утилита для работы с флешкой
позволяет: форматировать, создавать и восстановливать образы флешек, поддерживается сжатие

особенности: простая :о), поддерживает block-списки, "защищающие" локальные и "прочие" серьезные диски от форматирования, написана на бабаше :о)

окончательный вариант проекта
usb_flash_tool
README

tag: bash, gui, sudo, zenity, usb, flashdrive, format, image
Вложения
screen-shots.tar.xz
(657.45 КБ) 9 скачиваний
Последний раз редактировалось sunjob 20.10.2020 12:50, всего редактировалось 3 раза.
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: sudo GUI скрипт

Сообщение Hephaestus »

sunjob писал(а):
30.07.2020 10:16
ВОПРОС: как правильно разрулить ситуацию, для "обычного" пользователя с "обычным sudo"?
В описанной ситуации разве что сам диалог, (то есть zenity) нужно запускать через sudo.

Раз уж Вы используете Slackware, посмотрите диалоги типа sbopkg: там нигде нет (по крайней мере, я не видел) получения прав рута _внутри_ диалога, сам диалог нужно запускать от рута.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

Use pkexec, Luke.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Hephaestus писал:
30.07.2020 10:35
В описанной ситуации разве что сам диалог, (то есть zenity) нужно запускать через sudo.
Не обязательно и не удобно.
Можно ни разу не вводить пароль пользователя, просто дать права на выполнение скрипта без пароля в /etc/sudoers:

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

sunjob ALL=NOPASSWD: /program/script/test.sh
В скрипте сделать интерфейс для различных операций и используя данный интерфейс запускать уже различные функции.
Пример /program/script/test.sh:
Spoiler

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

#!/bin/bash

mount() {
	echo "USER = $USER"
        echo "mount $1 $2"
}

case $1 in
        mount ) mount $2 $3 ;;
esac
Вызов(можно поместить в скрипт zenity):

Shell

sudo /program/script/test.sh mount /dev/sda1 /mnt/disk
Все это довольно просто делается, можно так же передавать имя пользователя как параметр, все зависит от воображения.
Ну и есть старая tdesudo.
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: sudo GUI скрипт

Сообщение olecya »

Помнится была такая тулза gksu или gksudo. Сейчас посмотрела в репах debian и fedora - не нашла
Добавлено (19:09):
В федоре нашла пакет lxqt-sudo предоставляющий lxsu и lxsudo с зависимостями на пол мегабайта если для gnome
Добавлено (19:10):
В дебиан он тоже есть
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

olecya писала:
30.07.2020 18:58
Помнится была такая тулза gksu или gksudo.
Забудьте. Умерло оно.
Повторюсь, для графики — только pkexec, без вариантов.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Bizdelnick писал:
30.07.2020 19:34
Повторюсь, для графики — только pkexec, без вариантов.
Если бы оно так же гибко работало как sudo, то было бы не плохо.
У меня на пример отсутствует пользователь root в списке, так как правило запуска под рутом перекрывает правило:
Spoiler

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

polkit.addAdminRule(function(action, subject) {
    return ["unix-group:wheel"];
});
А вот как совместить, что бы показывало пользователей группы wheel в списке, включая рута не знаю. Похоже можно выбрать только одну группу.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

ormorph писал(а):
30.07.2020 21:42
Если бы оно так же гибко работало как sudo, то было бы не плохо.
Не знаю, плохо или неплохо, тем более что у меня в debian не polkit, а policykit, но альтернатив для GUI не осталось. Все обёртки над sudo работают криво, если вообще работают, и по умолчанию нигде не установлены, так что полагаться на них в скриптах нельзя.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Bizdelnick писал:
30.07.2020 21:54
Не знаю, плохо или неплохо, тем более что у меня в debian не polkit, а policykit, но альтернатив для GUI не осталось.
Ну в принципе можно по идее совместить pkexec с вызовом sudo. Лично я удалил правило запуска под группой wheel. Все равно pkexec запускает только под рутом.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: sudo GUI скрипт

Сообщение Hephaestus »

ormorph писал(а):
30.07.2020 17:56
Можно ни разу не вводить пароль пользователя, просто дать права на выполнение скрипта без пароля в /etc/sudoers
Отпадает. ТС упомянул этот момент.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Hephaestus писал:
30.07.2020 22:50
Отпадает. ТС упомянул этот момент.
У него просто оформлены множественные вызовы через sudo, по этому необходимо использовать инструмент который не требует повторного введения пароля. В принципе можно самому сделать простую обертку вокруг sudo, с помощью того же zenity и не мучится.

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

#!/bin/bash
PASS=`zenity --password --title="sudo password prompt"`
echo $PASS | sudo -S mc
Ну а дальше просто в скрипте подставляется значение переменной PASS в качестве пароля.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

ormorph писал(а):
30.07.2020 23:38

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

echo $PASS | sudo -S mc
Вот так делать не надо. Хотя в большинстве шеллов echo — встроенная команда, она может таковой и не являться. А тогда echo будет запускаться отдельным процессом, и все желающие смогут увидеть пароль в его командной строке. Если очень нужен пароль из переменной, можно использовать heredoc.
Ну и, когда в командную строку подставляете переменную, в которой может быть неведомо что, надо её заключать в двойные кавычки.
Последний раз редактировалось Bizdelnick 31.07.2020 19:16, всего редактировалось 1 раз.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Bizdelnick писал:
31.07.2020 00:49
А тогда echo будет запускаться отдельным процессом, и все желающие смогут увидеть пароль в его командной строке. Если очень нужен пароль из переменной, можно использовать heredoc.
Ну и, когда в командную строку подставляете переменную, в которой может быть неведомо что, надо её заключать в двойные кавычки.
Хм, заинтриговали, как можно распарить пароль переданный echo в конвейер. Ну и какие нужно ввести символы с клавиатуры, чтобы что то нарушилось. Вроде для старых версий баша была такая проблема, новые вроде уже избавились от нее.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

ormorph писал(а):
31.07.2020 06:42
как можно распарить пароль переданный echo в конвейер.
/proc/PID/cmdline
Общее правило: никогда никакая секретная информация не должна передаваться аргументами какой бы то ни было команды.
ormorph писал(а):
31.07.2020 06:42
и какие нужно ввести символы с клавиатуры, чтобы что то нарушилось
Несколько пробелов подряд, например.
ormorph писал(а):
31.07.2020 06:42
Вроде для старых версий баша была такая проблема, новые вроде уже избавились от нее.
Проблема не в bash, а в непонимании принципа его работы. Сначала раскрываются переменные, потом формируется массив аргументов. Если нет кавычек, и внутри окажутся символы из $IFS, они будут интерпретироваться соответствующим образом.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Ок. Вечером будет время проверю.
Просто в последнее время был удивлен, что при копировании через команду cp проставив переменную без кавычек в качестве аргумента, при этом путь содержал пробелы, копирование все равно произошло без ошибок, при этом ранее такое не проходило в bash. Хотя ранее был уверен что кавычки обязательны.
А на счёт пароля, то echo отрабатывает за доли секунды, по этому реально интересно как распарить этот пароль - практический пример.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

ormorph писал(а):
31.07.2020 12:50
echo отрабатывает за доли секунды, по этому реально интересно как распарить этот пароль - практический пример.
Думать, что кто-то чего-то не успеет сделать, — очень большая ошибка. Особенно если возможность сделать это будет предоставлена ему неоднократно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Bizdelnick писал:
31.07.2020 13:33
Думать, что кто-то чего-то не успеет сделать, — очень большая ошибка. Особенно если возможность сделать это будет предоставлена ему неоднократно.
Хм, проверил, ни фига echo не показывает в /proc/PID/cmdline, если вывод направлен в /dev/null либо конвейер с sudo, если просто выполняется echo с переменной, то показывает просто вывод без команды echo, но это не связанно с /proc/PID/cmdline, просто echo запущенно в фоне, отдельные процессы показывает, но не команды bash. Так что так и не осознал опасности.
На счёт кавычек, то еще можно признать что они нужны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

ormorph писал(а):
31.07.2020 19:05
ни фига echo не показывает в /proc/PID/cmdline
Я же писал:
Bizdelnick писал:
31.07.2020 00:49
в большинстве шеллов echo — встроенная команда, она может таковой и не являться
Чтобы наверняка появилось, надо запускать /bin/echo.
ormorph писал(а):
31.07.2020 19:05
если вывод направлен в /dev/null либо конвейер с sudo
Не имеет никакого значения, куда там направлен вывод.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Bizdelnick писал:
31.07.2020 19:19
Чтобы наверняка появилось, надо запускать /bin/echo.
Ну дык, топикластер пишет на bash, а echo там встроенная команда. Встроенную все таки использовать безопасно.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

ormorph писал(а):
31.07.2020 19:28
Встроенную все таки использовать безопасно.
Безопасно никогда не передавать пароль аргументом, даже не задумываясь о том, встроенная это команда или не встроенная. Тем более что heredoc ничем не сложнее, а в плане читаемости ещё и выигрывает.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: sudo GUI скрипт

Сообщение Hephaestus »

Bizdelnick писал:
31.07.2020 19:52
Безопасно никогда не передавать пароль аргументом
Bizdelnick писал:
31.07.2020 19:52
Тем более что heredoc ничем не сложнее
А можете чуть подробнее пояснить про heredoc?
Я как-то раз heredoc использовал, но в контексте данной темы идею не улавливаю.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Hephaestus писал:
31.07.2020 21:35
А можете чуть подробнее пояснить про heredoc?
Судя по всему имеется в виду что то такое:
Spoiler

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

#!/bin/bash
PASS=`zenity --password --title="sudo password prompt"`
sudo -S mc <<EOF
$PASS
EOF
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 326
Контактная информация:

Re: sudo GUI скрипт

Сообщение sunjob »

... Наталья Андреевна, не расходитесь! (КВН/Мегаполис)

спасибо всем, завучастие! Hephaestus, Bizdelnick, Ormorph, Lisa-Olecya!

...

теперь, бегло, по кочкам:
pkexec
+
для графики — только pkexec, без вариантов
согласен! но не катит, по условию, т.к. планируется для широко-глубокого использования :о) (скажем так, "это, НЕЧТО" должно везде одинаково работать
нужно общее, универсальное решение для основных дистрибьютивов (в случае разумных решений/доработок)
+
slackware 12.2/14.*
в старых линухах, увы, нет этого "счастья"

...
/etc/sudoers & sudo test.sh
аналогично, это, конечно, некоторое решение :о), но по условию не подходит!
т.к. установка должна быть "максимально-минимальной", надеюсь, всем понятно, о чем я?

...
tdesudo
-->
можно использовать desktop-ориентированные "sudo-GUI" утилиты, но есть неудобства
- их целый зоопарк, на каждый desktop свой свиток
...
gksu или gksudo. Сейчас посмотрела в репах debian и fedora - не нашла
ух-ты, лиса-олеся! в нашем полку прибыло! велкам!

...
Все обёртки над sudo работают криво, если вообще работают
+
по умолчанию нигде не установлены
+
что полагаться на них в скриптах нельзя
поэтому, в том числе, собственно, и топик :о)

...
можно самому сделать простую обертку вокруг sudo
именно, к этому и подходим! во всяком случае, я хотел-бы сделать эту хреньку!

...
heredoc
...
ничем не сложнее, а в плане читаемости ещё и выигрывает.
что такое? набегом не нашел! поподробнее, если не сложно?!

...
как можно распарить пароль переданный echo в конвейер. Ну и какие нужно ввести символы с клавиатуры, чтобы что то нарушилось. Вроде для старых версий баша была такая проблема, новые вроде уже избавились от нее
-->
/proc/PID/cmdline
никогда никакая секретная информация не должна передаваться аргументами какой бы то ни было команды
блин, лепешкин кот, обидно! но мы-же юзаем свою родную команду echo?!

и да! я не встречал еще линухов, в кот. "ехо" было-бы внешней утилитой! или "по поводу" внешней, это был "как бы общий пример" того, как это не надо делать? проясните, плиз, ситуацию?!

в случае с нормальным встроенным echo таких проблем (и других?!!!) не будет или что?! (собственно, это основной вопрос топика, использование пароля в переменной скрипта)

или, м.б. есть "извращенно-хитрые" фишки, для того, что-бы безопасно использовать:
- пароль в переменой
- юзать, только совместно с опр. командами

...
для старых версий баша была такая проблема, новые вроде уже избавились от нее.
-->
Проблема не в bash, а в непонимании принципа его работы.

- сначала раскрываются переменные
- потом формируется массив аргументов.

Если нет кавычек, и внутри окажутся символы из $IFS, они будут интерпретироваться соответствующим образом.
-->
под стекло, на стол, что-бы всегда помнить!!!

...
Безопасно никогда не передавать пароль аргументом, даже не задумываясь о том, встроенная это команда или не встроенная.
звучит, вроде, правильно... :о) сам даже согласен с этим :о)

"перенаправление" в данном случае, тоже "светится"?

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

echo "$PASS" | /usr/bin/sudo -S "beep"
может есть какой иной способ использовать пароль в переменной?

...

(уж простите, что плохо проанализировал или не докопался до сути помощи или к.л. идей, тогда, прошу, повторно, усиленно ткните носом)

КАК ПРОМЕЖУТОЧНЫЙ ИТОГ:
- использовать только то, что 100% будет работать везде, а именно "баш" и "зинитя"
- пристально присмотреться к получению/использованию пароля в переменной

буду (как обычно) премного и безгарнично благодарен, в разумных пределах за
- тычки
- подзатыльники
- пендили
в нужном направлении

ОСОБЕННО по последнему пункту! пока не сильно понятна опасность!

...

с высоты своего полета :о) мне все-таки не понято (как в анекдоте, жопа есть, а слова нет?!)

пользователю даны права на sudo, неужели надо как-то еще изья...вертываться что-бы сделать такую простую вещь (кот. задумана)?

знаю про "таймаут"... вроде как все хорошо! но, при достаточно долгих "внутри-скриптовых" операциях пользователю прийдется вводить пароль повторно, что, согласитесь, выгдялит как издевка?!

...

еще раз спасибо
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: sudo GUI скрипт

Сообщение Bizdelnick »

sunjob писал(а):
02.08.2020 12:07
планируется для широко-глубокого использования :о) (скажем так, "это, НЕЧТО" должно везде одинаково работать
Тогда о каких zenity и sudo идёт речь? Даже bash может отсутствовать. ☺
Вообще задача знакомая, у нас она решается перебором разных вариантов GUI-обёрток для sudo, и если ничего не найдено — запуском эмулятора терминала с sudo внутри. Только эмуляторы терминала тоже приходится перебирать, даже xterm не везде есть «из коробки». Да, наличие sudo в системе тоже предварительно проверяется, и в случае его отсутствия используется su. И всё равно эта схема косячная, потому что при наличии в системе sudo невозможно заранее точно узнать, есть ли у пользователя права на её использование.
sunjob писал(а):
02.08.2020 12:07
что такое? набегом не нашел! поподробнее, если не сложно?!
sunjob писал(а):
02.08.2020 12:07
может есть какой иной способ использовать пароль в переменной?
См. Re: sudo GUI скрипт
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

Если не нравится такое решение, и с конвейером кажется более понятней, то можно сделать так:
Spoiler

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

#!/bin/bash
PASS=`zenity --password --title="sudo password prompt"`
cat <<EOF | sudo -S mc
$PASS
EOF
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 326
Контактная информация:

Re: sudo GUI скрипт

Сообщение sunjob »

Даже bash может отсутствовать
ладно, юродствовать то, а?!!! куры засмеют! :D
решается перебором разных вариантов GUI-обёрток для sudo
да,именно об этом подумал, но отказался, слишком сложно (не перебор, а вот этот вот весь зоопарк, нужно хорошо разбираться во всем, знать все тонкости, нюансы итд) сорь...
Re: sudo GUI скрипт
посмотрел этот вариант! чем он лучше предложенного?

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

echo "$PASS" | /usr/bin/sudo -S "beep"
не тоже ли самое? (опять-таки, можно пояснить, в случае чего)

...

про поводу предложенных вариантов, я обязательно их протестирую!
мне хотелось бы еще и хорошо понимать, как в классике, "что такое хорошо и что такое плохо" во всех этих вариантах!
без знатоков сложно разобраться! а знатоки молчат :о)

в итоге, как-бы есть неск. вариантов, пожалуйста, выскажитесь, с агрументами, с солью, перцем... :о)

ver.1

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

#!/bin/bash
PASS=`zenity --password --title="sudo password prompt"`
sudo -S "$CMD" <<EOF
$PASS
EOF
ver.2

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

#!/bin/bash
PASS=`zenity --password --title="sudo password prompt"`
cat <<EOF | sudo -S "$CMD"
$PASS
EOF
ver.3

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

#!/bin/bash
PASS=`zenity --password --title="sudo password prompt"`
echo "$PASS" | /usr/bin/sudo -S "$CMD"
спасибки
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

sunjob писал(а):
02.08.2020 17:42
в итоге, как-бы есть неск. вариантов, пожалуйста, выскажитесь, с агрументами, с солью, перцем... :о)
Ну на самом деле все три варианта безопасные, вариант с echo, может быть опасным если будет использоваться /bin/echo из coreutils, так как /bin/echo будет запускаться отдельным процессом, а аргументы команды отдельного процесса можно отследить. Если использовать echo из bash, то echo будет запускаться внутри процесса bash и отследить ее будет нельзя. И всего то.
Просто Bizdelnick имеет в виду(это его убеждение), что нужно изначально взять за правило - избавится от привычки использовать пароли в качестве аргументов команд, так как это может быть не безопасно. Потоки не отслеживаются в proc, по этому передавать пароль в потоке более безопасно нежели аргументом.
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 326
Контактная информация:

Re: sudo GUI скрипт

Сообщение sunjob »

избавится от привычки использовать пароли в качестве аргументов команд, так как это может быть не безопасно
... таки да, я искренне согласен с ними ... :о)

просто, если не выносимо хочется и нужиться сделать не "по правилам" но все так-же безопасно, какого хрена мы тут еще сидим? таки надо ехать!!!

зы
таки еще забыл добавить
у меня не совсем нормальное понимание, как правильно использовать/вызывать то, что надо а что не надо не трогать, в частности

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

/bin/echo "blah-blah-blah"
and
echo "blah-blah-blah"
как уберечь себя от запуска бинарника, и использовать "ТОЛЬКО" внутреннюю команду?! каким образом происходит рулежка/приоритет поиска/запуска команды?

гиппотетически, конечно, понятно, но все таки?!
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: sudo GUI скрипт

Сообщение ormorph »

sunjob писал(а):
02.08.2020 18:07
как уберечь себя от запуска бинарника, и использовать "ТОЛЬКО" внутреннюю команду?! каким образом происходит рулежка/приоритет поиска/запуска команды?
Хм проверил, из под bash, даже /bin/echo запускает внутреннюю echo, но csh так не делает, /bin/echo запускает отдельные процесс и аргументы можно увидеть с помощью той же утилиты ps -ax. Можно просто в команде echo установить таймер и просмотреть:

Shell

$ /bin/echo "bla bla `sleep 40`"
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 326
Контактная информация:

Re: sudo GUI скрипт

Сообщение sunjob »

не...ну это все понятно, я сам обычно так и делаю, скальпель, спирт, огурец... ковыряюсь в том, чем соображаю ... и не очень... :о)
хотелось бы пруфы на единственно верные постулаты (как то так)
п.с. доберусь до железяки, тоже потыкаю их...
гиппотетически, конечно, понятно ... :о)
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Ответить