it-swarm.dev

Proč nefunguje možnost sudoers NOPASSWD?

Mám/NOPASSWD řádek v/etc/sudoers (upraveno visudo)

gatoatigrado    ALL=(ALL) NOPASSWD: /bin/set-slow-cpufreq

Výstupem je však

[email protected]:~> Sudo -n /bin/set-slow-cpufreq
Sudo: sorry, a password is required to run Sudo

Tento druh příkazu funguje na stroji OpenSuSE, ale ne na Ubuntu 11.10. Co dělám špatně?

Poznámka: Nemohu najít žádné relevantní zprávy systémového protokolu, např. přes tail -f /var/log/syslog.

upravit

Zde jsou/etc/sudoers.

Defaults    env_reset

# things I've tried copying from an opensuse machine
Defaults always_set_home
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"

root    ALL=(ALL:ALL) ALL
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
%admin ALL=(ALL) ALL
%Sudo   ALL=(ALL:ALL) ALL
82
gatoatigrado

Měli byste dát tento řádek za řádek s pravidlem pro skupinu Sudo, protože jak uvádí stránka manuálu sudoers man:

   When multiple entries match for a user, they are applied in order.
   Where there are multiple matches, the last match is used (which is not
   necessarily the most specific match).
127
enzotib

Jen do toho narazil.

Moje situace je, že nastavuji vzdálený systém, který bude běžet bez hlavy. Povolil jsem úplné šifrování disku (jinak útočník s fyzickým přístupem může dělat cokoli chce) Chci pouze ověřit pomocí klíče pub (heslo zruším, takže schéma „něco mít, vědět něco“ bude heslo chráněný klíč - přihlášení root je samozřejmě zcela zakázáno)

Instalátor Ubuntu vyzve uživatele bez oprávnění root, který se přidá do skupiny Sudo. Poté jsem se ručně přidal do souboru sudoers pomocí Sudo visudo:

my_username ALL=(ALL:ALL) NOPASSWD:ALL

POZNÁMKA: Pokud na svém notebooku používáte nopasswd, musíte počítač vždy uzamknout, když odjedete, jinak náhodný útočník může hodně kompromitovat, když se chystáte dát krém do kávy

Stále jsem musel ověřovat heslo.

enzotibova odpověď je klíčem k tomu, co se děje. Skupina Sudo se objeví v sudoerech po zadání mého uživatelského jména.

Spíše než přesouvání mé položky pod čáru Sudo jsem jednoduše odstranil řádek, který jsem předtím přidal, a poté jsem přidal NOPASSWD k záznamu pro %Sudo

Zdá se, že to funguje. Znovu použijte nopasswd, pokud to opravdu potřebujete (V mém případě to bylo přesně to, co jsem potřeboval, pro většinu uživatelů, kteří vyžadují heslo pro aktivitu Sudo, je nejlepší)

Další VAROVÁNÍ: Vždy upravujte sudoery pomocí visudo. (Sudo visudo) Také mít jiné otevřené okno přepnuté na uživatele root vám umožní obnovit všechny chyby, které byste mohli udělat při změně souboru sudoers.

7
jorfus

V ideálním případě, pokud přizpůsobujete, jaké příkazy lze spouštět pomocí Sudo, měli byste tyto změny provádět v samostatném souboru pod /etc/sudoers.d/ Místo přímého upravování souboru sudoers. K úpravě souboru (souborů) byste také měli vždy použít visudo.

Příklad: Sudo visudo -f /etc/sudoers.d/slowcpu

Vložte povolení k udělení řádku: gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq

Poté uložte a ukončete a visudo vás upozorní, pokud máte nějaké chyby syntaxe.

Můžete spustit příkaz Sudo -l A zobrazit oprávnění, která byla udělena vašemu uživateli, pokud se některý z uživatelsky specifických příkazů NOPASSWD objeví PŘED jakýmkoli příkazem %groupyouarein ALL=(ALL) ALL ve výstupu, který bude vyzváni k zadání hesla.

Pokud zjistíte, že vytváříte spoustu těchto souborů sudoers.d, možná budete chtít vytvořit názvy pojmenované podle uživatele, aby se snáze vizualizovaly. Mějte na paměti, že pořadí FILE NAMES a PRAVIDEL v souboru je velmi důležité, LAST one načte výhry, ať už je VÍCE nebo MÉNĚ přípustnější než předchozí položky.

Řazení názvů souborů můžete ovládat pomocí předpony 00-99 nebo aa/bb/cc, ale mějte na paměti, že pokud máte soubory, které nemají numerickou předponu, načtou se po očíslovaných souborech a přepíší nastavení. Důvodem je, že v závislosti na vašem jazykovém nastavení "lexikální třídění" Shell nejprve použije třídicí čísla a poté může prokládat velká a malá písmena při třídění v "vzestupném" pořadí.

Zkuste spustit printf '%s\n' {{0..99},{A-Z},{a-z}} | sort A printf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort, Abyste zjistili, zda váš aktuální jazyk vytiskne AaBbCc atd. Nebo ABC, pak abc a určete, co bude nejlepší "poslední" msgstr "předpona k použití by byla.

4
dragon788

Ve vzdáleném systému zrušte šifrování, ale nechte vše vlastnit root jako ve skupině „Administrators“ - to není 0!
Můžete změnit #Sudo -g Administrators těm, kteří potřebují plný přístup - ne v souboru Sudo, ale .login profil. Kterýkoli standardní skript nyní může mít přístup ke vzdálené stanici jako „root“ a můžete chránit soubory, které musí být chráněny.
Další užitečnou „skupinou“ je „karanténa“ s přihlašovacím adresářem v mezipaměti prohlížeče a může ji číst volně a nic jiného. Použijte první velká písmena velkých písmen.

0
Knut H