Использование sudo su для команд?

Я отвечаю, потому что ответы здесь неадекватны.

Чтобы устранить проблему, выполните следующие действия:

Загрузите аварийный диск (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!

15
задан 25 September 2010 в 00:35

36 ответов

sudo не работает для команд, которым необходимы разрешения для записи файла, например:

sudo echo "vm.swappines = 100" & gt; & gt; & gt; & gt; /etc/sysctl.conf

Это объясняется в man-странице sudo.

2
ответ дан 10 August 2018 в 10:49

Проблема заключается в том, что часть «> foo.txt» интерпретируется и выполняется вашим интерпретатором команд (shell) long до запуска команды sudo. Команда sudo не знает, что вы хотите перенаправить свой вывод в файл.

У вашего интерпретатора команд нет полномочий root (но команда sudo будет позже), поэтому он не может перенаправить вывод в foo. текст.

2
ответ дан 10 August 2018 в 10:49

Еще один способ решить эту задачу - запустить подоболочку с sudo и выполнить эту команду в этой подоболочке:

  $ sudo bash -c "cat & gt; /var/www/info.php  "& lt;? php phpinfo ();  ?  & GT;  ^ D  

здесь команда, которая имеет «sudo», является bash, и все, что выполнено в ней, имеет права root.

$ 2c, * -pike [! ​​D3 ]

1
ответ дан 10 August 2018 в 10:49

sudo не работает для команд, которым необходимы разрешения для записи файла, например:

sudo echo "vm.swappines = 100" & gt; & gt; & gt; & gt; /etc/sysctl.conf

Это объясняется в man-странице sudo.

2
ответ дан 13 August 2018 в 17:24
  • 1
    Упомянув, что вы можете "sudo -i" или "sudo-s" чтобы получить подсказку root, этот ответ еще лучше! – Jorge Castro 25 September 2010 в 00:23
  • 2
    В команде примера нет трубы; есть перенаправление. Кроме того, "иногда не работает" кажется, передает flaky поведение sudo . Как отмечено в ответе кушика, поведение вполне предсказуемо, последовательно и «правильно». для модели разрешения unix. – msw 25 September 2010 в 07:07

Проблема заключается в том, что часть «> foo.txt» интерпретируется и выполняется вашим интерпретатором команд (shell) long до запуска команды sudo. Команда sudo не знает, что вы хотите перенаправить свой вывод в файл.

У вашего интерпретатора команд нет полномочий root (но команда sudo будет позже), поэтому он не может перенаправить вывод в foo. текст.

2
ответ дан 13 August 2018 в 17:24

Еще один способ решить эту задачу - запустить подоболочку с sudo и выполнить эту команду в этой подоболочке:

  $ sudo bash -c "cat & gt; /var/www/info.php  "& lt;? php phpinfo ();  ?  & GT;  ^ D  

здесь команда, которая имеет «sudo», является bash, и все, что выполнено в ней, имеет права root.

$ 2c, * -pike [! ​​D3 ]

1
ответ дан 13 August 2018 в 17:24

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

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