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, либо извлеките три строки для скрипта из кода и создайте скрипт непосредственно с помощью редактора. Если вы сделаете последнее, удалите '' из последней строки, т.е. "\ $@ " станет " $@ "