Czym różni się root i sudo?

14

Użytkownik root może mieć wszystkie uprawnienia. Ale normalny użytkownik może uzyskać dostęp jak root za pomocą polecenia su lub sudo i własnego hasła.

Jaka jest różnica?

Hieu Nguyen
źródło

Odpowiedzi:

7

Komenda su(i sudo) tradycyjnie wymaga hasła roota . Można jednak skonfigurować sudotak, aby zwykli użytkownicy mogli uzyskiwać uprawnienia roota za pomocą własnego hasła, modyfikując /etc/sudoers(jako root, najlepiej za pomocą visudo).

Nowoczesne dystrybucje Linuksa wstępnie konfigurują pierwszego użytkownika, który będzie mógł sudo z własnym hasłem. Zapobiega to przypadkowej błędnej konfiguracji systemu przez użytkownika i umożliwia mu uzyskanie pełnej kontroli bez potrzeby posiadania oddzielnego hasła roota.

phihag
źródło
2
Powinieneś użyć «visudo» zamiast ręcznie edytować / etc / sudoers - składnia zostanie sprawdzona przed zapisaniem, co może zaoszczędzić trochę problemów.
Nicolas
@Nicolas Zaktualizowano, aby to uwzględnić. Chciałem jednak zaznaczyć, że plik jest zapisywany automatycznie przez współczesne dystrybucje.
phihag
3

Zwykły użytkownik może uzyskać dostęp do roota za pomocą sudo tylko wtedy, gdy znajduje się w pliku sudoers (co oznacza, że ​​jest wystarczająco zaufany, aby uzyskać uprawnienia administratora na żądanie). W środowisku produkcyjnym prawie nikt nie powinien być sudoerem.

Drżenia
źródło
3

suPolecenie to do tymczasowej zmiany tożsamość każdego użytkownika w systemie i wykonywać wiele programów z jego / jej / jego uprawnień. To nie musi być root. Jeśli wykonujący użytkownik sunie jest rootem, musi wprowadzić hasło użytkownika, którego chce uzyskać tożsamość.

sudoKomenda jest do wykonania jednego polecenia z uprawnieniami każdego użytkownika. To też nie musi być root. Polecenie jest bardzo konfigurowalne i zapewnia pewną precyzyjną kontrolę dostępu. Wprowadzenie własnego hasła jest opcjonalne i konfigurowalne. Niektóre dystrybucje pozwalają pierwszemu użytkownikowi systemu wykonać sudowszystko.

Michas
źródło
2

Aby dodać do powyższych odpowiedzi,

su user1z hasłem użytkownika zmieni twoje dane uwierzytelniające na user1, dopóki nie wpiszesz exit su, domyślnie przyjmie root.

sudojak wspomniano w innych odpowiedziach, można przyznać zaufanym użytkownikom i podzielonemu zestawowi poleceń. ponadto sudomożna go skonfigurować do rejestrowania wykonanych poleceń. To dobry sposób na śledzenie nadużycia przywilejów.

Lord Loh.
źródło
1

Nie wszyscy normalni użytkownicy mogą korzystać z sudo, muszą znajdować się w pliku sudoers i możesz kontrolować, które polecenia lub typy poleceń może wykonywać użytkownik. Ponadto tylko niektórzy użytkownicy mogą używać su, aby przełączyć się na użytkownika root. Zwykle masz uprawnienia sudo tylko dla ograniczonego zestawu poleceń i pełne uprawnienia su przez ograniczony okres czasu.

ldg
źródło
3
całkiem pewni, że wszyscy użytkownicy mogą używać su, będą potrzebować tylko hasła użytkownika, do którego się przełączają.
Grady Player
1
Tradycyjnie BSD wymagają, aby ktoś był w grupie kół, aby umożliwić używanie su do rootowania. Można to również skonfigurować w systemie Linux, ale nie jest to standard.
Jaap Eldering
-2

Tylko użytkownicy z uprawnieniami superużytkowników mogą sudo lub su, zwykli użytkownicy nie. Jest to konfigurowane w / etc / sudoers, które zawsze należy edytować za pomocą visudo.

Zaletami tego systemu są:

  1. Uprzywilejowanemu użytkownikowi łatwo jest uruchamiać polecenia jako root tylko w razie potrzeby,
  2. utrudnia odgadnięcie głównej nazwy użytkownika (np. jeśli prosty bot ssh próbowałby zalogować się do systemu, rootbyłaby to pierwsza nazwa do zgadnięcia).
  3. Wielu użytkowników w systemie współużytkowanym może mieć uprawnienia administratora, bez konieczności udostępniania haseł.
dr jimbob
źródło