sudo cp -f ~/Download/foo.txt ~/Download/bar/
или другая команда и ее выполнение (Это не вопрос с центром команды "cp"), так в чем же разница между выполнением одной команды от sudo или от root?
Потому что рекомендация о том, чтобы попытаться не работать от корня, если она не является обязательной, Так это и есть рекомендация в контексте выполнения более сложных инструкций?
Команда sudo
сама по себе не подразумевает разрешения, чтобы что-то сделать, но вместо этого изменяет свой идентификатор пользователя в течение длительности команды. Не указав имя пользователя или идентификатор, вы по умолчанию устанавливают «root» в течение короткого периода. Таким образом, делать sudo ....
или войти в систему как root и выполнение команды, одинаковы.
из Man Sudo
Описание sudo позволяет разрешить пользователю выполнить команду как суперпользователь или Другой пользователь, как указано политикой безопасности. Вызывающий пользователь Реальный (неэффективный) идентификатор пользователя используется для определения имени пользователя с который запросить политику безопасности.
.....
-U пользователя, --user = пользователь Запустите команду как пользователь, отличный от пользователя по умолчанию (обычно корень). Пользователь может быть либо имя пользователя или NU- MIRE user-id (uid) префиксирован с символом "# '(например, # 0 для UID 0). При запуске команд в качестве UID многие оболочки повторно Waire, что «#» можно избежать обратной косой («\»). Немного Политики безопасности могут ограничивать UID, перечисленные в База данных паролей. Политика Sudoers позволяет UID, которые Не в базе данных пароля до тех пор, пока параметр TargetPW не установлен. Другие политики безопасности могут не поддерживать это.