Как можно включить режим debug / verbose во время установки Lubuntu?

The & lt ;,> и >> используются для перенаправления ввода / вывода для команд - это функция, предоставляемая оболочкой (например, bash). Поэтому, если вы наберете команду, подобную sudo cat > /var/www/info.php, то оболочка, которая получает это как вход, пытается открыть файл /var/www/info.php и предоставляет этот файл в качестве стандартного вывода для команды sudo. Команда sudo даже не знает, собирается ли ее вывод на консоль или перенаправлен на файл, потому что это вызвано оболочкой, которая его вызывает.

Если оболочка вы набрали вашу команду в ваш хост-интерфейс или другой shell, работающий в терминале с вашим идентификатором пользователя, тогда он имеет те же привилегии, что и ваш идентификатор пользователя, а не root.

Итак, в вашем случае, тогда как команда cat выполняется как root, копирование его вывода на /var/www/info.php выполняется с помощью оболочки, выполняемой как обычный пользователь, которая, как и ожидалось, терпит неудачу.

Обходной путь для таких ситуаций заключается в использовании команды tee :

sudo tee /var/www/info.php

Это будет иметь предполагаемый эффект поместить весь текст, введенный на консоль до ^ D, в файл, указанный как параметр.

Возможно, что недопустимый побочный эффект что tee также будет выводить вывод на стандартный вывод, поэтому после ввода каждой строки и нажатия клавиши ввода tee выведет ее копию. Чтобы избежать этого, вы можете использовать следующий вариант.

sudo tee /var/www/info.php > /dev/null

Подробности о tee можно получить через info tee на терминале.

1
задан 24 March 2017 в 14:33

0 ответов

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

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