Пользователь значения по умолчанию изменения для аутентификации

Когда я пытаюсь выполнить, определенные действия в ubuntu I попросился пройти проверку подлинности с пользователем root, но человечность не дает мне опции, для которого пользователя root, она просто указывает его как пользователя, которые настраивают мою машину. Я задавался вопросом, как пойти об изменении, какого пользователя это выбирает для выполнения аутентификации?

Например, если бы я хочу установить программное обеспечение от Центра программного обеспечения Ubuntu, меня просят пройти проверку подлинности с пользователем X, и я хотел бы изменить это, чтобы быть пользователем Y глобально.

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

Я использую человечность 14.04. И пользователь Y находится в sudoers файле, и на данный момент пользователь X не.

7
задан 27 October 2014 в 23:23

3 ответа

Некоторое время назад sudoers не был единственным способом управления правами пользователей в Ubuntu и других дистрибутивах Linux. Polkit позволяет более детально управлять привилегиями. Когда вы используете GParted или Synaptic в последней версии Ubuntu, аутентификация обычно выполняется с использованием polkit.

Чтобы назначить пользователя (например, Y ) администратором polkit, создайте файл в /etc/polkit-1/localauthority.conf.d/ (скажем, 99-custom.conf ), содержащий:

[Configuration]
AdminIdentities=unix-user:Y

Вы можете проверить, правильно ли это было применено, используя pkexec как Y :

$ pkexec bash -l
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/bin/bash' as the super user
Authenticating as: muru,,, (muru)
Password: 
==== AUTHENTICATION COMPLETE ===

Поскольку у вас уже есть пользователь с правами администратора, вам будет предложен выбор от pkexec :

$ pkexec bash
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/bin/bash' as the super user
Multiple identities can be used for authentication:
 1.  X,,, (Y)
 2.  Y,,, (X)
Choose identity to authenticate as (1-2): 

В графическом интерфейсе пользователя должен быть раскрывающийся список .

15
ответ дан 17 November 2019 в 10:44

Не существует такого понятия, как пользователь по умолчанию для аутентификации. Просто по умолчанию пользователь, созданный во время установки Ubuntu (в вашем случае X ), является администратором, т.е. он присоединен к группе sudo. Поэтому, когда вы выполняете задачи с повышенными правами, такие как установка программного обеспечения, вас просят ввести пароль пользователя в группе sudo.

Теперь, когда вы добавляете нового пользователя Y , он по умолчанию является стандартным пользователем и его необходимо вручную добавить в группу sudo или, в общем, сделать администратором для установки приложений. После того, как пользователь добавлен в группу sudo, вам будет предложено ввести пароль пользователя Y при выполнении задач с повышенными правами (очевидно, когда вы вошли в систему как Y).

2
ответ дан 17 November 2019 в 10:44

TL; DR: Добавление пользователя в группу sudo с помощью sudo usermod -aG sudo username решает эту проблему, потому что и sudo, и Polkit используют эту группу.

Обычный и ожидаемый способ предоставить пользователю административные полномочия в системе Ubuntu: чтобы добавить учетную запись пользователя в группу sudo . Это дает им возможности не только через sudo, но и через Polkit. Графическое приглашение, которое позволяет вам выбирать между пользователями с административными полномочиями, является приглашением Polkit, а не приглашением sudo. Как говорит Муру , большинство графических программ, предлагающих ввести пароль для выполнения административной задачи, используют Polkit, не sudo.

Но чтобы сделать пользователя администратором, необходимо разрешите им выполнять действия с правами суперпользователя с sudo и Polkit, и чтобы они отображались в списке пользователей для аутентификации, как при использовании Polkit, вам не нужно настраивать sudo и Polkit отдельно ] и я не рекомендую этого делать. Просто поместите пользователя в группу sudo . Пусть вас не вводит в заблуждение название - Polkit уважает эту группу так же, как sudo.


Формулировка вашего вопроса очень убедительно свидетельствует о том, что вместо добавления пользователя в группу Polkit вы добавили пользовательскую запись для этого один конкретный пользователь в / etc / sudoers :

... он просто указывает его как пользователя, который настраивал мою машину.

Пользователь, созданный при установке Ubuntu, добавляется в ] sudo group.

И вы упомянули (выделено мной):

И пользователь Y находится в файле sudoers , а на данный момент пользователя X нет.

Polkit не использует используйте / etc / sudoers , поэтому предоставление пользователю возможности запускать sudo путем редактирования этого файла не дает ему возможности через Polkit. Это возможная причина, по которой вы действительно можете захотеть отредактировать этот файл - если вы хотели, чтобы давал пользователю полномочия через sudo , но не через Polkit. Однако вам нужны и то, и другое, и это то, для чего группа sudo в Ubuntu уже настроена, так что вы должны просто использовать это.

Поскольку вы действительно имеете возможность запускать команды от имени пользователя root с помощью команды sudo вы можете добавить имя пользователя (замените его фактическим именем пользователя, конечно) в группу sudo, запустив:

sudo usermod -aG sudo username

Или, если вы хотите использовать Polkit, чтобы добавить его, вы может выполнить эту команду, которая после завершения имеет тот же эффект:

pkexec usermod -aG sudo username

После того, как вы запустите любую из этих команд, имя пользователя сможет выполнять произвольные действия как root через sudo и Polkit. Обратите внимание, что usermod нуждается в флаге -a , как показано, или он удалит пользователя из других групп, что вам не нужно.

См. также Как добавить существующего пользователя в существующую группу?


Если вас интересует , как sudo и Polkit настроены для предоставления прав пользователям в sudo , ответ можно почерпнуть из их файлов конфигурации. По умолчанию / etc / sudoers включает следующие строки:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

/etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf состоит из:

[Configuration]
AdminIdentities=unix-group:sudo;unix-group:admin

Таким образом и sudo, и Polkit настроены для предоставления административных привилегий пользователям, которые входят в одну или обе группы admin и sudo . Группа admin указана для совместимости со старыми версиями Ubuntu, где admin использовался вместо sudo , в случае обновления с такой версии и учетных записей пользователей в admin , но не в sudo . Но помимо этой ситуации, у вас, вероятно, даже нет группы администраторов . Запуск getent group admin sudo покажет, какая из этих групп существует и какие пользователи в них находятся. В недавно установленной системе 14.04 ничего не будет отображаться для admin . Поэтому используйте группу sudo , а не группу admin , чтобы сделать пользователей администраторами.

Эти детали конфигурации верны для Ubuntu 14.04, поскольку вы работали, когда просили этот вопрос, но также и всех последующих выпусков на момент написания этой статьи, вплоть до Ubuntu 17.10 включительно.Добавление пользователя в группу sudo является полностью эффективным и наиболее подходящим способом предоставить им все полномочия sudo и Polkit для всех поддерживаемых в настоящее время выпусков Ubuntu.


Я хотел бы поблагодарить Videonauth. как за полезный комментарий к другому ответу (который с тех пор был удален), который привел к тому, что я написал этот ответ, так и за проверку того, что предоставленная мной информация о содержимом sudoers и 51-ubuntu-admin.conf по-прежнему актуален, начиная с Ubuntu 17.10.

4
ответ дан 23 November 2019 в 08:41

Другие вопросы по тегам:

Похожие вопросы: