Исправляем: User is not in the sudoers file
Сколько раз устанавливал Debian, столько раз сталкивался с одним и тем же — настройкой прав пользователя для использования sudo. Каждый раз забывал и приходилось лезть в интернет, и искать решение. Теперь сам пишу, чтобы не искать следующий раз и вам, возможно, пригодится.
Для начала, если sudo у вас не установлен, такое может быть, например, если вы устанавливали лишь базовую систему без графической оболочки — устанавливаемые его.
aptitude install sudo
Как можно догадаться, это делается из под рута. В других случаях sudo должен установиться с системой. Но на этом ещё не конец. Хоть sudo уже установлен, при попытке что нибудь сделать с его использованием, например, проверить обновления, терминал выдаст сообщение что user is not in the sudoers file. Чтобы исправить это, существует несколько вариантов действий.
До недавнего времени я соглашался с терминалом и добавлял пользователя, то есть себя, в файл sudoers. Для изменения sudoers файла есть специальная утилита visudo, запускается она командой:
visudo
В открывшимся файле нужно найти строчку:
root ALL=(ALL) ALL
И под ней необходимо добавить такую же, только вместо root пишем свое имя пользователя (username замените на свое):
username ALL=(ALL) ALL
После этого сохранением файл, выходим из visudo, перелогиниваемся и можем пользоваться sudo. Но так как, по моему мнению, всегда нужно стремится к универсальности, я поступил по другому.
Кроме прямого добавления пользователя в sudoers файл, в него также можно добавлять группы. В данном случае это группа sudo. Процесс добавления группы выглядит точно так же как и добавление пользователя, только вместо имени пользователя нужно вписать группу sudo. Выглядеть это будет так (для обозначения того, что вы добавляете группу, а не пользователя, перед sudo нужно поставить без пробелов знак процента):
%sudo ALL=(ALL) ALL
Но на самом деле добавлять эту строчку не всегда необходимо потому как зачастую она уже есть в sudoers. Если это так, то sudoers трогать не надо а нужно лишь добавить себя в группу sudo командой:
adduser username sudo
Где username — логин пользователя. Затем перелогин и можно работать.
Чем такой способ лучше чем первый? Ну во-первых — так проще. Если группа sudo прописана в sudoers, нужно всего лишь выполнить одну команду в терминале. А во-вторых — такой способ более универсальный, ведь если вы, к примеру, добавите в систему нового пользователя, которому нужно будет sudo, вам всего лишь нужно будет добавить его в группу, не трогая при этом sudoers.