Załóżmy, że instalujesz środowisko pulpitu, powiedzmy ubuntu lub debian. Możesz zamknąć system, klikając przycisk gdzieś w menu systemu jako zwykły użytkownik. Aby tego dokonać, nie musisz przełączać się na administratora.
Jednak w tym samym środowisku pulpitu, jeśli otworzę terminal (powiedzmy gnome-terminal) jako zwykły użytkownik i napiszę
shutdown -h now
Byłbym poproszony przez
shutdown: need to be root
Jedynym sposobem na zamknięcie jest dodanie polecenia sudo.
Czy ktoś może wyjaśnić, dlaczego tak jest?
Dzięki KC
linux
permissions
K.Chen
źródło
źródło
Odpowiedzi:
Pytanie zadane przez K.Chen brzmi: dlaczego potrzebuję uprawnień sudo, kiedy robię to z interfejsu CLI, chociaż nie potrzebuję takich uprawnień, kiedy robię to z GUI.
Pierwszą częścią odpowiedzi jest to, że ludzie, którzy projektują środowiska pulpitu, takie jak Gnome, KDE, Xfce, Mate, Cinnamon, ... próbują uprościć pracę swoich użytkowników i konfigurują zamykanie i ponowne uruchamianie bez konieczności posiadania poświadczeń sudo. To, nawiasem mówiąc, oznacza, że nie musi być sekwencja wyłączania, która ma nie wiązać zamknięcie programu, który nie wymaga przywileje sudo (nie odwrotnie, że).
Nie wiem szczegółowo, jak to robi każdy DE, ale wiem, że istnieje delikatny sposób na obniżenie lub ponowne uruchomienie / zamknięcie / hibernację systemu, który nie wymaga uprawnień roota. Oryginalny post można znaleźć w poście na forum Arch Linux . Zasadniczo sprowadza się do wydawania następujących poleceń:
postój
restart
dbus-suspend
hibernować
Domyślam się, że przyciski GUI używają z grubsza tych poleceń. Dla pewności należy przyjrzeć się kodowi, ale uważam, że jest to bezpieczny zakład.
źródło
Powód tej decyzji projektowej nie jest techniczny (możesz mieć nieuprzywilejowane
shutdown
polecenie lub wymagać hasła w GUI).Podczas korzystania ze środowiska pulpitu użytkownik powinien mieć fizyczny dostęp do komputera. Lepiej więc pozwolić na czyste wyłączenie niż pozwolić użytkownikowi nacisnąć przycisk zasilania lub odłączyć przewód zasilający.
Podczas używania powłoki użytkownik może być użytkownikiem zdalnym i aby uniknąć zdalnego zamknięcia, wymagane są dodatkowe uprawnienia.
Nie są to reguły, a jedynie wartości domyślne oparte na założeniach: możesz mieć lokalnego użytkownika w powłoce i zdalnego użytkownika ze środowiskiem pulpitu. Jeśli chcesz wybrać domyślne zachowanie, możesz odpowiednio skonfigurować system.
źródło
Sudo (superuser do) pozwala administratorowi systemu dać niektórym użytkownikom (lub grupom użytkowników) możliwość uruchamiania niektórych (lub wszystkich) poleceń jako root podczas rejestrowania wszystkich poleceń i argumentów. polecenie shutdown -h lub polecenie init 0 może być użyte do wyłączenia maszyny. Ale oba polecenia wymagały uprawnień administratora do wykonania.
Polecenie znajdujące się w katalogu / sbin musi mieć uprawnienia roota, aby je wykonać. Aby znaleźć lokalizację polecenia zamknięcia,
wpisz, które zamknięcie w terminalu.
Mam nadzieję, że teraz masz wątpliwości :)
źródło