Просмотр полной версии : Gароль рута задать в скрипте. Bash
Нужно сделать скрипт на bash, в нем команда требуют прав root'a, скрипт в последствии будет выполняться автоматически другим скриптом, поэтому нужно чтобы пароль root'a подставляться в самой скрипте а не скрипт запускался от root'a. Как это можно реализовать ?
POS_troi
14.08.2009, 14:32
подставляться в самой скрипте а не скрипт запускался от root'a. Как это можно реализовать
Никак ибо это есть неправильное решение - это даже хуже чем рутовый пароль написать на бумажке и приклеить к монитору менеджера в самом оживленном отделе.
Как вариант - устоновить на файл бит.
балин так и знал что ктонибуть да напишит ето.
Все правильно я делаю, срать на етот пароль ой фейковый, машины тестовая
на винграде был пост что можно сделать так
echo "пароль" | sudo -u <имя пользователя> -S -- <команда>
делаю так
!/bin/bash
. parametr.dat
echo "pwd" | sudo -u root -S -- echo "$UID"
но получаю в ответ при запуске скрпта
usage: sudo -V | -h | -L | -l | -v | -k | -K | [-H] [-P] [-S] [-b] [-p prompt]
[-u username/#uid] -s | <command>
POS_troi
14.08.2009, 15:24
echo "pwd" | sudo -u root -s | echo "$UID"
echo "pwd" | sudo -u root -s | echo "$UID"
$ echo "pwd" | sudo -u root -s | echo "$UID"
1000
Password:
Как вариант, suid бит поставить (как говорил POS_troi), тогда придется использовать специальный враппер (если запускать напрямую суид бит работать не будет).
Или же в /etc/sudoers добавить пользователя из под которого sudo [1] не будет спрашивать пароль, и тогда запускать скрипт как sudo ./script.sh.
[1] user ALL=(ALL) NOPASSWD: ALL
POS_troi
14.08.2009, 15:56
$ echo "pwd" | sudo -u root -s | echo "$UID"
1000
Password:
А так
echo "pwd" | sudo -u root -s echo "$UID"
Просто нет сейчас под рукой никакого Unix-а =( сижу виндовые серваки конфигурю.
А вообще еще раз повторю! - Это не правильно и не важно что за серваки! нужно все делать так чтобы было безопасно ибо все равно ты попытаешься когда нить применить это на своем серваке и влетиш по самые помидоры (лично для меня такой способ является недопустимой роскощью - до которой мне еще долго сходить сума )
echo "pwd" | sudo -u root -S echo "$UID" народ кто на линуксе, проверите, а то я работаю уделенно с винды через ssh на сервере под root'ом сразу. А добавить пользователя чтобы от него проверить не являеться возможным по пока неизвестным мне причинам.
А вообще еще раз повторю! - Это не правильно и не важно что за серваки!
у меня есть два варианта:
1) убрать у рута вообще пароль
2) сделать подстановку пароля в скрипте
я прекрастно осознаю все последствия такого метода в других случаях, но это не он.
Там (на неведамом мне сервере) есть мега скрипт или чета такое которое в авто режими запускает кучу скриптов из под обычного юзера, я пишу скрипт и он потом будет брошен в общую массу всех других скриптов, все скрипты стандартизированы, отклонений быть неможет, поэтому и нужно сделать чтобы пароль писался в нутри скрипта и нече другое ( или снять пароль рута на том серве (проще сделать в скрипте чем снимать его)) неподходит
PS. в коде параметр не -s а -S
POS_troi
14.08.2009, 17:07
я прекрастно осознаю все последствия такого метода в других случаях, но это не он.
Заповедь - "Не навреди" относится и к чужим серверам ;)
ща домой приеду, посмотрю что к чему, а так даже не знаю, никогда не приходило в голову такая кащунская идея ;)
вобщем дабы непариться сделали
Или же в /etc/sudoers добавить пользователя из под которого sudo [1] не будет спрашивать пароль, и тогда запускать скрипт как sudo ./script.sh.
[1] user ALL=(ALL) NOPASSWD: ALL
но всеже остаеться интерстно почему тот вариант неработал
aaaa, нашелтаки ету злаполучной сточку кода на open.net чер ее побери
echo "pwd" |sudo -H -S bash -c "whoami"
выводить root
врот ей ноги, грязные.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot