#lua #sh #telegram #sudo #permission-denied
#lua #sh #telegram #sudo #отказано в разрешении
Вопрос:
Я пытаюсь запустить свой .sh scipt status.sh через сообщение telegram:
Ubuntu 20.04.1 переводит серверную Telegram-cli с lua-скриптом в состояние действия.sh-скрипт
когда я отправляю сообщение «статус» на свой сервер через telegram, оно изменяет статус.sh-скрипт, в этом скрипте у меня есть куча вещей, которые собирают для меня информацию и отправляют ее обратно в telegram, чтобы я мог видеть, каков статус моего сервера, однако (я недавно сделал новую установку сервера) по какой-то причине, если в скрипте есть строка кода, начинающаяся сsudo я получаю: line 38: /usr/bin/sudo: Permission denied
если я запускаю скрипт из командной строки ./status .sh запускается без каких-либо проблем !? итак, я думаю, это потому, что он вызывается из telegram или lua !?
пример кода, который генерирует ошибку: sudo ifconfig enp0s25 >> file
с другой стороны, эта строка работает без проблем: sudo echo Time: $(date "%H:%M:%S") > file
для /usr/bin установлено разрешение 0755, для sudo установлено разрешение 4755
Ответ №1:
Следующая команда
sudo ifconfig enp0s25 >> file
не будет работать, если file
требуется изменить привилегию root.
sudo
влияет ifconfig
, но не перенаправление.
Чтобы исправить это:
sudo sh -c 'ifconfig enp0s25 >> file'
Комментарии:
1. спасибо за ответ! к сожалению, это не сработало, результат тот же, и я могу записать в файл с или без sudo или root, файл 0776
Ответ №2:
Как упоминалось в ответе Егора Скриптунова, sudo
это влияет только на запускаемую команду sudo
, а не на перенаправление.
Возможно file
, в вашем случае ничего не записывается, потому ifconfig
что вывод, который вас интересует, записывается в stderr вместо стандартного вывода.
Если вы хотите добавить как stdout, так и stderr в file
качестве root, используйте эту команду:
sudo sh -c 'ifconfig enp0s25 >> file 2>amp;1'
Здесь sh
вызывается через sudo
, так что перенаправление на file
будет выполняться как root.
Без 2>amp;1
ifconfig
этого будет добавлен только стандартный file
вывод . Командная 2>amp;1
оболочка перенаправляет stderr на стандартный вывод.
Если file
может быть записан без root, это может упростить
sudo ifconfig enp0s25 >> file 2>amp;1
Комментарии:
1. ура, проблема заключалась в том, что я запустил telegram в snap …. после того, как я установил telegram «нормально», он снова заработал.