it-swarm.dev

Proč je špatné přihlásit se jako root?

Často se setkávám s příspěvky na fórech nebo jiných webech, kde vidíte lidi, jak žertují takovým způsobem, že běží/přihlašují se jako root, jako by to bylo něco hrozného a všichni by o tom měli vědět. Neexistuje však mnoho, co by prozkoumání prozradilo.

To může být všeobecně známo Linux odborníkům, ale já opravdu nevím proč. Pamatuji si, že jsem vždy spuštěn jako root, když jsem poprvé vyzkoušel Linux před lety (Redhat a Mandrake), a nepamatuji si kvůli tomu žádné problémy.

Ve skutečnosti existují některá distros, která mají jasně červené pozadí s výstražnými značkami všude jako tapetu pro uživatele root (SuSe?). Stále používám účet „Správce“ pro pravidelné používání v mé instalaci Windows a nikdy jsem se tam ani nedostal do problémů.

200
Mussnoon

Porážejí bezpečnostní model, který existuje již několik let. Aplikace jsou určeny ke spuštění s neautorizovaným zabezpečením (nebo jako pouhý smrtelník), takže musíte upravit svá oprávnění, abyste mohli upravit základní systém. Například byste nechtěli, aby nedávné zhroucení Rhythmboxu vymazalo celý váš /usr adresář kvůli chybě. Nebo tuto chybu zabezpečení, která byla právě zveřejněna v ProFTPD, aby útočník mohl získat ROOT Shell.

V každém operačním systému je dobré běžet aplikace na uživatelské úrovni a ponechat administrativní úkoly kořenovému uživateli, a to pouze na základě potřeby.

158
lazyPower

Pouze jedno slovo: bezpečnost.

  1. Jste přihlášeni jako root = všechny aplikace běží s oprávněním root - vaše zranitelnost ve Firefoxu, Flash, OpenOffice atd. Nyní může zničit váš systém, protože možné viry mají nyní přístup všude. Ano, existuje jen málo virů pro Ubuntu/Linux, ale je to také kvůli dobré bezpečnosti a výchozímu neprivilegovanému uživateli.
  2. Nejde jen o viry - malá chyba v aplikaci může vymazat některé systémové soubory nebo ...
  3. Když jste přihlášeni jako root, můžete dělat vše - systém se nebude ptát! Chcete tento disk naformátovat? Dobře, stačí jedno kliknutí a je hotovo, protože jste root a víte, co děláte ...
81
Vojtech Trefny

Spuštění jako root je špatné, protože:

  1. Hloupost: Nic vám nebrání dělat něco hloupého. Pokud se přesto pokusíte změnit systém, který by mohl být škodlivý, musíte udělat Sudo, které do značné míry zaručuje pauzu, zatímco zadáváte heslo, abyste si uvědomili, že se chystáte provést velkou/nákladnou změnu.
  2. Zabezpečení: V této otázce již bylo zmíněno již několikrát, ale v zásadě je to stejné, těžší hacknout, pokud neznáte přihlašovací účet administrátorského uživatele. root znamená, že již máte polovinu pracovní sady přihlašovacích údajů správce.
  3. Ty to opravdu nepotřebujete: Pokud potřebujete spouštět několik příkazů jako root a jste naštvaní tím, že budete muset několikrát zadat heslo, když Sudo vyprší, vše, co musíte udělat, je Sudo -i a vy jste nyní root. Chcete spouštět některé příkazy pomocí potrubí? Poté použijte Sudo sh -c "comand1 | command2".
  4. Vždy ji můžete použít v konzole pro zotavení: Konzola pro zotavení vám umožní vyzkoušet a zotavit se z toho, že uděláte něco hloupého nebo vyřešíte problém způsobený aplikací (kterou jste stále museli spouštět jako Sudo :)) Ubuntu v tomto případě nemá heslo pro kořenový účet, ale můžete hledat online, aby se to změnilo, takže pro každého, kdo má fyzický přístup k vaší schránce, bude těžší ublížit.

Důvod, proč jste nemohli najít informace o tom, proč je to špatné, je ten, že na internetu je příliš mnoho dat :) a že mnoho lidí, kteří Linux používají po dlouhou dobu, myslí stejně jako vy. Tento způsob přemýšlení o kořenovém účtu je docela nový (možná deset let?) A spousta lidí je stále naštvaná tím, že musí používat Sudo. Obzvláště pokud pracují na serveru, což znamená, že přišli se záměrem provést změny systému. Pravděpodobně vycházel z předchozích špatných zkušeností a bezpečnostních standardů, které většina sysadminů ví lépe, ale stále se jim nelíbí :).

48
Marlon

To je dobrá otázka. Myslím, že odpověď se mírně liší v závislosti na tom, zda mluvíte o instalaci serveru nebo počítače.

Na ploše je neobvyklé používat účet root. Ve skutečnosti je Ubuntu dodáván s deaktivovaným přístupem root. Všechny změny vyžadující oprávnění superuživatele jsou prováděny prostřednictvím Sudo a jeho grafická rozpoznávání gksudo a kdesudo. Vzhledem k tomu, že je snadné nastavit heslo root, proč to lidé neudělají?

Jedním z důvodů je to, že vám poskytuje další úroveň zabezpečení. Pokud spustíte program jako root a je zneužita bezpečnostní chyba, má útočník přístup ke všem datům a může přímo řídit hardware. Například může do jádra nainstalovat trojan nebo key-logger. V praxi však útok může způsobit velké škody i bez oprávnění superuživatele. Koneckonců, všechna uživatelská data - včetně dokumentů a uložených hesel - jsou přístupná bez přístupu root.

Platnějším bodem v systému pro jednoho uživatele je to, že uživatel nemůže zabránit nechtěnému spuštění systému. Pokud uživatel neúmyslně vydá příkaz, který odstraní všechny soubory, bude stále schopen spustit systém, i když dojde ke ztrátě dat.

Většina dnešních aplikací zaměřených na uživatele (X11) je navíc založena na předpokladu, že jsou spuštěny jako běžný uživatelský účet a bez administrátorských práv. Některé programy se tedy mohou chovat při spuštění jako root.

U víceuživatelského systému, který nemá pouze grafický přístup do prostředí Shell, se mnoho z těchto důvodů nepoužije. Ubuntu však stále přiměřeně nastavuje nepřístupný účet root. Jednak je skutečný rozdíl mezi získáním přístupu k uživatelskému účtu (s právy Sudo) prostřednictvím bezpečnostní díry a získáním přístupu k root, protože v prvním případě dojde k narušení ostatních uživatelů vyžadují spuštění Sudo a nadále budou vyžadovat heslo účtu jako další bezpečnostní krok. Pro jiného je užitečné provádět mnoho administrativních úkolů z uživatelského účtu a vyvolávat Sudo pouze v případě, že jsou absolutně vyžadována oprávnění superuživatele. Proto je při instalaci programu ze zdroje vhodné vytvořit zdroj - spuštěný configure a make - uvnitř adresáře uživatele a pouze pomocí Sudo make install v posledním kroku. Opět to ztěžuje střelbu sebe (a dalších uživatelů víceuživatelského systému) do nohy a snižuje pravděpodobnost sestavení skriptů, které způsobí zmatek se systémem. Takže i na serveru je dobrá rada držet se Ubuntu administrace založená na sudo .

37
loevborg

Jedním z důvodů, proč neběhat jako root, který nebyl (dosud) identifikován jinými odpověďmi, je sledovatelnost. Pravděpodobně méně záleží na počítačích, které jsou primárně stroje pro jednoho uživatele (na vašem počítači nebo notebooku), ale na serverových strojích, pokud je někdo přihlášen jako root, nevíte, kdo za vinu za provedené akce . Proto většina profesionálních organizací s více systémy a více administrátory, kteří potřebují oprávnění root, vyžaduje, aby se lidé přihlašovali pomocí svého vlastního ID uživatele (a hesla), a poté pomocí Sudo nebo podobných programů, aby mohli pracovat s root oprávnění v případě potřeby.

V opačném případě jsou primární důvody, proč není spuštěn jako root, následující:

  • Minimalizujte riziko poškození při nehodách. Pokud spustíte rm -fr / home/me/my-subdir jako root, pak jste z vašeho počítače jen dramaticky odstranili vše důležité z důvodu tohoto prostoru za (první) lomítkem - protože věci, které jdou první, jsou věci, které byly přidány jako první - malé věci jako jádro, /bin a /etc adresář. Unix se rozčílí, pokud je ztratíte.

  • Minimalizujte riziko poškození externími škodlivými weby. Pokud procházíte jako root, jste téměř zranitelnější při stahování škodlivého materiálu.

Používám MacOS X více než Ubuntu, ale ve výchozím nastavení je root zakázán a stále je na mém počítači. Rutinně upgraduji jádro a další podobné operace - pomocí Sudo (za scénami). Podobné techniky platí pro Linux obecně.

V zásadě byste měli používat všechna mocná oprávnění root pro zkrácená pracovní období, abyste se vyhnuli riziku chyb.

34
Jonathan Leffler

TL; DR:Dělat věci jako root pouze tehdy, když musíte. Sudo je to docela snadné. Pokud povolíte root přihlášení, můžete stále dodržovat toto pravidlo, musíte to udělat opatrně. Ačkoli povolení přihlášení root není ve skutečnosti nezabezpečené, pokud je provedeno správně, není nutné povolit přihlášení root, protože máte Sudo.

Zde jsou opravdu dvě související otázky.

  • Proč je špatné přihlásit se jako root pro každodenní používání počítače (prohlížení webu, e-mail, zpracování textu, hry atd.)?
  • Proč Ubuntu implicitně zakazuje úplné přihlášení root a pomocí Sudo a polkit , aby administrátoři mohli spouštět konkrétní příkazy jako root?

Proč nespustit vše jako root, pořád?

To se týká většiny ostatních odpovědí. Záleží na:

  1. Pokud používáte rootové pravomoci pro úkoly, které je nevyžadují, a nakonec uděláte něco, co jste nechtěli dělat, můžete svůj systém změnit nebo poškodit způsobem, který nechcete.
  2. Pokud spustíte program jako root, když jste to nepotřebovali, a it ​​skončí s tím, že jste to neměli na mysli - například kvůli zranitelnosti zabezpečení nebo jiné chybě - může váš systém změnit nebo poškodit způsobem, který nechcete.

Je pravda, že i když nebudete dělat věci jako root, můžete způsobit škodu. Můžete například smazat všechny soubory ve svém domovském adresáři, který obvykle zahrnuje všechny vaše dokumenty, aniž byste museli pracovat jako root! (Doufejme, že máte zálohy.)

Samozřejmě, jako root, existují další způsoby, jak náhodně zničit stejná data. Můžete například zadat nesprávné of= argument k příkazu dd a zapisujte nezpracovaná data do vašich souborů (což je činí tak, takže je obtížnější je obnovit, než kdybyste je pouze vymazali).

Pokud jste jediný, kdo používá váš počítač, poškození, které můžete udělat pouze jako root, nemusí být ve skutečnosti vyšší než poškození, které můžete udělat s běžnými uživatelskými oprávněními. Stále to však není důvod k rozšíření vašeho rizika tak, aby zahrnovalo další způsoby zasílání zpráv vašemu systému Ubuntu.

Pokud by vám běh s uživatelským účtem typu non-root zabránil vykonávat kontrolu nad vlastním počítačem, pak by to samozřejmě byl kompromis špatný. Ale to není - kdykoli ve skutečnosti přání provést akci jako root, můžete tak učinit pomocí Sudo a dalších metod .

Proč neumožnit přihlášení jako root?

Myšlenka, že schopnost přihlásit se jako root je ze své podstaty nejistá, je mýtus. Některé systémy mají ve výchozím nastavení povolen root účet; jiné systémy používají ve výchozím nastavení Sudo a některé jsou nakonfigurovány s oběma.

  • Například OpenBSD , který je široce a rozumně považován za nejbezpečnější univerzální operační systém na světě, se dodává s rootovým účtem povoleným pro lokální přihlášení pomocí hesla.
  • Mezi další respektované operační systémy patří RHEL , CentOS a Fedora .
  • Debian (ze kterého buntu pochází ) má uživatel rozhodnout, který přístup bude nakonfigurován během instalace systému.

Není objektivně nesprávné mít systém, kde je povolen root účet, za předpokladu, že

  1. stále jej používáte, jen když to opravdu potřebujete, a
  2. přístup k němu náležitě omezíte.

Začátečníci se často ptají, jak v Ubuntu povolit kořenový účet. Tyto informace bychom před nimi neměli skrývat, ale obvykle, když se jich lidé zeptají, je to proto, že jsou pod mylným dojmem, že potřebují k povolení root účtu. Ve skutečnosti je to téměř nikdy nezbytné, takže při odpovídání na tyto otázky je důležité, abychom vysvětlili, že. Povolení root účtu také usnadňuje získání spokojenosti a provádění akcí jako root, které don 'Vyžadovat root oprávnění. To však neznamená, že povolení root účtu je samo o sobě nezabezpečené.

Sudo povzbuzuje a pomáhá uživatelé spouštějí příkazy jako root pouze tehdy, když to potřebují. Chcete-li spustit příkaz jako root, zadejte Sudo, mezeru a poté příkaz. To je velmi pohodlné a mnoho uživatelů všech úrovní dovedností dává přednost tomuto přístupu.

Stručně řečeno, nemusíte povolit přihlášení root, protože máte Sudo. Ale pokud jej používáte pouze pro administrativní úkoly, které to vyžadují, je to stejně bezpečné povolit a přihlásit se jako root, pokud je to pouze těmito způsoby:

  • Lokálně z negrafického virtuální konzole .
  • S příkazem su , když jste přihlášeni z jiného účtu.

Pokud se však přihlásíte jako root tímto způsobem:

  • Graficky. Když se přihlásíte graficky, spouští se spousta věcí, které poskytují grafické rozhraní, a vy skončíte spuštěním ještě více aplikací jako root, abyste toto rozhraní mohli použít pro cokoli. To je v rozporu se zásadou pouze spouštění programů jako root, které skutečně potřebují rootová oprávnění. Některé z těchto programů mohou obsahovat chyby, včetně chyb zabezpečení.

    Kromě toho existuje důvod, který tomu nebrání zabezpečení. Přihlašování graficky jako root není dobře podporováno -- jak uvádí loevborg , vývojáři desktopových prostředí a grafických aplikací je často nevykonávají jako root. Dokonce i když se přihlásí do grafického desktopového prostředí jako root, uživatelé nedostanou alfa a beta testování ve skutečném světě, protože se to téměř nikdo nezkouší (z bezpečnostních důvodů vysvětlených výše).

    Pokud potřebujete jako root spustit konkrétní grafickou aplikaci, můžete použít gksudo nebo Sudo -H . To běží mnohem méně programů jako root, než kdybyste se skutečně přihlásili graficky pomocí rootova účtu.

  • Vzdáleně. Účet root může ve skutečnosti dělat cokoli a má prakticky stejný název prakticky v každém unixovém systému. Pokud se přihlásíte jako root pomocí ssh nebo jiných vzdálených mechanismů, nebo dokonce konfigurací vzdálených služeb, aby to bylo povoleno, výrazně usnadníte vetřelcům, včetně automatizovaných skriptů a malwaru běžících na botnetech. , získat přístup prostřednictvím hrubé síly, slovníkových útoků (a možná některé bezpečnostní chyby).

    Pravděpodobně riziko není extrémně vysoké, pokud povolíte pouze založené na klíči, a nikoli založené na hesle root přihlášení.

Ve výchozím nastavení v Ubuntu nejsou povoleny ani grafické přihlašování rootů ani vzdálené přihlašování přes SSH, i když povolíte přihlášení jako root. To znamená, že i když povolíte přihlášení root, je stále povolena pouze způsoby, které jsou přiměřeně bezpečné.

  • Pokud provozujete server ssh na Ubuntu a nezměnili jste /etc/sshd/ssh_config, bude obsahovat řádek PermitRootLogin without-password. Tím se zakáže přihlášení root pomocí hesla, ale umožňuje přihlášení pomocí klíče. Ve výchozím nastavení však není nakonfigurován žádný klíč, takže pokud jej nenastavíte, nebude to fungovat. Kromě toho je vzdálené přihlášení root pomocí klíče mnohem méně špatné než vzdálené přihlášení root pomocí hesla, částečně proto, že nevytváří riziko útoků hrubou silou a slovníkem.
  • I když vás výchozí nastavení by chrání, myslím, že je stále dobré zkontrolovat konfiguraci ssh, pokud chcete povolit root účet. A pokud provozujete další služby, které poskytují vzdálené přihlášení, jako je ftp, měli byste je také zkontrolovat.

Na závěr:

  • Dělejte věci jako root pouze tehdy, když potřebujete; Sudo vám to pomůže, a přitom vám dává plnou moc root kdykoli to budete chtít.
  • Pokud chápete, jak root pracuje a nebezpečí jeho nadměrného použití, není povolení rootova účtu z hlediska zabezpečení opravdu problematické.
  • Ale pokud tomu rozumíte, také víte, že téměř určitě nemáte need k povolení root účtu .

Chcete-li získat další informace o rootovi a Sudo, včetně některých dalších výhod Sudo, které jsem zde nezahrnoval, vřele doporučuji RootSudo v wiki nápovědě Ubuntu.

23
Eliah Kagan

Kořenový účet je ve výchozím nastavení zakázán - to znamená, že existuje, ale není použitelný (s výjimkou režimu obnovení). To znamená, že útočník ví o vašem root účtu, ale nemohl ho použít, i když měl root heslo. Útočník tedy musí uhádnout jak uživatelské jméno, které má administrátorská oprávnění, tak heslo tohoto uživatele (což je mnohem obtížnější než jen pokusit se vymyslet root heslo). V XP pokud je máte nainstalovanou konzolu pro zotavení, do ní se může zavést kdokoli, kdo má fyzický přístup k vaší schránce (RC) - není vyžadováno žádné heslo. Stejné jako režim obnovy v Ubuntu.

V Ubuntu, když říkají, že root je zakázán - to, co ve skutečnosti znamená, je účet uzamčen. Účet je uzamčen změnou hesla na hodnotu, která neodpovídá žádné možné šifrované hodnotě. To účinně brání tomu, aby se kdokoli mohl přihlásit jako root - protože by neexistoval žádný možný způsob, jak by mohli zadat heslo. Protože stále existuje čas, kdy je nutný přístup root, jádro Ubuntu bylo upraveno tak, aby umožňovalo lokální přihlášení root pouze v režimu pro jednoho uživatele.

Viz také stránka

15
karthick87

Je to jako vyzbrojit malé dítě AK47, zatímco on může šťastně hrát s jeho paintball zbraň. ;)

Myslím, že je to špatné, protože vy a vaše aplikace budete mít více privilegií, než potřebují, a to je, když se věci moho a někdy se pokazí :(

13
omeid

Velmi pěkná otázka ... Dovolte mi na to odpovědět z praktického hlediska:

Když jsem začal používat Linux, což je před více než 10 lety, hlavní distribuce ne inzerovaly pomocí účtů typu root než dnes. Protože jsem byl zvyklý na Windows, neviděl jsem ani smysl používat omezený uživatelský účet. Zejména proto, že jsem musel často vstupovat do „su“ - tehdy nebylo Sudo tak populární. ;-) Takže jsem se vždy přihlásil jako root, protože jsem měl hodně údržby, abych si dobře nakonfiguroval systém. Ale hádejte co, jakýkoli čerstvý nainstalovaný systém se rychle stal velmi nestabilním.

Jeden konkrétní problém například: Neměl jsem tolik místa na pevném disku rezervovaného pro Linux, takže se mi několikrát stalo, že mi v oddílu zůstalo 0 bajtů. Možná nejsem úplně přesný, protože nevím přesný mechanismus, ale když zaplníte disk pod účtem typu non-root, vždy zbývá několik kilobajtů. Ale pokud opravdu zbývá 0 bajtů, váš systém způsobí podivné chyby a můžete skončit s některými obtížnými opravami poškození v systému, protože na pozadí běží spousta systémového softwaru ...

Další věc je: Toto rozdělení mezi root a non-root udržuje váš systém dobře organizovaný. Jako uživatel root můžete být v pokušení čistě neinstalovat své nové aplikace, které vám zanechají špinavý, tvrdě udržovatelný systém.

Ale dobrá věc: Moderní distribuce pro vás vykonávají většinu administrativních úkolů, takže se jen zřídka budete muset starat o vnitřnosti vašeho systému Linux pomocí root účtu. Postačí zadat heslo z času na čas, zbytek se provádí skripty distributora.

Ale pochybuji, že jste ve svém systému Windows neměli problémy s tím, pokud jste použili 95 nebo 98. (Alespoň jsem měl problémy s tím ...) Kvůli nedostatku jasného oddělení mezi administrátorem a běžným uživatelem „tradiční“ „Aplikace Windows předpokládají, že mohou dělat cokoli Nainstalujte si Spyware, pokud se vám to líbí, i když vám to neřekne. Společnost Microsoft se touto otázkou zabývala při vydávání systému Vista. (Účinně implementuje mechanismus Sudo.) Takže lidé dostali velmi nepříjemné dialogy s nápisem „To nemůžete udělat“. Pro nějaký software, který není kompatibilní s operačním systémem Vista, potřebujete k jeho instalaci nějaké špinavé hacky, a to i jako správce ...

11
Philip

Za tímto přístupem je mnoho aspektů. Někteří z nich jsou:

  • Kořen je silný.
  • Uživatel root může skrýt všechny své akce.
  • Kořenové heslo vám umožňuje přístup ke všem příkazům v systému.
  • zde je dobrý článek: http://cf.stanford.edu/policy/root

    10
    aneeshep
    rm /*
    

    Řekněme, že jste uklízeli administrativní oblast. Už vás nebaví heslo, takže Sudo su. Rozptýlíte se jen na vteřinu a zapomenete CD na /. Pak ty rm *. Udělal jsem to. Můžete to všechno vrátit, ale je to PITA. Oh, a to sestoupilo do /media také!

    8
    bambuntu

    Proč nemáte root root?

    I když můžete vytvořit heslo pro účet superuživatele, který vám umožní přihlásit se jako root, stojí za zmínku, že se nejedná o způsob „Ubuntu“ dělání věcí. Ubuntu se konkrétně rozhodly ne , aby daly rootovi přihlašovací jméno a heslo ve výchozím nastavení z nějakého důvodu. Místo toho bude výchozí instalace Ubuntu používat Sudo.

    Sudo je alternativou, jak dát lidem root heslo, aby mohli plnit povinnosti superuživatele. Ve výchozí instalaci Ubuntu má osoba, která nainstalovala operační systém, ve výchozím nastavení oprávnění „Sudo“.

    Kdokoli s povolením „Sudo“ může provést něco „jako superuživatel“ tím, že předběžně čeká na jejich příkaz Sudo. Například pro spuštění apt-get dist-upgrade jako superuživatel můžete použít:

    Sudo apt-get dist-upgrade
    

    Výhody přístupu Sudo

    • S Sudo si předem vyberete, kteří uživatelé mají přístup k Sudo. Není třeba, aby si pamatovali kořenové heslo, protože používají své vlastní heslo.

    • Máte-li více uživatelů, můžete přístup superuživatele zrušit pouze odebráním svolení Sudo, aniž byste museli měnit kořenové heslo a upozorňovat každého na nové heslo.

    • Můžete si dokonce vybrat, které příkazy může uživatel provádět pomocí Sudo a které příkazy jsou pro daného uživatele zakázány.

    • A konečně, pokud dojde k narušení bezpečnosti, může v některých případech zanechat lepší audit trail ukazující, který uživatelský účet byl ohrožen.

    Sudo usnadňuje provádění jediného příkazu s oprávněními superuživatele. Při přihlášení rootem zůstanete trvale v superuživatelském prostředí, které musí být ukončeno pomocí exit nebo logout. To může vést k tomu, že lidé zůstanou v superuživatelském prostředí Shell déle, než je nutné jen proto, že je to pohodlnější než odhlašování a opětovné přihlášení.

    U Sudo máte stále možnost otevřít permanentní (interaktivní) superuživatel Shell příkazem:

    Sudo su
    

    ... a to lze stále provést bez hesla root, protože příkaz Sudo dává příkazu su superuser.

    A podobně místo su - pro přihlášení Shell můžete použít Sudo su - nebo dokonce Sudo -i.

    Přitom však musíte mít na paměti, že pro každý příkaz jednáte jako superuživatel. Je dobrým bezpečnostním principem nezůstávat jako superuživatel déle, než je nutné, pouze snížit možnost náhodného poškození systému (bez něj můžete poškodit pouze soubory, které vlastní uživatel).

    Pro vyjasnění můžete , pokud se rozhodnete, dát uživateli root heslo umožňující přihlášení jako root, pokud chcete místo toho dělat věci tímto způsobem . Chtěl jsem vás jen informovat o úmluvě Ubuntu upřednostňovat Sudo a pokusit se vysvětlit některé důvody, proč Ubuntu upřednostňuje tento přístup jako výchozí.

    Proč nepovolit root přihlášení přes SSH?

    I když váš uživatel root heslo, které vám umožňuje přihlásit se jako root, je stále dobrým zabezpečovacím postupem zakázat přímé přihlášení root z venku, jako v SSH. Je rozumné, aby uživatelé museli su - nebo Sudo po počátečním přihlášení.

    Možné výhody z toho plynou většinou z hlediska bezpečnosti:

    • Omezuje vektor útoku odstraněním možnosti hrubého vynucení kořenového hesla na dálku. Je typické, že server na internetu je neustále zablokován pomocí pokusů o hrubé vynucení kořenového hesla přes SSH.

    • Vytváří lepší auditní stopu, takže i v případě narušení, kdy útočník získá později oprávnění superuživatele, uvidíte, jehož uživatelský účet byl použit získat přístup.

    7
    thomasrutter

    Pokud jste přihlášeni jako root, umožňuje aplikacím, skriptům nebo příkazům příkazového řádku přístup k citlivým částem softwaru, které mohou systém poškodit. To může být výsledkem nezkušenosti ze strany uživatele nebo programátora nebo z důvodu skrytého skrytého kódu.

    6
    Gersitar

    Při práci jako root je to prostě příliš snadné. Můžete oklamat celý systém jako jeden příkaz ...

    5
    Abel

    Mohu dodat, že mezi administrátorem ve Windows a rootem v Unixu je rozdíl. Administrátor stále má některá omezení v systémech, kde root nemá nějaké omezení. Správným analogem root v systému Windows je systémový uživatel.

    Špatnou věcí pro použití PC v kořenovém adresáři/systému je to, že můžete náhodně zničit cokoli bez jakéhokoli varování od OS.

    5
    Aleksei

    Důvody proti použití root:

    • Mohlo dojít k neúmyslnému zničení systémových souborů
    • Mohla by se dostat infekce
    • Protokolová akce

    Důvody PRO použití root:

    • Přístup ke všem, bez zadávání hesel
    • GUI, bez použití terminálů pro správu systémových souborů/adresářů

    Zdá se mi, že účet typu non-root by se stále mohl stát obětí těchto důvodů proti použití root, nejvíc, co přidá, je potvrzení vašich akcí. Myslím, že pokud víte, co děláte, jste v bezpečí pomocí root. Tam jsem to řekl.

    3
    Que

    Pokud jsou aplikace spuštěny jako root, neexistuje žádná záruka, že by žádná z nich nebyla spuštěna

    rm -rf /
    

    (Toto je příklad příkazu, který by měl ne být spuštěn.)

    3
    segfault

    Vzhledem k informovanému a pečlivému uživateli si nejsem jistý, zda existuje správná odpověď. Neviděl jsem tuto odpověď, tak jsem si myslel, že budu zvonit.

    Co se mi nelíbí, jsou neúmyslné změny oprávnění ve víceuživatelských systémech, které musím později chmod. Fixace pomocí chmod after-the-fact je mnohem dráždivější než potřeba Sudo, ale záleží to na tom, co jsem plánoval.

    3
    Clayton

    Při pečlivém použití není při protokolování jako root žádné nebezpečí.

    I když si myslím, že deaktivace root je výhodnější řešení, protože útočník to nemohl brutálně vynutit.

    Jedním z řešení je vytvoření uživatele ve skupině Sudo s nejasným jménem, ​​například gamer a použití Sudo k provádění administrativních úkolů.

    Útočník tedy musí nejen uhodnout heslo tohoto administrativního uživatele, ale také své přihlašovací jméno. Což není zřejmé, pokud uživatel používající Sudo má přihlašovací jméno jako kitty nebo gamer nebo něco podobného.

    3
    Bulat M.

    Software je založen na sdílených knihovnách, závislostech, konfiguračních souborech atd.
    Většinou jediné kliknutí v aplikaci vyvolá „řetězovou reakci“ více změn, nejen tam, kde si myslíte, že by to pravděpodobně bylo.
    Když tyto změny mají vliv na systémově kritická nastavení, je dobré vědět, jako uživatel.
    Proto je root přístup dobrým modelem zabezpečení:
    Pokud se ve vašem systému chystá něco zásadního, budete upozorněni tím, že budete požádáni o zvýšení oprávnění.

    2
    Pavlos G.

    Je to problém se dvěma tváři s více než jednou odpovědí.

    Pro nějakou realitu zkontrolujte vždy stejné, ale oh, tak strašné odpovědi na toto:

    desktop installations:

    • v případě potřeby použijte svého vlastního uživatele a Sudo, jinak jeden úspěšně použitý útočný vektor, protože opravdu nevíte, co děláte a váš systém je ohrožen
    • ve větších společnostech je pravděpodobné, že na své pracovní stanici nemáte rootová oprávnění, i když jste administrátor, v závislosti na množství cínových fólií.

    server installations:

    • existuje obrovský rozdíl mezi provedením vašich krátkých pracovních relací jako root (za předpokladu, že máte přihlašovací údaje bez hesla, řádnou správu klíčů ssh pro všechny servery - a konfiguraci fail2ban pro všechna přihlašovací hesla, i když jste u toho) a že máte každého démona/službu běží s vlastním uživatelem (což je nutností) - zdá se, že většina lidí si neuvědomuje rozdíl
    • pro zábavu: zkuste použít nástroje pro správu konfigurace řízené verzí (ansible/puppet/salt/cokoli se soubory ze serveru git) pouze bez přístupu root. (Máte nějakou formu AAA pro tyto speciální systémy, stejně jako pro vaše monitorovací a záložní systémy, ne?)
    • také: default rm -rf / nefunguje ve většině hlavních distribucí IIRC
    • každé vážné pracoviště má skákacího hostitele/hostitele bastionů pro přístup k serverové flotile, která zaznamenává cokoli, co děláte, což je pravděpodobně dále chráněno 2FA
    • pokud máte Sudo a žádný jumphost, můžete opravit protokoly hostitelů tak, aby skončily, ale přesto je chcete, aby byly stejně, pokud nejsou zrcadleny v reálném čase, to je.
    • když jsou také „ssh“ protokoly „vyčištěny“, nemůžete ani prokázat, že jste byli na hostiteli, pokud neexistuje žádný další systém pro monitorování sítě

    Pro jakoukoli velikost společnosti (přečteno: s největší pravděpodobností SOHO se statickým ip) mezi těmito dvěma extrémy, které postrádají slušné monitorování/zálohování/automatizaci/protokolování, může být užitečné vynutit použití Sudo na serverech. (Což je obcházeno lidmi, kteří dělají Sudo su - ASAP po připojení, nechte všechny vaše úmysly protokolování toho, co se stalo, jít do odpadu i bez škodlivých úmyslů, jakmile je přihlášeno více uživatelů root. Hodně štěstí, že to změníte vynucenými procedurami a zacházíte s lidmi drakonickými opatřeními, pokud nebudou dodržovat Pravidla. Život vždy najde cestu.)

    Pokud ale nemáte alespoň 2 zabezpečené přihlašovací údaje k heslu (pokud existují, zejména v systémech s internetovým připojením), navíc dbejte na správné zacházení s hesly (nástroje pro správu hesel, zásady uchování, žádná hlavní hesla, manipulace s nimi na zaměstnance) fluktuace ...) a máte nějakou správnou správu aktualizací pro serverovou flotilu, takže všechny servery jsou pravidelně opravovány, pravděpodobně budete někdy hacknut každý den, ať už zevnitř nebo zvenčí mimo.

    A vždy, když jste nábožensky používali Sudo a vynucovali jeho používání mezi všemi lidmi, v tomto případě vaše pravděpodobnost, že se stanete vlastníkem, příliš nezmění.

    1
    sjas

    Nakonec není žádná škoda při běhu jako root. Je to jen banda paranoidních lidí, kteří si myslí, že přeinstalace operačního systému je nemožná. Argument „Někdo by mohl ohrozit program ..“, tak co? pokud to udělají, mohli by už vaše heslo keylogovat, nebo jen zobrazit požadavek na heslo root a nechat si jim dát heslo. Odfoukněte systém, protože vyberete vše v/a smažete? oh dobře, vyjměte instalační program a znovu nainstalujte. Trvá to méně než 20 minut, vezměte si kávu a chill. Kořen je v pořádku, používám root, pokud si pamatuji a víte, co to dělá? Díky tomu je instalace balíčků méně bolestivá. Nemusíte zadávat root heslo každých 5 minut, jako obvykle. Nesetkáváte se s problémy při ukládání/úpravách systémových konfiguračních souborů, protože jsou to pouze oprávnění root. Je mnohem jednodušší a lepší běžet jako root.

    0
    Corky