Правильный синтаксис для предотвращения удара 'неоднозначное перенаправление' сообщение

Вопреки тому, что их наиболее популярный способ использования привел бы Вас думать, su и sudo только предназначены для входа в систему (или выполнение действий) как корень.

su позволяет Вам переключать свои идентификационные данные с тем из кого-то еще. Поэтому, когда Вы вводите su, система должна проверить, что у Вас есть учетные данные для целевого пользователя, в которого Вы пытаетесь измениться.

sudo несколько отличается. Используя sudo позволяет Вам работать бесспорный (или все, в зависимости от конфигурации) команды как кто-то еще. Ваши собственные идентификационные данные используются для определения что типы команд sudo будет работать за Вами под чужими идентификационными данными: если Вы будете доверяемым пользователем (в том смысле, что системный администратор доверяет Вам), Вам разрешат больше свободы действий, чем, скажем, интерн. Это то, почему sudo потребности проверить Ваши собственные идентификационные данные, а не идентификационные данные целевого пользователя.

Другими словами, попытка к su кому-то Вы не, похож на попытку заряжать Ваши покупки на украденную кредитную карту при использовании sudo похож на продажу автомобиля Вашего друга легальным прокси.

Что касается того, что Вы пытались сделать, просто sudo su root, или даже проще sudo su и введите свой пароль обычного пользователя. Это примерно составило бы замену учетных данных кредитной карты Вашего друга с Вашим собственным использованием легального прокси, который они дали Вам :). Это, конечно, принимает sudo конфигурация позволяет Вам работать su с наращиваемыми полномочиями.

Кроме того, системы, которые прибывают предварительно сконфигурированные с sudo доступ обычно имеет корневую отключенную учетную запись (никакой пароль root), можно включить то использование passwd команда после становления корнем через sudo su.

2
27.04.2016, 21:19
1 ответ

2> & 1 означает перенаправление потока ошибок к стандартному выводу и & и символ самостоятельно не имеет большого значения: ждет вас, чтобы у вас есть номер файлового дескриптора, Но вы даете ему имя имени имени файла. Вы хотите перенаправить в файл, а не пронумерованный файловый дескриптор, поэтому

commmand >> /home/user/accumulate_output.log 2>/home/user/error.log

вы можете понять & 1 и и 2 как «имена имена», относящиеся к файловым дескрипторам STDOUT и STDERR. Теперь вы видите, что & перед файлом не имеет смысла.

Таким образом, синтаксис N> & M или N> файл , где n - это дескриптор файла для перенаправления (если он не указан, это Средства стандартного вывода n = 1 n = 1 ), а с правой стороны вы можете либо перенаправить на файл дескриптора m , либо файл с именем файл . M Может быть числом или - , что означает, что дескриптор файла должен быть вместо перенаправленного (перенаправлена ​​«нигде»).

Существует также специальный синтаксис для перенаправления как Stdout, так и STDERR в одно и то же, но это &> . Это просто запутает вас, так как он не попадает в обычный синтаксис - это ярлык, который на самом деле выполняет два перенаправления одновременно.

5
27.01.2020, 21:56

Теги

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