PDA

Просмотр полной версии : Gароль рута задать в скрипте. Bash


cupper
14.08.2009, 13:41
Нужно сделать скрипт на bash, в нем команда требуют прав root'a, скрипт в последствии будет выполняться автоматически другим скриптом, поэтому нужно чтобы пароль root'a подставляться в самой скрипте а не скрипт запускался от root'a. Как это можно реализовать ?

POS_troi
14.08.2009, 14:32
подставляться в самой скрипте а не скрипт запускался от root'a. Как это можно реализовать

Никак ибо это есть неправильное решение - это даже хуже чем рутовый пароль написать на бумажке и приклеить к монитору менеджера в самом оживленном отделе.

Как вариант - устоновить на файл бит.

cupper
14.08.2009, 14:40
балин так и знал что ктонибуть да напишит ето.

Все правильно я делаю, срать на етот пароль ой фейковый, машины тестовая

на винграде был пост что можно сделать так
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"

__mad
14.08.2009, 15:42
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-а =( сижу виндовые серваки конфигурю.

А вообще еще раз повторю! - Это не правильно и не важно что за серваки! нужно все делать так чтобы было безопасно ибо все равно ты попытаешься когда нить применить это на своем серваке и влетиш по самые помидоры (лично для меня такой способ является недопустимой роскощью - до которой мне еще долго сходить сума )

cupper
14.08.2009, 16:49
echo "pwd" | sudo -u root -S echo "$UID" народ кто на линуксе, проверите, а то я работаю уделенно с винды через ssh на сервере под root'ом сразу. А добавить пользователя чтобы от него проверить не являеться возможным по пока неизвестным мне причинам.

А вообще еще раз повторю! - Это не правильно и не важно что за серваки!
у меня есть два варианта:
1) убрать у рута вообще пароль
2) сделать подстановку пароля в скрипте

я прекрастно осознаю все последствия такого метода в других случаях, но это не он.

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

PS. в коде параметр не -s а -S

POS_troi
14.08.2009, 17:07
я прекрастно осознаю все последствия такого метода в других случаях, но это не он.

Заповедь - "Не навреди" относится и к чужим серверам ;)

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

cupper
14.08.2009, 18:30
вобщем дабы непариться сделали
Или же в /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

врот ей ноги, грязные.