URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85669
[ Назад ]

Исходное сообщение
"sudo скрипт запускается только из mc"

Отправлено rfcr , 19-Июн-09 09:25 
Всем привет!

Существует скрипт рестора базы, который можно запускать только через sudo.
Не так давно команда sudo /ibrestore.sh стала выдавать ошибку "доступ запрещен" с указанием номера строки где произошла ошибка и выполнение скрипта на этом заканчивалось. Начал разбираться. Оказывается через mc все прекрасно работает если имя скрипта и имя базы вставлять через "Esc - Enter".

Собственно сам скрипт:

#!/bin/sh
#

. ibsettings
ErrorCode=0

gbak -r -user "$IBUSER" -pass "$2" -p 8192 -v  "/base/$1.gbk" "$1.gdbnew" 2>&1 | tee /gb/restore.log
#echo | mail -s "Restore End " 79184632889@smsmail.ru
if [ $? -ne 0 ]; then
    echo -e  "...... .............. ..... ..."
    ErrorCode=1
else
    echo -e "*** .... ...... $1 .............!"
fi

if [ ! -z "$3" ]; then
    Pause
fi

exit $ErrorCode


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

#!/bin/sh
#

# .... . ........ Firebird . ......... ......
PATH=$PATH:/opt/firebird/bin:/gb
export PATH

# .... . .......
ARCPATH=/home/gbuser
export ARCPATH

# .... . .....
BASEPATH=/gb
export BASEPATH

Интерпретатор указывает на строку "ARCPATH=/home/gbuser". Кстати этой директории не существует. Но я так понимаю она и ни где не используется в первом скрипте (главном) да и в mc все работает.

Что это может быть?



Содержание

Сообщения в этом обсуждении
"sudo скрипт запускается только из mc"
Отправлено nadirx2 , 19-Июн-09 10:07 
>[оверквотинг удален]
>BASEPATH=/gb
>export BASEPATH
>
>Интерпретатор указывает на строку "ARCPATH=/home/gbuser". Кстати этой директории не существует. Но я
>так понимаю она и ни где не используется в первом скрипте
>(главном) да и в mc все работает.
>
>Что это может быть?
>
>

Скрипт в кроне не запускается или ручной?

выполняйте этого и покажите нам аутпут =)

./ibrestore.sh >> output


"sudo скрипт запускается только из mc"
Отправлено rfcr , 19-Июн-09 12:00 
>
>выполняйте этого и покажите нам аутпут =)
>
>./ibrestore.sh >> output

Выполняется скрипт вручную не из под рута.
Попробовал выполнить из подрута через судо, но выдает ту же ошибку:

ibrestore: line 15: ibsettings: Нет такого файла или каталога

В output ничего не пишет.
Что интересно раза с 3 та же команда сработала...

Доступ к файлу "ibsettings" у НЕ рута есть, причем полный, видеть он его видит и файл существует.


"sudo скрипт запускается только из mc"
Отправлено anonymous , 19-Июн-09 13:02 
>ibrestore: line 15: ibsettings: Нет такого файла или каталога

. /full_path_to_ibsettings


"sudo скрипт запускается только из mc"
Отправлено rfcr , 19-Июн-09 14:21 
>>ibrestore: line 15: ibsettings: Нет такого файла или каталога
>
>. /full_path_to_ibsettings

Прописать полный путь к скрипту? А попроще ничего нет, ведь такой скрипт не один.
И опять же, в mc почему работает тот же самый скрипт, в чем отличие?


"sudo скрипт запускается только из mc"
Отправлено nadirx2 , 19-Июн-09 14:42 
>>>ibrestore: line 15: ibsettings: Нет такого файла или каталога
>>
>>. /full_path_to_ibsettings
>
>Прописать полный путь к скрипту? А попроще ничего нет, ведь такой скрипт
>не один.
>И опять же, в mc почему работает тот же самый скрипт, в
>чем отличие?

или попробуй выполнить скрипт с помошю csh или bash

#!/bin/csh
#!/usr/local/bin/bash


"sudo скрипт запускается только из mc"
Отправлено rfcr , 19-Июн-09 14:53 
>
>#!/bin/csh
>#!/usr/local/bin/bash

Не срабатывает.


"sudo скрипт запускается только из mc"
Отправлено nadirx2 , 19-Июн-09 14:38 
>[оверквотинг удален]
>Выполняется скрипт вручную не из под рута.
>Попробовал выполнить из подрута через судо, но выдает ту же ошибку:
>
>ibrestore: line 15: ibsettings: Нет такого файла или каталога
>
>В output ничего не пишет.
>Что интересно раза с 3 та же команда сработала...
>
>Доступ к файлу "ibsettings" у НЕ рута есть, причем полный, видеть он
>его видит и файл существует.

эсли файл существуется и в скрипте показано верный пут для файла конфигурации явно тут видно это из за привилегии.

сделай chown ЮЗЕР:ГРУПП ibsettings  или chmod 664 ibsettings
потом sudo ./ibrestore.sh >> output


"sudo скрипт запускается только из mc"
Отправлено rfcr , 19-Июн-09 14:47 

>сделай chown ЮЗЕР:ГРУПП ibsettings  или chmod 664 ibsettings
>потом sudo ./ibrestore.sh >> output

Не срабатывает, в output ничего не пишет.


"sudo скрипт запускается только из mc"
Отправлено rfcr , 19-Июн-09 15:09 
Вообще мне тут подсказывают, что якобы с помощью sudo вообще нельзя запускать шелл скрипты, можно только бинарники.. Поэтому через mc все запускается. Якобы это имеет отношение к безопасности системы.
По крайней мере факт остается фактом - через mc все работает.
Кто может подтвердить опровергнуть?

"sudo скрипт запускается только из mc"
Отправлено angra , 20-Июн-09 06:07 
debian lenny можно и работает. Проверяется аж за одну минуту, что мешало это вам сделать самому непонятно. Также непонятно, что мешает сделать sudo bash(или что вы там предпочитаете) и уже из полученного рутового шелла исполнить скрипт.

"sudo скрипт запускается только из mc"
Отправлено rfcr , 20-Июн-09 11:52 
То, что в убунту работает, совсем не означает того, что работает вообще. И для этого даже не надо проверять в течение одной минуты. Если мне нужно запустить скрипт из под рута я запущу его из под рута, сейчас мне нужно запустить скрипт через sudo, а не запустить через sudo bash.

Может кто попробует у себя запустить похожий скрипт на баше и посмотреть как он через sudo отработает? Проверит в mc.


"sudo скрипт запускается только из mc"
Отправлено nadirx2 , 27-Июн-09 20:34 
>То, что в убунту работает, совсем не означает того, что работает вообще.
>И для этого даже не надо проверять в течение одной минуты.
>Если мне нужно запустить скрипт из под рута я запущу его
>из под рута, сейчас мне нужно запустить скрипт через sudo, а
>не запустить через sudo bash.
>
>Может кто попробует у себя запустить похожий скрипт на баше и посмотреть
>как он через sudo отработает? Проверит в mc.

полный скрипт в студию)))