Как выполнить сценарий оболочки на касании Ubuntu?

Я хочу работать на сценарии оболочки мой "bq Aquaris E4.5 Ubuntu-Edition" телефон в Терминальном Приложении и создал сценарий оболочки в/home/phablet/Documents/sync.sh

#!/bin/sh
# sync contacts and calendar with OwnCloud
syncevolution owncloud calendar-defaultcalendar
syncevolution --sync slow owncloud contacts
exit 0

Сценарий является исполняемым файлом, но возвратами:

bash: ./sync.sh: /bin/sh: bad interpreter : Permission denied

Я не уверен, какой интерпретатор работает на касании Ubuntu (удар, sh??) и я также не уверен, какие права пользователь по умолчанию имеет.

Так что случилось или пропавшие без вести?

2
задан 25 April 2015 в 00:01

4 ответа

Похож ошибка в терминальном приложении человечности .

, описание ошибки упоминает обходное решение:

Это, кажется, работает, когда я использую bash ./testscript.

Эти ./ дополнительный

3
ответ дан 2 December 2019 в 01:37

Независимо от того, что это (ошибка или странная конфигурация):

./yourscript.sh

не работает над касанием Ubuntu. Обходное решение:

bash yourscript.sh
2
ответ дан 2 December 2019 в 01:37

Попытайтесь изменить строку хижины на

#!/bin/bash

, а не

#!/bin/sh

Это примет значение по умолчанию интерпретатор для избиения, а не sh. Это должно быть более просто.

0
ответ дан 2 December 2019 в 01:37

После некоторого (предварительного) тестирования кажется мне, что это не ошибка с терминальным приложением человечности, но вместо этого относится к тому, чтобы не быть позволенным запустить исполняемые файлы из корневого каталога. Вот почему bash /path/to/file обработанный, но /path/to/file не сделал, потому что удар находится в /bin.

Я попытался запустить скрипт удара, сценарий Python и привет мировой g ++ скомпилированная программа C++, все с исполняемым набором битов, и ни один не будет работать когда в подкаталоге /home. Ни один не будет работать, пока сценарии и приложения в других подкаталогах корня хорошо работают.

К сожалению, я должен все же найти решение: нет ничего в /etc/fstab предложить /home смонтирован как noexec:

/userdata/user-data /home none bind 0 0

Я даже попытался повторно монтировать его явно как exec использование mount -o remount,rw,exec /home напрасно. Обновит, если я найду решение.

До сих пор единственное обходное решение должно использовать интерпретатор для запущения скриптов (Bash/Python и т.д.) или /lib/ld-linux-armhf.so.3 /path/to/file для двоичных приложений.

Незначительное обновление: немного более изящное обходное решение должно переместить сценарий/приложение в другой каталог, такой как /opt, и затем символьная ссылка на него. Тем путем можно выполнить его только /path/to/symlink. Например, Вы могли сделать:

sudo mv /path/to/SCRIPT.sh /opt
ln -s /opt/SCRIPT.sh /path/to

Затем Вы могли просто ввести /path/to/SCRIPT.sh выполнять его.


ОБНОВЛЕНИЕ С РЕШЕНИЕМ

Узнанный проблема относится к apparmor профилю безопасности для терминального приложения. Посмотрите мой вопрос и ответ здесь: касание Ubuntu – исполняемые файлы не запустятся в / корневом каталоге

2
ответ дан 2 December 2019 в 01:37

Другие вопросы по тегам:

Похожие вопросы: