У меня недавно был увеличенный интерес в том, как многочисленные пользователи обрабатываются в Ubuntu и поразили интересную проблему: выполнение команд как sudo
из стандартной учетной записи. Если я запускаю приложение GUI, для которого нужны полномочия пользователя root, такие как GParted, это дает мне опцию пройти проверку подлинности как любой администратор. Однако выполнение sudo
в терминале только просит пароль текущего пользователя и перестал работать, если он работает в стандартной учетной записи. Я понимаю, что мог легко работать вокруг этого путем переключения терминального сеанса на администраторскую учетную запись, но это требует нескольких дополнительных строк команд всего для одной корневой команды. Я также столкнулся с идеей использовать pkexec
вместо sudo
, но это, кажется, имеет некоторые проблемы с vim
и gedit
. Существует ли более простой путь к командам выполнения с полномочиями пользователя root из стандартной учетной записи? Предпочтительно, способ сказать этому делать попытку авторизации суперпользователя с другой учетной записью. Если это имеет какое-либо значение, я использую zsh
вместо bash
в Ubuntu 14.04.
Для команд, которые не должны быть подключены к tty или X-серверу (т.е. несколько основанных на командной строке администраторских утилит) можно использовать
su root -c <command>
, команда, возможно, должна быть включена в метки кавычки, и Вам предложат пароль пользователя root. Обратите внимание, что это требует, чтобы корневая учетная запись была включена, который это не находится по умолчанию на Ubuntu. Я также попробовал
su <administrator username> -c "sudo <command"
, но это перестало работать из-за отсутствия связанного tty.
необходимо добавить типичного пользователя к/etc/sudoers файлам, чтобы дать им priviledges для выполнения поднятых команд.
, Например, с пользователем назвал 'демонстрацию':
demo ALL=(ALL:ALL) ALL
первое поле указывает на имя пользователя, к которому правило будет относиться (демонстрация).
первое "ВСЕ" указывает, что это правило относится ко всем хостам.
второе "ВСЕ" указывает, что демонстрационный пользователь может команды выполнения как все пользователи.
третье "ВСЕ" указывает, что демонстрационный пользователь может команды выполнения как все группы.
последняя "ALL" указывает, что эти правила относятся ко всем командам.