Otázka:
Jak změnit oprávnění uživatele pi sudo; jak přidat další účty s různými oprávněními?
xxmbabanexx
2013-04-21 23:15:10 UTC
view on stackexchange narkive permalink

Protože občas používám Pi přes SSH, zjistil jsem, že je nebezpečné povolit SSH přístup k příkazům sudo. V blízké budoucnosti tedy plánuji toto povolení vypnout. Když ale instaluji balíčky, obvykle se musím restartovat. V současné době je to povoleno pouze prostřednictvím superuživatele.

  sudo reboot  

Existuje nějaký způsob, jak mohu upravit oprávnění uživatele pi umožnit mu restartovat (a instalovat) balíčky?

Mohu mít více účtů s různými oprávněními?

Děkuji

Byla některá z odpovědí užitečná? Je někdo z nich odpovědí, kterou jste hledali? Prosím, označte to jako zodpovězené.
Ano. Pokud stále máte zájem, aktualizoval jsem je na červen 2017 - tato otázka byla položena před 4 lety a 2 měsíci a vedla mě ke způsobu, jak tento problém vyřešit dnes. Podívejte se na níže uvedené odpovědi:
Pět odpovědi:
orithena
2013-04-22 01:24:56 UTC
view on stackexchange narkive permalink

Trochu to objasním: Neexistují žádné „sudo příkazy“, existují pouze příkazy, které ke správnému fungování potřebují oprávnění root, a sudo je příkaz k jejich získání pro jeden příkaz: sudo jednoduše spustí daný příkaz jako root (přečtěte si „sudo“ jako imperativní větu „superuser, udělejte něco!“). Pravidla, která to mohou uživatelé dělat, jsou zapsána v / etc / sudoers . U výchozí instalace Raspbian má výchozí uživatel „pi“ oprávnění z tohoto řádku:

  pi ALL = (ALL) NOPASSWD: ALL  

To znamená: „Uživatel„ pi “na VŠECH hostitelích má povoleno přepnout na VŠECHNY uživatele a NEMUSÍ zadávat svůj PASSWD, když používá VŠECHNY (číst: všechny) příkazy“. (Použil jsem tu šílenou gramatiku, abych zachoval pořadí řádku ... poznámka o tom, proč existuje způsob, jak odlišit hostitele: tímto způsobem lze stejný soubor sudoers distribuovat na více počítačů v síti, takže správce sítě má méně práce) .

Je možné, že schopnost spouštět příkazy pomocí sudo bez vydání hesla správce je důvod, proč si myslíte, že je nebezpečné používat sudo přes SSH (neslyšel jsem o obecném problému s děláte to ... mohli byste tedy vysvětlit, jaké nebezpečí máte na mysli?).

Určitě byste mohli mít více uživatelů s různými oprávněními. Ale obávám se, že použití sudo je stále nejlepší způsob, jak spravovat tato oprávnění.

Takže doufám, že tento malý recept je to, co potřebujete:

  $ sudo adduser admin  

Tím se vytvoří uživatel „admin“, požádá o heslo, vytvoří jeho domovský adresář atd.

  $ sudo adduser admin sudo $ sudo adduser admin adm  

Tím se uživatel „admin“ umístí do uživatelských skupin „sudo“ a „adm“. A protože jsou oprávnění v Linuxu spravována přidáváním uživatelů do uživatelských skupin, dává to uživateli „admin“ všechna potřebná oprávnění a oprávnění. V / etc / sudoers je řádek, který umožňuje každému uživateli v uživatelské skupině "sudo" provést libovolný příkaz jako root; a toto privilegium je to, co potřebujeme pro administrátora (přidání do „adm“ mu umožňuje číst některé soubory protokolu v / var / log bez použití sudo a několika jiné věci). Stále musíte používat sudo , když jste přihlášeni jako administrátor - ale nyní sudo znovu a znovu žádá o heslo administrátora, kdykoli jste sudo nepoužívali asi pět minut.

Nyní se odhlaste a přihlaste se jako uživatel „admin“. Zkontrolujte, zda funguje

  $ sudo apt-get update $ sudo apt-get upgrade  

. Pokud ano, můžete zrušit některá oprávnění uživatele „pi“, protože jste si nyní jisti, že váš administrátor má správná oprávnění:

  $ sudo deluser pi sudo $ sudo deluser pi adm 

To vyhodí uživatele „pi“ z uživatelské skupiny „sudo“.

  $ sudo visudo  

Spustí se editor, který vám umožní upravovat / etc / sudoers . Umístěte hash značku ( # ) před řádek začínající písmenem „pi“, komentujte ji (nebo ji jednoduše odeberte). Poté uložte a ukončete editor, visudo poté okamžitě znovu načte pravidla oprávnění. Uživatel „pi“ již nemá povoleno používat sudo.

Poté se můžete znovu přihlásit jako uživatel „pi“. Chcete-li u některých příkazů přepnout na správce, použijte su („přepnout uživatele“):

  $ su - admin  

Pokud chcete přidat více uživatelů: použijte sudo adduser <name> jako výše, pak zkontrolujte seznam uživatelských skupin, které uživatel „pi“ má:

  $ groups pipi: pi dialout cdrom audio video plugdev uživatelé her vstup netdev  

Pomocí sudo adduser <username> <groupname> přidejte svého nového uživatele do několika z těchto uživatelských skupin, což mu umožní používat zvuk, zrychlené video, používat připojitelná zařízení atd. Pokud si nejste jisti, přidejte jej do všech těchto uživatelské skupiny (nikoli však „sudo“!).

`visudo` je příkaz, který k úpravě souboru sudoers použije váš výchozí editor. Úpravy tohoto souboru bez něj mohou být obtížné a není ** doporučeno. Svůj preferovaný editor můžete změnit vydáním `sudo update-alternatives --config editor`
Nebo můžete zkusit tento `VISUAL = vim visudo` jen tentokrát. Ale skvělý příklad změny výchozích programů, jako je editor.
Krzysztof Adamski
2013-04-22 01:03:27 UTC
view on stackexchange narkive permalink

Ano, sudo můžete nakonfigurovat tak, aby uživateli umožňoval spouštět určité příkazy pouze s dalšími oprávněními. Můžete to změnit v souboru / etc / sudoers , ale nedoporučujeme to dělat přímo, ale použijte k tomu příkaz sudo visudo .

V výchozí instalace systému byste měli najít takový řádek:

  pi ALL = (ALL) NOPASSWD: ALL  

Říká sudo povolit uživateli pi spouštět všechny cammandy jako root uživatele, aniž by zadal heslo. Můžete změnit poslední ALL a zadat seznam příkazů oddělených čárkami (s úplnou cestou), které lze spustit. Ve vašem případě byste měli změnit tento řádek na:

  pi ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown  

Všimněte si, že v sudoers je ještě jeden řádek ovlivňující pi uživatele:

 % sudo ALL = (ALL: ALL) ALL  

Tento řádek umožňuje všem uživatelům ve skupině sudo (znak % před jménem znamená, že jde o název skupiny namísto jména uživatele) spusťte VŠECHNA hesla za předpokladu, že znají své VLASTNÍ heslo . Pokud tento řádek opustíte, uživatel pi bude moci spouštět všechny ostatní příkazy, ale bude požádán o heslo.

Pokud tomu chcete zabránit, můžete buď odebrat tento řádek nebo odeberte uživatele pi ze skupiny sudo .

Po provedení změn v souboru / etc / sudoers možná budete chtít zkontrolovat, zda skutečně dělá, co chcete, voláním sudo -l -U pi příkaz.

Samozřejmě můžete vytvářet různé účty a konfigurovat sudoers , které jim umožní přístup k různým příkazům.

SDsolar
2017-06-21 11:21:55 UTC
view on stackexchange narkive permalink

Květen 2018, Toto je v koncepci stále přesné, ale postup se u novějších verzí změnil:

Za prvé, soubory by měly být přímo upravovány ve vi nebo nano nebo leafpad nebo emacs - podle toho váš oblíbený textový editor.

Uživatelské jméno pi není v tomto souboru uvedeno:

/etc/sudoers 

a poslední řádek souboru je tento:

  #includedir /etc/sudoers.d

Toto je adresář, který obsahuje soubor s názvem

  010_pi-nopasswd  

, který obsahuje tento jediný řádek

  pi ALL = (ALL) NOPASSWD: ALL  

Což má za následek nevyzývání žádného příkazu sudo, pokud jsem přihlášen jako uživatel pi. (syntaxe musí být přesně tímto způsobem)

To je skvělé.

Skupinový řádek % sudo ALL = (ALL: ALL) ALL stále existuje jako

Takže pro odpověď na první část otázky:

Když jsem přesunul soubor /etc/sudoers/sudoers.d/010_pi-nopasswd o jednu úroveň adresáře, aby zahrnutí selhalo, pak jsem čekal 15 minut, což způsobilo, že můj Raspbian systém vyzval k zadání vlastního hesla použití sudo, stejně jako můj systém Ubuntu 14.04 LTS.

Potom, když jsem ji přesunul zpět, kam patří, ani po 10 minutách mě to již nevyzvalo.

Není třeba restartovat. Voila, žádná výzva k zadání hesla při použití sudo

Můj testovací systém lubuntu 14.04 LTS má stejné nastavení kromě toho, že nebyl přítomen soubor 010_pi-nopasswd. lubuntu byl nainstalován s pi jako uživatel root. Vyzvalo mě to pokaždé, když jsem použil sudo, a poté mě ještě 10 minut nevyzval.

Stejný soubor jsem přidal do systému Ubuntu stejně, jako je nastaven Raspbian (nezapomeňte na chmod 0440 v tomto souboru, dokud jste stále v tom 10minutovém okně) - a

Voila, už mě nebude vyzývat k zadání vlastního hesla, když jsem i po 15 minutách přihlášen jako pi.

Ke změně dojde okamžitě bez nutnosti restartu.

Toto je odpověď z května 2018, jak zakázat a povolit výzvu k použití příkaz sudo, když jste přihlášeni jako uživatel root pi. Stejným způsobem lze konfigurovat i další uživatele a skupiny.

- UPDATE pro Ubuntu 16.04 LT Tento systém je také velmi podobný. Největší rozdíl však spočívá v tom, že 16.04 má mnohem přísnější oprávnění k souborům, takže práce musí být provedena v režimu su . Pokud jste zapomněli heslo root, můžete jej resetovat ze svého normální výzva pomocí sudo passwd root Pak bude fungovat příkaz su a můžete odtud přejít.

Právě jsem to našel přes Google - takže pokud to sleduji, uživatel musí být stále ve skupině sudoers, ale /etc/sudo.d řídí, jak často je konkrétní uživatel požádán o heslo?
Ano. Máš to. Být členem `sudoers` se obvykle děje v době vytvoření uživatele. Příklad použití: Všimnete si, že běžný příkazový řetězec `sudo apt-get update && sudo apt-get upgrade` vyvolá sudo dvakrát, ale je nepříjemné, že se může zastavit a před upgradem znovu požádat o heslo. Takže jsem nastavil moje, aby nikdy nevyzvalo moje jedno přihlašovací jméno (pi) a také pak použilo `sudo apt-get update -y && sudo apt-get upgrade -y`, takže to také nepřestane žádat o OK, aby bylo velké Změny. Aby to bylo více unixové. Prostě udělejte, na co se zeptám, a i když odcházím, chci to mít hotové.
scruss
2013-04-22 01:06:17 UTC
view on stackexchange narkive permalink

Je bezpečnější povolit sudo přístup přes SSH, než umožnit jakémukoli uživateli instalovat balíčky. Pokud se toho opravdu bojíte, změňte řádek / etc / sudoers z:

  pi ALL = (ALL) NOPASSWD: ALL  

to

  pi ALL = (ALL) PASSWD: ALL  

To znamená, že budete poprvé vyzváni k zadání hesla použijete sudo v jakékoli relaci a znovu po několika minutách. / etc / sudoers nemůžete editovat přímo; použijte sudo visudo .

Vypadá to, že Krzysztof naskočil s odpovědí právě tam. Jste si opravdu jisti, že je nutné restartovat pokaždé, když instalujete nové balíčky? Pokud neinstalujete nové jádro nebo firmware, nic jiného nepotřebuje restart. Jedná se o kvalitní operační systém, který zde máme ...

Uvedení časového limitu `timestamp` je dobrý nápad. Ve výchozím nastavení je to 15 minut, BTW. Všimněte si, že `PASSWD` je výchozí (pokud v tomto seznamu příkazů nebyl dříve zadán` NOPASSWD`). Pamatujte, že `/ etc / sudoers` lze bez problémů editovat přímo, pokud víte, co děláte. Použití `visudo` provede změny v dočasném souboru, což zabrání automatickému zápisu souboru uprostřed změny (což by mohlo způsobit syntaktické chyby nebo bezpečnostní problémy), uzamkne tento soubor proti několika současným úpravám a před zápisem provede některé kontroly syntaxe soubor.
Myslím, že se OP aktualizuje tak zřídka, že vždy dostane nové jádro ... nebo mu nějaký kolega řekl, aby pokaždé restartoval, protože nechtěl vysvětlit, jak OP mohl v seznamu aktualizací spatřit balíček jádra.
TNX pro tento komentář, @Krzysztof. Ve své odpovědi jsem provedl opravu. A v úpravách máte pravdu. Ve skutečnosti jsem na svém stroji 16.04 vložil linku pí přímo do souboru sudoers, protože sudoers.d právě obsahoval soubor readme. Nechal jsem to jen proto, ale alespoň se zpracovávají oprávnění pí. (Můj oblíbený editor je VI / VIM, btw, ale někdy bude používat listový papír nebo nečinnost. Emacs jsem znovu nezvládl - 15 let je dlouhá doba - a mohu udělat mnohem víc, rychleji, v vim, než můžu v emacs , zdaleka.) Ještě jednou děkuji.
user67191
2017-05-20 14:42:54 UTC
view on stackexchange narkive permalink

Alternativou k tomu, co řekl scruss, je odstranění souboru /etc/sudoers.d/010_pi-nopasswd spuštěním sudo rm /etc/sudoers.d/010_pi-nopasswd kód>. Mnohem jednodušší a bezpečnější než úprava hlavního souboru sudoers, který může sudo rozbít.



Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...