Użytkownika nie ma w pliku sudoers. Ten incydent zostanie zgłoszony


24

Muszę zainstalować pakiet. W tym celu potrzebuję dostępu do roota. Jednak system mówi, że nie ma mnie w pliku sudoers. Podczas próby edycji jeden narzeka! Jak mam się dodać do pliku sudoers, jeśli nie mam prawa go edytować?

Zainstalowałem ten system i tylko administrator. Co mogę zrobić?

Edycja : visudojuż próbowałem . To przede wszystkim wymaga bycia sudoerami.

amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for amarzaya: 
amarzaya is not in the sudoers file.  This incident will be reported.
amarzaya@linux-debian-gnu:/$ 

4
Cóż, oczywiście user not(is) the sudoers file. (Literówka w tytule)
— Hello71,

8
Jesteś teraz na liście niegrzecznych - xkcd.com/838
— Aaron Newton

Odpowiedzi:


18

Byłoby to coś w rodzaju dziury w zabezpieczeniach, gdybyś mógł dodać siebie /etc/sudoersbez dostępu do sudo lub roota. Zasadniczo każdy może się zrootować.

Zasadniczo musisz poprosić administratorów tego komputera, aby Cię dodał lub zainstalował pakiet dla Ciebie, zgodnie z zasadami witryny.

Należy również użyć visudo do edycji pliku sudoers - przed zapisaniem pliku sprawdza poprawność składni. I możesz używać edytorów innych niż vi z visudo. Domyślnie użyje tego, co ustawiłeś jako, $EDITORa jeśli go nie masz, możesz to zrobić

# EDITOR=nano visudo

zamiast tego użyć edytora nano.


5
Jestem administratorem, ponieważ to jest moja maszyna i zainstalowałem ten system, ale to nie pomaga :(
— Sergiy Belozorov

9
Jeśli jest to twój system, powinieneś wprowadzić hasło dla użytkownika root podczas instalacji. Zaloguj się jako „root”, a następnie zrób visudo.
— Hamish Downer

W rzeczy samej. Moja wina. Zapomniałem, że wtedy wprowadziłem hasło podczas instalacji.
— Sergiy Belozorov

24

Zaloguj się jako root i użyj /usr/sbin/visudodo edycji pliku i dodaj swoją nazwę użytkownika. Normalny vi / vim nie będzie mógł edytować pliku.

Najłatwiej jest po prostu zejść na dół, aż zobaczysz wiersz „ root ALL=(ALL) ALL” i dodać siebie pod tą samą składnią ( yourusername ALL=(ALL) ALL). Możesz też przeczytać stronę sudoers, jeśli chcesz nadać sobie bardziej szczegółowe uprawnienia.


Wymaga to przede wszystkim bycia na liście sudoers, aby uruchomić visudo. Zainstalowałem ten Debian, nie ma innego administratora.
— Sergiy Belozorov

Jeśli jesteś zalogowany jako root, nie musisz uruchamiać sudo visudo; po prostu biegnij /usr/sbin/visudo. Ale wygląda na to, że już to odkryłeś na podstawie komentarzy drugiej odpowiedzi.
— Ricket

nie wystarczy dodać odpowiedniego użytkownika do grupy „sudo” lub „sudoers” (w zależności od dystrybucji)? Niestety w moim przypadku nie zadziałało, ale mógłbym przysiąc, że to kiedyś działało ...?
— Gregor,

5

Właśnie wpisałem polecenie:

$ su

I poprosił o hasło „root”. Pisane na maszynie i bum ... Udało się!

Ten problem był moim błędem. Ponieważ w tym momencie wróciłem do placówki, stworzyłem nazwę użytkownika i hasło.


Dzięki, że było to naprawdę pomocne i uratowało mi bekon! Ale jestem ciekawy, dlaczego po prostu dodanie tego polecenia, a następnie hasła roota, pozwoliłoby na podniesienie uprawnień .... wydaje się raczej podważać cel komunikatu „Nie ma użytkownika w pliku sudoers. To zdarzenie zostanie zgłoszone”
— Sol

1

Być może najłatwiejszym sposobem, gdy jesteś rootem, jest:

echo 'amarzaya ALL=(ALL) ALL' >> /etc/sudoers

7
Powinieneś koniecznie użyć visudo do edycji pliku sudoers, zamiast edytować go bezpośrednio lub wysłać do niego tekst. Zapewni to, że jest on poprawny pod względem składniowym i zapewni, że nie zablokujesz się przed dostępem lub nie zapewnisz komuś niewłaściwego dostępu.
— pkaeding

1

Jeśli plik sudoers zawiera już tego rodzaju linię

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Zatem najczystszym sposobem robienia rzeczy jest prawdopodobnie przyznanie admingrupy użytkownikowi. Na przykład, aby dodać wyrocznię użytkownika do admin grupy :

usermod -aG admin oracle

Właśnie tego szukałem. Dla mnie też najczystszy, bez bałaganu z plikiem sudoers.
— webjunkie

1
Prawidłowe polecenie tousermod -g oracle admin
— kvanberendonck

-1: składnia jest usermod -g $group $user. Prawdopodobnie myślisz o adduserskładni, która jest adduser $user $group.
— Blacklight Shining

1
… Właściwie najprawdopodobniej będziesz chciał usermod -aG $group $user. -gustawia podstawową grupę użytkownika na tę, którą określisz, i -Gbez -ausunie użytkownika z grup, których nie ma na liście. -gzmieni również własność grupy wszystkich plików należących do poprzedniej grupy w katalogu osobistym użytkownika. Więc jeśli jesteś podobny do mnie i masz swój umask ustawiony na 007...
— Blacklight Shining

1
@BlacklightShining. Masz rację. Poprzedni komentator zaproponował niewłaściwą składnię, a ponieważ oracleczęsto jest to także grupa, rzeczywiście istnieje miejsce na zamieszanie. Nie powinienem był „poprawiać”.
— Alain Pannetier

-1

Jeśli nadal możesz uzyskiwać dostęp do konta root za pomocą su, możesz użyć tego linku, aby dodać się do /etc/sudoers/:

su -c 'echo $USER ALL=(ALL)ALL >> /etc/sudoers'

Aby aktywować zmianę, wyloguj się i zaloguj ponownie. Na przykład zakończ sesję X lub wyloguj się przez shell enter exit.



-1

Jeśli nie możesz użyć sudopolecenia, możesz użyć następującej metody:

  1. Naciśnij Ctrl+ Alt+F1
  2. Wyloguj użytkownika, jeśli nie jest on rootem
  3. Zaloguj się jako root
  4. Użyj uprawnień roota
  5. Wyloguj się ( exit) - Ctrl+ Alt+, F7aby przejść do GUI

-1: Działa to tylko w niektórych lokalnych środowiskach, które faktycznie mają GUI.
— Blacklight Shining

-1

Wszystko czego potrzebujesz to dodać swój <username>do whellgrupy.

# usermod -aG whell username

Zaloguj się przy użyciu swojej nazwy użytkownika i ciesz się :)


-3

Zaloguj się, używając najpierw:

$ su

Następnie przejdź do:

$ sudo apt-get update

lub cokolwiek normalnego


1
nie potrzebujesz su- sudo to robi.
— Simon Sheehan,

W rzeczywistości nie są dokładnie tym samym. sudo to „zrób jako super użytkownik”, ale logujesz się przy użyciu hasła użytkownika. su jest „zmień użytkownika” i domyślnie (bez argumentów) próbuje przejść do użytkownika root, w takim przypadku musisz wprowadzić hasło roota. Ale masz również rację - używanie sudo po su jest zbędne, ponieważ byłbyś już użytkownikiem root.
— Aaron Newton,

@ aaron.newton Właściwie przeczytałbym to jako Switch User i DO; możesz wybrać dowolnego użytkownika, aby uruchomić polecenie tak jak w przypadku -uflagi. To jest najczęściej stosowane do korzenia, ale tak jest su.
— Blacklight Shining

@ aaron.newton Właściwie przeczytałbym to jako Switch User i DO; możesz wybrać dowolnego użytkownika, aby uruchomić polecenie tak jak w przypadku -uflagi. To jest najczęściej stosowane do korzenia, ale tak jest su.
— Blacklight Shining
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.