1

Linux Mint.

Хорошо, это будет серьезно, но по какой-то причине я неправильно понимаю, как это работает.

Если я наберу следующие команды, все работает нормально:

cd home/user/folder1/folder1/

sudo openvpn --auth-nocache --config /home/user/folder2/folder2/config-file.ovpn 

Я ввожу пароль sudo и все хорошо.

Если я помещаю эти команды в файл сценария, я получаю только «команда не найдена».

Я поместил файл сценария в папку, добавил к сценарию и сценарий, и папки opvn.

Я создал новый скрипт (без путей) в той же папке, что и файлы opvn, запустил его оттуда и дал сбой.

sudo opvn-script.sh 
[sudo] password for <user>: 
sudo: opvn-script.sh: command not found

Чего я не понимаю, так это того, что сам файл сценария не может быть «не найден», потому что он автоматически завершается после того, как я наберу первые несколько символов и нажму вкладку. openvpn не может быть 'not found', потому что я могу запускать команды прямо вверх.

Файл сценария помечен как исполняемый.

echo $PATH показывает обе папки в пути.

Какого черта осталось ??

3 ответа3

1

Ах, я думаю, что вижу это. (Трудно сказать, конечно, удаленно, и у меня нет коробки с Linux).

Когда вы запускаете команду через sudo, т.е.

$ sudo blah

есть потенциальная дыра в безопасности - подумайте, например, если кто-то отредактировал ваш скрипт и добавил к нему vi /etc/passwd . Я считаю , Linux изменяет путь , чтобы предотвратить это.

Чтобы проверить, напишите скрипт, который просто повторяет $PATH и запустите его из sudo. Если путь не тот, который вы ожидаете, вы нашли свою проблему.

1

Путь к сценарию отсутствует в профиле пользователя SUDO, сценарий перемещен в путь SUDO

1

Рассмотрим это сообщение об ошибке:

sudo: opvn-script.sh: command not found

Это произошло после того, как вы ввели пароль и указывает, что в ПУТИ нового пользователя (root) скрипт не найден.

Одним из решений является:

sudo /path/to/opvn-script.sh 

Если это работает, переместите opvn-script.sh в удобное место где-нибудь в PATH root.

В целях безопасности убедитесь, что права доступа установлены так, что только root может изменять (писать) opvn-script.sh .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .