Vraag Verander standaardgebruiker voor authenticatie


Wanneer ik probeer om bepaalde acties uit te voeren binnen ubuntu, wordt mij gevraagd om te authenticeren met een root-gebruiker, maar ubuntu geeft me geen opties voor welke root-gebruiker, het specificeert het gewoon als de gebruiker die mijn machine heeft ingesteld. Ik vroeg me af hoe om te gaan met het veranderen van welke gebruiker het selecteert om de authenticatie uit te voeren?

Als ik bijvoorbeeld software wil installeren van het Ubuntu Software Center, wordt mij gevraagd om te authenticeren met gebruiker X en ik zou dat willen veranderen om gebruiker Y globaal te zijn.

Ik ben me er ook van bewust dat ik dingen met sudo gewoon vanaf de commandoregel kan uitvoeren, maar dat wil ik niet doen.

Ik gebruik ubuntu 14.04. En gebruiker Y zit in het sudoers-bestand en vanaf nu is gebruiker X dat niet.


3
2017-10-27 19:03


oorsprong


U moet policy-kit configureren om gebruiker Y ook als beheerder te hebben. Dan mag je kiezen welke gebruiker je wilt gebruiken. - muru
@muru kan je hier wat meer informatie over geven? Ik had de indruk dat als het sudoers-bestand heeft Y ALL=(ALL:ALL) ALL dat is genoeg voor gebruiker Y om rootprivileges te hebben en verhoogde taken uit te voeren. Wat is deze beleidskit waarnaar u verwijst? - astrob0t


antwoorden:


Voor nu, sudoers was niet de enige manier om gebruikersrechten op Ubuntu en andere Linux-distributies te controleren. polkit biedt meer fijnmazige controle over privileges. Wanneer u GParted of Synaptic gebruikt op een recente versie van Ubuntu, wordt de authenticatie meestal gedaan met polkit.

Om een ​​gebruiker in te stellen (bijvoorbeeld Y) maak als beheerder voor polkit een bestand aan in /etc/polkit-1/localauthority.conf.d/ (zeggen 99-custom.conf), bevattende:

[Configuration]
AdminIdentities=unix-user:Y

U kunt testen of dit correct is toegepast met behulp van pkexec als 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 ===

Omdat je al een beheerder hebt, krijg je een keuze aangeboden door 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): 

De GUI zou een vervolgkeuzelijst moeten bieden.


10
2017-10-27 20:28



De standaard /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf bevat de regel AdminIdentities=unix-group:sudo;unix-group:admin, dus een gebruiker een beheerder maken op de gebruikelijke manier - ze toevoegen aan de sudo-groep - verleent zowel polkit als sudo bevoegdheden. (Dit is het geval voor zowel Ubuntu 14.04 als nieuwere releases.) - Eliah Kagan


Er bestaat niet zoiets als standaardgebruiker voor authenticatie. Het is gewoon dat standaard gemaakt door de gebruiker tijdens de installatie van Ubuntu (in uw geval, X) is een beheerder, d.w.z. deze is gehecht aan de sudo-groep. Dus als u verhoogde taken uitvoert, zoals de installatie van software, wordt u gevraagd om het wachtwoord van de gebruiker in de sudo-groep.

Nu wanneer u een nieuwe gebruiker toevoegt Y, het is standaard een standaard gebruiker en moet handmatig worden toegevoegd aan sudo group of in algemene termen, een beheerder gemaakt om applicaties te installeren. Nadat de gebruiker is toegevoegd aan de sudo-groep, wordt u gevraagd om het wachtwoord van gebruiker Y bij het uitvoeren van verhoogde taken (wanneer u bent aangemeld als Y natuurlijk).


2
2017-10-27 19:28



Ik ben nu ingelogd als gebruiker Y, die zich in het sudoers-bestand bevindt, maar ik word nog steeds gevraagd om gebruiker X. - aplassard
@aplassard Dit antwoord is correct. Een gebruiker expliciet laten vermelden in /etc/sudoers is niet hetzelfde en heeft niet alle dezelfde effecten, zoals het toevoegen van de gebruiker aan de sudo groep. Alleen sudo, en niet Polkit, gebruikt /etc/sudoers, maar zowel sudo en Polkit zijn geconfigureerd om beheerdersrechten te verlenen aan gebruikers in de sudo groep. Ook al is de naam van de groep sudo, op Ubuntu is die groep net zo gerelateerd aan Polkit als aan het sudo-commando. Ik heb gepost een antwoord dit meer volledig toelichten. - Eliah Kagan


TL; DR: Toevoegen van de gebruiker aan de sudo-groep met sudo usermod -aG sudo gebruikersnaam lost dit probleem op omdat beide sudo en Polkit gebruiken die groep.

De gebruikelijke en verwachte manier om een ​​gebruiker administratieve bevoegdheden aan een Ubuntu-systeem te geven, is om het gebruikersaccount toe te voegen aan de sudo groep. Dit geeft ze krachten, niet alleen via sudo maar ook via Polkit. De grafische prompt die u laat kiezen tussen gebruikers met administratieve bevoegdheden is een Polkit-prompt, geen sudo-prompt. Als muru zegt, de meeste grafische programma's die u vragen om een ​​wachtwoord in te voeren om een ​​administratieve taak uit te voeren, gebruiken Polkit, niet sudo.

Maar om een ​​gebruiker een beheerder te maken, om hen in staat te stellen acties als root uit te voeren met sudo en Polkit en zodat ze in de lijst van gebruikers verschijnen die moeten worden geverifieerd zoals bij het gebruik van Polkit, je doet niet moet sudo en Polkit apart configureren en ik beveel dit aan. Plaats de gebruiker gewoon in de sudo groep. Laat je niet misleiden door de naam - Polkit respecteert deze groep net als sudo.


De bewoording van uw vraag suggereert zeer sterk dat u, in plaats van de gebruiker aan de Polkit-groep toe te voegen, een aangepast item voor die ene specifieke gebruiker in /etc/sudoers:

... het specificeert het gewoon als de gebruiker die mijn machine heeft opgezet.

De gebruiker die is gemaakt tijdens de installatie van Ubuntu, wordt toegevoegd aan de sudo groep.

En u noemde (nadruk van mij):

En gebruiker Y staat in het sudoers-bestand en vanaf nu is gebruiker X dat niet.

Polkit gebruikt het niet /etc/sudoers dus een gebruiker de mogelijkheid geven om te rennen sudo door het bewerken van dat bestand krijg je ze niet via Polkit. Dat is een mogelijke reden waarom u dat bestand misschien zou willen bewerken - als u dat zou doen gezocht om een ​​gebruiker bevoegdheden door te geven sudo maar niet Polkit. Maar u wilt beide, en dat is wat de sudo groep in Ubuntu is al geconfigureerd, dus je zou dat gewoon moeten gebruiken.

Sinds jou do hebben de mogelijkheid om commando's als root uit te voeren met de opdracht sudo, die je kunt toevoegen username (vervang het door de daadwerkelijke gebruikersnaam, natuurlijk) aan de sudo-groep door het uitvoeren van:

sudo usermod -aG sudo gebruikersnaam

Of als u Polkit wilt gebruiken om het toe te voegen, kunt u deze opdracht uitvoeren, die exact hetzelfde effect heeft als het eenmaal is voltooid:

pkexec usermod -aG sudo gebruikersnaam

Nadat u een van deze opdrachten hebt uitgevoerd, username zal willekeurige acties kunnen uitvoeren als root door zowel sudo als Polkit. Let daar op usermod heeft de -a vlag, zoals afgebeeld, of het zal verwijderen de gebruiker van andere groepen, die je niet wilt.

Zie ook Hoe een bestaande gebruiker aan een bestaande groep toe te voegen?


In het geval u geïnteresseerd bent in hoe zowel sudo en Polkit zijn ingesteld om rechten te verlenen aan gebruikers in de sudo groep, kan het antwoord uit hun configuratiebestanden worden gehaald. Standaard, /etc/sudoers omvat deze regels:

# 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 bestaat uit:

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

Dus zowel sudo als Polkit zijn geconfigureerd om beheerdersrechten toe te kennen aan gebruikers die zich in een van beide of beide bevinden admin en sudo groepen. De admin groep wordt vermeld voor compatibiliteit met oude versies van Ubuntu waar admin werd gebruikt in plaats van sudo, in het geval u een upgrade van een dergelijke versie uitvoert en gebruikersaccounts hebt admin maar niet sudo. Maar afgezien van die situatie, denk je waarschijnlijk niet eens hebben een admin groep. hardlopen getent group admin sudo zal laten zien welke van die groepen bestaat en welke gebruikers erin zitten. Op een pas geïnstalleerd 14.04-systeem zal het niets tonen admin. Gebruik dus de sudo groep, niet de admin groep, om gebruikersbeheerders te maken.

Deze configuratiegegevens gelden voor Ubuntu 14.04, zoals u draaide toen u deze vraag stelde, maar ook voor alle volgende releases vanaf dit schrijven, tot en met Ubuntu 17.10. Een gebruiker toevoegen aan de sudogroep is de volledig effectieve en meest geschikte manier om ze volledige sudo- en Polkit-bevoegdheden te geven, op alle momenteel ondersteunde Ubuntu-releases.


Ik zou graag willen erkennen Videonauth zowel voor de nuttige opmerking over een ander antwoord (dat inmiddels is verwijderd) dat leidde tot mijn schrijven van dit antwoord en voor het verifiëren dat de informatie die ik heb gegeven over de inhoud van sudoers en 51-ubuntu-admin.conf is nog steeds accuraat vanaf Ubuntu 17.10.


1
2017-11-01 22:02