Перенаправление вывода выполняется оболочкой, из которой вызывается команда. Итак, разбивая все на биты, вот что происходит *:
shell вызывает sudo echo "options drm_kms_helper poll=N", который выполняет команду sudo с командной строкой echo "options drm_kms_helper poll=N" sudo запрашивает пароль, открывает оболочку суперпользователя и вызывает [ f5], который запускает команду echo, передавая ей "options drm_kms_helper poll=N" эхо, работая с привилегиями root, выводит строку на свой стандартный вывод. Команда echo завершается, завершение оболочки суперпользователя, sudo завершает оболочку, из которой была вызвана команда, собирает вывод и пытается перенаправить ее на /etc/modprobe.d/local.conf, которая может быть записана только root. Он получает ошибку «отклонено разрешение».Для того, чтобы исправить это, см. ответ @shantanu.
(*) - в то время как приведенная выше последовательность помогает понять, почему команда терпит неудачу, на самом деле вещи происходят несколько не в порядке: исходная оболочка замечает перенаправление и пытается открыть файл для записи, прежде чем вызывать команду sudo .... При открытии файла сбой оболочка даже не вызывает команду, которая должна была записываться в файл (благодаря @PanosRontogiannis для указания этого).
Вот быстрый тест:
$ touch ./onlyroot.txt
$ sudo chown root:root ./onlyroot.txt
$ sudo bash -c "whoami | tee who.txt" > onlyroot.txt
bash: onlyroot.txt: Permission denied
В тесте выше whoami | tee who.txt собирался создать файл с именем who.txt, содержащий слово «root». Однако, когда перенаправление вывода не выполняется в вызывающей оболочке, файл «who.txt» также отсутствует, потому что команда не была вызвана.
То, что вы описываете, вероятно, потребует наличия отдельной виртуальной машины для каждого пользователя. Популярные платформы для виртуализации включают VirtualBox и VMware Player.