LinuxForum.Fans
Тема

sudo вводим пароль в bash скрипте один раз

Автор: KrackMan 9 сообщений 3575 просмотров
#288833

Задался вопросом, как в bash скрипте во всех командах, где используется sudo, избежать повторного ввода пароля.
Вот к чему пришел:

Показать

#!/bin/bash
read -sp "Введите пароль: " PASS
echo $PASS | sudo -S aptitude update
echo $PASS | sudo -S {Команда}
# и т.д.
#Не держим пас в голове ... Очищаем в конце скрипта(просто не знаю удалятся ли переменные в после завершения скрипта)
PASS=""

Попытался найти решение здесь - не получилось, поискал в гугле. И везде описывается подключение из bash к ssh с вводом пароля.
30 минутные поиски дали результат (нашел в дебрях коментариев). Хотя этого можно было избежать прочитав $ man sudo , но лично у меня проблемы с Английским. Так вот найдя решение для себя, тут же решил запостить на linuxforum.ru. Сайт не раз меня выручал, надеюсь моя тема тоже кому-нибудь съэкономит время.

#288871

не бойтесь.переменная удалится.ее можно только экспортировать потомкам, а предкам - нет...

#288877

Но вообще-то в нормальных системах пароль судо хранится какое-то время для одной сессии и вам не надо пароль вводить несколько раз подряд. у меня скрипт
#!/bin/bash
sudo ifconfig
sudo mount -a

только первый раз пароль спросил...

#288881

Сделать нормального рута в убунте и будет всё как у людей.

#288884

да у меня без нормального рута все прекрассно работает...
зато ранее когда я делал
sudo su
passwd

то после этого убунту в некоторых программах себя некоректно вела и я не мог дать рутовые права некоторым программам...
Под рутом чистым они не работали в графике. ибо нет Х авторизации для рута, а в судо - оно плевалось и вылетало...
теперь я так не делаю...

#288967
Харитон написал:
Но вообще-то в нормальных системах пароль судо хранится какое-то время для одной сессии и вам не надо пароль вводить несколько раз подряд. у меня скрипт
#!/bin/bash
sudo ifconfig
sudo mount -a

только первый раз пароль спросил...

Так оно и есть, и ключевая фраза "какое-то время". На моей скорости интернета между update и upgrade это самое "какое-то время" успевает закончится :)
Или второй вариант... команд 10-15 и в конце выключение компа. Понятно что можно нарезать права на shutdown, но я считаю это не правильным.

"zenon" написал:
Сделать нормального рута в убунте и будет всё как у людей.

Это как? Дать права на выключение, установку и настройку пользователю без пароля? Как-то это не True'шно. Пусть вирусов под Линукс Оочень мало, но все же оставлять такую брешь не стоит.

#288968
"KrackMan" написал:
считаю это не правильным.

Что не правильного в 'su -' и отсутствии sudo?

#288970
KrackMan написал:
Так оно и есть, и ключевая фраза "какое-то время". На моей скорости интернета между update и upgrade это самое "какое-то время" успевает закончится :)

это самое "какое-то время" настраивается, если что.

#288982
moshell написал:
[quote=KrackMan]Так оно и есть, и ключевая фраза "какое-то время". На моей скорости интернета между update и upgrade это самое "какое-то время" успевает закончится :)

это самое "какое-то время" настраивается, если что.[/quote]

Как время угадать? А если я настрою на час, чем этот способ лучше:

"zenon " написал:
Сделать нормального рута в убунте и будет всё как у людей.
"zenon" написал:
Что не правильного в 'su -' и отсутствии sudo?

Хорошо. Еще раз: "Понятно что можно нарезать права на shutdown, но я считаю это не правильным"
Без нарезания прав что бы выключить комп из терминала нужно выполнить: $ sudo shutdown -P now после чего ввести пароль. Если нарезать права на shutdown для пользователя, то выключить можно будет: $ shutdown -P now - Вот это я и считаю не правильным.

Войдите или зарегистрируйтесь, чтобы ответить.