Я отвечаю, потому что ответы здесь неадекватны.
Чтобы устранить проблему, выполните следующие действия:
Загрузите аварийный диск (Ubuntu или другой linux Live CD) и откройте оболочку текстового режима. Введите sudo gdisk /dev/sda (измените /dev/sda на все, что подходит для доступа к вашему жесткому диску, если это необходимо). Программа, скорее всего, пожалуется, что она обнаружила данные MBR и GPT, и спросит, что использовать. Неважно, что вы говорите, чтобы использовать. В приглашении Command введите x, чтобы войти в меню экспертов. В приглашении Expert command введите z в zap (уничтожить) данные GPT. Введите y в ответ на подтверждение об уничтожении GPT. Введите n в ответ на запрос об отключении MBR. Внимание: если вы ответите y здесь, вы уничтожите разделы (разделы) Windows!
sudo не работает для команд, которым необходимы разрешения для записи файла, например:
sudo echo "vm.swappines = 100" & gt; & gt; & gt; & gt; /etc/sysctl.conf
Это объясняется в man-странице sudo.
Проблема заключается в том, что часть «> foo.txt» интерпретируется и выполняется вашим интерпретатором команд (shell) long до запуска команды sudo. Команда sudo не знает, что вы хотите перенаправить свой вывод в файл.
У вашего интерпретатора команд нет полномочий root (но команда sudo будет позже), поэтому он не может перенаправить вывод в foo. текст.
Еще один способ решить эту задачу - запустить подоболочку с sudo и выполнить эту команду в этой подоболочке:
$ sudo bash -c "cat & gt; /var/www/info.php "& lt;? php phpinfo (); ? & GT; ^ D
здесь команда, которая имеет «sudo», является bash, и все, что выполнено в ней, имеет права root.
$ 2c, * -pike [! D3 ]
sudo не работает для команд, которым необходимы разрешения для записи файла, например:
sudo echo "vm.swappines = 100" & gt; & gt; & gt; & gt; /etc/sysctl.conf
Это объясняется в man-странице sudo.
sudo
. Как отмечено в ответе кушика, поведение вполне предсказуемо, последовательно и «правильно». для модели разрешения unix.
– msw
25 September 2010 в 07:07
Проблема заключается в том, что часть «> foo.txt» интерпретируется и выполняется вашим интерпретатором команд (shell) long до запуска команды sudo. Команда sudo не знает, что вы хотите перенаправить свой вывод в файл.
У вашего интерпретатора команд нет полномочий root (но команда sudo будет позже), поэтому он не может перенаправить вывод в foo. текст.
Еще один способ решить эту задачу - запустить подоболочку с sudo и выполнить эту команду в этой подоболочке:
$ sudo bash -c "cat & gt; /var/www/info.php "& lt;? php phpinfo (); ? & GT; ^ D
здесь команда, которая имеет «sudo», является bash, и все, что выполнено в ней, имеет права root.
$ 2c, * -pike [! D3 ]