Как дать пользователю права root?

12

Я только что установил Arch. Работает отлично. Я создал нового пользователя, вошел в систему с ним, и теперь я пытаюсь установить несколько вещей с pacman. Но я продолжаю получать сообщение об ошибке: error: you cannot perform this operation unless you are root.я могу pacmanнормально работать с root, но есть ли способ разрешить моему новому пользователю выполнять эти действия?

Я попытался войти в root и использовать gpasswd:

gpasswd -a jack root

но это ничего не сделало.

Джек Стюарт
источник
1
Как общее примечание, вики Arch Linux действительно полезна и детальна.
Алекс Чемберлен

Ответы:

17

Вы должны прочитать страницу Arch Wiki на sudo .

sudo («Заместитель пользователя делает») позволяет системному администратору делегировать полномочия, чтобы дать определенным пользователям (или группам пользователей) возможность выполнять некоторые (или все) команды от имени пользователя root или другого пользователя, обеспечивая при этом контрольный журнал команд и их аргументы.

Вы можете установить sudoиз репозиториев, а затем настроить его, чтобы предоставить вашему пользователю jackдоступ к привилегированным командам путем редактирования /etc/sudoers. Убедитесь, что вы делаете это с помощью visudoкоманды.

Чтобы предоставить пользователю jackполные права суперпользователя, вы должны добавить эту строку:

jack ALL=(ALL) ALL
jasonwryan
источник
8

Обычно я включаю привилегии root для определенной группы. Таким образом, вы можете просто добавить пользователей, которым вы хотите привилегии root, в эту группу.

Редактировать /etc/sudoersс помощью visudoи добавить (или закомментировать):

%wheel      ALL=(ALL) ALL

Затем добавьте своего пользователя в эту группу:

gpasswd -a jack wheel
Эрик Леннартссон
источник
1
Несмотря на то, что ответ, помеченный как принятый, будет работать, я считаю, что этот ответ лучше из-за использования групп вместо изменения sudoers.
Эрик Браун
0

Я могу использовать pacman с root'ом, но есть ли способ разрешить моему новому пользователю выполнять эти действия?

Вы можете создать свой $USER, добавив их в wheelгруппу в одиночку:

useradd -Ng wheel --create-home --no-log-init $USER

Затем обновите, /etc/sudoers как предложено Эриком Леннартссоном. Но если вы ищете программный подход, вы можете вместо этого создать файл в /etc/sudoers.dвиде:

echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/dont-prompt-$USER-for-password

Описанный выше метод был предложен Борисом в Ask Ubuntu, и он вообще не требует использования visudo. При использовании с префиксом pacman команды с sudo выглядят так:

sudo pacman -S docker docker-compose
Джош Хабдас
источник