bash: разрешение отклонено, вспомогательный скрипт Owncloud

Я мало что знаю о Linux и создании серверов, но я хочу создать свой собственный веб-диск owncloud, у меня установлен сервер Linux Ubuntu 20.04 на моем Raspberry pi4. Я начал использовать этот учебник для его настройки, но вначале у меня возникли проблемы. Когда я пытаюсь создать вспомогательный скрипт (?):

Создайте вспомогательный скрипт occ

Создайте вспомогательный сценарий, чтобы упростить выполнение команд occ.

       FILE="/usr/local/bin/occ"
/bin/cat <<EOM >$FILE
#! /bin/bash
cd /var/www/owncloud
sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "\$@"
EOM

Сделайте вспомогательный скрипт исполняемым:

       chmod +x /usr/local/bin/occ

В моем терминале я получаю такую ​​​​ошибку:

Как заставить это работать?

2 ответа

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

      FILE="/usr/local/bin/occ"
sudo tee "$FILE" <<'EOM'
#! /bin/bash
cd /var/www/owncloud
sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "$@"
EOM

Это будет работать teeс , что должно разрешить запись в /usr/local/bin/occфайл. (См. Как решить «Отказано в доступе» при использовании sudo с перенаправлением в Bash?) Затем вы можете использовать chmodкоманда с sudoтакже.

Это сумасшествие, в учебнике используется Ubuntu, где «root» нельзя использовать напрямую, тогда предполагается, что вы вошли в систему как root.

Либо заверните код в другой скрипт и запустите его с помощью sudo, либо извлеките три строки для скрипта из кода и создайте скрипт непосредственно с помощью редактора. Если вы сделаете последнее, удалите '' из последней строки, т.е. "\ $@ " станет " $@ "

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